{"version":3,"sources":["app/models/conditions/BaseEntity.ts","app/models/workflow/blocks/interfaces/IWorkflowBlock.js","app/models/workflow/blocks/abstractClasses/BaseWorkflowBlock.ts","app/models/workflow/blocks/abstractClasses/MultipleOutputWorkflowBlock.js","app/models/workflow/blocks/abstractClasses/MultipleOutputWorkflowBlock.ts","app/models/workflow/blocks/abstractClasses/NoOutputWorkflowBlock.js","app/models/workflow/blocks/abstractClasses/NoOutputWorkflowBlock.ts","app/models/workflow/blocks/abstractClasses/SingleOutputWorkflowBlock.js","app/models/workflow/blocks/abstractClasses/SingleOutputWorkflowBlock.ts","app/models/workflow/blocks/abstractClasses/YesNoOutputWorkflowBlock.js","app/models/workflow/blocks/abstractClasses/YesNoOutputWorkflowBlock.ts","app/models/workflow/blocks/WorkflowBlockManager.ts","app/models/workflow/blocks/WorkflowBlockManager.js","app/models/workflow/blocks/shapes/AssignClaimWorkflowBlock.js","app/models/workflow/blocks/shapes/AssignClaimWorkflowBlock.ts","app/models/workflow/blocks/shapes/BookResourceWorkflowBlock.js","app/models/workflow/blocks/shapes/BookResourceWorkflowBlock.ts","app/models/workflow/blocks/shapes/CalculateWorkflowBlock.js","app/models/workflow/blocks/shapes/CalculateWorkflowBlock.ts","app/models/workflow/blocks/shapes/ChangeStateWorkflowBlock.js","app/models/workflow/blocks/shapes/ChangeStateWorkflowBlock.ts","app/models/workflow/blocks/shapes/ConditionWorkflowBlock.js","app/models/workflow/blocks/shapes/ConditionWorkflowBlock.ts","app/models/workflow/blocks/shapes/CopyWorkflowBlock.js","app/models/workflow/blocks/shapes/CopyWorkflowBlock.ts","app/models/workflow/blocks/shapes/CreatePdfWorkflowBlock.js","app/models/workflow/blocks/shapes/CreatePdfWorkflowBlock.ts","app/models/workflow/blocks/shapes/CustomActionWorkflowBlock.js","app/models/workflow/blocks/shapes/CustomActionWorkflowBlock.ts","app/models/workflow/blocks/shapes/DropZoneWorkflowBlock.js","app/models/workflow/blocks/shapes/DropZoneWorkflowBlock.ts","app/models/workflow/blocks/shapes/GotoStateWorkflowBlock.js","app/models/workflow/blocks/shapes/GotoStateWorkflowBlock.ts","app/models/workflow/blocks/shapes/GotoWorkflowBlock.js","app/models/workflow/blocks/shapes/GotoWorkflowBlock.ts","app/models/workflow/blocks/shapes/MessageWorkflowBlock.js","app/models/workflow/blocks/shapes/MessageWorkflowBlock.ts","app/models/workflow/blocks/shapes/ProcessActionWorkflowBlock.js","app/models/workflow/blocks/shapes/ProcessActionWorkflowBlock.ts","app/models/workflow/blocks/shapes/RemoveResourceWorkflowBlock.js","app/models/workflow/blocks/shapes/RemoveResourceWorkflowBlock.ts","app/models/workflow/blocks/shapes/ReturnFromProcessActionWorkflowBlock.js","app/models/workflow/blocks/shapes/ReturnFromProcessActionWorkflowBlock.ts","app/models/workflow/blocks/shapes/SendEmailWorkflowBlock.js","app/models/workflow/blocks/shapes/SendEmailWorkflowBlock.ts","app/models/workflow/blocks/shapes/SetDataWorkflowBlock.js","app/models/workflow/blocks/shapes/SetDataWorkflowBlock.ts","app/models/workflow/blocks/shapes/StartProcessActionWorkflowBlock.js","app/models/workflow/blocks/shapes/StartProcessActionWorkflowBlock.ts","app/models/workflow/blocks/shapes/StateWorkflowBlock.js","app/models/workflow/blocks/shapes/StateWorkflowBlock.ts","app/models/workflow/blocks/shapes/StatusChangeWorkflowBlock.js","app/models/workflow/blocks/shapes/StatusChangeWorkflowBlock.ts","app/models/workflow/blocks/shapes/SystemActionWorkflowBlock.js","app/models/workflow/blocks/shapes/SystemActionWorkflowBlock.ts","app/models/workflow/blocks/shapes/UserActionWorkflowBlock.js","app/models/workflow/blocks/shapes/UserActionWorkflowBlock.ts","app/models/workflow/blocks/shapes/ValidateWorkflowBlock.js","app/models/workflow/blocks/shapes/ValidateWorkflowBlock.ts","app/models/ActiveProcessTypesModel.ts","app/models/ApplicationCode.ts","app/models/ApplicationCodePromise.ts","app/models/BatchJobDashboardModel.ts","app/models/CodeDropDownContext.ts","app/models/CodeDropDownItem.ts","app/models/CodeGroup.ts","app/models/conditions/booleanExpression.js","app/models/conditions/ComparisonOperator.ts","app/models/conditions/Condition.js","app/models/conditions/Condition.ts","app/models/conditions/LogicalOperator.ts","app/models/configuration/apiConfigurationModel.ts","app/models/configuration/apiConfigurationModel.js","app/models/configuration/ApiKeyModel.ts","app/models/configuration/BatchJobConfigurationModel.ts","app/models/configuration/CalculationConfigurationModel.ts","app/models/configuration/ConfigurationModel.ts","app/models/configuration/ManageClaimGroupModel.ts","app/models/configuration/ManageFormContainerAssociationModel.ts","app/models/configuration/ManageReviewGroupModel.ts","app/models/configuration/ManageStatusesModel.ts","app/models/configuration/ManageSubTypeGroupModel.ts","app/models/configuration/ManageSystemActionModel.ts","app/models/configuration/PaymentConfigurationModel.ts","app/models/configuration/process/ApiActionsModel.ts","app/models/configuration/process/ApiGridConfigurationModel.ts","app/models/configuration/process/AutoCompleteConfigurationModel.ts","app/models/configuration/process/ClaimsAssignmentConfigurationModel.ts","app/models/configuration/process/FormConfigurationModel.ts","app/models/configuration/process/FormContainerModel.ts","app/models/configuration/process/GisDataStoreMetadataMappingModel.ts","app/models/configuration/process/ManageProcessClaimsModel.ts","app/models/configuration/process/MapConfigurationOverridesModel.ts","app/models/configuration/process/MapToSystemStatusAndStatesModel.ts","app/models/configuration/process/ProcessConditionsModel.ts","app/models/configuration/process/ProcessConfigVersionModel.ts","app/models/configuration/process/ProcessDataModel.ts","app/models/configuration/process/ProcessDataNode.ts","app/models/configuration/process/ProcessFormsConfigurationModel.ts","app/models/configuration/process/ProcessHeaderModel.ts","app/models/configuration/process/ProcessNavigationModel.ts","app/models/configuration/process/ProcessSecurityModel.ts","app/models/configuration/process/ProcessStatusGroupResult.ts","app/models/configuration/process/ProcessSubTypesModel.ts","app/models/configuration/process/RelatedClaimProcessTypeModel.ts","app/models/configuration/process/ReviewConfigurationModel.ts","app/models/configuration/process/TimePeriodConfigurationModel.ts","app/models/configuration/process/WorkflowConfigurationModel.ts","app/models/configuration/ProcessEventConfigurationModel.ts","app/models/ConstantConfigurationModel.ts","app/models/ConstantConfigurationModel.js","app/models/contentManagement/contentManagementModel.ts","app/models/contentManagement/contentPagesModel.ts","app/models/contentManagement/LandingPageConfigurationModel.ts","app/models/contentManagement/menuConfigurationModel.ts","app/models/contentManagement/siteConfigurationModel.ts","app/models/ContentPageModel.ts","app/models/DataOperation.js","app/models/DataOperation.ts","app/models/DataSourceConfigurationModel.ts","app/models/DeletePopoverModel.ts","app/models/DocumentationModel.ts","app/models/DocumentMetadataModel.ts","app/models/EditableWebPageModel.ts","app/models/EditFieldModel.ts","app/models/EmailNotificationModel.ts","app/models/EnumDropDownContext.ts","app/models/EnumDropDownItem.ts","app/models/enums/CalculationType.js","app/models/ExtensibleComponentConfigurationModel.ts","app/models/FileStatusModel.ts","app/models/FormSection.js","app/models/FormSection.ts","app/models/GetCodeModel.ts","app/models/gis/EsriQueryConfigurationModel.ts","app/models/gis/EsriQueryResult.ts","app/models/gis/GisActionWorkflowConfigurationModel.ts","app/models/gis/GisDatastoreQueryConfigurationModel.ts","app/models/gis/JavascriptTransformerModel.ts","app/models/gis/LayerConfigurationModel.ts","app/models/gis/LegendConfigurationModel.ts","app/models/gis/MapConfigurationModel.ts","app/models/gis/MapConfigurationPreviewModel.ts","app/models/gis/MapConfigurationsModel.ts","app/models/gis/MapFunctionConfigurationModel.ts","app/models/gis/QueryGridConfigurationModel.ts","app/models/GisDatastoreModel.ts","app/models/HeaderFooterModel.ts","app/models/HolidayModalModel.ts","app/models/HolidaySetModel.ts","app/models/jointJs/DrawingOptions.ts","app/models/jointJs/ElementMap.ts","app/models/JsonDictionaryStoresModel.ts","app/models/jsTree/jsTreeWrappers.js","app/models/layoutModel.ts","app/models/ManageClaimsModel.ts","app/models/ManageEmailGroupsModel.ts","app/models/ManageScheduledResourcesModel.ts","app/models/ManageSecurityMatrixModel.ts","app/models/manageStaticDocuments/ManageStaticDocumentsModel.ts","app/models/manageSystemActions/EmailSystemActionsModel.ts","app/models/manageSystemActions/PdfGenerationConfigurationModel.ts","app/models/ManageSystemCodeModel.ts","app/models/ManageUserModel.ts","app/models/NotificationSubscriptionsModel.ts","app/models/ObjectQueryFormModel.ts","app/models/ObjectQueryModel.ts","app/models/ObjectQueryPredicate.js","app/models/ObjectQueryPredicate.ts","app/models/ObjectQueryProjection.js","app/models/ObjectQueryProjection.ts","app/models/ObjectQueryRestrictionsModel.ts","app/models/ObjectQueryRestrictionsModel.js","app/models/ObjectSchema.ts","app/models/PagingModel.ts","app/models/PaymentWindowModel.ts","app/models/PdfBinding.js","app/models/PdfBinding.ts","app/models/process/FormModel.ts","app/models/process/ProcessDto.ts","app/models/process/ProcessModel.ts","app/models/process/ReportProcessModel.ts","app/models/ProcessActionsModel.ts","app/models/ProcessTypesModel.ts","app/models/QueryConfigurationModel.ts","app/models/SchemaProperty.ts","app/models/TreeConfigurationItem.ts","app/models/TreeItemLookupModel.ts","app/models/TreeItemOptions.ts","app/models/TreeValue.ts","app/models/User.ts","app/models/userActionModalModel.ts","app/models/UserAdministrationModel.ts","app/models/UserSearchCriteria.ts","app/models/ValueOperation.js","app/models/ValueOperation.ts","app/models/workflow/AddEditStatusModel.ts","app/models/workflow/Coordinate.ts","app/models/workflow/GotoSettingsModel.ts","app/models/workflow/OutputOrderModel.ts","app/models/workflow/PendingWorkflowItem.ts","app/models/workflow/ProcessActionGroup.ts","app/models/workflow/ProcessStatusGroup.ts","app/models/workflow/StateGroup.ts","app/models/workflow/StatusConnections.ts","app/models/workflow/StatusGroup.ts","app/models/workflow/WorkflowBlockConnections.ts","app/models/workflow/WorkflowBlockLocation.ts","app/models/workflow/WorkflowDrawingInstance.ts","app/models/workflow/WorkflowDrawingInstance.js","app/models/workflow/WorkflowDrawingSettings.ts","app/models/workflow/WorkflowEvents.ts","app/models/workflow/WorkflowHoverContext.ts","app/models/workflow/WorkflowItemAwaitingDrawing.ts","app/models/workflow/WorkflowWorkspaceModel.ts","app/App.ts","app/App.js","app/services/HttpHandlerService.ts","app/services/ApplicationCodeService.ts","app/services/UtilityService.ts","app/services/DataService.ts","app/services/DataService.js","app/services/AngularLoadService.ts","app/services/ApiActionService.js","app/services/ApiActionService.ts","app/services/apiConfigurationService.js","app/services/apiConfigurationService.ts","app/services/ApiGridConfigurationService.js","app/services/ApiGridConfigurationService.ts","app/services/ApiGridService.ts","app/services/ApiKeyService.ts","app/services/ApiSchemaMappingService.js","app/services/ApiSchemaMappingService.ts","app/services/AssigmentConfigurationService.js","app/services/AssigmentConfigurationService.ts","app/services/AutoCompleteConfigurationService.js","app/services/AutoCompleteConfigurationService.ts","app/services/AutoCompleteService.ts","app/services/BatchJobConfigurationService.js","app/services/BatchJobConfigurationService.ts","app/services/BatchJobDashboardService.js","app/services/BatchJobDashboardService.ts","app/services/BoundItemService.js","app/services/BoundItemService.ts","app/services/CalculationService.js","app/services/CalculationService.ts","app/services/ClaimDefinitionService.js","app/services/ClaimDefinitionService.ts","app/services/ClaimGroupService.js","app/services/ClaimGroupService.ts","app/services/ClaimsAssignmentService.js","app/services/ClaimsAssignmentService.ts","app/services/CommentService.js","app/services/CommentService.ts","app/services/ConditionService.js","app/services/ConditionService.ts","app/services/ConfigurationCacheService.ts","app/services/ConfigurationStorageService.ts","app/services/ConstantService.js","app/services/ConstantService.ts","app/services/ContentPageService.js","app/services/ContentPageService.ts","app/services/CustomDivService.ts","app/services/DataLinkService.js","app/services/DataLinkService.ts","app/services/DataSourceService.js","app/services/DataSourceService.ts","app/services/DateRangeService.ts","app/services/DeleteService.js","app/services/DeleteService.ts","app/services/DocumentService.js","app/services/DocumentService.ts","app/services/EditableContentPageService.js","app/services/EditableContentPageService.ts","app/services/EmailConfigurationService.js","app/services/EmailConfigurationService.ts","app/services/EmailGroupService.js","app/services/EmailGroupService.ts","app/services/EmailService.js","app/services/EmailService.ts","app/services/ExtensibilityService.js","app/services/ExtensibilityService.ts","app/services/ExternalApiService.js","app/services/ExternalApiService.ts","app/services/FieldService.js","app/services/FieldService.ts","app/services/FileUploadDownloadService.js","app/services/FileUploadDownloadService.ts","app/services/FormCodeFunctionService.js","app/services/FormCodeFunctionService.ts","app/services/FormContainerAssociationService.js","app/services/FormContainerAssociationService.ts","app/services/FormContainerService.js","app/services/FormContainerService.ts","app/services/FormDataService.ts","app/services/FormService.js","app/services/FormService.ts","app/services/FormStepService.js","app/services/FormStepService.ts","app/services/gis/EsriMapService.js","app/services/gis/EsriMapService.ts","app/services/gis/GisDataStoreMetadataMappingService.js","app/services/gis/GisDataStoreMetadataMappingService.ts","app/services/gis/GisDatastoreService.js","app/services/gis/GisDatastoreService.ts","app/services/gis/GisMapService.ts","app/services/gis/GisMapService.js","app/services/gis/LegendConfigurationService.js","app/services/gis/LegendConfigurationService.ts","app/services/gis/MapConfigurationService.js","app/services/gis/MapConfigurationService.ts","app/services/HistoryService.ts","app/services/HolidaySetService.js","app/services/HolidaySetService.ts","app/services/InterProcessApiService.js","app/services/InterProcessApiService.ts","app/services/JsonDictionaryStoreService.ts","app/services/LandingPageConfigurationService.js","app/services/LandingPageConfigurationService.ts","app/services/logging/WarsLogger.ts","app/services/ManageDocumentSelectionService.ts","app/services/ManageProcessDataConfigurationService.js","app/services/ManageProcessDataConfigurationService.ts","app/services/ManageScheduledResourcesService.js","app/services/ManageScheduledResourcesService.ts","app/services/ManageStaticDocumentsService.js","app/services/ManageStaticDocumentsService.ts","app/services/ManageSystemCodesService.js","app/services/ManageSystemCodesService.ts","app/services/MapConfigurationOverridesService.js","app/services/MapConfigurationOverridesService.ts","app/services/MenuItemService.js","app/services/MenuItemService.ts","app/services/ObjectQueryService.js","app/services/ObjectQueryService.ts","app/services/ObjectSchemaService.js","app/services/ObjectSchemaService.ts","app/services/PaymentConfigurationService.js","app/services/PaymentConfigurationService.ts","app/services/PaymentService.js","app/services/PaymentService.ts","app/services/PdfBindingService.js","app/services/PdfBindingService.ts","app/services/ProcessActionService.js","app/services/ProcessActionService.ts","app/services/ProcessConfigurationService.js","app/services/ProcessConfigurationService.ts","app/services/ProcessDocumentService.js","app/services/ProcessDocumentService.ts","app/services/ProcessEventConfigurationService.js","app/services/ProcessEventConfigurationService.ts","app/services/ProcessHeaderService.js","app/services/ProcessHeaderService.ts","app/services/ProcessService.js","app/services/ProcessService.ts","app/services/ProcessSubTypeService.js","app/services/ProcessSubTypeService.ts","app/services/ProcessTypeService.js","app/services/ProcessTypeService.ts","app/services/ProcessValidationService.ts","app/services/QueryConfigurationService.js","app/services/QueryConfigurationService.ts","app/services/RelatedClaimProcessTypeService.js","app/services/RelatedClaimProcessTypeService.ts","app/services/ReviewConfigurationService.js","app/services/ReviewConfigurationService.ts","app/services/ReviewGroupService.js","app/services/ReviewGroupService.ts","app/services/SchemaPropertyService.js","app/services/SchemaPropertyService.ts","app/services/securityMatrixService.js","app/services/securityMatrixService.ts","app/services/Signalr.ts","app/services/SiteConfigurationService.js","app/services/SiteConfigurationService.ts","app/services/SiteInitializatinService.js","app/services/SiteInitializatinService.ts","app/services/StatusAndStateService.js","app/services/StatusAndStateService.ts","app/services/StatusGroupService.ts","app/services/StepGroupService.ts","app/services/SubTypeGroupService.js","app/services/SubTypeGroupService.ts","app/services/SystemActionService.js","app/services/SystemActionService.ts","app/services/SystemCodeService.js","app/services/SystemCodeService.ts","app/services/SystemLevelService.js","app/services/SystemLevelService.ts","app/services/TagService.js","app/services/TagService.ts","app/services/TimeTrackerService.js","app/services/TimeTrackerService.ts","app/services/timeZoneService.js","app/services/timeZoneService.ts","app/services/TreeItemLookupService.js","app/services/TreeItemLookupService.ts","app/services/TreeItemService.js","app/services/TreeItemService.ts","app/services/TreeService.ts","app/services/UserActionService.ts","app/services/UserAdministrationService.ts","app/services/UserService.js","app/services/UserService.ts","app/services/VariableTypeService.ts","app/services/WorkflowDrawingService.ts","app/services/WorkflowService.js","app/services/WorkflowService.ts","app/factories/breezeInterceptor.ts","app/factories/clearGrowlMessagesInterceptor.js","app/factories/configurationInterceptor.js","app/factories/errorResponseInterceptor.js","app/factories/exceptionHandler.js","app/factories/noCacheInterceptor.js","app/factories/recursionHelper.js","app/factories/requestTransformer.js","app/factories/timeZoneInterceptor.js","app/directives/inputForm/BaseForm.ts","app/directives/inputForm/BaseForm.js","app/directives/inputForm/FieldBaseModel.ts","app/directives/inputForm/BaseGroup.ts","app/directives/inputForm/BaseOnePageFormModel.js","app/directives/inputForm/BaseOnePageFormModel.ts","app/directives/ApiGrid.ts","app/directives/calculate/CalculationEditor.ts","app/directives/calculate/ComplexOperand.ts","app/directives/calculate/DeletePopover.ts","app/directives/calculate/IfElseOperation.ts","app/directives/calculate/Operand.ts","app/directives/calculate/OperandDropZoneInput.ts","app/directives/calculate/OperatorPopup.ts","app/directives/calculate/ParameterDropZoneInput.ts","app/directives/calculate/SimpleOperand.ts","app/directives/calculate/ValueOperation.ts","app/directives/capitalize.js","app/directives/charactersRemaining.js","app/directives/ClearData.ts","app/directives/CodeDisplay.ts","app/directives/CodeDropDown.ts","app/directives/CommentThread.ts","app/directives/CommentThreadConfiguration.ts","app/directives/ConditionEditor.ts","app/directives/ConfigurationFileUpload.ts","app/directives/confirmationModal.js","app/directives/convertToNumber.js","app/directives/currencyInput.js","app/directives/documentation/ConditionBlockDocumentation.ts","app/directives/documentation/ConditionDocumentation.ts","app/directives/documentation/CreatePdfActionBlockDocumentation.ts","app/directives/documentation/PdfSectionDocumentation.ts","app/directives/documentation/SendEmailActionBlockDocumentation.ts","app/directives/documentation/StateBlockDocumentation.ts","app/directives/documentation/UserActionBlockDocumentation.ts","app/directives/documentation/ValidateBlockDocumentation.ts","app/directives/DocumentConfiguration.ts","app/directives/DocumentConfigurationComponent.ts","app/directives/dragAndDropDirectives.js","app/directives/enterKeyTriggers.js","app/directives/EnumDropDown.ts","app/directives/excelExport.js","app/directives/expressionGroup.ts","app/directives/FileDownload.ts","app/directives/FileUpload.ts","app/directives/focusMe.js","app/directives/gis/AddFeaturesConfiguration.ts","app/directives/gis/BufferConfiguration.ts","app/directives/gis/DrawFeatureConfiguration.ts","app/directives/gis/DrawStyleConfiguration.ts","app/directives/gis/FilterFeatureCollectionConfiguration.ts","app/directives/gis/GisActionBlockEsriQueryConfiguration.ts","app/directives/gis/GisActionValidationConfiguration.ts","app/directives/gis/GisFieldMappings.ts","app/directives/gis/GisMap.ts","app/directives/gis/GisQueryGrid.ts","app/directives/gis/GisWherePredicationCollection.ts","app/directives/gis/InputOutputCollection.ts","app/directives/gis/mapFunctions/GisWorkflowFunction.ts","app/directives/gis/mapFunctions/MapFunction.ts","app/directives/gis/mapFunctions/SelectGeometryFunction.ts","app/directives/gis/mapFunctions/TextPlaceHolderFunction.ts","app/directives/gis/mapFunctions/ZoomToCodeDropDownFunction.ts","app/directives/gis/mapFunctions/ZoomToTextbox.ts","app/directives/gis/SelectGeometry.js","app/directives/gis/SetPropertyConfiguration.ts","app/directives/gis/TrimConfiguration.ts","app/directives/InnerExpressionGroup.ts","app/directives/inputForm/ConfigureRow.ts","app/directives/inputForm/EmbeddedForm.js","app/directives/inputForm/Field.ts","app/directives/inputForm/FieldSection.js","app/directives/inputForm/FieldSection.ts","app/directives/inputForm/formCustomCodeConfiguration.ts","app/directives/inputForm/formCustomCodeConfiguration.js","app/directives/inputForm/FormList.ts","app/directives/inputForm/FormSection.js","app/directives/inputForm/FormSection.ts","app/directives/inputForm/InnerFormSection.ts","app/directives/inputForm/ListSection.js","app/directives/inputForm/ListSection.ts","app/directives/inputForm/ModalForm.js","app/directives/inputForm/MultiStepForm.js","app/directives/inputForm/MultiStepForm.ts","app/directives/inputForm/ReportForm.js","app/directives/inputForm/ReportForm.ts","app/directives/inputForm/SinglePageForm.js","app/directives/inputForm/SinglePageForm.ts","app/directives/inputForm/TabbedForm.js","app/directives/manageForm/ApiGridSection.ts","app/directives/manageForm/ManageAssignments.ts","app/directives/manageForm/ManageCommentThread.ts","app/directives/manageForm/ManageDocuments.ts","app/directives/manageForm/ManageForm.js","app/directives/manageForm/ManageForm.ts","app/directives/manageForm/ManageSection.ts","app/directives/manageForm/ManageSection.js","app/directives/manageForm/ManageTimeTrackersSection.ts","app/directives/manageForm/ProcessDataSection.ts","app/directives/manageForm/processEventSection.ts","app/directives/manageForm/ReviewSection.ts","app/directives/manageForm/StatusHistory.ts","app/directives/money.js","app/directives/myDatepicker.js","app/directives/numbersOnly.js","app/directives/objectPropertyName.js","app/directives/ObjectQueryRestrictions.ts","app/directives/ObjectSchema.ts","app/directives/ObjectSchemaEditor.ts","app/directives/ProcessConfigurationTree.ts","app/directives/ProcessFileDownload.ts","app/directives/ProcessStepDisplayOnly.ts","app/directives/QuickLink.ts","app/directives/SchemaProperty.ts","app/directives/SecurityMatrix.ts","app/directives/SecurityMatrix.js","app/directives/SetFieldData.ts","app/directives/SetListData.ts","app/directives/TreeItemLookup.ts","app/directives/UserView.ts","app/directives/WorkflowWorkspace.ts","app/filters/breezeDeleted.ts","app/filters/breezeDeleted.js","app/filters/defaultText.js","app/filters/phone.js","app/filters/ReadableFileSize.ts","app/filters/startFrom.js","app/filters/substring.js","app/filters/toTrusted.js","app/filters/toTrustedUrl.js","app/filters/utcToLocal.js","app/filters/yesNoFilter.js","app/controllers/modals/BaseModalController.ts","app/controllers/ActiveProcessTypesController.ts","app/controllers/BatchJobDashboardController.ts","app/controllers/ChangeSystemTimeController.ts","app/controllers/configuration/ActivateSystemConfigurationController.ts","app/controllers/configuration/apiConfigurationController.ts","app/controllers/configuration/ApiKeyController.ts","app/controllers/configuration/BatchJobConfigurationController.ts","app/controllers/configuration/CalculationConfigurationController.ts","app/controllers/configuration/ConfigurationController.ts","app/controllers/configuration/gis/EsriQueryConfigurationController.ts","app/controllers/configuration/gis/GisActionWorkflowConfigurationController.ts","app/controllers/configuration/gis/GisDatastoreQueryConfigurationController.ts","app/controllers/configuration/gis/JavascriptTransformerController.ts","app/controllers/configuration/gis/LayerConfigurationController.ts","app/controllers/configuration/gis/LegendConfigurationController.ts","app/controllers/configuration/gis/MapConfigurationController.ts","app/controllers/configuration/gis/MapConfigurationPreviewController.ts","app/controllers/configuration/gis/MapConfigurationsController.ts","app/controllers/configuration/gis/MapFunctionConfigurationController.ts","app/controllers/configuration/gis/QueryGridConfigurationController.ts","app/controllers/configuration/ManageClaimGroupsController.ts","app/controllers/configuration/ManageFormContainerAssociationsController.ts","app/controllers/configuration/ManageReviewGroupsController.ts","app/controllers/configuration/ManageScheduledResourcesController.ts","app/controllers/configuration/ManageStatusesController.ts","app/controllers/configuration/ManageSubTypeGroupsController.ts","app/controllers/configuration/ManageSystemActionsController.ts","app/controllers/configuration/ManageSystemCodesController.ts","app/controllers/configuration/PaymentConfigurationController.ts","app/controllers/configuration/process/ApiActionController.ts","app/controllers/configuration/process/ApiGridConfigurationController.ts","app/controllers/configuration/process/AutoCompleteConfigurationController.ts","app/controllers/configuration/process/DataLinkConfigurationController.ts","app/controllers/configuration/process/DocumentConfigurationController.ts","app/controllers/configuration/process/EmailSystemActionConfigurationController.ts","app/controllers/configuration/process/ExternalApiConfigurationController.ts","app/controllers/configuration/process/FormConfigurationController.ts","app/controllers/configuration/process/FormContainerController.ts","app/controllers/configuration/process/GisDataStoreMetadataMappingController.ts","app/controllers/configuration/process/InterProcessApiConfigurationController.ts","app/controllers/configuration/process/MapConfigurationOverridesController.ts","app/controllers/configuration/process/MapToSystemStatusAndStatesController.ts","app/controllers/configuration/process/PdfGenerationConfigurationController.ts","app/controllers/configuration/process/ProcessActionsController.ts","app/controllers/configuration/process/ProcessClaimsAssignmentsConfigurationController.ts","app/controllers/configuration/process/ProcessClaimsConfigurationController.ts","app/controllers/configuration/process/ProcessConditionsController.ts","app/controllers/configuration/process/ProcessConfigVersionController.ts","app/controllers/configuration/process/ProcessDataController.ts","app/controllers/configuration/process/ProcessFormsConfigurationController.ts","app/controllers/configuration/process/ProcessHeaderController.ts","app/controllers/configuration/process/ProcessSecurityController.ts","app/controllers/configuration/process/ProcessSubTypesConfigurationController.ts","app/controllers/configuration/process/ProcessTypeController.ts","app/controllers/configuration/process/RelatedClaimProcessTypeController.ts","app/controllers/configuration/process/ReviewConfigurationController.ts","app/controllers/configuration/process/TimePeriodConfigurationController.ts","app/controllers/configuration/process/WorkflowClaimsConfigurationController.js","app/controllers/configuration/process/WorkflowConfigurationController.ts","app/controllers/configuration/ProcessEventConfigurationController.ts","app/controllers/configuration/SystemDocumentController.ts","app/controllers/ConstantConfigurationController.ts","app/controllers/ContentPageController.ts","app/controllers/ContentPagesController.ts","app/controllers/DataSourceConfigurationController.ts","app/controllers/DocumentationController.ts","app/controllers/EditableWebPageController.ts","app/controllers/EmailNotificationController.ts","app/controllers/GisDatastoreController.ts","app/controllers/HeaderFooterConfigurationController.ts","app/controllers/HolidaySetConfigurationController.ts","app/controllers/ImpersonationController.ts","app/controllers/JsonDictionaryStoresController.ts","app/controllers/LandingPageConfigurationController.ts","app/controllers/layoutController.ts","app/controllers/ManageClaimsController.ts","app/controllers/ManageContentController.ts","app/controllers/ManageEmailGroupsController.ts","app/controllers/ManageExtensibleComponentsController.ts","app/controllers/ManageSecurityMatrixController.ts","app/controllers/ManageStaticDocumentsController.ts","app/controllers/ManageUsersController.ts","app/controllers/MenuConfigurationController.ts","app/controllers/modals/AddFormModalController.js","app/controllers/modals/AddFormModalController.ts","app/controllers/modals/AddFormSectionController.js","app/controllers/modals/AddFormSectionController.ts","app/controllers/modals/confirmationModalController.js","app/controllers/modals/ContentPageProcessLinkModalController.js","app/controllers/modals/ContentPageProcessLinkModalController.ts","app/controllers/modals/contentPageStaticLinkModalController.js","app/controllers/modals/contentPageStaticLinkModalController.ts","app/controllers/modals/DeleteModalController.js","app/controllers/modals/DeleteModalController.ts","app/controllers/modals/EditClaimModalController.js","app/controllers/modals/EditClaimModalController.ts","app/controllers/modals/EditEmailAddressModalController.js","app/controllers/modals/EditEmailAddressModalController.ts","app/controllers/modals/EditFieldModalController.js","app/controllers/modals/EditFieldModalController.ts","app/controllers/modals/EditScheduledResourceModalController.js","app/controllers/modals/EditScheduledResourceModalController.ts","app/controllers/modals/editSystemCodeModalController.js","app/controllers/modals/editSystemCodeModalController.ts","app/controllers/modals/FileUploadModalController.js","app/controllers/modals/FileUploadModalController.ts","app/controllers/modals/FormChangeModalController.js","app/controllers/modals/FormChangeModalController.ts","app/controllers/modals/FormGridModalController.js","app/controllers/modals/FormGridModalController.ts","app/controllers/modals/HistoryModalController.js","app/controllers/modals/HistoryModalController.ts","app/controllers/modals/HolidayModalController.js","app/controllers/modals/HolidayModalController.ts","app/controllers/modals/LandingPageConfigurationSingleInstanceModalController.js","app/controllers/modals/LandingPageConfigurationSingleInstanceModalController.ts","app/controllers/modals/ProcessSubTypeModalController.js","app/controllers/modals/ProcessSubTypeModalController.ts","app/controllers/modals/RepeatingDocumentViewModalController.js","app/controllers/modals/RepeatingDocumentViewModalController.ts","app/controllers/modals/SecurityMatrixModalController.js","app/controllers/modals/SecurityMatrixModalController.ts","app/controllers/modals/UserActionModalController.js","app/controllers/modals/UserActionModalController.ts","app/controllers/modals/ViewSecurityMatrixModalController.js","app/controllers/modals/ViewSecurityMatrixModalController.ts","app/controllers/modals/workflow/AddEditStatusModalController.js","app/controllers/modals/workflow/AddEditStatusModalController.ts","app/controllers/modals/workflow/AssignClaimSettingsModalController.js","app/controllers/modals/workflow/AssignClaimSettingsModalController.ts","app/controllers/modals/workflow/BookResourceModalSettingsController.js","app/controllers/modals/workflow/BookResourceModalSettingsController.ts","app/controllers/modals/workflow/CalculateSettingsModalController.js","app/controllers/modals/workflow/CalculateSettingsModalController.ts","app/controllers/modals/workflow/ChangeStateSettingsModalController.js","app/controllers/modals/workflow/ChangeStateSettingsModalController.ts","app/controllers/modals/workflow/ConditionSettingsModalController.js","app/controllers/modals/workflow/ConditionSettingsModalController.ts","app/controllers/modals/workflow/CopySettingsModalController.js","app/controllers/modals/workflow/CopySettingsModalController.ts","app/controllers/modals/workflow/CreatePdfSettingsModalController.js","app/controllers/modals/workflow/CreatePdfSettingsModalController.ts","app/controllers/modals/workflow/GotoSettingsModalController.js","app/controllers/modals/workflow/GotoSettingsModalController.ts","app/controllers/modals/workflow/GotoStateSettingsModalController.js","app/controllers/modals/workflow/GotoStateSettingsModalController.ts","app/controllers/modals/workflow/MessageSettingsModalController.js","app/controllers/modals/workflow/MessageSettingsModalController.ts","app/controllers/modals/workflow/OutputOrderSettingsModalController.js","app/controllers/modals/workflow/OutputOrderSettingsModalController.ts","app/controllers/modals/workflow/ProcessActionSettingsModalController.js","app/controllers/modals/workflow/ProcessActionSettingsModalController.ts","app/controllers/modals/workflow/RemoveResourceModalSettingsController.js","app/controllers/modals/workflow/RemoveResourceModalSettingsController.ts","app/controllers/modals/workflow/ReturnFromProcessActionSettingsModalController.js","app/controllers/modals/workflow/ReturnFromProcessActionSettingsModalController.ts","app/controllers/modals/workflow/securityMatrixConditionModalController.js","app/controllers/modals/workflow/securityMatrixConditionModalController.ts","app/controllers/modals/workflow/SendEmailSettingsModalController.js","app/controllers/modals/workflow/SendEmailSettingsModalController.ts","app/controllers/modals/workflow/SetDataSettingsModalController.js","app/controllers/modals/workflow/SetDataSettingsModalController.ts","app/controllers/modals/workflow/StateSettingsModalController.js","app/controllers/modals/workflow/StateSettingsModalController.ts","app/controllers/modals/workflow/StatusChangeSettingsModalController.js","app/controllers/modals/workflow/StatusChangeSettingsModalController.ts","app/controllers/modals/workflow/SystemActionSettingsModalController.js","app/controllers/modals/workflow/SystemActionSettingsModalController.ts","app/controllers/modals/workflow/UserActionSettingsModalController.js","app/controllers/modals/workflow/UserActionSettingsModalController.ts","app/controllers/modals/workflow/ValidateSettingsModalController.js","app/controllers/modals/workflow/ValidateSettingsModalController.ts","app/controllers/modals/workflow/YesNoOutputSelectionModalController.js","app/controllers/modals/workflow/YesNoOutputSelectionModalController.ts","app/controllers/notificationSubscriptionsController.ts","app/controllers/ObjectQueryController.ts","app/controllers/ObjectQueryFormController.ts","app/controllers/PaymentWindowController.ts","app/controllers/process/FormController.js","app/controllers/process/ProcessController.ts","app/controllers/process/ReportProcessController.ts","app/controllers/QueryConfigurationController.ts","app/controllers/SiteConfigurationController.ts","app/controllers/test/CleanDatabaseController.ts","app/controllers/UserAdministrationController.ts","app/security/controllers/associateController.js","app/security/controllers/loginController.js","app/security/controllers/signupController.js","app/security/controllers/tokensManagerController.js","app/security/services/authInterceptorService.js","app/security/services/authService.js","app/security/services/tokensManagerService.js","app/configs/blockUiConfigFdot.js","app/configs/disableAngularDebugInfo.js","app/configs/httpProviderConfig.js","app/configs/routeConfig.js","app/utilities/bbox-clip.ts","app/utilities/DateTimeHelper.ts","app/utilities/Dictionary.ts","app/utilities/extensions.js","app/utilities/HashTable.js","app/utilities/lineclip.ts","app/utilities/ProcessConfigurationUtilities.ts","app/utilities/typescriptExtensions.ts","app/api/Code.ts","app/api/GisDatastore.ts","app/api/Helper.ts","app/api/Process.ts","app/libraries/JsonNetDecycle.ts","app/templates.js","app/test/controllers/TestAutoVersionAndActivateController.ts","app/test/controllers/TestController.ts","app/test/controllers/TestMemoryController.ts","app/test/controllers/TestProcessEventController.ts","app/test/services/TestService.js","app/test/services/TestService.ts"],"names":["BaseEntity","warsApp","models","BaseWorkflowBlock","id","theType","label","this","_logType","type","typeName","WorkflowBlockManager","getWorkflowBlockNameByType","isQuickLinkable","blockWidth","blockHeight","toolbarWidth","toolbarHeight","svgHorizontalOffset","blockAttributes","opacity","toBlocks","prototype","drawEntireBlock","paper","coordinate","entireBlock","rect","x","y","attr","drawOptions","self","iconWidth","getIconWidth","deleteCoordinate","getDeleteCoordinate","deleteImageElement","image","data-class","data-id","click","evt","settingsCoordinate","getSettingsCoordinate","settingsImageElement","drawingInstance","configureWorkflowBlock","hideOptions","getSvgScaledWidth","svgWidth","svgScale","getSvgScaledHeight","svgHeight","getSvgToolbarScaledWidth","svgToolbarScale","getSvgToolbarScaledHeight","getXPadding","getYPadding","getCenterPoint","gridCoordinate","xOffset","yOffset","Coordinate","setQuickLinkInfo","componentId","workflowService","getBottomPadding","getTopPadding","getLeftPadding","getRightPadding","draw","_this","centerPoint","standardLabel","text","class","hover","addClass","removeClass","quickLink","svgElement","svgUrl","svgAttributes","generatePdfGroup","group","drawForToolbar","width","height","horizontalOffset","verticalPadding","horizontalPadding","hoverStart","showOptions","hoverEnd","updateDrawingBasedOnLabelLengths","trimTextToSize","entireWorkflowDrawComplete","entireWorkflowDrawComplete2","hideElement","canBeDeleted","showElement","element","stop","animate","canConnectToWorkflowBlockType","getValidToBlockTypes","indexOf","getFromWorkflowBlocks","list","allBlocks","Enumerable","from","blockLocations","select","i","workflowBlock","toArray","length","currentBlock","isAFromBlock","any","push","isReadonly","allFroms","fromBlock","allTos","where","toIndex","currentToBlock","getOutputType","confirmation","confirm","removeWorkflowBlockFromWorkflow","alert","setDrawingInstance","addTitleToGroup","undefined","title","Snap","parse","append","labelElement","timeoutMethod","textWidth","getBBox","services","WarsLogger","logDebug","node","textContent","padding","slice","setTimeout","enlargeRectangleSizeToFitText","textElement","rectangle","boundingBox","textHeight","parseInt","__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","call","__","constructor","create","MultipleOutputWorkflowBlock","_super","NoOutputWorkflowBlock","SingleOutputWorkflowBlock","defineProperty","get","_toBlock","set","value","enumerable","configurable","YesNoOutputWorkflowBlock","_yesBlock","_noBlock","createWorkflowBlock","block","name","StateWorkflowBlock","ConditionWorkflowBlock","UserActionWorkflowBlock","CustomActionWorkflowBlock","GotoWorkflowBlock","StatusChangeWorkflowBlock","MessageWorkflowBlock","ValidateWorkflowBlock","CreatePdfWorkflowBlock","CopyWorkflowBlock","SetDataWorkflowBlock","AssignClaimWorkflowBlock","SendEmailWorkflowBlock","CalculateWorkflowBlock","BookResourceWorkflowBlock","RemoveResourceWorkflowBlock","ReturnFromProcessActionWorkflowBlock","ProcessActionWorkflowBlock","SystemActionWorkflowBlock","ChangeStateWorkflowBlock","GotoStateWorkflowBlock","createDropZone","required","DropZoneWorkflowBlock","createInitialWorkflowBlock","getValidBlockTypes","getValidInlineToStates","getValidProcessActionInlineStates","concat","intialDropZoneId","initialGotoId","populateDto","dto","assignClaimDto","scheduledResourceDto","calculateDto","changeStateDto","conditionDto","copyDto","createPdfDto","outerRadius","innerRadius","numberOfPoints","xPadding","yPadding","attributes","transform","logType","optionalAttributes","optionalTextAttributes","getMyCenterPoint","textAndRectangleGroup","optionalTextElement","dropZoneGroup","highlightValidOption","highlightInvalidOption","unHighlight","gotoStateDto","hideFeedbackArrow","feedbackArrow","showFeedbackArrow","toggleEnabledFeedbackArrow","drawFeedbackArrow","toBlock","messageDto","processActionDto","stateGroup","returnFromProcessActionDto","sendEmailDto","setDataDto","StartProcessActionWorkflowBlock","initialBlock","isInitialBlock","startProcessActionDto","stateDto","statusChangeDto","systemActionDto","userActionDto","validateDto","ActiveProcessTypesModel","processTypeService","getActiveProcessTypes","then","result","activeProcessTypes","ApplicationCode","uniqueIdentifier","codeGroup","shortDescription","longDescription","isActive","createFormattedString","displayFormat","replace","ApplicationCodePromise","model","includeInactiveCodes","deferred","BatchJobDashboardModel","scope","growlService","batchJobDashboardService","batchJobDashboardModelActionSelf","getBatchJobExecutions","batchJobExecutions","batchJobDtos","CodeDropDownContext","CodeDropDownItem","getDefaultSelectOption","getDefaultAllOption","CodeGroup","ComparisonOperator","Condition","getText","processConfiguration","isManuallyEdited","javascript","generateJavascript","jStr","reverseJavascript","console","info","setParts","conditions","isFirst","isAnd","parts","partCondition","split","getTextForUniqueName","form","fields","Wars","Domain","Model","ProcessConfigurationUtilities","GetFields","schemaProperty","LogicalOperator","ApiConfigurationModel","processConfigurationId","processConfigurationService","systemLevelService","apiConfigurationService","queryConfigurationService","objectQueryService","deleteService","apiKeyService","externalApiService","baseUrl","getKeys","keys","getAllApiConfigurationsByProcessId","apiConfigurations","getAllObjectQueriesForProcessConfiguration","objectQueries","isExecutable","getProcessConfigEagerLoadProcessType","processConfig","getSystemLevelApiConfigurations","systemLevel","myApiConfigurations","getAllObjectQueriesForSystemLevel","addApiConfiguration","newApiConfiguration","createApiConfiguration","processConfiguration_id","systemLevel_id","UtilityService","generateGuidComb","saveAllChanges","apiConfiguration","showEdit","editingNew","configureApiConfiguration","editingExisting","setExampleUrl","deleteApiConfiguration","deleteWithModalConfirmationIfNecessary","remove","selectApiQuery","parameters","forEach","parameter","entityAspect","setDeleted","myObjectQuery","myInputObjectSchema","properties","property","queryParameter","createNewQueryParameter","mySchemaProperty","schemaProperty_id","saveChanges","apiName","toLowerCase","processConfigName","myProcessType","apiType","url","exampleUrl","addQueryStringParams","paramerterPart","inputType","substring","close","ApiKeyModel","add","addKey","newKeyName","r","updateKey","key","BatchJobConfigurationModel","batchJobConfigurationService","processActionService","treeService","timeZoneService","getBatchJobConfigurationsByProcess","batchJobConfigurations","getAllProcessActions","processActions","getSystemLevelBatchJobs","myBatchJobConfigurations","getSystemLevelSystemActions","systemActions","mySystemActions","getValidServerTimeZones","timeZones","addBatchJob","newBatchJobConfiguration","createBatchJobConfiguration","isRecurring","batchJobConfiguration","isNewBathJob","editBatchJobConfiguration","removeBatchJobConfiguration","recurringChange","interval","getTreeItemName","treeItem","getDisplayName","onDropTreeItem","$event","batchJobConfigurationParameter","createTreeItemFromItemDropped","treeItem_id","selectProcessCandidatesQuery","CalculationConfigurationModel","processConfigId","calculationId","processConfigService","calculationService","objectSchemaService","editingCalculation","search","getProcessConfigurationEagerLoadCalculations","error","minorVersion","match","myCalculations","singleOrDefault","editCalculation","getSystemLevelCalculations","getCalculations","calculation","getCalculationEagerLoadOperations","calculationWithEagerLoadedFields","selectedCalculation","deleteCalculation","addNewCalculation","createNewCalculation","inputSchema","createNewObjectSchema","objectSchema_id","cancelSave","rejectChanges","pop","saveCalculation","isList","returnsAList","valueOperation","validationIssues","isCalculateCompleteAndValid","validateObjectSchema","deleteEntitiesWithDeleteServiceWithoutWarning","saveSuccessful","saveFailed","ConfigurationModel","section","getProcessConfigurationWithForms","getProcessTypeById","processType_id","processType","navigation","ProcessNavigationModel","ManageClaimGroupModel","claimGroupService","getSystemLevelClaimGroups","claimGroups","myClaimGroups","addClaimGroup","newClaimGroup","createNewClaimGroup","currentClaimGroup","editClaimGroup","claimGroup","removeClaimGroup","deleteWithModalConfirmIfNecessary","save","ManageFormContainerAssociationModel","formContainerAssociationService","getSystemLevelFormContainerAssociations","formContainerAssociations","myFormContainerAssociations","addFormContainerAssociation","newFormContainerAssociation","createNewFormContainerAssociation","currentFormContainerAssociation","editFormContainerAssociation","formContainerAssociation","removeFormContainerAssociation","ManageReviewGroupModel","reviewGroupService","getSystemLevelReviewGroups","reviewGroups","myReviewGroups","systemCodeGroups","myCodeGroups","addReviewGroup","newReviewGroup","createNewReviewGroup","currentReviewGroup","editReviewGroup","reviewGroup","removeReviewGroup","ManageStatusesModel","statusAndStateService","loadSystemLevelStatesAndStatuses","getSystemLevelStatusesAndStates","addNewStatus","statusCodeGroup","newStatus","createNewStatus","myStatuses","myParentStatusGroup","parentStatusCodeGroup_id","addNewState","statusCode","stateName","newState","createNewState","myStates","myParentStatus","statusCode_id","deleteStatus","status","deleteState","state","removeStatus","systemStatusGroup","statusIndex","currentStatus","splice","removeState","stateIndex","currentState","ManageSubTypeGroupModel","subTypeGroupService","getSystemLevelSubTypeGroups","subTypeGroups","mySubTypeGroups","addSubTypeGroup","newSubTypeGroup","createNewSubTypeGroup","currentSubTypeGroup","editSubTypeGroup","subTypeGroup","removeSubTypeGroup","ManageSystemActionModel","systemActionService","addSystemAction","newSystemAction","createNewSystemAction","numberOfReturnPaths","currentSystemAction","editSystemAction","systemAction","removeSystemAction","PaymentConfigurationModel","paymentConfigurationService","extensibilityService","getProcessConfigurationEagerLoadPaymentInfo","getSystemLevelPaymentInfo","getAllSequenceCalculations","calculations","getCustomActionContract","customActionContract","getPaymentConfigurations","myPaymentConfigurations","editPaymentConfiguration","index","selectedPaymentConfiguration","deletePaymentConfiguration","paymentConfig","addNewPaymentConfiguration","createNewPaymentConfig","onDragOver","$index","onDrop","amountTreeItem","amountTreeItem_id","preventDefault","stopPropagation","clearDragValue","onCalculateDragOver","onCalculateDrop","treeConfig","getTreeConfigurationItem","myPaymentCustomInformation","valueCalculation_id","getCalculation","valueCalculation","onFieldDragOver","onFieldDrop","myMappings","clearMapping","addNewCustomInfo","createNewCustomInfo","deleteCustomInfo","ApiActionsModel","apiActionService","apiSchemaMappingService","allowMapping","reload","getApiActions","apiActions","callback","selectAction","apiAction","currentApiAction","addApiAction","createApiAction","copySchema","objectQuery","inputObjectSchema","cloneObjectSchema","addObjectSchemaMappingFromCopy","outputObjectSchema","myProjectionObjectSchema","remapSchema","apiSchemaMappings","mapping","setMappedPropId","objectSchema","foundProp","firstOrDefault","leftSchemaProperty","rightSchemaProperty_id","prop","newMapping","createApiSchemaMapping","apiAction_id","leftSchemaProperty_id","clonedFromId","deleteAction","a","ApiGridConfigurationModel","apiGridConfigurationService","getApiConfigurations","processTypes","distinct","getSystemLevelObjectQueries","myObjectQueries","getApiGridConfigurations","apiGridConfigurations","selectApiGrid","apiGrid","currentApiGrid","setFilteredApiActions","getName","schemaPropertyUniqueId","selectedApiAction","single","removeColumn","column","action","getNewColumn","displayName","position","columns","addTextProcessLink","isProcessLink","selectApiAction","setSelectedApiAction","setColumns","removeColumns","c","createApiGridColumn","hide","isFilterable","isSortable","noWrap","typeSchema","addColumn","startsWith","propertyType","filteredApiActions","uniqueId","apiUniqueId","orderDown","newPosition","oldColumn","orderUp","addApiGridConfiguration","createApiGridConfiguration","isSelectable","allowColumnsToBeHidden","allowSaveState","usePaging","processTypeChanged","objectQueryChanged","objectQuery_id","deleteApiGridConfiguration","AutoCompleteConfigurationModel","autoCompleteService","o","getAutoCompleteConfigurations","autoCompleteConfigurations","selectAutoComplete","autoComplete","currentAutoComplete","setObjectSchemas","addAutoComplete","createAutoCompleteConfiguration","returnProcessId","ClaimsAssignmentConfigurationModel","claimsAssignmentService","claimsDefinitionService","conditionService","growl","addClaimsOptions","getAllProcessClaims","claims","processClaims","getAllProcessAndSystemClaims","systemAndProcessClaims","getAllConditions","selectedClaimChanged","getAllAssignmentConfigurationClaims","selectedClaim","claimChildren","selectedClaimsChildren","assigningClaimValue","setAddOptions","processClaimDefinition","claimChild","claimChild_id","droppedTreeItem","variableType","valueType","deleteClaimAssignment","claimAssignment","editClaimAssignment","currentClaimsAssignment","showAddEditSection","addSave","myClaimChild","addingNewClaim","createClaimAssignmentConfiguration","claim_id","preventAssignmentRemovalOfSelf","cancel","FormConfigurationModel","formId","formService","modalService","$http","contentPageService","formSectionService","$scope","dataSourceService","$q","isEditMode","currentStepIndex","showHtml","showJavascript","showPreview","showSlider","process","_processConfigurationModelSelf","_processConfigurationTimeout","all","getById","f","formType","getManageFormConfiguration","getFormConfiguration","getProcessConfigurationEagerLoadConditions","FormContainerModel","formContainerService","securityMatrixService","getAllFormContainersForProcessConfiguration","containers","getProcessConfigurationForms","forms","sysLevel","containerOrderDown","formContainer","displayOrder","oldFormContainer","containerOrderUp","containerItemOrderDown","item","oldItem","currentContainer","containerItems","containerItemOrderUp","addFormContainer","createFormContainer","securityMatrix","createSecurityMatrix","securityMatrix_id","addItem","newItem","createFormContainerItem","manageSecurityMatrix","openSecurityMatrixModal","deleteContainerItem","deleteFormContainer","GisDataStoreMetadataMappingModel","gisDataStoreMetadataMappingService","gisDataStoreService","getGisDatastores","gisDatastores","getGisDatastoreMetadataMappings","gisDataStoreMetadataMappings","g","mappings","mappingProperty","gisDatastore","unusedGisDatastores","gd","gisDataStore_id","gisDataStoreMetadataMapping","removeBinding","createGisDatastoreMetadataMapping","selectedGisDataStore","ManageProcessClaimsModel","service","existingProcessClaims","getExistingProcessClaims","systemClaimGroups","addNewProcessClaim","newProcessClaim","createNewEntity","valueAssignable","showModal","editExistingProcessClaim","claim","deleteClaim","adding","templateUrl","controller","inputs","isMapped","variableTypeContext","codeGroups","modal","MapConfigurationOverridesModel","mapConfigurationOverridesService","mapConfigurationService","getMapConfigurations","mapConfigurations","getMapConfigurationOverrides","overrides","getProcessConfigurationFormsWithSections","sectionBindings","mySteps","step","formSections","formSection","addMapConfigurationOverrides","newOverride","createMapConfigurationOverrides","mapConfiguration","selectedMapConfiguration","currentOverride","deleteFunction","func","deleteFieldMap","fieldMap","deleteWorkflowOverride","workflowOverride","addIncludedFunction","currentIncludedFunction","createIncludedMapFunction","mapFunctionConfiguration","selectedMapFunction","includedMapFunctions","addGisActionWorkflowOverride","newWorkflow","createGisActionWorkflowOverride","isAddReadOnly","gisActionWorkflowConfiguration","selectedWorkflow","gisActionWorkflowOverrides","addFieldMap","newFieldMap","createGisActionWorkflowGisFieldMap","metadataPosition","isReadOnly","selectedWorkflowOverride","fieldMappings","addQueryGrid","currentQueryGridOverride","createQueryGridOverride","queryGridConfiguration","selectedQueryGrid","excludeNullPlaceholders","queryGridQueries","q","esriQueryConfiguration","wherePredicates","w","isPlaceholder","placeholderValue","createGisWherePlaceHolderValue","placeHolderUniqueIdentifier","placeholderName","placeHolderValues","gisDatastoreQueryConfiguration","queryGridConfigurationOverrides","setActionOverride","override","lastActionBlock","gisActionBlocks","lastOrDefault","gisActionBlockType","isLastActionAddFeature","metadataProperties","addFeaturesConfiguration","log","deleteQueryGridOverride","MapToSystemStatusAndStatesModel","loadProcessConfigurationStatusGroup","systemStatusCodeGroup_id","statusCodeGroup_id","systemStatusCodeGroupId","confirmChangeOfSystemCodeGroup","clearAllConnections","statusCount","myStatusCodeGroup","systemStatusCode_id","mySystemStatusCode","stateCount","systemStateCode_id","mySystemStateCode","ProcessConditionsModel","conditionId","editingCondition","appConfig","myConditions","editCondition","condition","selectedCondition","deleteCondition","addNewCondition","createNewCondition","saveCondition","exp","expression","setGroupExpressionDefaults","expressionType","ge","children","ProcessConfigVersionModel","$location","$route","appTypeService","sendConfigActivatedEvent","fetchProcessConfigurationsFromServer","versioning","appConfigsInPlace","processConfigurations","isVersionDisabled","newVersionName","showExistingVersions","version","success","setInterval","processConfigBeingVersioned","clearInterval","ttl","newProcessConfig","path","canActivate","configurationStatus","moreRecentActivatedVersionsExist","deleteProcessConfiguration","beginActivation","processConfigIsVersioned","newProcessConfigId","getByIdEagerLoadAppConfigs","appType","ProcessDataModel","manageCodeService","dataLoaded","loadDataInternal","reloadData","dataLoadedCallback","loadProcessConfigData","loadSystemVariables","loadCodes","processDataSchema_id","getObjectSchemaExpanded","processDataSchema","getSystemLevel","variableSchema_id","getSystemLevelCodes","getAllCodesForProcessConfiguration","validationResults","saveCallback","moreChangesNecessary","currentSchemaProperty","parentProperty","reloadTree","hasChanges","ProcessDataNode","nodeId","nodeType","isReportable","isGroupNode","isVariableNode","CreateGroup","CreateVariable","ProcessFormsConfigurationModel","locationService","myForms","getSystemForms","oldForm","fixFormOrder","formCount","orderedForms","orderBy","addForm","newForm","createForm","isReportProcess","maxInstances","formSchema","formUniqueId","createAdvancedSecurityMatrix","size","$","each","formStep","createFormStep","createFormSection","formSectionDisplayType","formSectionType","isVisible","setupFormSchema","removeForm","configure","ProcessHeaderModel","processHeaderService","manageStaticDocumentsService","currentProcessHeader","showTinyMce","processHeaderModel","getAllProcessHeaders","headers","processHeaders","getStaticDocumentsForProcessConfiguration","staticDocuments","images","fileName","tinyMceOptions","format","menubar","plugins","content_css","toolbar1","relative_urls","remove_script_host","document_base_url","localStorage","getItem","image_list","external_image_list_url","setup","editor","addButton","icon","onclick","currentTreeItem","createTreeItemFromConfig","processHeader","bindings","insertContent","addProcessHeader","newHeader","createProcessHeader","matrixType","getSelectedNode","data","routeName","processFormVisible","formContainersVisible","securityMatricesVisible","processSecurityVisible","relatedClaimProcessTypeVisible","mapConfigurationVisible","autoCompleteVisible","apiGridConfigurationVisible","apiVisible","batchJobsVisible","reviewConfigurationVisible","processFormsVisible","workflowDesignerVisible","processActionsVisible","codesVisible","processClaimsVisible","processStaticDocumentsVisible","documentConfigVisible","childProcessesVisible","conditionsVisible","calculationsVisible","emailSystemActionsVisible","paymentsVisible","pdfGenerationSystemActionsVisible","processDataVisible","processEventsVisible","assignmentConfigurationVisible","timePeriodConfigurationVisible","scheduledResourcesConfigurationVisible","interProcessApiVisible","processEmailGroupsVisible","workflowVersionVisible","constantsVisible","dataSourcesVisible","dataLinksVisible","queriesVisible","objectQueriesVisible","objectQueryFormApiVisible","processHeadersVisible","processSubTypesVisible","mapToSystemStatusAndStatesVisible","externalApiConfigurationVisible","apiConfigurationVisible","ProcessSecurityModel","securityMatricies","getProcessConfigurationSecurityMatrices","processLevelSecurityMatricies","addRange","getSystemLevelSecurityMatrices","mySecurityMatrices","getProcessLevelObjectQueries","getAllProcessTypes","StatusGroupResult","ProcessSubTypesModel","processSubTypeService","claimDefinitionService","editingProcessSubType","currentProcessSubType","getPermitSubTypeInfo","config","mySubTypeConfiguration","initialStatus","isInitialStatus","initialState","isInitialState","initialStateUniqueId","systemSubTypeGroups","specialClaimTagType","claimMapName","addProcessSubType","createNewSubType","editSubType","subType","stopEditingSubType","editSecurityMatrix","processSubType","myCreateSecurityMatrix","RelatedClaimProcessTypeModel","relatedClaimProcessTypeService","getRelatedClaims","relatedClaimProcessTypes","getExpandFields","selectMany","s","autoCompleteConfiguration_id","field","selectedRelatedClaimProcessType","createNewRelatedClaimProcessType","field_id","selectedField","addClaim","newRelatedClaim","createNewRelatedClaim","claimUniqueId","selectedClaimUniqueId","relatedClaims","removeClaim","edit","relatedClaimProcessType","getRelatedProcessTypeClaims","autoCompleteConfiguration","ReviewConfigurationModel","reviewConfigurationService","emailService","manageSystemCodesService","currentReviewConfiguration","getAllEmailConfigurationsByProcessId","emails","getSystemEmailConfigurations","system","myEmailConfigurations","getExtensibleUserRepositories","tags","userRepositories","getReviewConfigurations","reviews","loadAllSystemCodes","editReview","review","systemReviewGroup","systemReviewGroupChanged","systemReviewGroup_id","codeGroup_id","addReview","createReviewConfiguration","reviewLabel","reviewerLabel","allowThreadedComments","automaticallyClose","allowCommentsOnReview","allowAttachements","closingType","allowAssignDateSelection","endAssignDateType","beginAssignDateType","canRemoveSecurityMatrix","commentThreadConfiguration","createCommentThreadConfiguration","removeOption","code","addReminder","newReminder","createReviewReminder","days","reviewConfiguration","reviewReminders","manageRemovalSecurityMatrix","removeReminder","reminder","TimeTrackerConfigurationModel","$timeout","timeTrackerService","holidaySetService","isEditing","timeTrackingInitialized","clockStatuses","getHolidaySets","h","holidaySets","getTimeTrackerContainersByProcess","timeTrackerContainers","selectedStatusGroup","getSystemLevelTimeTrackers","systemLevelTimeTrackers","myTimeTrackers","timeTrackers","loadStatusCodeGroup","getStatusCodeGroup","addNewTimeTracker","selectedTimeTrackerContainer","createTimeTrackerContainer","selectedTimeTracker","createTimeTracker","myTimeTracker","mySystemLevel","shouldDisplayTimeZone","addExistingSystemTimeTracker","addingSystemLevelTimeTracker","addSystemLevelTimeTracker","systemTimeTracker","clockStateChanged","stateCodeId","clockStatus","clockStateToUpdate","myClockStates","stateCode_id","clockState","createClockState","timeTracker_id","clockStateToRemove","deleteExistingSystemTimeTracker","initializeClockStates","addTimePeriod","selectedTimePeriod","createTimePeriod","myTimePeriods","isEditingTimePeriod","changeTimeType","timeType","displayTimeZone","timeZoneId","selectTimeTrackerContainer","timeTrackerContainer","deleteTimeTrackerContainer","selectTimeTracker","timeTracker","deleteTimeTracker","editTimePeriod","timePeriod","deleteTimePeriod","WorkflowConfigurationModel","workflowMode","workflowDrawingService","processStatusGroups","getAllStatusGroups","processStatusGroupResult","initialize","settings","getWorkflowWorkspaceSettings","workflowWorkspaceModel","WorkflowWorkspaceModel","blocks","statusFlowChangedCallback","getAllowedStatusChanges","getSelectedStatusGroup","processStatusGroupDto","addStatusChange","processStatusGroupSelected","statusName","updateSelectedStatusGroup","redrawConnections","editSelectedStatus","showAddEditStatusModal","addStatus","processStatusGroup","deleteStatusCode","statusCodeId","setNewSelectedStatus","updateStatusGroup","updateStatus","workflowBlocks","statusChangeWorkflowBlock","toStatusGroupId","statusConnections","StatusConnections","createStatusConnectionObjects","removeAllLinks","drawAllLinks","numberOfStatuses","drawingOptions","getDrawingOptions","graph","joint","dia","Graph","paperOptions","el","Math","max","window","calculateWidthRequired","calculateHeightRequired","gridSize","interactive","resizeHanlder","resize","newWidth","setDimensions","options","listenerCallback","$on","event","off","Paper","clear","elementMapping","registerMoveHandlerToKeepElementsOnPaper","registerSelectOnDoubleClickHandler","rectangles","substr","rectangleOptions","calculateHorizontalPosition","verticalSpacing","boxWidth","boxHeight","attrs","rx","ry","shapes","basic","Rect","jointJs","ElementMap","addCells","links","toStatusGroupIds","linkOptions","source","entityId","elementId","port","target","link","Link",".connection","fill-opacity",".connection-wrap",".marker-target","toBack","cell","getJointjsCellByStatusGroupId","removeLinks","graphAny","getCell","numberOfBoxes","DrawingOptions","horizontalSpacing","rectangleColor","textColor","selectedRectangleColor","selectedTextColor","cellView","vertexAdd","vertexMove","vertexRemove","arrowheadMove","on","bbox","constrained","constrainedX","constrainedY","pointermove","unselectAllBoxes","$apply","drawWorkflow","drawShapesForToolbox","xOrigin","yOrigin","changeViewBoxSizeAndOffset","WorkflowDrawingSettings","currentMap","existingStatusGroup","AddEditStatusModel","existingStatus","ProcessEventConfigurationModel","processEventConfigurationService","isSystem","getProcessEventConfigurations","eventConfigurations","processEventConfigurations","getSystemLevelProcessEventConfigurations","myProcessEventConfigurations","addProcessEventConfiguration","initiateSecurityMatrix","viewSecurityMatrix","processEventConfiguration","createProcessEventConfiguration","initiateSecurityMatrix_id","viewSecurityMatrix_id","allowComment","allowAttachments","selectedProcessEvent","openInitiateSecurityMatrixModal","fetchById","openViewSecurityMatrixModal","editProcessEventConfiguration","closeEdit","removeProcessEventConfiguration","updateProcessEventConfiguration","ConstantConfigurationModel","constantService","dropDownContext","EnumDropDownContext","includeSpecifiedOptionsOnly","getAllConstantsForProcessConfiguration","constants","getSystemLevelConstants","myConstants","addConstant","newConstant","createConstant","removeConstant","constant","ContentManagementModel","contentPagesVisible","menuManagementVisible","siteConfigurationVisible","landingPageConfigurationVisible","contentPagesSelected","siteConfigurationSelected","menuConfigurationSelected","landingPageConfigurationSelected","ContentPageDto","ContentPagesModel","contentPagesModelSelf","getContentPagesForConfiguration","pages","getSystemLevelStaticDocuments","myStaticDocuments","documentList","document","entity_encoding","imagetools_toolbar","link_list","menu","contentPages","selectPage","page","securityMatrixId","editSecurityMatrixId","selectedPage","addPage","createSecurityRow","contentPageDto","Title","FriendlyName","SecurityMatrixId","EditSecurityMatrixId","addContentPage","contentPage","updateContentPage","openEditSecurityMatrixModal","LandingPageConfigurationDto","LandingPageConfigurationModel","landingPageConfigurationService","landingPageConfigurationSelf","processSecurityMatrices","getLandingPageConfigurations","landingPageConfigurations","landingPageConfigurationDtos","contentPageDtos","addLandingPageConfiguration","landingPageConfigurationDto","Name","Order","landingPageConfiguration","updateLandingPageConfiguration","updateLandingPageConfigurationProcess","securityMatrixUniqueIdentifier","processTypeId","isSingleInstanceProcess","first","sortLinks","$item","$partFrom","$partTo","$indexFrom","$indexTo","$modal","arrayCopy","z","order","spliced","numberId","updateLandingPageConfigurations","openProcessSecurityMatrixModal","getActiveProcessTypeAndSecurity","activeProcessConfiguration","currentMatrix","ii","securityMatrices","removeLandingPageConfiguration","deleteLandingPageConfigurations","MenuLinkDto","MenuItemDto","ProcessEventDto","MenuConfigurationModel","menuItemService","menuLinkService","menuItems","menuConfigurationModelSelf","getMenuItems","removeLink","deleteMenuLink","selectedMenuItem","menuLinkDtos","removeMenuItem","deleteMenuItem","addMenuItem","menuItemDto","IsPublished","menuItem","updateMenuItem","sortMenuItems","updateMenuItems","addSeparator","menuLinkDto","IsSeparator","MenuItemId","addMenuLink","menuLink","addLink","updateMenuLink","updateMenuLinks","SiteConfigurationDto","SiteConfigurationModel","siteConfigurationService","siteConfigurationSelf","getSiteConfigurationForConfiguration","siteConfiguration","addSiteConfiguration","update","updateSiteConfiguration","ContentPageModel","editableContentPageService","contentPageModelSelf","getContentPageForExecution","isEditable","getEditableContentPageForView","ep","editableContentPageDto","DataOperation","json","jsonView","responseExample","JSON","DataSourceConfigurationModel","codeService","getDataSources","dataSources","addDataSource","currentDataSource","editDataSource","dataSource","getDataOperationType","toUpperCase","getDataType","addOperation","dataOp","createNewDataOperation","operationType","isArrayResult","isTested","operations","operationUrlChanged","operation","splitUrl","urlParameters","createNewDataOperationParameter","parameterType","addParameter","removeOperation","removeParameter","testOperation","inlineParameter","post","stringify","resultSchema","objToGetSchema","isArray","getObjectSchema","objectSchemas","obj","operationName","__type","$type","returnSchema","propName","createNewSchemaProperty","deleteDataSource","importSwaggerApi","parseSwaggerUrl","swaggerApiUrl","api","definitionName","definitions","definition","newProperty","enumCodeGroup","createNewSpecializedCodeGroup","groupName","isSystemLevel","e","createNewSystemCode","codes","pathName","paths","host","basePath","description","summary","newParameter","schema","$ref","schemaSplit","parmeterSchema","DeletePopoverModel","deleteCallback","isOpen","open","DocumentationModel","anchor","$anchorScroll","$rootScope","emailConfigurationService","pdfBindingService","statusGroups","loadWorkflowData","loadConditions","loadEmailConfigurations","loadPdfBindings","gotoAnchor","anchorId","old","hash","getDataTypeByFieldType","fieldType","getConditionNameForField","condition_id","getConditionById","getDisplayConditions","stepConditions","ids","isCode","getOptions","getAllConditionsEagerLoadExpression","emailConfigurations","getPdfBindings","pdfBindings","getAllStatusGroupsWithAdditionalInfo","StatusGroup","drawWorkflowDiagrams","svgId","WorkflowDrawingInstance","initializeData","maxCoordinates","drawModel","zoomAsNecessary","maxDrawingCoordinate","exampleBlock","drawingWidth","drawingHeight","zoomPercentageHeight","getZoomPercentageFromViewBoxHeight","zoomPercentageWidth","getZoomPercentageFromViewBoxWidth","zoomPercentage","min","getViewBoxWidth","getViewBoxHeight","DocumentMetadataModel","documentDto","documentTypeUniqueId","descriptiveComment","isSecured","updateDocumentDto","EditableWebPageModel","contentPageId","editProduction","selectableProcessTypes","editableWebPageModelSelf","getEditiableContentPage","getActiveProcessTypesNonBreeze","pt","valid_elements","selector","toolbar2","fontsize_formats","image_advtab","updateEditableContentPage","EditFieldModel","manageScheduledResourcesService","documentService","fieldService","mapOverridesService","hidename","showCondition","loadProcessTypes","maxTextLength","textAreaRows","defaultFormValueApiActionUniqueId","getApiActionForField","mapOverrides","m","documentConfigurations","getSystemLevelDocumentConfiguration","systemDocumentConfiguration","myDocumentConfigurations","getDocumentConfigs","docConfigs","systemCodes","doc","statusCodes","stateCodes","stateCode","repos","systemLevelListSchemaProperty_id","systemLevelListSchemaProperty","configs","getAllCalculations","calcs","getProcessConfigurationEagerEditFormParameters","paymentConfigurations","getAllScheduledResourcesForProcessConfigurationAndSystem","scheduledResourceConfigurations","loadFieldGroup","loadFieldExcludes","isNameProperty","nameSchemaProperty_id","getNonExcludedStateCodes","fieldExcludedStates","fieldTypeChanged","getVariableTypeForField","changeStateButtonText","applySecurityMatrixChanged","applySecurityMatrix","applyDefaultSecurityMatrixChanged","applyDefaultValueSecurityMatrix","defaultValueSecurityMatrix","isNamePropertyChanged","nameFormUniqueId","systemVariableChanged","systemVariable","addOption","newCodeGroup","newCode","isIndexedChanged","isIndexed","removeExcludedSystemCode","removeExcludedStatus","removeExcludedState","removeExcludedProcessType","addExcludedStatus","fieldExcludedStatuses","statusToExclude","excludedStatus","createFieldExcludedStatuses","addExcludedState","stateToExclude","excludedState","createFieldExcludedStates","addExcludedSystemCode","fieldExcludedSystemCodes","systemCode_id","codeToExclude","excludedCode","createFieldExcludedSystemCodes","systemCode","addExcludedProcessType","fieldExcludedProcessTypes","processTypeToExclude","excludedProcessType","createFieldExcludedProcessTypes","EmailNotificationModel","$filter","filters","createdDateString","subject","processName","sorted","ascending","paging","currentPage","pageSize","goToPage","createDateBegin","moment","startOf","subtract","toDate","createDateEnd","body","searchOptions","maxDate","Date","readonlyInput","showMeridian","emailNotificationActionSelf","getFullYear","getMonth","getDate","getEmails","returnEmail","utc","createdDate","local","toString","sentDateTimeString","sentDateTime","filteredEmails","viewedNotifications","viewed","updateViewedNotifications","$broadcast","statusbar","toolbar","readonly","sort","val","filterEmails","getTotalPages","ceil","setCurrentPage","searchEmails","EnumDropDownItem","ExtensibleComponentConfigurationModel","Upload","loadComponents","componentAssembliesLocation","componentConfigurationsLocation","assemblyLoadedExtensibleComponents","syncActivePackages","useLocalLargeObjectStorage","contracts","extensibleContracts","j","extensibleComponents","configurationJson","refresh","contractMatch","componentMatch","currentContracts","contractRemovals","componentRemovals","enabled","except","activateComponent","component","removeComponent","componentToRemove","cancelConfirm","saveComponentConfiguration","uploadFiles","files","upload","message","progress","loaded","total","displayConfirmation","showConfirm","FileUploadModel","FormSection","GetCodeModel","equals","codeModel","isEnum","enumName","codeGroupId","EsriQueryConfigurationModel","esriMapService","mapConfigurationId","getMapConfiguration","addQuery","currentQuery","createEsriQueryConfiguration","returnGeometry","useOrForWheres","hasLayerInfoBeenRetrieved","includeGeometryFilter","layer","selectedLayer","esriQueryConfigurations","getLayerInfo","loadLayerMetadata","selectedMapServiceLayer","mapServiceLayerChanged","defer","promise","esriMapServiceLayerMetadata","resolve","geometryFilterChanged","geometryFilter","createGeometryFilter","geometryComparisionType","useMapGeometry","bufferFactor","EsriQueryResult","EsriSpatialReference","Feature","GisActionWorkflowConfigurationModel","deleteWorkflow","workflow","addWorkflow","createGisActionWorkflowConfiguration","isFeatureCollectionResult","clearAllLayersAtCompletion","gisActionWorkflowConfigurations","addGisActionBlock","blockType","newActionBlock","createGisActionBlock","workflowOrder","currentWorkflow","inputCollection","createGisInputOutputCollection","outputCollection","outputCollection_id","setOutputCollection","setInputCollection","last","currentActionBlock","previousActionBlock","gisInputOutputs","newInput","createGisInputOutput","relatedGisInputOutput","newInputOutput","addDrawFeatureActionBlock","drawFeatureConfiguration","createDrawFeatureConfiguration","addTrimActionBlock","trimConfiguration","createTrimConfiguration","addBufferBlock","bufferConfiguration","createBufferConfiguration","bufferDistance","showBuffer","addFilterActionBlock","filterFeatureCollectionConfiguration","createFilterFeatureCollectionConfiguration","useFilterFunction","addValidationBlock","gisActionValidationConfiguration","createValidationConfiguration","exitWorkflowOnFailure","validationMessage","useJavascriptFunction","checkAnyFeatures","addSetPropertyBlock","setPropertyConfiguration","creatSetPropertyConfiguration","useJavascriptTransformer","useJsonDictionaryStore","addEsriQueryActionBlock","gisActionBlockEsriQueryConfiguration","createGisActionBlockEsriQueryConfiguration","addFeaturesBlock","createAddFeaturesConfiguration","filterPropertiesToMappedAttributes","addGisDatastoreQueryActionBlock","createGisDatastoreQueryConfiguration","deleteActionBlock","GisDatastoreQueryConfigurationModel","gisDatastoreService","selectedGisDatastore","gisDatastoreQueryConfigurations","JavascriptTransformerModel","addJavascriptTransformer","newTransformer","createJavascriptTransformer","javascriptTransformers","currentJavascriptTransformer","LayerConfigurationModel","getLayerConfigurations","layers","addLayer","newLayer","createLayer","mapConfiguration_id","maxZoom","isQueryOnlyLayer","getMapServiceMetadata","proxyUrl","esriMapServiceMetadata","removeLayer","LegendConfigurationModel","legendConfigurationService","addLegend","newLegend","createLegendConfiguration","hideSingleBase","displayCornerLocation","sortLayers","isDefault","legendConfigurations","currentLegend","addLegendLayer","newLegendLayer","createLegendLayer","legendLayers","defaultChanged","l","deleteLegendLayer","legendLayer","MapConfigurationModel","showMapConfiguration","showLayerConfiguration","showLegendConfiguration","showMapFunctionConfiguration","showGisActionWorkflowConfiguration","showEsriQueries","showGisDatastoreQueries","showQueryGridConfiguration","showJavascriptTransformers","showSection","sectionName","MapConfigurationPreviewModel","gisMapService","mapId","runWorkflow","MapConfigurationsModel","mapConfigs","getSystemLevelMapConfigurations","myMapConfigurations","systemLevelId","addMapConfiguration","newMapConfig","createMapConfiguration","showZoomControl","defaultZoom","centerX","centerY","editMapConfiguration","map","deleteMapConfiguration","MapFunctionConfigurationModel","addExecuteGisActionWorkflow","addFunction","addZoomToCodeDropdown","currentFunction","zoomToQueryConfiguration","createZoomToQueryConfiguration","doZoom","placeHolderForInput","createEsriPlaceHolderValue","addTextPlaceholder","addGeometrySelection","addZoomToTextBox","addClearDrawing","functionType","createMapFunctionConfiguration","showTextInput","mapFunctions","QueryGridConfigurationModel","getSystemLevelJsonDictionaryStores","queryGrid","createQueryGridConfiguration","includeZoomColumn","zoomToResultsOnQuery","highlightOnHover","runQueryOnLoad","includeLoadButton","addResultsToMap","queryGridConfigurations","addEsriQuery","newQuery","currentEsriQuery","addGisDatastoreQuery","gisDatastoreQuery","createQueryGridQuery","currentQueryGrid","addField","createIncludedQueryField","showInPopup","includedQueryFields","distictOnField","addResultsToMapChanged","drawStyle","createDrawStyle","fieldOrderDown","oldField","fieldOrderUp","removeField","removeQueryField","GisDatastoreModel","results","currentDatastore","createGisDatastore","maxPerBox","activate","addGeometryType","availableDatastoreTypes","geometryType","newGeometryType","newGeoType","createGeometryDatastoreType","removeGeometryType","geometryDatastoreType","HeaderFooterModel","headerFooterModelSelf","HolidayModalModel","holidayService","dateOpened","HolidaySetModel","addHolidaySet","selectedHolidaySet","createNewHolidaySet","isNew","deleteHolidaySet","holidaySet","saveAdd","selectHolidaySet","deleteHoliday","holiday","selectHoliday","selectedHoliday","openHolidayModal","addHoliday","createHoliday","holidays","boxNumber","offset","JsonDictionaryStoresModel","addJsonDictionaryStore","currentJsonDictionary","myJsonDictionaryStores","LayoutModel","controllerScope","userAdministrationService","windowService","localStorageService","signalrService","httpService","rootScopeService","siteInitializationService","userService","authService","testService","defaultSignOutPath","showUserAdministration","authentication","isConfigurator","isAdmin","isAuthenticated","isMaintenanceAdmin","signOutUrl","isUserPopoverOpen","isAuth","basicInitialization","userAuthenticated","authenticated","providerLogin","token","afterSignInPath","signOutData","showNavigation","getSiteConfigurationForExecution","showFooter","reloadActiveProcessTypes","hookUpUnsavedChangesConfirmation","getEmailNotificationCount","listen","listener","onClientReceivedWarsNotification","notificationCount","warsNotificationReceived","notificationRefresh","notifications","getEditiableContentPages","getUserGrantAuthorizations","authorization","redirect","removeItem","homeContentPageId","getRoute","route","notifyServerHubOfDisconnect","promises","endImpersonation","endChangeDateTime","stopConnection","soUrl","location","assign","signIn","signOut","clearCache","getCurrentUserId","userId","getLoggedInUserId","openUserPopover","ManageClaimsModel","existingSystemClaims","getExistingSystemClaims","existingCodeGroups","getExistingCodeGroups","optionalUserRepositories","existingUserRepositories","seletedUserRepo","getUserRepositoryConfigurations","myUserRepositoryConfigurations","getUserRepositoryComponents","userRepositoryComponentTag","getSystemLevelClaimsWithGrantAuthorizations","myClaims","addUserRepo","ur","deleteUserRepo","userRepo","tag","addNewSystemClaim","newSystemClaim","getGrantClaims","trim","addClaimGrant","cg","claimDefinition_id","myClaimDefinition","claimGrantAuthorities","myCodeGroup","claimGrantAuthority_id","myClaimGrantAuthority","restricted","removeClaimGrant","claimGrant","claimGrantAuthorityValues","claimGrantRestrictionValues","updateGrantClaim","myGrantClaimDefinition","granted","transformClaim","claimMapValue","editExistingSystemClaim","deleteClaimGrantAuthority","matches","grantClaimDefinition_id","variableTypeChange","entityState","isModified","defaultCode","codeGroupChange","mappingStatusChange","ManageEmailGroupsModel","emailGroupService","isSystemEmailGroup","addingNewEmailGroup","showDeleteEmailGroupConfirm","showDeleteExistingConfirm","loadEmailGroups","getSystemLevelEmailGroups","emailGroups","myEmailGroups","getAllProcessEmailGroups","addNewEmailGroup","newEmailGroup","addNewEmailAddressToGroup","newEmailAddress","createNewEmailAddress","myEmailGroup","myEmailAddresses","deleteNewEmailAddress","successCallback","saveNewEmailGroup","saveSucceeded","cancelNewEmailGroup","deleteEmailGroup","editEmailGroup","editExistingEmailAddress","emailAddress","deleteExistingEmailAddress","addNewEmailAddressToEditGroup","ManageScheduledResourcesModel","newScheduledResourceName","existingSystemCodes","existingScheduledResources","selectedCodeGroup","loadAllScheduledResources","addNewScheduledResource","newScheduledResource","createNewScheduledResourceConfiguration","saveNewScheduledResource","canSaveNewScheduledResource","deleteScheduledResource","scheduledResource","editExistingScheduledResource","getAllScheduledResourcesForProcessConfiguration","scheduledResources","ManageSecurityMatrixModel","sortBy","securityMatrixs","addSecurityRow","selectedSecurityMatrix","addMatrix","addSecurityRowWithSubTypes","createSecurityRowWithSubTypes","addAdvancedSecurityMatrix","addSecurityMatrix","matrix","copySecurityMatrix","newSecurityMatrix","alwaysVisible","usesAnotherSecurityMatrix","reusedSecurityMatrix","claimTreeItemsJson","matrixJson","StaticDocumentsModel","$routeParams","newStaticDocument","uploadedFiles","addStaticDocument","fileUploadModel","removeStaticDocument","staticDocument","changes","getChanges","anyMissingNames","EmailSystemActionsModel","treeItemService","emailSystemActionSelf","showAttachments","showCarbonCopy","showBlindCarbonCopy","disableReceipientValue","getProcessConfigurationContainers","processContainers","emailBinding","selectedEmailConfiguration","getProcessConfigurationExpandFieldsAndEmailConfigs","emailConfigs","subjectTinyMceOptions","charLimit","documentTags","recipientTags","carbonCopyTags","blindCarbonCopiesTags","addEmail","newEmail","createEmailConfiguration","pushTags","isClaimWithValue","constantValue_id","constantValue","calculation_id","queryConfiguration_id","queryConfiguration","createDocumentTags","staticDocument_id","configureEmail","emailConfig","documents","recipients","carbonCopies","blindCarbonCopies","deleteEmail","onDropAttachmentTreeItem","staticDocumentId","schemaPropertyId","emailConfiguration_id","emailConfiguration","onDropEmailRecipientToTreeItem","claimId","emailGroupId","claimGroupId","relatedClaimProcessTypeId","recipient","emailRecipient_id","emailRecipient","emailGroup","relatedClaimProcessType_id","onDropEmailRecipientValueToTreeItem","claimTreeItem","constantId","queryId","claimWithValueIsSystemLevel","onDropEmailCarbonCopyToTreeItem","carbonCopy","emailCarbonCopy_id","emailCarbonCopy","onDropEmailCarbonCopyValueToTreeItem","onDropEmailBlindCarbonCopyToTreeItem","blindCarbonCopy","emailBlindCarbonCopy_id","emailBlindCarbonCopy","onDropEmailBlindCarbonCopyValueToTreeItem","claimGroup_id","removeRecipient","removeCarbonCarbonCopy","removeBlindCarbonCopy","removeDocument","removeEmailRecipient","PdfGenerationConfigurationModel","boundItemService","showConfigureBindings","activePageIndex","newPdfModel","newPdfdocuments","getWorkflowExpandFieldsAndPdfBindings","modelSelf","$watch","fileUploaded","newPdfUploaded","selectedPdf","configureBindings","addPdf","createPdfBinding","myPdfBindings","configurePdf","pdfBind","boundItem","fixAnnotations","view","PDFJS","Util","normalizeRect","left","top","fontSize","viewPort","transformStr","join","transformOriginStr","transformOrigin","setupAnnotations","viewport","canvas","$annotationLayerDiv","my","at","of","getAnnotations","annotationsData","pageAnnotations","clone","dontFlip","boundItems","pdfInputFieldKey","fullName","createBoundItem","pdfInputFieldDisplayName","alternativeText","loadNavigationProperty","getPdf","range","documentId","getDocument","pdf","numberOfPages","numPages","gotoPage","reloadPage","pageIndex","pageNumber","getPage","binderPage","getBoundItemsWithTreeItems","loadPage","createPdfBindingPage","pdfBinding_id","scale","getViewport","getElementById","context","getContext","renderContext","canvasContext","render","deleteBoundItem","ManageSystemCodeModel","addingNewCodeGroup","showInactive","editGroup","showInactiveCodes","addNewCode","myParentCodeGroup","addNewCodeGroup","newGroup","isDocumentTypeCodeGroup","cancelNewCodeGroup","addNewCodeToGroup","addNewCodeToEditGroup","editExistingCode","deleteNewCode","deleteCodeGroup","saveNewCodeGroup","showThem","inactivateExistingCode","changeCodeActiveStatus","getSystemLevelClaims","k","grant","mySystemCode","ManageUserModel","searchCriteria","UserSearchCriteria","editUser","clearSearchCriteria","editSelectedUser","users","filterAlreadyAssignedClaims","user","toggleIsActive","userClaimFilter","userClaim","userSystemClaims","addNewUserClaim","NotificationSubscriptionsModel","notificationSubscriptionActionSelf","userMappedEmailConfigurations","currentUser","getCurrentUser","getUserEmailNotifications","userNotifications","getAllEmailConfigurationApplicableForCurrentUser","emailConfigurationDto","userEmailNotificationDto","userMappedEmailConfiguration","emailConfigurationId","recieveNotification","emailName","emailSubject","emailText","updateNotificationSubscription","userMappedConfiguration","foundUserEmailNotification","deleteUserEmailNotification","userNotification","createUserEmailNotification","userEmailNotification","ObjectQueryFormModelApi","ObjectQueryFormSchemaProperty","ObjectQueryGroupCondition","ObjectQueryResultProperty","ObjectQueryFormModel","qService","newObjectQueryName","currentApi","getObjectQueryFormApiForms","objectQueryFormApiForms","getObjectQueryFormApiQueries","result2","objectQueryFormApiQueries","getCurrentApi","getQueryApi","currentMapping","objectQueryFormSchemaProperties","getFormProperties","remap","saveQueryApi","binding","formSchemaPropertyId","querySchemaPropertyId","removeQueryApi","getSchemaProperties","schemaProperties","addResultMapping","mapSet","addQueryResultMapping","resultMappings","removeResultMapping","objectQueryResultSets","saveResultMapping","changeResultMappingOrder","reorderResultMapping","saveMapSet","updateMapSetOrder","ObjectQueryModel","existingObjectQueries","loadConfig","loadAllObjectQueries","showOnTree","displayTree","addNewObjectQuery","newObjectQuery","createNewObjectQuery","getCustomTransformers","customTransformers","saveNewObjectQuery","addNewProjection","createNewObjectQueryProjection","itemSource","getParentDisplayName","onDragOverProjection","projection","onDropProjection","treeItemSource","reportDataTreeItem","onObjectQueryModified","alias","isAggregateQuery","projectionType","filterValidProjectionTypes","propertyTypeChange","reportDataTreeItem_id","extensionPropertyIsValid","reportDataSubTableColumnName","reportDataSubTableSystemColumnName","filterValidPropertyTypes","assignmentQueryMap","reviewInformationQueryMap","statusHistoryQueryMap","commentInformationQueryMap","projectionTypeChange","getValidAliasNameFromString","isNaN","charAt","setDefaultAliasName","autoSave","getExtendedQueryColumn","deleteProjection","reorder","saveExtendedColumn","systemColumn","setCustomTransformer","changeOrder","promote","next","projections","orderNumerator","orderByDescending","flip","loadSubQueries","subqueries","processIdSubqueries","subQueries","processIdSubQueries","watchObjectQueryExecutionStatus","setTransformers","nv","ov","restrictions","restrictionType","predicate","subObjectQuery","removeSubQuery","removeProcessIdSubQuery","subObjectQuery_id","hasAggregaate","projectionTypeContext","removeSpecifiedOptions","filterExtensionProperties","states","getStates","statuses","getStatuses","getProcessTypes","processSubTypes","getProcessSubTypes","reviewConfigurations","assignmentClaims","getClaims","propertyTypeContext","canAddProjection","hasRowId","hasProcessId","deleteObjectQuery","conflictInfo","conflictMessages","testExecution","compressResult","strData","atob","charData","charCodeAt","binData","Uint8Array","pako","inflate","arr","Uint16Array","objectEndFound","objectDeserialized","char","String","fromCharCode","reverse","compile","rightRestrictionType","parameterName","setDefaultParameterName","validateObjectQuery","messages","aggregate","genOutputSchema","genInputSchema","genSchemas","gen","oldOutputSchema","setProjectionObjectSchema","projectionSchema","projectionObjectSchema_id","deleteObjectSchema","oldInputSchema","setInputObjectSchema","inputObjectSchema_id","restriction","leftReportDataTreeItem","count","hasSubGroupMessage","hasLeftPredicateRequiredMessage","hasRightPredicateRequiredMessage","hasSubQueryPredicateRequiredMessage","myParentRestriction","rightParameterTreeItem","createNewInputSchema","listSchemas","listSchemaParentProperties","setInputSchemaPropertyBaseValues","listSchema","createNewInputListSchema","type_id","listProperty","setInputSchemaPropertyType","setSchemaPropertyCodeGroup","parameterSchemaPropertyUniqueId","setProjectionSchemaPropertyBaseValues","dataType","ExtendedQueryColumnDataType","State","User","UserEmail","Boolean","Claim","Number","ReviewConfiguration","ReviewType","Status","setProjectionSchemaPropertyType","listName","n","createProjectionSchema","isRowIdQuery","isProcessIdQuery","impliedProperty","exists","parentObjectSchema","createNewProjectionListSchema","addRootSchemaProperty","ObjectQueryPredicateStateChange","ExtendedQueryColumn","aliasName","CommentInformationQueryMap","StatusHistoryQueryMap","AssignmentQueryMap","ReviewInformationQueryMap","ObjectQueryPredicate","showValueTarget","showParameterName","showParameterTarget","operatorTypeContext","rightRestrictionTypeContext","stateChange","LeftPredicate","setValidValues","isProcessLevel","removeAllRightRestrictionsExcept","removeAllOperatorsExcept","operatorType","booleanValue","transientBooleanValue","onLeftPredicateChange","RightRistrictionType","Operator","onOperatorChange","onRightRestrictionTypeChange","codeValueUniqueIdentifier","stateUniqueIdentifier","statusUniqueIdentifier","assignmentClaimIdentifier","reviewConfigurationIdentifier","reviewTypeIdentifier","processSubType_id","reviewTypes","members","ObjectQueryProjection","ObjectQueryRestrictionsModel","applicationCodeService","isAndGroup","showPredicateHeader","parentRestriction","topLevel","getReviewTypes","getChildRestrictions","parentRestriction_id","addNewPredicate","createNewPredicate","addNewAndGroup","createNewAndGroup","addNewOrGroup","createNewOrGroup","queryMapColumnChange","reset","booleanValueChange","operatorChange","restrictionTypeChange","deleteRestriction","cascadeDeleteRestriction","onDragOverRestrictionProperty","onDropRestrictionProperty","apiActionProcessType_id","getApplicationCodesForConfiguration","getSubQueries","getProcessIdSubQueries","setApiAction","apis","onDragOverRestrictionParameter","onDropRestrictionParameter","parentName","childRestrictions","ObjectSchema","PagingModel","itemsArray","itemsPerPage","updateItems","beginIndex","endIndex","items","getTotalItems","getCurrentPage","PaymentWindowModel","$window","paymentService","processId","paymentConfigId","getPaymentDetails","getPaymentRequestDetails","href","formActionUrl","PdfBinding","BoundItem","FormModel","processValidationService","angularLoader","formConfiguration","currentStep","manageProcess","customStepFunctions","loadCustomStepJavascript","urlDependencies","loadScript","loadCSS","selectStep","stepUnload","splitFields","loadFieldsConditions","runStepFieldCondtions","runFormSectionConditions","processChanged","fieldBlurred","errorObj","stepId","rowId","fieldId","focus","currentJson","previousSaveJson","ProcessDto","ProcessModel","processService","cacheConfigurationService","formDataService","signalRService","formContainerUniqueId","formDataId","parentFormId","parentFormDataId","parentFormName","visibleForms","formDataDict","cb","args","userActionInitiated","displayDocumentsAndDownloads","setVisibleForms","getProcessDto","getVersionedProcessConfiguration","broadcast","broadcaster","enterProcess","logError","currentUser_1","onSignalGroupOfProcessDataUpdate","userName","processFormUpdateResults","updatedFields","getExecutionProcessType","isTransient","formsVisibilities","containersVisibilities","formVisiblility","myFormContainers","createNewProcess","createProcessDto","processCreated","redirectAfterProcessCreation","redirectRequired","redirectInsteadOfCreateNewProcess","redirectProcessTypeId","redirectMessage","showProcessSubTypeModal","subTypeSystemCodeUniqueId","processSubTypeSuccessCallback","processSubTypeFailureCallback","createNewProcessWithSubType","container","visibleContainers","ci","setCurrentFormDataId","formJson","createFormData","runApiAction","defaults","fs","defaultSchemaPropertyUniqueId","setFormField","changeContainer","onlyVisibleAsChild","containersVisible","containersWithFormsVisible","form_id","containerWithFormVisible","currentContainerVisible","myFormValidations","fv","processErrors","validate","scrollTo","showConfirmation","showUserActionConfirmation","executeUserAction","attachmentAllowed","commentAllowed","authorizedToEnterPastEffectiveDate","authorizedToEnterFutureEffectiveDate","showUserActionModal","processActionWorkflowBlockId","processDto","pendingUserAction","UserActionModalModel","userAction","myWorkflowBlocks","myProcessActions","userActionInfoUniqueId","myUserActionInfo","documentConfiguration","mySystemDocumentConfiguration","executeUserActionWithModel","userActionService","clearTransientUserActionData","ReportProcessModel","currentFormDataId","currentForm","groupSettings","getGroupSettings","reorderGroup","setting","up","sd","su","objectQueryResults","rows","sortId","cells","sortKey","filter","ngFilter","allRows","columnIndex","filterVal","expandAll","expanded","collapseAll","setGoToPage","submit","executeForm","resultsCompressed","isCompressed","exceedsMaxResults","exceedsMaxAllowedResults","payload","parsed","now","runtime","reportProcessId","date","clearFormData","changeForm","ProcessActionsModel","newProcessActionSelectedCallback","processActionId","currentProcessAction","loadProcessActionInfo","getProcessSchemaProperties","processSchemaProperties","addNewProcessAction","createNewProcessAction","deleteProcessAction","getProcessActionGroup","processActionGroup","ProcessTypeModel","showRemoveConfirmation","selectedIndex","processTypeContext","stringValueInLocalStorage","subscribeHasChanges","getConfigurationChildProcesses","getChildProcessTypes","childProcessTypes","saveFilterToLocalStorage","setItem","isEntityDetached","entity","isDetached","isEntityDeleted","isDeleted","removeDetachedEntities","entities","entitiesToRemove","addSingleInstanceNew","addNewInternal","addReportNew","addNewTransient","addNew","isReport","isSingle","newProcessType","createProcessType","isEmbedded","newChildProcess","createChildProcess","newProcessConfiguration","createProcessConfiguration","deleteLinkClicked","copyProcessType","configuration","configurationId","QueryConfigurationModel","tagService","queries","getAllQueryConfigurations","getSystemLevelQueryConfigurations","myQueryConfigurations","getTagsLike","tagName","selectQuery","query","selectedDataSource","myDataOperation","myDataSource","createNewQueryConfiguration","logInfo","dataSourceChanged","addTag","newTag","createTag","tagType","myQueryConfiguration","removeTag","t","searchTags","queryLength","defrred","returnTags","operationChanged","SchemaProperty","TreeConfigurationItem","TreeItemLookupModel","treeItemLookupService","lookupEntries","includeTreeSections","addNewTreeItemLookupEntry","treeItemLookup","createTreeItemLookupEntry","myTreeItem","TreeItemOptions","TreeValue","docIds","showEffectiveDate","UserProviderConfig","Grant","GrantValue","UserClaim","UserAdministrationModel","firstName","lastName","email","claimName","claimValue","userProviders","grants","getUserProviders","upc","getUsers","filteredUsers","filterUsers","externalSystemUserName","userClaims","claimValueName","userSelected","provider","selectedUser","externalId","addUserClaim","uc","claimIndex","removeUserClaim","setClaimOptions","claimValues","newClaimUniqueId","canSaveUser","claimValueUniqueId","canAddUserClaim","newClaimValueUniqueId","addUserNewClaim","addUser","removeUser","searchUsers","viewValue","userRepository","ValueOperation","getVariableTypeSymbol","getVariableTypeName","ProcessStatusGroup","GotoSettingsModel","potentialToBlocks","OutputOrderModel","PendingWorkflowItem","sourceWorkflowBlock","pendingWorkflowBlock","sourceIsMultipleOutputAndPendingIsNotFirstToBlock","ProcessActionGroup","processActionGroupDto","intitialize","getInitialBlock","statusDescription","StateGroup","potentialNextStates","childWorkflowBlocks","getAllStateWorkflowBlocksInOrder","getAllByType","getUserActions","getMessages","getConditions","getValidates","getSendEmailActions","getCreatePdfActions","getCopies","getSetDatas","getAssignClaims","getStatusChanges","statusNames","statusChanges","stateWorkflowBlock","associatedWorkflowBlocks","toBlockIds","currentBlockId","processedBlockIds","pendingBlockIds","nextBlock","nextBlockId","shift","getToStatusGroupIds","stateGroups","stateWorkflowBlocks","getAllStatesInOrder","WorkflowBlockConnections","connectionDto","fromBlockIds","yesBlockIds","noBlockIds","fromWorkflowBlocks","outputType","yesNo","yesBlock","noBlock","WorkflowBlockLocation","svgElementId","drawingService","pageScope","rootScope","workflowUpdatedCallback","typesComplete","events","WorkflowEvents","reDraw","removeAllDropZones","removeAllGotoBlocks","lines","feedbackLines","addDropZones","statusChangeBlock","getStatusChangeDto","statusChangeId","showStatusChangeModal","userActionBlock","getUserActionDto","messageWorkflowBlock","getMessageDto","showMessageModal","gotoWorkflowBlock","validToTypes","validToBlocks","showGotoModal","createPdfWorkflowBlock","getCreatePdfDto","showCreatePdfModal","copyWorkflowBlock","getCopyDto","showCopyModal","setDataWorkflowBlock","getSetDataDto","showSetDataModal","assignClaimWorkflowBlock","getAssignClaimDto","showAssignClaimModal","sendEmailWorkflowBlock","getSendEmailDto","showSendEmailModal","getStateDto","showStateModal","conditionWorkflowBlock","getConditionDto","showConditionModal","validateBlock","getValidateDto","showValidateModal","calculateBlock","getCalculateDto","showCalculateModal","bookResourceBlock","getBookResourceDto","showBookResourceModal","removeResourceBlock","getRemoveResourceDto","showRemoveResourceModal","returnFromProcessActionBlock","getReturnFromProcessActionDto","showReturnFromProcessActionModal","processActionBlock","getProcessActionDto","showProcessActionModal","systemActionBlock","getSystemActionDto","showSystemActionModal","changeStateBlock","getChangeStateDto","showChangeStateActionModal","gotoStateBlock","getGotoStateDto","showGotoStateActionModal","gotoBlockToBlockId","isGotoBlock","gotoBlock","deleteWorkflowBlock","removeWorkflowBlockFromDrawing","addOrRemoveFeedbackArrowLines","getWorkFlowBlockById","droppedNewShapeOnDropZone","dropZoneWorkflowBlock","validChoice","canShapeBeDropped","unHighlightAllDropZones","connections","newId","otherGotos","currentMaxId","newGotoBlock","addNewWorkflowBlockCallback","createNewWorkflowBlock","newWorkflowBlock","droppedNewShapeOnInBetweenDropZone","fromWorkflowBlock","toWorkflowBlock","canShapeBeDroppedInBetween","addContext","fromBlockId","toBlockId","gotoToBlockId","outputIndex","newObjectForTest","showYesNoOutputSelectionModal","saveInBetweenWorkflowBlock","newToBlock","createNewWorkflowBlockInBetween","addNewWorkflowBlockInBetweenCallback","unHighlightAllInBetweenDropZones","draggingNewShape","selectedWorkflowShape","hoverContext","dropZone","inBetweenDropZoneHovered","inBetweenFromWorkflowBlock","inBetweenToWorkflowBlock","inBetweenDropZones","inBetweenIndex","toggleEnabled","insertIndex","replaceDropZoneWithNewShape","currentWorkflowBlock","insertNewShapeInBetweenWorkflowBlocks","fromWorkflowBlockId","toWorkflowBlockId","blockLocationOfToBlock","workflowBlocksToAnalyze","workflowBlockIdsAlreadyAnalyzed","currentDropZoneId","yesNoBlock","onlyToBlockIsDropZone","singleOutputBlock","invalidChoice","fromValid","toValid","revertDto","angular","copy","updateStatusChange","workflowBlockDto","documentConfigurationId","updateUserAction","updateMessage","blockBeforeGoto","filteredValidToBlocks","multiOutputIndex","isTo","isYes","isNo","yesNoBeforeBlock","updateGotoBlock","updateCreatePdf","updateCopy","updateSetData","updateAssignClaim","updateSendEmail","updateState","updateCondition","updateValidate","updateCalculate","updateScheduledResource","updateReturnFromProcessAction","updateProcessAction","updateSystemAction","updateChangeState","updateGotoState","horizontalStep","verticalStep","minZoomPercentage","maxZoomPercentage","zoomStep","horizontalMin","horizontalMax","verticalMin","verticalMax","lineAttributes","dashedLineAttributes","arrowAttributes","feedbackLineAttributes","feedbackArrowAttributes","toggleEnabledfeedbackLineAttributes","toggleEnabledfeedbackArrowAttributes","getZoomRatio","getInverseRatio","ratio","distanceFromNormalZoom","abs","viewBoxRatio","viewBoxWidth","boundedZoom","viewBoxHeight","drawingScope","addEntireCanvasMouseMoveHandler","addMouseWheelHandler","setupDragAndPan","currentlyDragging","getWorkflowHoverContext","originalLocalName","workflowBlockSelected","deleteOptionHovered","settingsOptionHovered","targetChanged","WorkflowHoverContext","parentNode","localName","siblings","childNodes","workflowBlockId","blockTypes","mainSnapElement","mousemove","mousemoveHandler","svg","addEventListener","mouseWheelHandler","attachEvent","originalEvent","mouseWheelDelta","wheelDelta","detail","delta","addMouseDownForDragPanning","addMouseUpForDragPanning","addMouseMoveHandlerForDragPanning","mouseDownHandler","classAttr","getAttribute","setAttribute","currentDragX","screenX","currentDragY","screenY","mouseUpHandler","mouseMoveHandler","rateOfDrag","xDelta","yDelta","dragOffsetCoordinate","getDragOffset","xSteps","floor","ySteps","workflowBlockHovered","WorkflowItemAwaitingDrawing","pendingWorkflowItem","showZoomAndPan","toggleAlwaysShotGotoArrows","setAlwaysShowGotoArrowsSetting","alwaysShowGotoArrows","statusChange","workflowDrawingInstance","gotoState","returnFromProcessAction","changeState","processAction","calculate","goto","generatePdf","setData","assignClaim","sendEmail","bookResource","removeResource","injectDependencies","getAlwaysShowGotoArrowsSetting","setNewSelectedProcessAction","drawProcessAction","attachDrawingInstanceToWorkflowBlocks","selectedWorkflowShapeType","getWorkflowBlocks","modules","currentModule","module","app","run","breeze","editableOptions","theme","growlProvider","globalPosition","localStorageServiceProvider","setStorageType","serviceBase","protocol","pathname","apiServiceBaseUri","clientId","$httpProvider","interceptors","construct","constructorFunction","F","apply","registerController","className","controllers","registerFilter","filterFunctionName","filterDependencies","_i","arguments","realInstance","filterArguments","registerDirective","directive","directives","registerService","factory","factories","NamingConvention","camelCase","setAsDefault","warsBreeze","entityManager","EntityManager","ready","bootstrap","metadataStore","registerEntityTypeCtor","HttpHandlerService","useGetHandler","params","handlerUrl","response","handlerResponded","usePostHandler","usePutHandler","put","useDeleteHandler","requestParams","ApplicationCodeService","manageSystemCodeService","delay","holdingForServiceCall","codeGroupCache","applicationCodesToQuery","applicationCodesBeingQueried","getApplicationCodesForEnum","enumerationName","registerGetExecutionCodesCall","getProcessLevelApplicationCodesForExecution","getSystemLevelApplicationCodesForExecution","getCodeGroup","configCodeGroup","currentCode","applicationCode","parentCodeGroup_id","makeServiceCall","codesAlreadyCached","getCodeModels","codeIdAndEnumNames","codesToRetrieve","processServiceCallResponse","codesCached","currentCodeGroup","matchingCodeGroup","matchingCachedCodeGroup","matchingCodesInCodeGroup","reject","buildCodeDropDownOptions","maintainOrder","defaultOption","dropDownItems","buildEnumDropDownOptions","allOptions","includeList","restrictedList","excludeList","addToList","safeConvertDate","dateWithoutTimeZoneOffset","millisecondsSinceEpoc","getTime","getTimeZoneOffsetInMilliseconds","getTimezoneOffset","convertObjectToQueryString","str","encodeURIComponent","time","timePart","resultArray","Uint32Array","randomValue","crypto","getRandomValues","v","isNullOrWhiteSpace","test","DataService","injectedBreeze","serviceName","breezeModule","initializeAdapterInstance","GetEntityType","entityName","configObject","createEntity","createNewDetachedEntity","EntityState","Detached","loadMetaData","fetchMetadata","fMetaData","entityType","subscribeChanges","entityChanged","subscribe","hasChangesChanged","resolveDeletesAndUpdatesPerformedOutsideOfBreeze","deleteResult","wasSuccessful","_loop_1","deleteEntry","deletedOrUpdatedEntities","cachedEntities","getEntities","deletedCachedEntities","entityIds","detachEntity","resolveDeletesPerformedOutsideOfBreeze","combinedDeleteResult","_loop_2","deletedEntities","clearCachedEntities","getPersistedEntitiesMarkedForDeletion","deleteInfo","entitiesToDelete","keyString","getKey","keyBeginIndex","shortName","deleteBatchRecursivelyWithoutWarning","itemsMarkedForDeletion","failCallback","isSaving","successfulSaveResult","failureReason","saveOptions","executeQuery","queryResult","reason","fetch","fetchEntityByKey","AngularLoadService","$document","loader","src","script","createElement","appendChild","style","rel","head","onload","onreadystatechange","readyState","onerror","ApiActionService","expand","EntityQuery","apiActionId","p1","Predicate","p2","pred","and","ApiConfigurationService","ApiGridConfigurationService","ApiGridService","getApiGridResult","apiGridConfigurationId","apiGridFieldSchemaPropertyUniqueId","ApiKeyService","apiKey","ApiSchemaMappingService","schemaPropertyService","newApiSchemaMapping","AssignmentConfigurationService","createAssigmentSectionClaim","AutoCompleteConfigurationService","AutoCompleteService","runAutoComplete","autoCompleteId","searchValue","BatchJobConfigurationService","getAllBatchJobConfigurations","BatchJobDashboardService","BoundItemService","binderPageId","CalculationService","systemLevelOrSpecifiedProcessConfigPredicate","or","sequenceCalculations","calculationType","createNewOperationParameter","operationParameter","newCalculation","createValueOperation","operator","onlyAllowListOperands","createEmptyValueOperation","addNewSimpleOperandToValueOperation","addAdditionalOperandsBeyondFirst","newOperand","createSimpleOperand","operands","parentValueOperation","parentValueOperation_id","replaceOperandWithNewSimpleOperand","oldOperand","deleteOperand","replaceOperandWithNewComplexOperand","newValueOperation","getValueOperationVariableType","createComplexOperand","operandIndex","operand","operandType","operandOrder","isATimeDurationInput","complexOperand","myValueOperation","myValueOperation_id","createNewTopLevelValueOperation","currentTopLevelValueOperation","newTopLevelValueOperation","isAnAggregateOperator","isAListOperator","deleteValueOperationChildren","deleteSimpleOperand","deleteComplexOperand","simpleOperand","isTypedInConstant","isEmptyOrSpaces","containsSequencePlaceholder","containsProcessUsages","isValueOperationCompleteAndValid","disallowedPlaceholders","placeholder","stringValue","comparsionOperator","getOperandVariableType","isOperandCompleteAndValid","isSimpleOperandCompleteAndValid","decimalValue","integerValue","allowAggregateOperators","allowListOperators","allowAggregateOperatorsForOperand","childOperands","childOperand","childComplexOperand","allowListOperatorsForOperand","allowOperandDelete","allowGreaterThanLessThanComparison","comparableVariableTypes","listOperator","getAllowableOperandTypes","getCalculationTypeByValueOperation","valueOperator","isOperandSpecified","getSimpleOperandVariableType","getComplexOperandVariableType","getVariableTypeBasedOnOperandTypes","operandVariableTypes","uniqueVariableTypes","dateTimeOperands","timeOperands","dateOperands","dateOrTimeOperands","ClaimDefinitionService","getAllProcessClaimsExecutionSide","withParameters","getApiProcessClaims","ClaimGroupService","getGlaimGroup","ClaimsAssignmentConfigurationService","getAllAssignmentWorkflowClaims","CommentService","createNewCommentThreadEntry","commentDto","createNewUserActionCommentReply","deleteComment","commentId","ConditionService","getCondition","createFieldExpression","newFieldExpression","createValueExpression","fieldToConstantExpression","createGroupExpression","groupExpression","createStepExpression","formStepExpression","createOperationParameterSet","createOperationParameter","param","myOperationParameterSet","getOperationSetExpanded","executeConditions","conditionIds","executeAssignConditions","assignUserId","assignmentRights","executeUnAssigConditions","assignmentId","executeCondition","ConfigurationCacheService","configurationStorageService","processConfigCacheDictionary","getProcessConfigFromCache","getProcessConfigFromLocalStorage","pc","addProcessConfigToCache","byteArray","storeProcessConfigInLocalStorage","getActiveSystemLevelConfiguration","activateSystemLevelConfiguration","getSystemStatuses","getSystemStates","getProcessStates","getSystemClaimGroups","getSystemReviewGroups","ConfigurationStorageService","processConfigByteArray","cachedConfigurationIds","updateCachedConfigIds","localforage","isQuotaExceeded","clearConfigurationsFromLocalStorage","secondException","decompressAndDeserialize","newLinesRemoved","decompressed","deCompress","deserialize","storedItem","cachedConfigurationsToClear","jsonString","jsonObject","JsonNetDecycle","retrocycle","quotaExceeded","number","ConstantService","getConstant","ContentPageService","getContentPagesForExecution","deleteContentPage","CustomDivService","divCounter","divHandler","divLoaded","resetCounter","registerDivLoadedHandler","unregisterDivLoadedHandler","DataLinkService","createNewDataLink","newDataLink","getDataLinks","DataSourceService","SwaggerParser","DateRangeService","doesDateRangePass","dateRange","setHours","dateRangeFailureText","DeleteService","dataService","deleteRecursivelyWithoutWarning","ignoreUnsavedChanges","failureResult","inWorkChangesExist","successMessage","failureMessage","failureCallback","processSuccessfulDelete","showDeleteModal","messagePrefix","DocumentService","getDocumentConfiguration","createDocumentConfig","docConfig","overrideSystemDocumentAccepts","includeDocumentType","includeDocumentComment","includeDocumentDelete","maxDocumentsAllowed","useSingleMetadataForMultipleFiles","createAvailableDocumentType","documentTypeAvailability","myDocumentConfiguration","documentConfiguration_id","isAvailable","getFaClass","imageExtensions","wordExtensioins","excelExtensions","archiveExtensions","textExtensions","lowerCaseFileName","endsWith","wordDoc","excel","archive","getFileSizeStringFilter","filesize","getFileSizeString","kb","mb","EditableContentPageService","EmailConfigurationService","getAllEmailConfigurations","EmailGroupService","appConfigId","EmailService","userEmailConfiguration","emailNotifications","ExtensibilityService","ExternalApiService","getExternalApiConfiguration","updateAllMappings","FieldService","getField","FileUploadDownloadService","errorMsg","commonUpload","uploadProcessLevelStaticFiles","uploadSystemLevelStaticFiles","getSecuredDocumentKey","docMetadataId","deleteDocument","editIsSecure","docId","manageDocumentConfigUniqueId","isSecure","updateDocumentMetadata","documentConnections","previousDocumentIds","isTemporary","errorMessage","fileUploadProgress","FormCodeFunctionService","createFormCodeFunction","getFieldsFormCodeFunction","FormContainerAssociationService","FormContainerService","FormDataService","fieldUniqueIdentifer","addListRow","listUniqueIdentifer","onlyAllowApiEdits","metadata","removeListRow","setMultipleListFields","multiAddFieldsSaveDto","setListField","FormService","MyProcessConfiguration","myForm","createUrl","createManageSection","manageSection","createManageStatusConfiguration","createManageTimeTrackerConfiguration","canDeleteComments","canDeleteOwnComment","deleteLabel","maxLevelsOfDepth","showAvatar","allowCommentDateToBeSet","allowDocuments","commentDateLabel","canCommentSecurityMatrix","canDeleteSecurityMatrix","canViewDeletedCommentsSecurityMatrix","createManageDocumentConfiguration","newConfig","canUploadDocuments","canSelectDocuments","canSelectSecureDocuments","canEditIsSecureValue","includeFieldDocuments","includeReviewDocuments","includeUserActionDocuments","includeManageDocumentSectionDocuments","includeProcessEventSectionDocuments","includeCommentThreadSectionDocuments","includeSecuredDocumentColumn","includeSecuredDocuments","createFormGridColumn","createCondition","createField","newField","excludeFromSaves","showLinkForAutoComplete","isRequired","disallowEmptyValue","getFormFields","allFields","filteredSet","getDynamicForms","setFieldPropertySchemaParent","deleteFormSection","editField","updateFieldType","formPropertiesToOrphan","stepParentSchemaProperty","stepPropertiesToOrphan","parentStepProperty","getFormWithSection","createAssigmentConfiguration","performFormChangeUpdates","FormStepService","fetchFormStep","EsriMapService","esrilayer","getProxyUrl","getUrlEscaped","layerId","createEsriFieldMetadata","getVariableType","getFeatureGeometry","feature","geometry","rings","createMarker","L","marker","createGeoJsonLayer","geoJson","Terraformer","ArcGIS","geoJSON","createVectorLayer","polygon","polyline","esriType","useAnd","combinedUrl","proxy","metaData","createEsriMapServiceMetadata","currentVersion","splitCapabilities","capabilities","newCapability","createEsriMapServiceCapability","createEsriMapServiceLayerMetadata","parentLayerId","capabilityType","capability","getGeometryType","geoJsonType","getSpatialRelationship","queryMapService","esriQuery","placeholderValueDictionary","geometryPlaceholder","urlParams","whereClause","getWhereClause","bounds","GisMapController","getBounds","xmin","getWest","ymin","getSouth","xmax","getEast","ymax","getNorth","spatialReference","wkid","geo","toGeoJSON","coordinates","turf","buffer","convertedGeo","convert","featureCollection","features","whereStr","isString","getOperator","compareOperator","javascriptTransformer","myFunc","Function","funcResult","comparisionType","GisDataStoreMetadataMappingService","GisDatastoreService","gisDatastoreId","queryGisDatastore","placeHolders","GisMapService","jsonDictionaryStoreService","layerDictionary","addFeaturesLayer","zoomToLayer","addFeaturesLayerInternal","featureLayer","fitBounds","removeFeatureLayer","newFeatureCollection","GeoJSON","addTo","runPostWorkflowActions","clearLayers","runGuid","runGisActionWorkflowOverride","exitWorkflow","postRunGisActionWorkflowOverride","features_1","featureListOutput_id","featureOutput_1","featureOutput_id","featureToRows","processRowsToAdd_1","featureActionsRun","Elp","Api","Process","addRow","saveDto","FieldValues","processRow","featureListOutput","propertyName","rowMetadata","fieldsMetadata","Value","Metadata","featureField","setRowValue","orderedActions","runActionPromise","input","nextActions","outterD","innerD","runAddFeaturesAction","output","getOutputs","runDrawFeatureAction","runEsriQueryAction","runFilterAction","runTrimAction","runValidationAction","runSetPropertyAction","runBufferAction","actionResult","actionBlock","featureCollectionInput","filteredFeatures_1","filterAttributes","attributeName","propertyCollection","jsonDictionaryOperationType","containsKey","jsonDictionaryStore","comparisionProperty","getValue","validationCollection","geometryFilterValueInput","geometryToBuffer","tempGeometry","getFeatureFromGeometry","buffered","bufferLayer","_latlng","lng","lat","outputProperty","relatedGisInputOutput_id","returnObj","comparisionGeometry","clippingGeometry","_southWest","_northEast","originalFeature","clippedFeature","lineDistance","bboxClip","differences","getLineDifferences","lineTrimAttributes","isAdd","beginDistance","endDistance","toFixed","comparisionFeature","isBeginning","beginningLine","endingLine","comparisionCoordinates","comparisionIndex","correlatedCollection","lastCorrelated_1","newFeature","GisDatastore","createFeatureFromGeoJson","gisDatastore_id","featureAttributeToPropertyMaps","fa","codeGroupToTransform","useGeometryLatitude","useGeometryLongtitude","attributeNumber","process_Id","saveFeatures","savedFeatures","drawFeatureAction","drawingType","editTools","startMarker","startPolygon","startPolyline","startRectangle","commitFunc","disable","clearDrawingAfterSelection","zoomToFeature","featureId","zoomLayer","removeFeature","LegendConfigurationService","MapConfigurationService","createGisWherePedicate","createQueryGridFieldMapping","createFilterAttribute","createGisActionCalculationConfiguration","createLineTrimAttribute","createFeatureAttributeToPropertyMap","stroke","color","weight","fill","fillColor","fillOpacity","highlightZoomResults","HistoryService","getFormFieldHistory","getProcessDataHistory","getListFormFieldHistory","listId","propertyId","getListProcessDataHistory","HolidaySetService","InterProcessApiService","createInterProcessApi","newInterProcessApi","createInterProcessOutputMapping","interProcessApiId","interProcessApi_id","getInterProcessApis","getInterProcessApi","JsonDictionaryStoreService","getJsonStoreDictionary","jsonDictionary","dict","LandingPageConfigurationService","logContext","logLevel","logWarn","logFatal","level","logToLoggly","logObject","_LTracker","logToConsole","useConsoleLevels","warn","debug","err","ManageDocumentSelectionService","updateDocumentSelection","manageSectionId","isSelected","ManageProcessDataConfigurationService","createProcessDataViewConfiguration","createManageProcessDataConfiguration","createManageProcessEventConfiguration","ManageScheduledResourcesService","scheduledResourceConfig","checkScheduledResource","scheduleEntry","FormDataId","ManageStaticDocumentsService","getStaticDocumentById","createStaticDocument","ManageSystemCodesService","MapConfigurationOverridesService","MenuLinkService","menuLinks","MenuItemService","ObjectQueryStatusType","ObjectQueryStateType","ObjectQueryProcessType","ObjectQueryProcessSubType","ObjectQueryReviewConfiguration","ObjectQueryApiAction","ObjectQueryReviewType","ObjectQueryAssignmentClaim","ObjectQueryStringTuple","ObjectQueryFormApiQuery","ObjectQueryFormApiForm","ObjectQueryGroupSetting","ObjectQueryApiSchemaProperty","ObjectQueryService","oqId","oq","originalValues","pack","formUniqueIdentifier","objectQueryId","descending","parent","linkRestrictionParents","reviewTypeCodeName","result3","result4","result5","ObjectSchemaService","objectSchemaId","groups","newObjectSchema","createNewListObjectSchema","validateSchemaProperty","dataSource_id","cloneSchemaProperty","scheduledResourceConfiguration_id","systemVariable_id","PaymentConfigurationService","newPaymentConfig","showReceiptPage","paymentAmountMapping","paymentConfiguration_id","isPaymentAmount","isPaymentDate","isPaymentUserId","paymentDateMapping","paymentUserIdMapping","isCompleteAndValid","paymentConfiguration","newCustomInfo","customInfoMapping","customInfo","customInfo_id","PaymentService","PdfBindingService","ProcessActionService","worflowService","newProcessAction","newStartProcessActionWorkflowBlock","myProcessAction","isInitialWorkflowBlock","bindBlockList","ProcessConfigurationService","getProcessConfigurationForTree","expandString","getFieldsAndVariables","loadProcessConfigurationDocumentTypes","appConfigs","getScheduleResourceInstances","versionName","getTopLevelSchemaProperties","getTopLevelSchemaPropertiesInternal","getProcessSchemaPropertiesInternal","formIndex","stepIndex","sectionIndex","currentSection","fieldIndex","currentField","getProcessSchemaPropertiesRecursively","topLevelIndex","ProcessDocumentService","updateProcessDocuments","newDocuments","oldDocIds","newDocIds","updateManageDocumentSections","getDocumentById","documentSections","ProcessEventConfigurationService","createProcessEventConfigurationReso","ProcessHeaderService","ProcessService","NO_VALUE_ID","getCachedProcess","lastProcess","getProcessName","runSystemAction","systemActionId","runProcessAction","stateCodeUniqueId","userSelection","reviewSetId","reviewUserId","dueDate","reviewType","assignedDate","reviewTypeUniqueId","closeReview","reviewId","saveReviewComment","comment","updateReviewDocuments","documentIds","userActionId","manageAppDto","effectiveDateString","effectiveDate","toUTCString","storeTransientUserActionData","downloadDocuments","showGrowlMessages","clearUserActionTransientData","successMessages","infoMessages","warnMessages","warning","errorMessages","invalidEffectiveDate","effectiveDateErrorMessage","dateString","lastStateEffectiveDate","lastStateDate","showTimeForInvalidEffective","toLocaleDateString","toLocaleTimeString","manageProcessDto","documentsToDownload","deleteAssignment","addAssignment","newAssignment","assignment","removeReview","addProcessEvent","isFieldUpdatable","isFormInVisibleContainer","formVisibility","myFormSection","formStep_id","hiddenSteps","hiddenGroups","inFieldsVisibility","fieldsVisiblity","pertinentConditionIds","conditionStates","pertinentReadonlyConditionIds","readonlyCondition_id","currentFormContainer","formIdsInContainer","impactedConditionStates","updateFormWithFieldUpdateResult","conditionsToExecute","fieldUniqueId","propertyConditionDependencies","conditionResults","conditionPassed","listUniqueId","listObject","row","currentRow","ProcessSubTypeService","createConfig","newProcessSubTypeConfiguration","header","dropdownLabel","buttonLabel","subTypeConfiguration_id","processSubTypeConfiguration","newProcessSubType","myProcessSubTypeConfiguration","processSubTypeConfiguration_id","00000000-0000-0000-0000-000000000000","myProcessSubTypes","getExecutionProcessSubTypes","ProcessTypeService","getExecutionProcessTypes","currentProcessType","childProcess","processInitiatorClaim","createProcessInitiatorProcessClaimDefinition","createInitialStatusAndState","stateInfo","myStateCode","myStatus","stateInfo_id","myStateInfo","stateWorkflowBlockId","claimDefinition","maxAssignments","ProcessValidationService","validatePhoneNumber","phoneno","validateEmail","re","validateUrl","returnObjects","validateField","sections","rowIndex","listField","regExPattern","regEx","RegExp","newObj","getErrorObj","regularExpressionFailureMessage","getStepIdOfField","fieldName","currentStepId","formSection_id","QueryConfigurationService","getQueryConfiguration","getSchemaProperty","RelatedClaimProcessTypeService","ReviewConfigurationService","ReviewGroupService","SchemaPropertyService","getSchemaPropertyByUniqueId","newSchemaProperty","SecurityMatrixService","internalCreateSecurityMatrix","currentStateUniqueId","getSecurityMatrixView","SignalrService","$new","hub","connection","serverHub","tryingToReconnect","destroyListener","startConnection","stateChanged","authData","client","signalConfigureLogging","logging","signalServerSideActionLogged","sessionId","msg","groupCollapsed","groupEnd","signalClientLoggedOutToLogOutAllClientInstances","$emit","signalClientReceivedWarsNotification","signalGroupOfProcessDataUpdate","updatingUser","fieldDataToUpdate","qs","start","done","reconnecting","reconnected","disconnected","server","onConfigureLogging","getConnectionId","addToGroup","onEnterProcess","onExitProcess","object","SiteConfigurationService","SiteInitializationService","StatusAndStateService","createNewSystemStatusCodeGroup","newStatusCodeGroup","getStatusAndStatesByProcessConfig","StatusGroupService","getProcessStatesWithDetails","FormSectionService","currentIndex","wasPreviousSplit","sortedFields","isSplitRow","isInSplitRow","SubTypeGroupService","SystemActionService","SystemCodeService","getSystemCode","getSystemCodesByCodeGroupId","SystemLevelService","getMostSystemLevelInfo","getSystemLevelVariables","getSystemLevelProcessEvents","TagService","TimeTrackerService","useBusinessHours","sortOrder","getTimeTracker","getTimeTrackerStringValue","timeTrackerObj","ClockStatus","currentDate","milleseconds","DateTimeClockValueLastChanged","seconds","minutes","hours","TimeType","TimeElapsedLastCalculated","TimeZoneService","TreeItemLookupService","TreeItemService","utilityService","getTreeItem","createTreeItem","TreeService","formStepService","interProcessApiService","staticDocumentService","systemCodeService","detailedTreeItemNameCache","millisecondsToCache","slatedForCacheRemoval","ProcessConfigurationTree","getDecodedTreeItem","dataLoadCallback","dataLoadedFunction","getTreeItemVariableType","newTreeItem","complexObjectProperty","documentMetaData","processDataId","emailGroup_id","claimDefinitionUniqueId","interProcessApi","listPropertyId","listSectionId","schemaPropertyPromise","objectSchemaPromise","userClaimDefinition_id","userClaimDefinitionId","timeTrackerId","systemCodeId","getParentDisplayIcon","getDetailedDisplayName","cachedValue","levelIndicator","getDisplayNameBasic","relatedClaimLookup","getComplexObjectDisplayName","prefix","doesTreeItemHaveParameters","decimalPlaces","getRelatedClaimLookup","UserActionTransientDataDto","UserActionService","updateDocuments","getTransientUserActionData","UserAdministrationService","apiBaseRoute","providers","UserService","userNameHashTable","allQueryIssued","setLoggedInUserId","loggedInUserId","setImpersonationUserId","impersonationUserId","clearImpersonationUserId","isCurrentlyImpersonating","getUser","getCurrentUserClaims","addExternalUser","userSearchDto","VariableTypeService","returnValue","convertStringToDate","validDate","WorkflowDrawingService","CalculateStarPoints","centerCoordinate","arms","angle","PI","currX","cos","currY","sin","viewBox","previousBlock","lineLocations","currentYesBranchBlockLocations","initialCoordinate","workflowBlockGroup","previousPosition","currentlyDrawingNoBranch","currentlyDrawingNonZeroIndexMultipleOutputToBlock","todoDownDirectionBranchStack","todoRightDirectionBranchStack","currentGotoId","newCoordinate","calculateDrawCoordinates","pending","doesWorkflowBlockAlreadyExist","newGotoWorkflowBlock","todoItem","getPositionOfPreviouslyProcessedWorkflowBlock","drawBranch","maxXCoordinate","maxYCoordinate","onlyCheckDrawingSpot","spaceIsNotAvailable","isGridSpotOccupied","isSpecifiedSpotOrSpotBelowOccupied","shiftYesBranchToTheRightOne","isBlockAtSpecifiedLocation","isLineAtSpecifiedLocation","spotIsOccupied","endPartOfMsg","isGridSpotBelowOccupied","belowCoordinate","previousBlockId","previousBlockLocation","inWorkBlockLocation","drawArrow","drawInBetweenDropZone","fromCoordinate","toCoordinate","xDeparturePoint","yDeparturePoint","xArrivalPoint","yArrivalPoint","yesLabel","drawArrowTip","noLabel","xMidPoint","yMidPoint","originVertice","rotation","isFeedbackLoop","isToggleEnabled","xFirstVertice","yFirstVertice","lineThicknessOffset","smallOffset","largeOffset","xSecondVertice","ySecondVertice","xThridVertice","verticies","arrowTip","Matrix","rotate","inBetweenWidth","data-from-id","data-to-id","data-index","line","arrowRotation","shortenDistanceToAccountForLineThickness","verticalOffsetFromGridline","lineCoordinates","areAnyWorkflowBlockBetweenTwoCoordinates","originY","raisedY","raiseX","dropX","destinationX","endsGoingLeft","numberOfSkippedXCoordinates","additionalXOffset","originX","goingUp","straightAcrossToLeftFromOrigin","straightUpOrDownFromOrigin","raiseOrLowerCoordinateOffset","firstRaiseX","secondRaiseX","firstRaiseY","destinationY","arrowCoordinate","tip","startCoordinate","endCoordinate","collision","blockCoordinates","minY","maxY","yIndex","testCoordinate","minX","maxX","xIndex","pendingBlocks","workflowItemsAwaitingDrawing","WorkflowService","bindGroupList","bindGroupItem","messageId","createPdfId","copyId","setDataId","assignClaimId","sendEmailId","stateId","validateId","calculateId","bookResourceId","removeResourceId","returnFromProcessActionId","changeStateId","gotoStateId","getOutputOrder","updateOutputOrder","connectionsDto","bindBlockItem","updateUserActionInternal","commentRequired","attachmentRequired","getProcessData","validateStatusGroup","exception","showGotoArrows","lineElements","selectAll","arrowElements","showOutputOrderModal","orderedDestinationIds","currentToBlocks","gotos","gotoMatch","conditionBlock","setCommonProperties","myConditionDto","messageBlock","myMessageDto","stateBlock","myStateDto","myUserActionDto","copyBlock","myCopyDto","setDataBlock","mySetDataDto","assignClaimBlock","myAssignClaimDto","myValidateDto","createPdf","myCreatePdfDto","mySendEmailDto","myCalculateDto","myScheduledResourceDto","startProcessAction","myStartProcessActionDto","myReturnFromProcessActionDto","myProcessActionDto","mySystemActionDto","myChangeStateDto","myGotoStateDto","getQuickLinkUrl","componentUrlPart","currentLocation","absUrl","tieUpRelationShips","multipleOutputBlock","currentToId","mySetDataOperations","newSetDataOperation","createNewSetDataOperationInternal","createNewListDataOperation","mySetListDataOperations","executionOrder","operationDataType","clearDataType","listObjectSchema_id","fielSchemaProperty_id","setDataType","sourceTreeItem_id","destinationTreeItem_id","parentSetDataOperation_id","BreezeInterceptor","responseSuccess","Errors","ErrorMessage","responseError","responseFailure","request","method","absoluteUrl","firstGuidRegEx","exec","badRequest","unauthorized","forbidden","pageNotFound","responseInterceptor","rejection","addServerMessages","severity","$log","cause","stack","loggingError","lineNumber","ex","separator","$compile","isFunction","compiledContents","contents","pre","isObject","itemUnderTest","setUndefinedVariablesToNullRecursively","propertyKey","propertyNamesToScrub","scrubDataRecursively","setUndefinedVariablesToNull","deepCopy","scrubDataFromPost","timeZoneName","DateTimeHelper","GetLongTimeZoneName","BaseForm","controllerAs","restrict","isConfigureMode","BaseFormModel","formCodeFunctionService","customDivService","manageProcessDataConfigurationService","showCustomCode","setupForm","setupImplementedForm","setFormData","setReadOnly","visibility","myManageSections","manageSectionType","formData","setupProcess","runFunctions","loadFunctions","loadStepJavascript","functions","customCodeType","customDivCount_1","loadStepUrls","addGroup","setGroupParentObjectSchema","htmlSelected","javascriptSelected","previewSelected","formSectionSort","manageSectionSort","BaseFormController","newvalue","oldValue","isFieldChangedProcessAction","Services","FieldBaseModel","deleteField","BaseGroup","formName","fieldSort","BaseGroupController","intenalAddField","deleteGroup","internalDeleteGroup","intenalFieldSort","copyGroup","internalCopyGroup","internalSave","editFormColumns","moveSection","setVisibility","isHidden","copyField","showDescription","isShownInTable","labelSize","maxValue","showHistory","showUserDetails","BaseOnePageFormModel","internalSetupForm","newStep","ApiGrid","ApiGridController","apiGridConfiguration","selectionChanged","hideSection","apiGridService","checkboxChanged","sortColumn","filterChanged","getClockValue","openSystemActionConfirmation","closeSystemActionConfirmation","getGridResults","processIdColumn","dataArray","itemsToRemove","apiRows","filteredRows","apiGridConfig","actionColumn","actionProcessId","isDateTimeColumn","isDateTime","dateTimeValue","_processId","clockJson","CalculationEditor","CalculationEditorController","CalculationEditorModel","schemaChangedCallback","excludeItem","myCalculation","calculationTags","schemaChangedFunction","togglePreviewMode","ComplexOperand","ComplexOperandController","getOperand","getOperandInternal","getOperation","DeletePopover","DeletePopoverController","thisObject","IfElseOperation","IfElseOperationController","addConditionalOperand","addConditionalOperandInternal","deleteElseIfBlock","deleteElseIfBlockInternal","removedItems","removedOperand","Operand","OperandController","setElement","allowableVariableTypes","parseAllowableVariableTypes","allowTimeDurationUi","compileOperandDirective","$templateCache","newValue","newTreeItemId","oldFieldItemId","allowableOperandTypes","variableTypesString","variableTypes","htmlToAppend","appendElement","typedInConstant","cache","empty","operandDeletedInternal","OperandDropZoneInputModel","OperandDropZoneInput","OperandDropZoneInputController","createConstantValue","setTypedInValue","onDragOverInternal","onDropInternal","typedInValueChanged","typedInValueChangedInternal","getDisplayValue","getDisplayValueInternal","enterTimeDuration","enterTimeDurationInternal","operandTypeChanged","typedInValue","canDrop","createParameterEntities","newOperationParameter","setStringConstantValue","isAnInt","setIntConstantValue","isAFloat","setDecimalConstantValue","parseFloat","intValue","OperatorPopup","OperatorPopupController","initialized","defaultOpen","operatorTypesAllowed","faClass","buttonClass","showChangeConfirmation","openInternal","closeInternal","allowDelete","operatorSelected","operatorSelectedInternal","change","changeOperand","clearInternal","deleteInternal","allowNumericOperator","allowNumericOperatorInternal","allowStringOperator","allowStringOperatorInternal","allowDateTimeOperator","allowDateTimeOperatorInternal","allowBooleanOperator","allowBooleanOperatorInternal","allowAggregateOperatorsInternal","allowListOperatorsInternal","allowOtherOperator","allowOtherOperatorInternal","showNumericOperatorsSelected","hideAll","showNumericOperators","showStringOperatorsSelected","showStringOperators","showDateTimeOperatorsSelected","showDateTimeOperators","showBooleanOperatorsSelected","showBooleanOperators","showAggregateOperatorsSelected","showAggregateOperators","showOtherOperatorsSelected","showOtherOperators","showListOperatorsSelected","showListOperators","operatorSelectedValue","changeTopLevelValueOperation","isListOperation","valueOperation_id","ParameterDropZoneInput","ParameterDropZoneInputController","getTreeItemNameInternal","getTreeItemIconName","getTreeItemIconNameInternal","isInlineConstant","isInlineConstantInternal","updateDetailedTreeItemDisplay","treeItemDisplayInternal","detailedDisplay","detailedTreeItemDisplay","SimpleOperand","SimpleOperandController","ValueOperationController","complexOperandIndex","getOperationInternal","addOperand","addOperandInternal","allowGreaterThanLessThanComparisonInternal","getAllowableBooleanEvaluationOperandType","getAllowableBooleanEvaluationOperandTypeInternal","firstOperandIsSpecified","firstOperandIsSpecifiedInternal","$parse","require","modelCtrl","capitalize","inputValue","capitalized","$setViewValue","$render","$parsers","ngModel","pageFlow","showCharacters","remaining","ClearData","ClearDataController","setDataOperation","formSelectionChanged","setDataOperationChanged","setOptionsBasedOnSelectedForm","processDataFields","processDataLists","lists","selectedFormId","CodeDisplay","CodeDisplayController","codeValue","codeName","titleFormat","setTitleAndDisplay","getEnumerations","applicationCodes","display","CodeDropDown","CodeDropDownController","refreshCodes","isConfiguration","defaultOptionInternal","getCodesForGroup","setUpWatches","newContext","CommentThread","CommentThreadController","maxDepth","currentDepth","canRespond","deleteText","deleteButtonText","commentThreadSection","commentThreadConfigUniqueId","manageSectionUniqueId","myCommentResponses","html","commentService","processDocumentService","CommentThreadModel","documentUpdated","commentDate","currentChildDepth","allowResponse","commentStatus","canComment","addResponse","newResponse","newResponseDocIds","addingResponse","canDelete","lastUpdateUserId","saveResponse","commentType","parentId","commentThread","cancelResponse","CommentThreadConfiguration","CommentThreadConfigurationController","openCanCommentSecurityMatrix","openCanDeleteSecurityMatrix","openCanViewDeleteSecurityMatrix","ConditionEditor","ConditionEditorController","ConditionEditorModel","hideName","isReversingJavascript","_conditionEditorModelSelf","conditionBinding_id","showAdvanced","showAdvancedEditor","showBasic","resetCondition","aceLoaded","langTools","ace","processCompleter","getCompletions","session","pos","score","meta","processCompleter2","getLine","uniqueNames","GetFieldUniqueNames","addCompleter","myCondition","conditionTags","ConfigurationFileUpload","ConfigurationFileUploadController","documentsAllowed","hideUpload","fileUploadDownloadService","acceptsText","documentDtos","uploadCallback","heading","yesClick","noClick","setDefaults","openModal","modalInstance","backdrop","$formatters","template","bind","point","decimalSplit","intPart","decPart","intDiv","lastComma","res","ConditionBlockDocumentation","ConditionBlockDocumentationController","setCondition","ConditionDocumentation","ConditionDocumentationController","CreatePdfActionBlockDocumentation","CreatePdfActionBlockDocumentationController","PdfSectionDocumentation","PdfSectionDocumentationController","pdfSection","setPdfBinding","isPdfBinding","isStaticDocument","isUserSelectedDocuments","pdfBinding","pdfBindingId","sectionType","SendEmailActionBlockDocumentation","SendEmailActionBlockDocumentationController","workflowEmailConfigurations","setEmailConfiguration","StateBlockDocumentation","StateBlockDocumentationController","UserActionBlockDocumentation","UserActionBlockDocumentationController","ValidateBlockDocumentation","ValidateBlockDocumentationController","setValidateConditions","validateConditions","validationConditionIds","DocumentConfiguration","DocumentConfigurationController","allowMultipleFiles","createMissingAvailableDocuments","selectAllDocumentTypes","unSelectAllDocumentTypes","documentSecurityChanged","documentTypeCodeGroup","currentSystemCode","myAvailableDocumentTypes","newAvailableDocType","documentSecurity","canSecureDocumentSecurityMatrix","canDownloadSecureDocumentSecurityMatrix","securedDocumentLabel","DocumentConfigurationComponent","DocumentConfigurationComponentController","entityWithConfig","docConfigTypePropertyName","docConfigPropertyName","docConfigIdPropertyName","documentConfigurationTypeChanged","existingDocConfigChanged","docConfigTypeInternal","getDocConfigType","getDocumentConfig","documentConfig","newDocConfig","attrHandler","which","$eval","enterKeyTriggers","EnumDropDown","EnumDropDownController","getEnums","reportName","reportData","$modelValue","ExcelPlus","createFile","vals","writeRow","shifts","rowspan","aggregateInfo","isLink","tables","table","columnList","saveAs","ExpressionGroup","ExpressionGroupController","ExpressionGroupModel","setGroup","find","removePart","checkGroup","addGroupExpression","expressionGroup","addTreeItemToTreeItemExpression","addStepExpression","addTreeItemToConstantExpression","getType","funcNameRegex","getDragValue","FileDownload","FileDownloadController","filename","downloadSecureDocument","securedDocKey","FileUpload","FileUploadController","reviewConfigurationUniqueId","processEventConfigUniqueId","changeCallback","titleTagDescription","addDocument","showUploadModal","editDocument","internalDocumentIds","getUniqueId","getDocumentConnections","documentToDelete","docsHiddenFromModal","modalModel","focusTrigger","AddFeaturesConfiguration","AddFeaturesConfigurationController","addAttribute","gisDatastoreChanged","deleteAttribute","stores","setupGisDatastoreAttributes","currentGisDatastoreAttributes","newAttr","BufferConfiguration","BufferConfigurationController","DrawFeatureConfiguration","DrawFeatureConfigurationController","drawFeature","DrawStyleConfiguration","DrawStyleController","FilterFeatureCollectionConfiguration","FilterFeatureCollectionConfigurationController","GisActionBlockEsriQueryConfiguration","GisActionBlockEsriQueryConfigurationController","GisActionValidationConfiguration","GisActionValidationConfigurationController","GisFieldMappings","GisFieldMappingsController","gisFieldMappings","includedFields","addFieldMapping","fieldMapping","GisMap","editable","fullscreenControl","setView","setUpLegend","legend","getPosition","layersControl","control","leafletLayer","displayHtml","eachLayer","warsId","addBaseLayer","setUpLayers","addTileLayer","addEsriBaseMap","addEsriVector","tileLayer","attribution","esri","basemapLayer","esriLayerName","Vector","basemap","GisQueryGrid","GisQueryGridController","queryGridOverride","runQueries","zoomToRow","includedMapFunction","mapFunctionConfiguration_id","geojson","onEachFeature","popup","bindPopup","placeHolderId","combinedResults","placeholderDict","placeHolderGeo","textValue","markerColor","iconUrl","Icon","Default","mergeOptions","shadowUrl","iconSize","iconAnchor","popupAnchor","shadowSize","tempResult","tempRow","popUpRows","esriField","includedQueryField","addData","metadataNumber","coords","geoJsonFeatures","parsedGeoJson","GisWherePredicationCollection","GisWherePredicationCollectionController","esriMapServiceLayer","addPredicate","removePredicate","placeHolderChanged","newPredicate","javascriptTransformer_id","InputOutputCollection","InputOutputCollectionController","collection","isOutput","addTextInput","GisWorkflowFunction","GisWorkflowFunctionController","MapFunction","MapFunctionController","mapFunction","SelectGeometryFunction","SelectGeometryFunctionController","selectGeometry","TextPlaceHolderFunction","TextPlaceHolderFunctionController","go","ZoomToCodeDropDownFunction","ZoomToCodeDropDownFunctionController","codeChanged","loadDropDown","selectedCode","placeHolderDict","geoJsonLayer","dropdownCodeGroup_id","dropdownOptions","ZoomToTextbox","ZoomToTextboxController","zoom","SetPropertyConfiguration","SetPropertyConfigurationController","TrimConfiguration","TrimConfigurationController","newAttribute","InnerExpressionGroup","InnerExpressionController","InnerExpressionModel","statusGroupService","contextWithOnlyAnyAndAll","valueAggregateFunctionContext","fieldAggregateFunctionContext","subTypes","statusGroup","valueAggregateFunction","isValueFieldList","aggregateFunction","isFieldList","loadTreeItemVariables","valueTreeItem_id","ti","valueTreeItem","treeItemOperationParameterSet_id","operationSet","getDragExpressionByScope","setCodeGroup","treeConfigItem","paramSet_1","operationParameters","treeItemOperationParameterSet","setDropdownContext","onDropTreeItemToTreeItem","paramSet_2","valueTreeItemOperationParameterSet","onDropCalculationInput","onDropStep","getTreeItemParentName","useDropDown","parentExpression","ConfigureRow","moveStepAvailable","isMultiStep","ConfigureRowController","toggleShowFormSchema","showFormSchema","Field","FieldController","formDataChange","formSectionUniqueId","manageScheduledResourceService","ngAuthSettings","subTypeService","configurationCacheService","metaDataReadOnly","FieldModel","inline","center","latitude","longitude","eventName","latLng","fieldChanged","extfieldChanged","metadataObj","setListMetadata","localTimeZone","GetTimeZoneNameWithoutDaylightOrStandard","pattern","decodeUserDelegate","warsUserId","currentValue","mask","clearOnDisplayConditionHide","$watchCollection","watchField","appWatch","newVal","stepFunctions","customFunction","types","excludes","processId_1","processNames","autoCompleteValue","reloadDropdownCodes","reloadRadioButtonOptions","flatDto","statusCodeUniqueId","processStates","reloadScheduledResourceCodes","updatedField","hasUpdated","radioButtonOptions","scheduledResourceConfiguration","runCustomFunction","runPostSaveEvents","processAction_id","calculationValue","autoCompleteSelected","fieldChangedInternal","apiGridConfiguration_id","initiatePayment","windowObjectReference","pollTimer","closed","paymentWindowClosed","checkAvailability","conflictMessage","runGisWorkflow","gisActionWorkflowOverride","scrubNumericValue","numberBeforeDecimal","encounteredDecimalPoint","indexAfterDecimal","len","currentChar","userServiceName","clearUserPicker","gotoProcess","getColumnName","customDivLoaded","beginDate","endDate","allFieldUpdates","selectedState","combinedName","FieldSection","FieldSectionController","FieldSectionModel","FormCustomCodeConfiguration","FormCustomCodeConfigurationController","getCustomButtons","buttonChanged","addPageLoad","addPageUnload","addButtonClickHandler","addCustomFunction","insertFunctionCall","removeFunction","selectFunction","insertFieldSet","insertFieldGet","addCodeRow","getRowField","setRowField","loopThruRows","getFilteredFields","removeRow","removeAllRows","addJQuerySelector","insertGetCodeValue","insertSaveFeature","insertRemoveFeature","insertGetNewFeature","insertGetFeatures","addUrl","removeUrl","formCustomCodeConfigurationControllerSelf","processCodes","gisDataStores","codeType","formCodeFunctions","insert","selectedFunction","setValue","fieldsAvailableForSet","customDivs","rowsToAdd","setIsListButton","isListButton","gisDataStore","FormList","FormListController","internalAddForm","editForm","internalEditForm","childForms","foundFormData","formDatas","formDataChildren","modalSerivce","FormSectionController","u","InnerFormSection","ListSection","MultiAddSectionController","ListSectionModel","selectRow","editRow","isEditRowReadOnly","addListItem","docIdsRemoved","featuresRemoved","getDocumentDisplayString","document_1","MultiStepForm","MultiStepFormController","MultiStepFormModel","deleteStep","deletedStep","previous","currentTarget","blur","selectAndScrollToStep","stepSort","addStep","ReportForm","ReportFormController","ReportFormModel","SinglePageForm","SinglePageFormController","SinglePageFormModel","ApiGridSection","ApiGridSectionController","ApiGridSectionModel","apiGridConfigurationChanged","ManageAssignments","ManageAssignmentsController","configurationCache","assigmentConfigurationService","addAssignmentToInclude","getAssignments","clearUser","processClaimDefinitions","setCanAssign","selectedUserId","processAssignments","assignmentConfiguration","assignmentSectionClaims","assignmentSection","processClaimUniqueId","noRestrictionMatches","assignedUserId","unAssignConditionExists","deleteAssignmentInternal","possibleAssignments","assignmentChecks","anyConditionsPassed","getFailureMessage","firstCheck","isAdding","claimToAdd","newSectionClaim","processClaim","assignConditionExists","addAssignmentInternal","assignmentSections","assignableClaimUniqueIds","canAddAssignment","isExternal","ManageCommentThread","ManageCommentThreadController","newCommentDate","saveNewComment","addNewComment","cancelNewComment","documentUpdatedInternal","addingNewComment","newComment","newCommentDocIds","commentThreads","threads","ManageDocuments","ManageDocumentsController","documentModel","manageDocumentSelectionService","manageCanUploadDocumentSecurityMatrix","manageCanSelectDocumentSecurityMatrix","manageCanSelectSecureDocumentSecurityMatrix","manageCanEditIsSecureDocumentSecurityMatrix","documentChecked","editIsSecureDocument","sortGridBy","setupData","setDocumentsForGrid","sectionDocuments","docSection","canAddDocuments","allowEditOfSecuredDocumentColumn","currentDoc","documentSelections","selectionOrder","manageDocumentsConfiguration","canUploadDocumentsSecurityMatrix","canSelectDocumentsSecurityMatrix","canSelectSecureDocumentsSecurityMatrix","canEditIsSecureValueSecurityMatrix","beforeChange","loadDocumentTable","ManageForm","ManageFormController","ManageFormModel","addAssignmentSection","addSection","addTimeTrackers","addDocuments","documentSection","addFieldHistory","addEmbeddedFormSection","addApiGrid","addNotificationsSent","addProcessData","processDataSection","manageProcessDataConfiguration","processEventSection","manageProcessEventConfiguration","addRelatedProcess","addStatuses","manageStatusConfiguration","autoExpand","manageStatusType","addThreadedComments","newManageSection","sectionDisplayType","ManageSection","ManageSectionController","deleteSection","ms","loadEmbeddedForm","groupDeleteConfirmation","show","deleteGroupClicked","embeddedForm","GageBinding","GageSector","levelColorsGradient","ManageTimeTrackerSection","ManageTimeTrackersSectionController","addTimeTracker","trackerChanged","setUpGageBindings","processLevelTimeTrackerContainers","enableProcessWatch","processWatcher","disableProcessWatch","gageBindings","myTimeTrackerContainers","clocks","clock","clockValues","timeTrackerUniqueIdentifier","timeTrackerConfig","tConfig","newGageBinding","timeElapsedLastCalculated","sectors","previousHighValue","tp","sector","hexColor","lo","hi","colSize","newTimeTrackerId","tracker","manageSection_id","manageClockConfigurations","ProcessDataSection","ProcessDataSectionController","variableTypeService","getListValues","getListValue","viewHistory","propsToAdd","processDataViewConfigurations","addSchemaProperty","configsToRemove","newViewConfig","processData","topLevelSchemaProperty","listItemSchemaProperty","rowObjects","rowObject","getTopLevelListSchemaProperty","getNonListSchemaPropertyById","listItemSchemaPropertyId","currentTopLevelSchemaProperty","ProcessEventSection","ProcessEventSectionController","ProcessEventSectionModel","addingEvent","selectableProcessEventConfigurations","spc","reso","manageProcessEventConfigResos","processEventConfiguration_id","selectableProcessEventConfiguration","resoId","buttonOrder","isSytemLevel","orderByName","processConfigs","processTypeName","myProcessConfiguration","maxOrder","getMaxOrder","specWithoutOrder","spec","processEventConfigurationChanged","processEventConfigurationReso","manageProcessEventConfiguration_id","processEventReso","processEventClicked","processEventAction","newProcessEventDto","NotificationType","Comment","saveEvent","ProcessEventConfigUniqueId","DocumentIds","processEventDto","processEvents","cancelEvent","openDocumentModal","documentForModal","sortProcessEventConfigurations","ReviewSection","ReviewSectionController","ReviewSectionModel","dateRangeService","updateReviewDocumentHandlers","reviewSetIndex","reviewSets","reviewSet","reviewIndex","addUpdateReviewDocumentsHandler","showAddReview","currentReviewSet","setReviewSet","getDocIds","reviewerSelected","selectedReviewUserId","userpickerBlurred","updateErrorMessage","typedInUserValue","reviewConfigurationUniqueIdentifier","getInitialReviewTypeValue","cancelAddReviewer","selectedReviewType","addReviewer","hasOpenReview","closedDate","isComplete","reviewConfigurationChanged","commentDateRange","docs","StatusHistory","StatusHistoryController","getStatusExpandCollapseClass","getStateExpandCollapseClass","expandStatus","expandState","isStatusExpanded","isStateExpanded","hideCommentsAndAttachments","showCommentsAndAttachments","showDocumentsAndComments","statusExpanded","stateExpanded","statusHistories","myStateHistory","securityMatrixForRespondingToComments","ngModelCtrl","round","num","pow","precision","formatPrecision","formatViewValue","$isEmpty","lastValidValue","isUndefined","NUMBER_REGEXP","$setValidity","minValidator","maxValidator","$viewValue","$provide","decorator","$delegate","onblur","dateFilter","identifier","titletagdescription","disabled","replaceWith","popupOpen","openPopup","transformedInput","alphaUnderscoreOnly","alphaNumericUnderscore","keyCode","selectionEnd","cursorPosition","keyup","ObjectQueryRestrictions","recursionHelper","ObjectQueryRestrictionsController","ObjectSchemaController","schemaToMapTo","propertySelected","getMappingName","mappedPropertySelected","mappedPropetrySelected","setSelectedProperties","getMappedId","mappedProperty","ObjectSchemaEditor","ObjectSchemaEditorController","readOnly","reloadSchema","hideIsRequired","hideIsIndexed","defaultIsIndexedValue","defaultIsRequiredValue","allowTieToSystemVariable","allowTieToProcessName","allowList","ObjectSchemaEditorModel","addProperty","addListProperty","newTopLevelSchemaProperty","propertySchema","reloadSchemaFunction","systemVariableObjectSchema","ProcessConfigurationTreeController","reloadConfig","nodeSelectedCallback","includedFormIds","inputParameterSchema","isReporting","tree","treeData","show_only_matches","show_only_matches_children","searchString","changed","li_attr","warsInfo","applySearch","treeInstance","jstree","encodeStringifiedTreeItem","stringified","clearAfterRetrival","localStorageValue","decodedValue","restrictionsDefined","systemSectionsAllowed","processSectionAllowed","treeLoaded","loadProcessConfiguration","createTreeData","setIncludedSections","internalSplit","dataLoadPromises","isProcessTopLevelAllowed","relatedClaimsDefer","processConfigDefer","isProcessSectionAllowed","processQueryPromise","queryConfigs","processQueries","isSystemTopLevelAllowed","systemLevelPromise","variableSchema","isSystemSectionAllowed","systemLevelCodePromise","systemQueryPromise","systemQueries","inputTopNode","getTopNode","setSchemaNodes","systemTopNode","systemPlaceholdersTopNode","setPlaceHolderValues","systemCalculationsTopNode","orderedSystemCalculations","constructTreeCalcuationNode","systemCodeGroupsTopNode","orderedSystemCodeGroups","codeGroupTopLevel","constructTreeNodeForComplexGroupCode","systemConstantsTopNode","orderedSystemConstants","constructTreeConstantNode","systemClaimGroupTopNode","setClaimGroupNodes","systemClaimTopNode","orderedSystemClaims","i_1","systemClaimOptions","systemClaimItemStr","getTreeItemString","systemClaimNode","getNode","staticDocumentsTopNode","setStaticDocumentNodes","systemEmailGroupsTopNode","setEmailGroupNodes","systemVariablesTopNode","systemQueriesTopNode","setQueryNodes","systemTimeTrackerTopNode","orderedSystemTimeTrackers","i_2","systemClockOptions","systemClockStringified","systemTimeTrackerNode","processTopNode","placeholdersTopNode","calculationsTopNode","orderedCalculations","calc","timeTrackerTopNode","orderedProcessTimeTrackers","tt","i_3","clockOptions","clockStringified","timeTrackerNode","claimTopNode","orderedProcessClaims","i_4","claimItemOptions","claimItemStr","claimNode","relatedClaimTopNode","relatedClaimProcessTypeIndex","myRelatedClaimProcessTypes","relatedClaimIndex","relatedClaim","relatedClaimName","relatedClaimItemOptions","relatedClaimItemStr","relatedClaimNode","codeGroupsTopNode","orderedProcessCodeGroups","codeGroupNode","conditionsTopNode","orderedProcessConditions","cond","constructTreeConditionNode","constantsTopNode","orderedProcessConstants","staticDocumentTopNode","processEmailGroupsTopNode","formTopNode_1","formNode","steps","stepNode_1","sectionProperty","groupNode_1","fieldProp","fieldNode","constructTreePropertySchemaNode","interProcessApiTopNode","myInterProcessApis","currentInterProcessApi","apiTopNode","myOutputSchema","queryTopNode","processDataTopNode","constructTreeQueryDataNode","queryConfigurationId","queryDataOptions","queryDataStringified","constructTreeNodeForComplexCode","constructTreeNodeForComplexUser","constructTreeNodeForComplexStatus","constructTreeNodeForComplexState","constructTreeNodeForComplexScheduledResource","constructTreeNodeForComplexDateTime","topLevelString","getTreeItemStringWithAllParmeters","isPlaceholderList","topLevelNode","shortDescriptionNodeString","shortDescriptionNode","longDescriptionNodeString","longDescriptionNode","userTopLevelString","userTopLevelNode","userNameString","usernameNode","firstNameString","firstNameNode","middleNameString","middleNameNode","lastNameString","lastNameNode","fullNameString","fullNameNode","emailString","emailNode","companyString","companyNode","phoneNumberString","phoneNumberNode","positionString","positionNode","externalSystemIdentifierString","externalSystemIdentifierNode","claimsString","claimsNode","claimsWithValues","userClaimValueTopLevel","claimValuesString","claimValuesNode","effectiveDateNodeString","topLevelCodeString","topLevelCodeNode","beginDateString","beginDateNode","endDateString","endDateNode","isBookedString","isBookedNode","shortDateString","shortDateNode","longDateString","longDateNode","shortDateShortTimeString","shortDateShortTimeNode","shortDateLongTimeString","shortDateLongTimeNode","longDateShortTimeString","longDateShortTimeNode","longDateLongTimeString","longDateLongTimeNode","shortTimeString","shortTimeNode","longTimeString","longTimeNode","constructTreeClaimGroupNode","constructTreeEmailGroupNode","constructTreeDocumentNode","setQuerySchemaNodes","topNode","queryConfigId","itemIcon","queryConfig","queryNode","claimGroupNode","emailGroupNode","staticDocumentNode","glyphicon","opened","treeItemStringified","getIconForVariableType","getIconForFieldType","ondragstart","draggable","treeItemOptions","treeConfigurationItem","constructTreeCodeGroupNode","codeGroupStringified","conditionStringified","calculationStringified","getPlaceholderTreeItemString","createNewPlaceHolderTreeNode","placeHolderString","addNewPlaceholderTreeNode","newPlaceholderNode","addPlaceholderUserNodes","topNodeName","addPlaceholderReviewNodes","reviewTopLevelNode","reviewTypeLevelNode","assigneeNode","assignorNode","addPlaceholderAssignmentNodes","assignmentTopLevelNode","addPlaceholderUserActionNodes","userActionTopLevelNode","addNewPlaceholderDateTimeNodes","addPlaceholderProcessEventNodes","addNewCodeGroupTreeNode","topLevelOptions","dateOptions","longDateOptions","shortDateShortTimeOptions","shortDateLongTimeOptions","longDateShortTimeOptions","longDateLongTimeOptions","shortTimeOptions","longTimeOptions","setCodeGroupValues","formattingTopLevel","currentStatusNode","currentSubTypeNode","currentStateNode","ProcessFileDownload","ProcessFileDownloadController","linkOnly","iconOnly","FormStepDisplayOnly","FormStepDisplayOnlyController","getConditionNameById","QuickLink","QuickLinkController","SchemaPropertyController","propertyChangedCallback","SchemaPropertyModel","setPropertyChanged","propertyTypeChanged","isAdded","propertyChangedFunction","loadListVariables","listSystemVariables","SecurityMatrix","SecurityMatrixController","hideReuse","SecurityMatrixModel","claimService","statusService","relatedProcessClaims","stateToStatusDictionary","statusToStateDictionary","claimsAndStatesLoaded","isMatrixRebuilt","statusFilter","NO_SUBTYPE","NO_STATE","NO_CLAIM","PROCESS_INITATOR","alwaysShowSecurityMatrixTextHorizontal","excludedSecurityMatrixClaimsUniqueIds","showHideClaimLinks","claimFilterFunction","matrixTypeString","systemClaims","getProcessConfigurationInfo","relatedClaimsProcessed_1","pertinentRelatedClaimUniqueIds","pertinentRelatedClaims","showTree","parseMatrix","selectedSubTypeId","securityMatrixChanged","getClaimValueName","claimTreeItems","claimBindings","filterReusableSecurityMatrices","isChanged","claimsEnumerable","this_1","isStatus","matrixChanged","selectAllClaim","saveMatrixChange","overrideStatusConfirm","statusId","overrideStatusId","isOverriding","isCollapsing","confirmOverride","cancelOverride","undoOverrideStatusConfirm","toggleAlwaysShowSecurityMatrixTextHorizontal","sortName","statusOverrideName","overrideStatus","undoOverrideStatus","pasteState","copyObj","copyStateId","pasteSubType","copySubTypeId","isOverridden","conditionChanged","isAlwaysVisible","addCondition","hideClaim","showAllClaims","saveHiddenClaims","SetFieldData","SetFieldDataController","allowListOnly","onSourceDragOver","onSourceDrop","onDestinationDragOver","onDestinationDrop","sourceTreeItem","getTreeItemDisplay","detailedName","destinationTreeItem","SetListData","SetListDataController","addSetDataOperation","TreeItemLookup","TreeItemLookupController","UserView","UserViewController","WorkflowWorkspace","WorkflowWorkspaceController","BreezeDeleted","defaultValue","isUndefinedNullOrWhiteSpace","tel","city","ext","ReadableFileSize","displayString","end","$sce","trustAsHtml","trustAsResourceUrl","Filter","utcDateString","BaseModalController","dismissModal","jQuery","css","ActiveProcessTypesController","BatchJobDashboardController","ChangeSystemTimeController","offSetDto","timeDurationOption","timeDurationValue","changeDateTime","clearDateTimeOffset","ActivateSystemConfigurationController","activateInternal","systemConfig","activeSystemConfig","ApiConfigurationController","ApiKeyController","BatchJobConfigurationController","CalculationConfigurationController","ConfigurationController","EsriQueryConfigurationController","GisActionWorkflowConfigurationController","GisDatastoreQueryConfigurationController","JavascriptTransformerController","LayerConfigurationController","LegendConfigurationController","MapConfigurationController","MapConfigurationPreviewController","MapConfigurationsController","MapFunctionConfigurationController","QueryGridConfigurationController","ManageClaimGroupsController","ManageFormContainerAssociationsController","ManageReviewGroupsController","ManageScheduledResourcesController","ManageStatusesController","ManageSubTypeGroupsController","ManageSystemActionsController","ManageSystemCodesController","PaymentConfigurationController","ApiActionsController","ApiGridConfigurationController","AutoCompleteConfigurationController","autoCompleteConfigurationService","DataLinkConfigurationController","dataLinkService","addIndex","filterText","dataLinks","dataLink","item1TreeItem_id","item1TreeItem","orderHelper","item2TreeItem_id","item2TreeItem","addDataLink","removeDataLink","onItem1DragOver","onItem1Drop","onItem2DragOver","onItem2Drop","filterMethod","lowerCaseFilterText","systemDocumentConfig","addDocumentConfig","selectedConfig","EmailSystemActionConfigurationController","ExternalApiConfigurationController","FormConfigurationController","FormContainerController","GisDataStoreMetadataMappingController","gisDatastoreMetadataMappingService","InterProcessApiConfigurationController","interProcessApis","loadOtherProcessSchemaProperties","loadOtherProcessCalculations","addInterProcessApi","addOutputMapping","editInterProcessApi","deleteInterProcessApi","deleteOutputMapping","outputMapping","getOutputSchemaProperties","selectedInterProcessApi","newApi","outputSchema_id","myOutputMappings","inWorkProcessConfig","otherProcessSchemaProperties","otherProcessCalculations","MapConfigurationOverridesController","MapToSystemStatusAndStatesController","PdfGenerationConfigurationController","resizeId","resizeFunc","clearTimeout","ProcessActionsController","newProcessActionSelected","ProcessClaimsAssignmentConfigurationController","claimsAssignmentConfigurationService","ProcessClaimsConfigurationController","ProcessConditionsController","ProcessConfigVersionController","ProcessDataController","ProcessFormsConfigurationController","ProcessHeaderConfigurationController","ProcessSecurityController","processConfigurtaionService","ProcessSubTypesConfigurationController","ProcessTypeController","RelatedClaimProcessTypeController","ReviewConfigurationController","TimePeriodConfigurationController","WorkflowConfigurationController","ProcessEventConfigurationController","SystemDocumentController","addNewDocumentType","ConstantConfigurationController","ContentPageController","ContentPagesController","DataSourceConfigurationController","DocumentationController","EditableWebPageController","EmailNotificationController","GisDatastoreController","HeaderFooterController","HolidaySetConfigurationController","ImpersonationController","impersonate","JsonDictionaryStoresController","LandingPageConfigurationController","LayoutController","timeoutService","ManageClaimsController","ManageContentController","ManageEmailGroupsController","ManageExtensibleComponentController","ManageSecurityMatrixController","ManageStaticDocumentsController","ManageUsersController","MenuConfigurationController","menuConfigurationService","AddFormModalController","AddFormSectionController","listVariables","$modalInstance","yesClicked","noClicked","dismiss","ContentPageProcessLinkModalController","ContentPageStaticLinkModalController","DeleteModalController","attemptRecursiveDelete","attemptRecursiveDeleteInternal","EditClaimModalController","EditEmailAddressModalController","EditFieldController","manageStaticDocumemtsService","EditScheduledResourceModalController","EditSystemCodeModalController","FileUploadModalController","canSave","documentMetadataModel","myId","documentAccepts","documentTypeContext","showDocumentTypeDropDown","areInputsDisplayed","triggerHandler","canSecureDocment","FormChangeModel","FormChangeModalController","destinationFormChanged","destinationForm","destinationStep","orderedFormSections","formSectionId","formSectionObjectSchemaId","originalFormId","newFormId","FormGridModalController","isSaveDisabled","HistoryModalController","historyService","historyItems","addMissingDocumentsToProcessDto","canDownloadSecureDocument","canDownloadDocument","HolidayModalController","LandingPageConfigurationSingleInstanceModalController","ProcessSubTypeModalController","RepeatingDocumentViewModalController","SecurityMatrixModalController","UserActionModalController","getValidationMessages","resetEffectiveDate","transientUserActionDto","ViewSecurityMatrixModalController","flatRowsToUse","filterRows","criteria","statusFilterText","authorityFilter","combineLikeRoles","securityMatrixViewDto","mergedRows","flatRows","statusOrState","flatMergedRows","authority","AddEditStatusModalController","AssignClaimSettingsModalController","otherUserTreeItem_id","userTreeItem","BookResourceSettingsModalController","schemaPropertyDtos","CalculateSettingsModalController","CalculateSettingsModel","calculationChanged","resultSchemaPropertyId","ChangeStateSettingsModalController","statusChangeInternal","ConditionSettingsModalController","CopySettingsModalController","updateSchemaPropertyIds","onListPropertyDragOver","onListPropertyDrop","onPropertyToUpdateDragOver","onPropertyToUpdateDrop","hydrateSchemProperties","listPropertySchemaPropertyId","listPropertySchemaProperty","propertyToUpdateSchemaPropertyId","propertyToUpdateSchemaProperty","relatedProcessSchemaPropertyId","relatedProcessSchemaProperty","CreatePdfSettingsModalController","manageStaticDocumentService","addNewPdfSection","isSectionTypePdfBinding","isSectionTypeStaticDocument","isSectionTypeUserDefinedDocument","isSectionTypeFormDocument","isSectionTypeProcessVariableDocument","filterManagedSections","managedForm","loadManagedDocuments","managedForms","managedSections","documentFields","topLevelDocuments","listDocuments","documentProcessDataVariables","newSection","myPdfSections","GotoSettingsModalController","GotoStateSettingsModalController","originalClicked","previousClicked","previousUserActionClicked","previousUniqueUserActionClicked","gotoPreviousState","gotoPreviousUserActionState","gotoPreviousUniqueUserActionState","gotoOriginalState","MessageSettingsModalController","OutputOrderSettingsModalController","validationMessages","orderedToBlocks","ProcessActionSettingsModalController","processActionChanged","openOutputOrderModal","RemoveResourceSettingsModalController","ReturnFromProcessActionSettingsModalController","SecurityMatrixConditionModalController","selected","SendEmailSettingsModalController","changeHasSecurity","securityMatrixInfoLoaded","hasSecurity","SetDataSettingsModalController","deleteSetDataOperation","StateSettingsModalController","StatusChangeSettingsModalController","statusGroupsDto","dropDownOptions","currentStatusCodeId","SystemActionSettingsModalController","UserActionSettingsModalController","buttonNameSameAsWorkflowBlockName","nameChanged","addNewFormValidation","deleteFormValidation","placementFormChanged","placementForm","userActionPlacementFormId","loadFormSections","backdatingSecurityMatrixId","backdatingSecurityMatrix","futureDatingSecurityMatrixId","futureDatingSecurityMatrix","userActionPlacementFormSectionId","manageSections","userActionPlacementManageSectionId","ValidateSettingsModalController","YesNoOutputSelectionModalController","NotificationSubscriptionsController","ObjectQueryController","ObjectQueryFormController","PaymentWindowController","ProcessController","ReportProcessController","QueryConfigurationController","SiteConfigurationController","CleanDatabaseController","cleanDatabase","UserAdministrationController","savedSuccessfully","registerData","externalAuthData","externalAccessToken","familyName","givenName","imageUrl","startTimer","timer","redirectUrl","registerExternal","errors","modelState","providerConfiguration","hasProviderConfiguration","authenticationTypes","authExternalProvider","redirectUri","externalProviderUrl","$windowScope","login","authCompletedCB","fragment","externalData","external_access_token","obtainAccessToken","error_description","registration","password","confirmPassword","signUp","saveRegistration","tokensManagerService","refreshTokens","getRefreshTokens","deleteRefreshTokens","tokenid","$injector","authInterceptorServiceFactory","_request","SIGNAL_R_CONNECTION_ID","Authorization","_responseError","authServiceFactory","_authentication","useRefreshTokens","_externalAuthData","_createLocalStorageObject","tokenResponse","localStorageData","access_token","expires","_logOut","_fillAuthData","_providerLogin","refreshToken","_refreshToken","Content-Type","refresh_token","_obtainAccessToken","_registerExternal","registerExternalData","_redirectUrl","logOut","fillAuthData","tokenManagerServiceFactory","_getRefreshTokens","_deleteRefreshTokens","blockUIConfig","blockBrowserNavigation","requestFilter","$compileProvider","debugInfoEnabled","serverMessagesInterceptor","requestTransformerProvider","requestTransformer","$get","transformRequest","unshift","common","$routeProvider","ensureUserIsAuthenticated","auth","when","redirectTo","otherwise","current","eventObj","$$path","geom","lineclip","buildFeature","clipPolygon","outRings","clipped","polygonclip","timeString","stringLength","Collections","defaultCompare","defaultEquals","defaultToString","makeString","toret","has","reverseCompareFunction","compareFunction","_hasOwnProperty","Dictionary","toStrFunction","nElements","toStr","pair","ret","previousElement","array","name_1","values","name_2","name_3","isEmpty","SVGElement","getTransformToElement","toElement","getScreenCTM","inverse","multiply","subjectString","lastIndex","padLeft","padString","padRight","fiscalYear","delCount","newSubStr","stdTimezoneOffset","jan","jul","dst","msCrypto","includes","searchElement","fromIndex","sameValueZero","TypeError","points","codeB","lastCode","codeA","bitCode","part","intersect","edge","prev","prevInside","inside","what","ax","arrayToAdd","Code","getCode","injector","getFeatures","saveFeature","getNewFeature","process_id","gisDataStoreId","createGeoJson","Helper","callFunction","getProcess","setField","getEnumeratedRowValue","setEnumeratedRowValue","getRowValue","rowCallback","counter","findReferences","catalog","$id","resolveReferences","$values","getDecycledCopy","nu","decycle","TestAutoVersionAndActivateController","allowVersionAndActivation","processConfigIds","getInWorkProcessConfigs","versionAndActivate","processConfigSelectionChanged","batchVersionAndActivate","TestController","includeNativeProcesses","includeConvertedProcesses","ajaxPostException","javascriptException","restartApplicationPool","clearReportData","clearAndRegenReportData","regenReportData","clearProcessExecutionData","clearProcessCache","getProcessInfo","getProcessJson","testAjaxPostException","cody","jump","unloadAppPool","getExecutionProcessTypeId","selectedProcessType","getReportProcessTypeId","selectedRepordDataProcessType","selectedProcessId","vm","includeNativedData","includeConvertedData","processJson","TestMemoryController","processInfo","beforeProcessInfo","testMemoryFootprint","afterProcessInfo","clearTestItemsFromMemory","TestProcessEventController","setProcessEventToCurrentValue","rollback","getCurrentProcessEventMaxId","processEventId","rollbackProcess","TestService"],"mappings":"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AEF34L,YAAa,yDACbklC,QAASuzJ,IAEZE,KAAK,sBAEF34L,YAAa,mDACbC,WAAY,8BACZilC,QAASuzJ,IAEZE,KAAK,0BACF34L,YAAa,yCACbklC,QAASuzJ,IAEZE,KAAK,mBACF34L,YAAa,gDACbklC,QAASuzJ,IAEZE,KAAK,qBACF34L,YAAa,kDACbklC,QAASuzJ,IAEZE,KAAK,6BACF34L,YAAa,wEAEbklC,QAASuzJ,IAEZE,KAAK,oBACF34L,YAAa,uDACbklC,QAASuzJ,IAEZE,KAAK,8BACF34L,YAAa,6CACbC,WAAY,sCACZilC,QAASuzJ,IAEZE,KAAK,sBACF34L,YAAa,qCACbC,WAAY,8BACZilC,QAASuzJ,IAEZE,KAAK,uBACF34L,YAAa,sCACbC,WAAY,+BACZilC,QAASuzJ,IAEZE,KAAK,sBACF34L,YAAa,qCACbC,WAAY,8BACZilC,QAASuzJ,IAEZE,KAAK,iBACF34L,YAAa,mCACbC,WAAY,iCAEf04L,KAAK,uBACF34L,YAAa,+BACbklC,QAASuzJ,IAEZE,KAAK,yBACF34L,YAAa,8CACbC,WAAY,sCACZilC,QAASuzJ,IAEZE,KAAK,uCACF34L,YAAa,mCACbC,WAAY,sBAEf04L,KAAK,uBACF34L,YAAa,mCACbC,WAAY,oBACZilC,QAASuzJ,IAEZE,KAAK,mDACF34L,YAAa,mCACbC,WAAY,oBACZilC,QAASuzJ,IAEZE,KAAK,mEACF34L,YAAa,mCACbC,WAAY,sBAEf04L,KAAK,6CACF34L,YAAa,yCACbC,WAAY,4BAEf04L,KAAK,yEACF34L,YAAa,mCACbC,WAAY,sBAEf04L,KAAK,qJACF34L,YAAa,mCACbC,WAAY,sBAEf04L,KAAK,4BACF34L,YAAa,mCACbC,WAAY,sBAEf04L,KAAK,kCACF34L,YAAa,yCACbC,WAAY,4BAEf04L,KAAK,wBACF34L,YAAa,+BAEbklC,QAASuzJ,IAEZE,KAAK,sBACF34L,YAAa,iCACbC,WAAY,0BACZilC,QAASuzJ,IAEZE,KAAK,8BACF34L,YAAa,iCACbC,WAAY,0BACZilC,QAASuzJ,IAEZE,KAAK,oBACF3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","file":"wars-combined-internal.js","sourcesContent":["/// \r\nclass BaseEntity {\r\n entityAspect: breeze.EntityAspect;\r\n entityType: breeze.EntityType;\r\n public id;\r\n public lastUpdateUserName: string;\r\n public lastUpdateDate: Date;\r\n}","/// \r\n//# sourceMappingURL=IWorkflowBlock.js.map","/// \r\nmodule warsApp.models {\r\n export abstract class BaseWorkflowBlock implements IWorkflowBlock {\r\n\r\n private _logType: string = \"BaseWorkflowBlock\";\r\n\r\n public id: string;\r\n public componentId: string;\r\n public type: number;\r\n public isQuickLinkable: boolean;\r\n public workflowService: services.WorkflowService;\r\n\r\n public typeName: string;\r\n public label: string;\r\n public description: string;\r\n public isInitialBlock: boolean;\r\n\r\n public toBlocks: IWorkflowBlock[];\r\n public toBlockIds: string[];\r\n public statusCodeId: string;\r\n public processActionId: string;\r\n public insideExpandedProcessAction: boolean;\r\n\r\n public blockWidth: number;\r\n public blockHeight: number;\r\n public toolbarWidth: number;\r\n public toolbarHeight: number;\r\n\r\n public svgUrl: string;\r\n public svgWidth: number;\r\n public svgHeight: number;\r\n public svgScale: number;\r\n public svgToolbarScale: number;\r\n public svgHorizontalOffset: number;\r\n\r\n public svgAttributes: any;\r\n\r\n protected deleteImageElement: Snap.Element;\r\n protected settingsImageElement: Snap.Element;\r\n protected drawingInstance: models.WorkflowDrawingInstance;\r\n\r\n private blockAttributes: any;\r\n private outputType: string;\r\n\r\n public svgElement: Snap.Element;\r\n public standardLabel: Snap.Element;\r\n \r\n constructor(id: string, theType: number, label: string) {\r\n this.id = id;\r\n this.type = theType;\r\n this.typeName = WorkflowBlockManager.getWorkflowBlockNameByType(this.type);\r\n this.label = label;\r\n this.isQuickLinkable = false;\r\n\r\n this.blockWidth = 150;\r\n this.blockHeight = 150;\r\n\r\n this.toolbarWidth = 100;\r\n this.toolbarHeight = 75;\r\n\r\n this.svgHorizontalOffset = 0;\r\n\r\n this.blockAttributes = { opacity: 0};\r\n this.toBlocks = [];\r\n }\r\n\r\n protected drawEntireBlock(paper: Snap.Paper, coordinate: models.Coordinate): Snap.Element {\r\n // 10 px on each side is left for drop zones in between blocks\r\n var entireBlock = paper.rect(coordinate.x * this.blockWidth + 10, coordinate.y * this.blockHeight + 10, this.blockWidth - 20, this.blockHeight - 20);\r\n entireBlock.attr(this.blockAttributes)\r\n return entireBlock;\r\n }\r\n\r\n protected drawOptions(paper: Snap.Paper, coordinate: models.Coordinate) : void {\r\n var self = this;\r\n var iconWidth = this.getIconWidth();\r\n\r\n var deleteCoordinate = this.getDeleteCoordinate(coordinate);\r\n this.deleteImageElement = paper.image(\"./Images/Delete.svg\", deleteCoordinate.x, deleteCoordinate.y, iconWidth, iconWidth);\r\n this.deleteImageElement.attr({ \"data-class\": \"optionsImage\", \"data-id\": \"delete\" });\r\n this.deleteImageElement.click((evt) => {\r\n self.delete();\r\n });\r\n\r\n var settingsCoordinate = this.getSettingsCoordinate(coordinate); \r\n this.settingsImageElement = paper.image(\"./Images/Cog.svg\", settingsCoordinate.x, settingsCoordinate.y, iconWidth, iconWidth);\r\n this.settingsImageElement.attr({ \"data-class\": \"optionsImage\", \"data-id\": \"settings\" });\r\n this.settingsImageElement.click((evt) => {\r\n self.drawingInstance.configureWorkflowBlock(self);\r\n });\r\n\r\n this.hideOptions();\r\n }\r\n\r\n private getSvgScaledWidth(): number {\r\n return this.svgWidth * this.svgScale;\r\n }\r\n\r\n private getSvgScaledHeight(): number{\r\n return this.svgHeight * this.svgScale;\r\n }\r\n\r\n private getSvgToolbarScaledWidth(): number {\r\n return this.svgWidth * this.svgToolbarScale;\r\n }\r\n\r\n private getSvgToolbarScaledHeight(): number {\r\n return this.svgHeight * this.svgToolbarScale;\r\n }\r\n\r\n private getXPadding() : number {\r\n return (this.blockWidth - this.getSvgScaledWidth()) / 2;\r\n }\r\n\r\n private getYPadding(): number {\r\n return (this.blockHeight - this.getSvgScaledHeight()) / 2;\r\n }\r\n\r\n private getCenterPoint(gridCoordinate: models.Coordinate): Coordinate {\r\n var xOffset = (gridCoordinate.x * this.blockWidth);\r\n var yOffset = (gridCoordinate.y * this.blockHeight);\r\n return new Coordinate(this.blockWidth / 2 + xOffset, this.blockHeight / 2 + yOffset);\r\n }\r\n\r\n public setQuickLinkInfo(componentId: string, workflowService: services.WorkflowService) {\r\n this.componentId = componentId;\r\n this.workflowService = workflowService;\r\n }\r\n\r\n public getBottomPadding(): number {\r\n return this.getYPadding() - 20;\r\n }\r\n\r\n public getTopPadding(): number {\r\n return this.getYPadding();\r\n }\r\n\r\n public getLeftPadding(): number {\r\n return this.getXPadding() + this.svgHorizontalOffset;\r\n }\r\n\r\n public getRightPadding(): number {\r\n return this.getXPadding() - this.svgHorizontalOffset;\r\n }\r\n\r\n public draw(paper: Snap.Paper, coordinate: models.Coordinate): Snap.Element {\r\n var xOffset = (coordinate.x * this.blockWidth) + this.getXPadding() + this.svgHorizontalOffset;\r\n var yOffset = (coordinate.y * this.blockHeight) + this.getYPadding();\r\n\r\n var entireBlock = this.drawEntireBlock(paper, coordinate);\r\n var centerPoint = this.getCenterPoint(coordinate);\r\n\r\n this.standardLabel = paper.text(centerPoint.x, yOffset + this.getSvgScaledHeight() + 14, this.label);\r\n this.standardLabel.attr({ class: \"workflow-text\" });\r\n\r\n if (this.isQuickLinkable) {\r\n // Add hover to label to make it look like a link\r\n this.standardLabel.hover(\r\n () => {\r\n if (this.componentId) {\r\n this.standardLabel.addClass(\"link-hover\");\r\n }\r\n },\r\n () => {\r\n if (this.componentId) {\r\n this.standardLabel.removeClass(\"link-hover\");\r\n }\r\n });\r\n\r\n // Add click handler to quick link\r\n this.standardLabel.click(() => {\r\n if (this.componentId) {\r\n this.workflowService.quickLink(this);\r\n }\r\n });\r\n }\r\n\r\n this.svgElement = paper.image(this.svgUrl, xOffset, yOffset, this.getSvgScaledWidth(), this.getSvgScaledHeight());\r\n this.svgElement.attr(this.svgAttributes);\r\n\r\n this.drawOptions(paper, coordinate);\r\n\r\n var generatePdfGroup = paper.group(\r\n entireBlock,\r\n this.svgElement,\r\n this.standardLabel,\r\n this.deleteImageElement, this.settingsImageElement);\r\n\r\n return generatePdfGroup;\r\n }\r\n\r\n public drawForToolbar(paper: Snap.Paper): Snap.Element {\r\n var width = this.getSvgToolbarScaledWidth();\r\n var height = this.getSvgToolbarScaledHeight();\r\n\r\n var horizontalOffset = this.svgHorizontalOffset * (this.svgToolbarScale / this.svgScale);\r\n\r\n var verticalPadding = (this.toolbarHeight - height) / 2;\r\n var horizontalPadding = (this.toolbarWidth - width) / 2 + horizontalOffset;\r\n\r\n this.svgElement = paper.image(this.svgUrl, horizontalPadding, verticalPadding, width, height);\r\n this.svgElement.attr(this.svgAttributes);\r\n\r\n var label = paper.text(this.toolbarWidth / 2, height + verticalPadding + 13, this.label);\r\n label.attr({ class: \"toolbar-text\" });\r\n\r\n var generatePdfGroup = paper.group(this.svgElement, label);\r\n return generatePdfGroup;\r\n }\r\n\r\n public getDeleteCoordinate(coordinate: models.Coordinate): Coordinate {\r\n var iconWidth = this.getIconWidth();\r\n\r\n var xOffset = (coordinate.x * this.blockWidth) + this.getXPadding();\r\n var yOffset = (coordinate.y * this.blockHeight) + this.getYPadding();\r\n\r\n var x = xOffset + this.getSvgScaledWidth() - iconWidth / 2;\r\n var y = yOffset - (iconWidth / 2);\r\n\r\n return new Coordinate(x, y);\r\n }\r\n\r\n public getSettingsCoordinate(coordinate: models.Coordinate): Coordinate {\r\n var iconWidth = this.getIconWidth();\r\n\r\n var xOffset = (coordinate.x * this.blockWidth) + this.getXPadding();\r\n var yOffset = (coordinate.y * this.blockHeight) + this.getYPadding();\r\n\r\n var x = xOffset - iconWidth / 2;\r\n var y = yOffset - (iconWidth / 2);\r\n\r\n return new Coordinate(x, y);\r\n }\r\n\r\n public hoverStart(): void {\r\n this.showOptions();\r\n }\r\n\r\n public hoverEnd(): void {\r\n this.hideOptions();\r\n }\r\n\r\n protected updateDrawingBasedOnLabelLengths(): void {\r\n this.trimTextToSize(this.standardLabel, this.blockWidth);\r\n }\r\n\r\n public entireWorkflowDrawComplete() {\r\n // override in subclass is anything else needs to happen after the workflow draw is complete\r\n this.updateDrawingBasedOnLabelLengths();\r\n }\r\n\r\n public entireWorkflowDrawComplete2() {\r\n }\r\n\r\n protected hideOptions(): void {\r\n this.hideElement(this.deleteImageElement);\r\n this.hideElement(this.settingsImageElement);\r\n }\r\n\r\n protected showOptions(): void {\r\n if (this.deleteImageElement && this.canBeDeleted()) {\r\n this.showElement(this.deleteImageElement);\r\n }\r\n if (this.type !== Wars.Domain.Model.Codes.Enums.BlockType.StartProcessAction) {\r\n this.showElement(this.settingsImageElement);\r\n }\r\n }\r\n\r\n private hideElement(element: Snap.Element): void {\r\n if (element) {\r\n element.stop();\r\n element.attr({ opacity: '0' });\r\n }\r\n }\r\n\r\n private showElement(element: Snap.Element, opacity?: number): void {\r\n if (element) element.animate({ opacity: opacity ? opacity: 1 }, 300);\r\n }\r\n\r\n \r\n\r\n abstract getOutputType(): Wars.Domain.Model.Codes.Enums.BlockOutputType;\r\n\r\n \r\n\r\n protected getIconWidth(): number {\r\n return 40;\r\n }\r\n\r\n public canConnectToWorkflowBlockType(type: number): boolean {\r\n return models.WorkflowBlockManager.getValidToBlockTypes(this.type).indexOf(type) !== -1;\r\n }\r\n\r\n public getFromWorkflowBlocks(): Array {\r\n var list: Array = [];\r\n var allBlocks = Enumerable.from(this.drawingInstance.blockLocations).select(i => i.workflowBlock).toArray();\r\n for (var i = 0; i < allBlocks.length; i++) {\r\n var currentBlock = allBlocks[i];\r\n var isAFromBlock = Enumerable.from(currentBlock.toBlocks).any(i => i && i.id === this.id);\r\n if (isAFromBlock) list.push(currentBlock);\r\n }\r\n return list;\r\n }\r\n\r\n public canBeDeleted(): boolean {\r\n if (this.drawingInstance.isReadonly) return false;\r\n \r\n // Cannot remove the initial state\r\n if (this.drawingInstance.blockLocations[0].workflowBlock.id === this.id) return false;\r\n\r\n var allFroms = this.getFromWorkflowBlocks();\r\n // cannot delete anything that has more than one block pointing to it.\r\n if (allFroms.length > 1) return;\r\n\r\n var fromBlock = allFroms[0];\r\n\r\n var allTos = Enumerable.from(this.toBlocks).where(i => i.type !== Wars.Domain.Model.Codes.Enums.BlockType.DropZone).toArray();\r\n\r\n // Ensure each block before can connect to the block afterwards\r\n for (var toIndex = 0; toIndex < allTos.length; toIndex++) {\r\n var currentToBlock = allTos[toIndex];\r\n if (!fromBlock.canConnectToWorkflowBlockType(currentToBlock.type)) {\r\n // Cannot delete this workflow item return false\r\n return false;\r\n }\r\n }\r\n\r\n // Ensure the single output blocks do not get multiple blocks\r\n if (fromBlock.getOutputType() === Wars.Domain.Model.Codes.Enums.BlockOutputType.Single && allTos.length > 1) return false;\r\n if (fromBlock.getOutputType() === Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo && allTos.length > 1) return false;\r\n\r\n return true;\r\n }\r\n\r\n public delete(): void {\r\n if (this.canBeDeleted()) {\r\n var confirmation = confirm(\"Are you sure you want to delete this workflow block?\");\r\n if (confirmation) {\r\n this.drawingInstance.removeWorkflowBlockFromWorkflow(this);\r\n }\r\n } else {\r\n alert(\"Sorry this workflow block cannot be deleted because it would invalidate the workflow.\");\r\n }\r\n }\r\n\r\n public setDrawingInstance(drawingInstance: models.WorkflowDrawingInstance): void {\r\n this.drawingInstance = drawingInstance;\r\n }\r\n\r\n public addTitleToGroup(group: any): void {\r\n if (this.label == undefined || this.label == '') return;\r\n if (this.type == Wars.Domain.Model.Codes.Enums.BlockType.DropZone || this.type == Wars.Domain.Model.Codes.Enums.BlockType.Goto) return;\r\n var title = Snap.parse('' + this.label + '');\r\n group.append(title);\r\n }\r\n\r\n protected trimTextToSize(labelElement: Snap.Element, width: number) : void {\r\n // using set timeout because the text element has to be rendered for getBBox to work and the browser doesn't always render right away when rending a lot of SVG \r\n var timeoutMethod = () => {\r\n var textWidth = labelElement.getBBox().width;\r\n services.WarsLogger.logDebug('Text Width: ' + textWidth, this._logType);\r\n var text = labelElement.node.textContent;\r\n var padding = 2;\r\n\r\n while (textWidth > (width - 2 * padding) && text.length > 0) {\r\n text = text.slice(0, -1);\r\n labelElement.attr({ text: text + '...' });\r\n textWidth = labelElement.getBBox().width;\r\n } \r\n };\r\n\r\n setTimeout(timeoutMethod, 1);\r\n }\r\n\r\n // Was using this to show the entire label in a custom designed callout.\r\n protected enlargeRectangleSizeToFitText(textElement: Snap.Element, rectangle: Snap.Element): void {\r\n // using set timeout because the text element has to be rendered for getBBox to work and the browser doesn't always render right away when rending a lot of SVG \r\n var timeoutMethod = () => {\r\n var boundingBox = textElement.getBBox();\r\n var textWidth = boundingBox.width + 5;\r\n var textHeight = boundingBox.height;\r\n var x = parseInt(rectangle.attr('x')) - 0.5 * textWidth;\r\n var y = parseInt(rectangle.attr('y')) - 0.5 * textHeight - 5;\r\n rectangle.attr({ x: x, y: y, width: textWidth, height: textHeight});\r\n }\r\n setTimeout(timeoutMethod, 1);\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var MultipleOutputWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(MultipleOutputWorkflowBlock, _super);\r\n function MultipleOutputWorkflowBlock(id, type, label) {\r\n return _super.call(this, id, type, label) || this;\r\n }\r\n MultipleOutputWorkflowBlock.prototype.getOutputType = function () {\r\n return 1 /* Multiple */;\r\n };\r\n return MultipleOutputWorkflowBlock;\r\n }(models.BaseWorkflowBlock));\r\n models.MultipleOutputWorkflowBlock = MultipleOutputWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export abstract class MultipleOutputWorkflowBlock extends BaseWorkflowBlock {\r\n\r\n constructor(id: string, type: number, label: string) {\r\n super(id, type, label);\r\n }\r\n\r\n public getOutputType(): Wars.Domain.Model.Codes.Enums.BlockOutputType {\r\n return Wars.Domain.Model.Codes.Enums.BlockOutputType.Multiple;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var NoOutputWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(NoOutputWorkflowBlock, _super);\r\n function NoOutputWorkflowBlock(id, theType, label) {\r\n return _super.call(this, id, theType, label) || this;\r\n }\r\n NoOutputWorkflowBlock.prototype.getOutputType = function () {\r\n return 3 /* None */;\r\n };\r\n return NoOutputWorkflowBlock;\r\n }(models.BaseWorkflowBlock));\r\n models.NoOutputWorkflowBlock = NoOutputWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export abstract class NoOutputWorkflowBlock extends BaseWorkflowBlock {\r\n\r\n constructor(id: string, theType: number, label: string) {\r\n super(id, theType, label);\r\n }\r\n\r\n public getOutputType(): Wars.Domain.Model.Codes.Enums.BlockOutputType {\r\n return Wars.Domain.Model.Codes.Enums.BlockOutputType.None;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var SingleOutputWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(SingleOutputWorkflowBlock, _super);\r\n function SingleOutputWorkflowBlock(id, theType, label) {\r\n return _super.call(this, id, theType, label) || this;\r\n }\r\n Object.defineProperty(SingleOutputWorkflowBlock.prototype, \"toBlock\", {\r\n get: function () {\r\n if (!this.toBlocks || this.toBlocks.length === 0) {\r\n this._toBlock = undefined;\r\n }\r\n else {\r\n this._toBlock = this.toBlocks[0];\r\n }\r\n return this._toBlock;\r\n },\r\n set: function (value) {\r\n if (!this.toBlocks)\r\n this.toBlocks = [];\r\n if (this.toBlocks.length === 0) {\r\n this.toBlocks.push(value);\r\n }\r\n else {\r\n this.toBlocks[0] = value;\r\n }\r\n this._toBlock = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SingleOutputWorkflowBlock.prototype.getOutputType = function () {\r\n return 0 /* Single */;\r\n };\r\n return SingleOutputWorkflowBlock;\r\n }(models.BaseWorkflowBlock));\r\n models.SingleOutputWorkflowBlock = SingleOutputWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export abstract class SingleOutputWorkflowBlock extends BaseWorkflowBlock{\r\n \r\n private _toBlock: IWorkflowBlock;\r\n\r\n constructor(id: string, theType: number, label: string) {\r\n super(id, theType, label);\r\n }\r\n\r\n public get toBlock(): IWorkflowBlock {\r\n if (!this.toBlocks || this.toBlocks.length === 0) {\r\n this._toBlock = undefined;\r\n } else {\r\n this._toBlock = this.toBlocks[0];\r\n }\r\n return this._toBlock;\r\n }\r\n\r\n public set toBlock(value: IWorkflowBlock) {\r\n if (!this.toBlocks) this.toBlocks = [];\r\n if (this.toBlocks.length === 0) {\r\n this.toBlocks.push(value);\r\n } else {\r\n this.toBlocks[0] = value;\r\n }\r\n this._toBlock = value;\r\n }\r\n\r\n public getOutputType(): Wars.Domain.Model.Codes.Enums.BlockOutputType {\r\n return Wars.Domain.Model.Codes.Enums.BlockOutputType.Single;\r\n }\r\n }\r\n}\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var YesNoOutputWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(YesNoOutputWorkflowBlock, _super);\r\n function YesNoOutputWorkflowBlock(id, theType, label) {\r\n return _super.call(this, id, theType, label) || this;\r\n }\r\n YesNoOutputWorkflowBlock.prototype.getOutputType = function () {\r\n return 2 /* YesNo */;\r\n };\r\n Object.defineProperty(YesNoOutputWorkflowBlock.prototype, \"yesBlock\", {\r\n get: function () {\r\n if (!this.toBlocks || this.toBlocks.length == 0) {\r\n this._yesBlock = undefined;\r\n }\r\n else {\r\n this._yesBlock = this.toBlocks[0];\r\n }\r\n return this._yesBlock;\r\n },\r\n set: function (value) {\r\n if (!this.toBlocks)\r\n this.toBlocks = [];\r\n if (this.toBlocks.length === 0) {\r\n this.toBlocks.push(value);\r\n }\r\n else {\r\n this.toBlocks[0] = value;\r\n }\r\n this._yesBlock = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(YesNoOutputWorkflowBlock.prototype, \"noBlock\", {\r\n get: function () {\r\n if (!this.toBlocks || this.toBlocks.length < 2) {\r\n this._noBlock = undefined;\r\n }\r\n else {\r\n this._noBlock = this.toBlocks[1];\r\n }\r\n return this._noBlock;\r\n },\r\n set: function (value) {\r\n if (!this.toBlocks)\r\n this.toBlocks = [];\r\n if (this.toBlocks.length === 0)\r\n this.toBlocks.push(undefined);\r\n if (this.toBlocks.length === 1) {\r\n this.toBlocks.push(value);\r\n }\r\n else {\r\n this.toBlocks[1] = value;\r\n }\r\n this._noBlock = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return YesNoOutputWorkflowBlock;\r\n }(models.BaseWorkflowBlock));\r\n models.YesNoOutputWorkflowBlock = YesNoOutputWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export abstract class YesNoOutputWorkflowBlock extends BaseWorkflowBlock {\r\n\r\n private _yesBlock: IWorkflowBlock;\r\n private _noBlock: IWorkflowBlock;\r\n\r\n constructor(id: string, theType: number, label: string) {\r\n super(id, theType, label);\r\n }\r\n\r\n public getOutputType(): Wars.Domain.Model.Codes.Enums.BlockOutputType {\r\n return Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo;\r\n }\r\n\r\n public get yesBlock(): IWorkflowBlock {\r\n if (!this.toBlocks || this.toBlocks.length == 0) {\r\n this._yesBlock = undefined;\r\n } else {\r\n this._yesBlock = this.toBlocks[0];\r\n }\r\n return this._yesBlock;\r\n }\r\n\r\n public set yesBlock(value: IWorkflowBlock) {\r\n if (!this.toBlocks) this.toBlocks = [];\r\n if (this.toBlocks.length === 0) {\r\n this.toBlocks.push(value);\r\n } else {\r\n this.toBlocks[0] = value;\r\n }\r\n this._yesBlock = value;\r\n }\r\n\r\n public get noBlock(): IWorkflowBlock {\r\n if (!this.toBlocks || this.toBlocks.length < 2) {\r\n this._noBlock = undefined;\r\n } else {\r\n this._noBlock = this.toBlocks[1];\r\n }\r\n return this._noBlock;\r\n }\r\n\r\n public set noBlock(value: IWorkflowBlock) {\r\n if (!this.toBlocks) this.toBlocks = [];\r\n if (this.toBlocks.length === 0) this.toBlocks.push(undefined);\r\n if (this.toBlocks.length === 1) {\r\n this.toBlocks.push(value);\r\n } else {\r\n this.toBlocks[1] = value;\r\n }\r\n this._noBlock = value;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class WorkflowBlockManager {\r\n\r\n public static intialDropZoneId: number = 10000;\r\n public static initialGotoId: number = 20000;\r\n\r\n public static createWorkflowBlock(type: number, id: string, drawingInstance: models.WorkflowDrawingInstance): IWorkflowBlock {\r\n var block: IWorkflowBlock;\r\n var name = WorkflowBlockManager.getWorkflowBlockNameByType(type);\r\n switch (type) {\r\n case Wars.Domain.Model.Codes.Enums.BlockType.State:\r\n block = new StateWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Condition:\r\n block = new ConditionWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.UserAction:\r\n block = new UserActionWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CustomAction:\r\n block = new models.CustomActionWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Goto:\r\n block = new GotoWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.StatusChange:\r\n block = new StatusChangeWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Message:\r\n block = new MessageWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Validate:\r\n block = new ValidateWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction:\r\n block = new models.CreatePdfWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Copy:\r\n block = new models.CopyWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SetData:\r\n block = new models.SetDataWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim:\r\n block = new models.AssignClaimWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction:\r\n block = new models.SendEmailWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction:\r\n block = new models.CalculateWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.BookResource:\r\n block = new models.BookResourceWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource:\r\n block = new models.RemoveResourceWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction:\r\n block = new models.ReturnFromProcessActionWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction:\r\n block = new models.ProcessActionWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SystemAction:\r\n block = new models.SystemActionWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ChangeState:\r\n block = new models.ChangeStateWorkflowBlock(id, name);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.GotoState:\r\n block = new models.GotoStateWorkflowBlock(id, name);\r\n break;\r\n \r\n default:\r\n throw 'Type: ' + type + ' is not a known type';\r\n }\r\n block.setDrawingInstance(drawingInstance);\r\n return block;\r\n }\r\n\r\n public static createDropZone(id: string, required: boolean, drawingInstance: models.WorkflowDrawingInstance) {\r\n var block = new DropZoneWorkflowBlock(id, required);\r\n block.setDrawingInstance(drawingInstance);\r\n return block;\r\n }\r\n\r\n public static createInitialWorkflowBlock(id: string, drawingInstance: models.WorkflowDrawingInstance): IWorkflowBlock {\r\n var block = new StateWorkflowBlock(id, \"Initial State\", true);\r\n block.setDrawingInstance(drawingInstance);\r\n return block;\r\n }\r\n\r\n public static getValidBlockTypes(): Array {\r\n return [\r\n \"svgDropZone\", \"state\", \"condition\", \"statusChange\",\r\n \"userAction\", \"systemAction\", \"processAction\", \"goto\", \"message\", \"validate\",\r\n \"createPdf\", \"sendEmail\", \"calculate\", \"bookResource\", \"removeResource\",\r\n \"startProcessAction\", \"returnFromProcessAction\", \"changeState\", \"gotoState\",\r\n \"copy\", \"setData\", \"assignClaim\"];\r\n }\r\n\r\n public static getWorkflowBlockNameByType(type: number) : string {\r\n switch (type) {\r\n case Wars.Domain.Model.Codes.Enums.BlockType.State:\r\n return \"Workflow State\";\r\n \r\n case Wars.Domain.Model.Codes.Enums.BlockType.Condition:\r\n return \"Condition\";\r\n \r\n case Wars.Domain.Model.Codes.Enums.BlockType.UserAction:\r\n return \"User Action\";\r\n \r\n case Wars.Domain.Model.Codes.Enums.BlockType.CustomAction:\r\n return \"System Action\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.StatusChange:\r\n return \"Status Change\";\r\n \r\n case Wars.Domain.Model.Codes.Enums.BlockType.Message:\r\n return \"Message\";\r\n \r\n case Wars.Domain.Model.Codes.Enums.BlockType.Validate:\r\n return \"Validate\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction:\r\n return \"Create PDF\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Copy:\r\n return \"Copy\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SetData:\r\n return \"Set Data\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim:\r\n return \"Assign Claim\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction:\r\n return \"Send Email\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction:\r\n return \"Calculate\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Goto:\r\n return \"Go To\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.DropZone:\r\n return \"Drop Zone\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.BookResource:\r\n return \"Book\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource:\r\n return \"Un-Book\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.StartProcessAction:\r\n return \"Start\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction:\r\n return \"Return\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction:\r\n return \"Process Action\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SystemAction:\r\n return \"System Action\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ChangeState:\r\n return \"Change State\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.GotoState:\r\n return \"Goto State\";\r\n \r\n default:\r\n throw 'Type: ' + type + ' is not a known type';\r\n }\r\n }\r\n\r\n public static getValidToBlockTypes(type: number): Array {\r\n switch (type) {\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.State:\r\n return [\r\n Wars.Domain.Model.Codes.Enums.BlockType.UserAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.DropZone,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Goto\r\n ];\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Condition:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.UserAction:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CustomAction:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Message:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Validate:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Copy:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SetData:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.BookResource:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SystemAction:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ChangeState:\r\n return this.getValidInlineToStates();\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.StartProcessAction:\r\n return this.getValidProcessActionInlineStates().concat(Wars.Domain.Model.Codes.Enums.BlockType.UserAction);\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Goto:\r\n return [\r\n Wars.Domain.Model.Codes.Enums.BlockType.State,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Condition,\r\n Wars.Domain.Model.Codes.Enums.BlockType.StatusChange,\r\n Wars.Domain.Model.Codes.Enums.BlockType.GotoState,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CustomAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Message,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Validate,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Copy,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SetData,\r\n Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.BookResource,\r\n Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SystemAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.UserAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ChangeState,\r\n ];\r\n \r\n case Wars.Domain.Model.Codes.Enums.BlockType.StatusChange:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.DropZone:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction:\r\n case Wars.Domain.Model.Codes.Enums.BlockType.GotoState:\r\n return [];\r\n \r\n default:\r\n throw 'Type: ' + type + ' is not a known type';\r\n }\r\n }\r\n\r\n private static getValidInlineToStates(): Array {\r\n return [\r\n Wars.Domain.Model.Codes.Enums.BlockType.State,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Condition,\r\n Wars.Domain.Model.Codes.Enums.BlockType.StatusChange,\r\n Wars.Domain.Model.Codes.Enums.BlockType.GotoState,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CustomAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Message,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Goto,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Validate,\r\n Wars.Domain.Model.Codes.Enums.BlockType.DropZone,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Copy,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SetData,\r\n Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.BookResource,\r\n Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SystemAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ChangeState\r\n ];\r\n }\r\n\r\n private static getValidProcessActionInlineStates(): Array {\r\n return [\r\n Wars.Domain.Model.Codes.Enums.BlockType.Condition,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CustomAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Message,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Goto,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Validate,\r\n Wars.Domain.Model.Codes.Enums.BlockType.DropZone,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Copy,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SetData,\r\n Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.BookResource,\r\n Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SystemAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ChangeState\r\n ];\r\n }\r\n\r\n }\r\n}","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var WorkflowBlockManager = /** @class */ (function () {\r\n function WorkflowBlockManager() {\r\n }\r\n WorkflowBlockManager.createWorkflowBlock = function (type, id, drawingInstance) {\r\n var block;\r\n var name = WorkflowBlockManager.getWorkflowBlockNameByType(type);\r\n switch (type) {\r\n case 0 /* State */:\r\n block = new models.StateWorkflowBlock(id, name);\r\n break;\r\n case 2 /* Condition */:\r\n block = new models.ConditionWorkflowBlock(id, name);\r\n break;\r\n case 1 /* UserAction */:\r\n block = new models.UserActionWorkflowBlock(id, name);\r\n break;\r\n case 5 /* CustomAction */:\r\n block = new models.CustomActionWorkflowBlock(id, name);\r\n break;\r\n case 98 /* Goto */:\r\n block = new models.GotoWorkflowBlock(id, name);\r\n break;\r\n case 4 /* StatusChange */:\r\n block = new models.StatusChangeWorkflowBlock(id, name);\r\n break;\r\n case 3 /* Message */:\r\n block = new models.MessageWorkflowBlock(id, name);\r\n break;\r\n case 6 /* Validate */:\r\n block = new models.ValidateWorkflowBlock(id, name);\r\n break;\r\n case 7 /* CreatePdfAction */:\r\n block = new models.CreatePdfWorkflowBlock(id, name);\r\n break;\r\n case 19 /* Copy */:\r\n block = new models.CopyWorkflowBlock(id, name);\r\n break;\r\n case 20 /* SetData */:\r\n block = new models.SetDataWorkflowBlock(id, name);\r\n break;\r\n case 21 /* AssignClaim */:\r\n block = new models.AssignClaimWorkflowBlock(id, name);\r\n break;\r\n case 8 /* SendEmailAction */:\r\n block = new models.SendEmailWorkflowBlock(id, name);\r\n break;\r\n case 9 /* CalculateAction */:\r\n block = new models.CalculateWorkflowBlock(id, name);\r\n break;\r\n case 11 /* BookResource */:\r\n block = new models.BookResourceWorkflowBlock(id, name);\r\n break;\r\n case 12 /* RemoveResource */:\r\n block = new models.RemoveResourceWorkflowBlock(id, name);\r\n break;\r\n case 16 /* ReturnFromProcessAction */:\r\n block = new models.ReturnFromProcessActionWorkflowBlock(id, name);\r\n break;\r\n case 13 /* ProcessAction */:\r\n block = new models.ProcessActionWorkflowBlock(id, name);\r\n break;\r\n case 17 /* SystemAction */:\r\n block = new models.SystemActionWorkflowBlock(id, name);\r\n break;\r\n case 14 /* ChangeState */:\r\n block = new models.ChangeStateWorkflowBlock(id, name);\r\n break;\r\n case 18 /* GotoState */:\r\n block = new models.GotoStateWorkflowBlock(id, name);\r\n break;\r\n default:\r\n throw 'Type: ' + type + ' is not a known type';\r\n }\r\n block.setDrawingInstance(drawingInstance);\r\n return block;\r\n };\r\n WorkflowBlockManager.createDropZone = function (id, required, drawingInstance) {\r\n var block = new models.DropZoneWorkflowBlock(id, required);\r\n block.setDrawingInstance(drawingInstance);\r\n return block;\r\n };\r\n WorkflowBlockManager.createInitialWorkflowBlock = function (id, drawingInstance) {\r\n var block = new models.StateWorkflowBlock(id, \"Initial State\", true);\r\n block.setDrawingInstance(drawingInstance);\r\n return block;\r\n };\r\n WorkflowBlockManager.getValidBlockTypes = function () {\r\n return [\r\n \"svgDropZone\", \"state\", \"condition\", \"statusChange\",\r\n \"userAction\", \"systemAction\", \"processAction\", \"goto\", \"message\", \"validate\",\r\n \"createPdf\", \"sendEmail\", \"calculate\", \"bookResource\", \"removeResource\",\r\n \"startProcessAction\", \"returnFromProcessAction\", \"changeState\", \"gotoState\",\r\n \"copy\", \"setData\", \"assignClaim\"\r\n ];\r\n };\r\n WorkflowBlockManager.getWorkflowBlockNameByType = function (type) {\r\n switch (type) {\r\n case 0 /* State */:\r\n return \"Workflow State\";\r\n case 2 /* Condition */:\r\n return \"Condition\";\r\n case 1 /* UserAction */:\r\n return \"User Action\";\r\n case 5 /* CustomAction */:\r\n return \"System Action\";\r\n case 4 /* StatusChange */:\r\n return \"Status Change\";\r\n case 3 /* Message */:\r\n return \"Message\";\r\n case 6 /* Validate */:\r\n return \"Validate\";\r\n case 7 /* CreatePdfAction */:\r\n return \"Create PDF\";\r\n case 19 /* Copy */:\r\n return \"Copy\";\r\n case 20 /* SetData */:\r\n return \"Set Data\";\r\n case 21 /* AssignClaim */:\r\n return \"Assign Claim\";\r\n case 8 /* SendEmailAction */:\r\n return \"Send Email\";\r\n case 9 /* CalculateAction */:\r\n return \"Calculate\";\r\n case 98 /* Goto */:\r\n return \"Go To\";\r\n case 99 /* DropZone */:\r\n return \"Drop Zone\";\r\n case 11 /* BookResource */:\r\n return \"Book\";\r\n case 12 /* RemoveResource */:\r\n return \"Un-Book\";\r\n case 15 /* StartProcessAction */:\r\n return \"Start\";\r\n case 16 /* ReturnFromProcessAction */:\r\n return \"Return\";\r\n case 13 /* ProcessAction */:\r\n return \"Process Action\";\r\n case 17 /* SystemAction */:\r\n return \"System Action\";\r\n case 14 /* ChangeState */:\r\n return \"Change State\";\r\n case 18 /* GotoState */:\r\n return \"Goto State\";\r\n default:\r\n throw 'Type: ' + type + ' is not a known type';\r\n }\r\n };\r\n WorkflowBlockManager.getValidToBlockTypes = function (type) {\r\n switch (type) {\r\n case 0 /* State */:\r\n return [\r\n 1 /* UserAction */,\r\n 99 /* DropZone */,\r\n 13 /* ProcessAction */,\r\n 98 /* Goto */\r\n ];\r\n case 2 /* Condition */:\r\n case 1 /* UserAction */:\r\n case 5 /* CustomAction */:\r\n case 3 /* Message */:\r\n case 6 /* Validate */:\r\n case 7 /* CreatePdfAction */:\r\n case 19 /* Copy */:\r\n case 20 /* SetData */:\r\n case 21 /* AssignClaim */:\r\n case 8 /* SendEmailAction */:\r\n case 9 /* CalculateAction */:\r\n case 11 /* BookResource */:\r\n case 12 /* RemoveResource */:\r\n case 13 /* ProcessAction */:\r\n case 17 /* SystemAction */:\r\n case 14 /* ChangeState */:\r\n return this.getValidInlineToStates();\r\n case 15 /* StartProcessAction */:\r\n return this.getValidProcessActionInlineStates().concat(1 /* UserAction */);\r\n case 98 /* Goto */:\r\n return [\r\n 0 /* State */,\r\n 2 /* Condition */,\r\n 4 /* StatusChange */,\r\n 18 /* GotoState */,\r\n 5 /* CustomAction */,\r\n 3 /* Message */,\r\n 6 /* Validate */,\r\n 7 /* CreatePdfAction */,\r\n 19 /* Copy */,\r\n 20 /* SetData */,\r\n 21 /* AssignClaim */,\r\n 8 /* SendEmailAction */,\r\n 9 /* CalculateAction */,\r\n 11 /* BookResource */,\r\n 12 /* RemoveResource */,\r\n 16 /* ReturnFromProcessAction */,\r\n 13 /* ProcessAction */,\r\n 17 /* SystemAction */,\r\n 1 /* UserAction */,\r\n 14 /* ChangeState */,\r\n ];\r\n case 4 /* StatusChange */:\r\n case 99 /* DropZone */:\r\n case 16 /* ReturnFromProcessAction */:\r\n case 18 /* GotoState */:\r\n return [];\r\n default:\r\n throw 'Type: ' + type + ' is not a known type';\r\n }\r\n };\r\n WorkflowBlockManager.getValidInlineToStates = function () {\r\n return [\r\n 0 /* State */,\r\n 2 /* Condition */,\r\n 4 /* StatusChange */,\r\n 18 /* GotoState */,\r\n 5 /* CustomAction */,\r\n 3 /* Message */,\r\n 98 /* Goto */,\r\n 6 /* Validate */,\r\n 99 /* DropZone */,\r\n 7 /* CreatePdfAction */,\r\n 19 /* Copy */,\r\n 20 /* SetData */,\r\n 21 /* AssignClaim */,\r\n 8 /* SendEmailAction */,\r\n 9 /* CalculateAction */,\r\n 11 /* BookResource */,\r\n 12 /* RemoveResource */,\r\n 16 /* ReturnFromProcessAction */,\r\n 13 /* ProcessAction */,\r\n 17 /* SystemAction */,\r\n 14 /* ChangeState */\r\n ];\r\n };\r\n WorkflowBlockManager.getValidProcessActionInlineStates = function () {\r\n return [\r\n 2 /* Condition */,\r\n 5 /* CustomAction */,\r\n 3 /* Message */,\r\n 98 /* Goto */,\r\n 6 /* Validate */,\r\n 99 /* DropZone */,\r\n 7 /* CreatePdfAction */,\r\n 19 /* Copy */,\r\n 20 /* SetData */,\r\n 21 /* AssignClaim */,\r\n 8 /* SendEmailAction */,\r\n 9 /* CalculateAction */,\r\n 11 /* BookResource */,\r\n 12 /* RemoveResource */,\r\n 16 /* ReturnFromProcessAction */,\r\n 13 /* ProcessAction */,\r\n 17 /* SystemAction */,\r\n 14 /* ChangeState */\r\n ];\r\n };\r\n WorkflowBlockManager.intialDropZoneId = 10000;\r\n WorkflowBlockManager.initialGotoId = 20000;\r\n return WorkflowBlockManager;\r\n }());\r\n models.WorkflowBlockManager = WorkflowBlockManager;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var AssignClaimWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(AssignClaimWorkflowBlock, _super);\r\n function AssignClaimWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 21 /* AssignClaim */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 99.7;\r\n _this.svgHeight = 100.1;\r\n _this.svgHorizontalOffset = 10;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/Assignment.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"assignClaim\" };\r\n return _this;\r\n }\r\n AssignClaimWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.assignClaimDto = dto;\r\n };\r\n return AssignClaimWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.AssignClaimWorkflowBlock = AssignClaimWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class AssignClaimWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public assignClaimDto: Wars.Domain.Model.Dtos.Workflow.AssignClaimDto;\r\n \r\n \r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 99.7;\r\n this.svgHeight = 100.1;\r\n\r\n this.svgHorizontalOffset = 10;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/Assignment.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"assignClaim\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.AssignClaimDto) {\r\n this.assignClaimDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var BookResourceWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(BookResourceWorkflowBlock, _super);\r\n function BookResourceWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 11 /* BookResource */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 130.3;\r\n _this.svgHeight = 100;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/Book.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"bookResource\" };\r\n return _this;\r\n }\r\n BookResourceWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.scheduledResourceDto = dto;\r\n };\r\n return BookResourceWorkflowBlock;\r\n }(models.YesNoOutputWorkflowBlock));\r\n models.BookResourceWorkflowBlock = BookResourceWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class BookResourceWorkflowBlock extends YesNoOutputWorkflowBlock {\r\n\r\n public scheduledResourceDto: Wars.Domain.Model.Dtos.Workflow.ScheduledResourceDto;\r\n \r\n constructor(id: string, label: string)\r\n {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.BookResource, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 130.3;\r\n this.svgHeight = 100;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/Book.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"bookResource\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.ScheduledResourceDto) {\r\n this.scheduledResourceDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var CalculateWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(CalculateWorkflowBlock, _super);\r\n function CalculateWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 9 /* CalculateAction */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 76;\r\n _this.svgHeight = 100.2;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/Calculate.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"calculate\" };\r\n _this.isQuickLinkable = true;\r\n return _this;\r\n }\r\n CalculateWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.calculateDto = dto;\r\n };\r\n return CalculateWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.CalculateWorkflowBlock = CalculateWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class CalculateWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public calculateDto: Wars.Domain.Model.Dtos.Workflow.CalculateDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 76;\r\n this.svgHeight = 100.2;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/Calculate.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"calculate\" };\r\n\r\n this.isQuickLinkable = true;\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.CalculateDto) {\r\n this.calculateDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ChangeStateWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(ChangeStateWorkflowBlock, _super);\r\n function ChangeStateWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 14 /* ChangeState */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 131;\r\n _this.svgHeight = 75;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/ChangeState.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"changeState\" };\r\n return _this;\r\n }\r\n ChangeStateWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.changeStateDto = dto;\r\n };\r\n return ChangeStateWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.ChangeStateWorkflowBlock = ChangeStateWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class ChangeStateWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public changeStateDto: Wars.Domain.Model.Dtos.Workflow.ChangeStateDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.ChangeState, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 131;\r\n this.svgHeight = 75;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/ChangeState.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"changeState\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.ChangeStateDto) {\r\n this.changeStateDto = dto;\r\n }\r\n }\r\n}","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ConditionWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(ConditionWorkflowBlock, _super);\r\n function ConditionWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 2 /* Condition */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 113.4;\r\n _this.svgHeight = 98.2;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/Condition.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"condition\" };\r\n _this.isQuickLinkable = true;\r\n return _this;\r\n }\r\n ConditionWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.conditionDto = dto;\r\n };\r\n return ConditionWorkflowBlock;\r\n }(models.YesNoOutputWorkflowBlock));\r\n models.ConditionWorkflowBlock = ConditionWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\n\r\nmodule warsApp.models {\r\n export class ConditionWorkflowBlock extends YesNoOutputWorkflowBlock {\r\n\r\n public conditionDto: Wars.Domain.Model.Dtos.Workflow.ConditionDto;\r\n \r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.Condition, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 113.4;\r\n this.svgHeight = 98.2;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/Condition.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"condition\" };\r\n\r\n this.isQuickLinkable = true;\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.ConditionDto) {\r\n this.conditionDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var CopyWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(CopyWorkflowBlock, _super);\r\n function CopyWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 19 /* Copy */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 79.4;\r\n _this.svgHeight = 99;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/Copy.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"copy\" };\r\n return _this;\r\n }\r\n CopyWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.copyDto = dto;\r\n };\r\n return CopyWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.CopyWorkflowBlock = CopyWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class CopyWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public copyDto: Wars.Domain.Model.Dtos.Workflow.CopyDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.Copy, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 79.4;\r\n this.svgHeight = 99;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/Copy.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"copy\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.CopyDto) {\r\n this.copyDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var CreatePdfWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(CreatePdfWorkflowBlock, _super);\r\n function CreatePdfWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 7 /* CreatePdfAction */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 70.5;\r\n _this.svgHeight = 100;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/CreatePDF.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"createPdf\" };\r\n return _this;\r\n }\r\n CreatePdfWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.createPdfDto = dto;\r\n };\r\n return CreatePdfWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.CreatePdfWorkflowBlock = CreatePdfWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class CreatePdfWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public createPdfDto: Wars.Domain.Model.Dtos.Workflow.CreatePdfDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 70.5;\r\n this.svgHeight = 100;\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/CreatePDF.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"createPdf\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.CreatePdfDto) {\r\n this.createPdfDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var CustomActionWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(CustomActionWorkflowBlock, _super);\r\n function CustomActionWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 5 /* CustomAction */, label) || this;\r\n _this.outerRadius = 85 / 2;\r\n _this.innerRadius = 50 / 2;\r\n _this.numberOfPoints = 5;\r\n _this.xPadding = (_this.blockWidth - (_this.outerRadius * 2)) / 2;\r\n _this.yPadding = (_this.blockHeight - (_this.outerRadius * 2)) / 2;\r\n _this.attributes = {\r\n id: _this.id,\r\n class: \"action-workflow-block\",\r\n transform: 'r-18',\r\n \"data-class\": \"workflowBlock\",\r\n \"data-id\": \"customAction\"\r\n };\r\n return _this;\r\n }\r\n return CustomActionWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.CustomActionWorkflowBlock = CustomActionWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class CustomActionWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n private outerRadius: number;\r\n private innerRadius: number;\r\n private numberOfPoints: number;\r\n private xPadding: number;\r\n private yPadding: number;\r\n private attributes: any;\r\n\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.CustomAction, label);\r\n this.outerRadius = 85 / 2;\r\n this.innerRadius = 50 / 2;\r\n this.numberOfPoints = 5;\r\n this.xPadding = (this.blockWidth - (this.outerRadius * 2)) / 2;\r\n this.yPadding = (this.blockHeight - (this.outerRadius * 2)) / 2;\r\n\r\n this.attributes = {\r\n id: this.id,\r\n class: \"action-workflow-block\",\r\n transform: 'r-18',\r\n \"data-class\": \"workflowBlock\",\r\n \"data-id\": \"customAction\"\r\n };\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var DropZoneWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(DropZoneWorkflowBlock, _super);\r\n function DropZoneWorkflowBlock(id, required) {\r\n var _this = _super.call(this, id, 99 /* DropZone */, \"Drag Shape Here\") || this;\r\n _this.logType = \"DropZoneWorkflowBlock\";\r\n _this.width = 120;\r\n _this.height = 70;\r\n _this.xPadding = 15;\r\n _this.yPadding = 40;\r\n _this.attributes = { id: _this.id, class: \"drop-zone-workflow-block\", \"data-class\": \"workflowBlock\", \"data-id\": \"svgDropZone\" };\r\n _this.optionalAttributes = { id: _this.id, class: \"optional-drop-zone-workflow-block\", \"data-class\": \"workflowBlock\", \"data-id\": \"svgDropZone\" };\r\n _this.optionalTextAttributes = { class: \"optional-drop-zone-text\" };\r\n _this.required = required;\r\n return _this;\r\n }\r\n DropZoneWorkflowBlock.prototype.getBottomPadding = function () {\r\n return this.yPadding;\r\n };\r\n DropZoneWorkflowBlock.prototype.getTopPadding = function () {\r\n return this.yPadding;\r\n };\r\n DropZoneWorkflowBlock.prototype.getLeftPadding = function () {\r\n return this.xPadding;\r\n };\r\n DropZoneWorkflowBlock.prototype.getRightPadding = function () {\r\n return this.xPadding;\r\n };\r\n DropZoneWorkflowBlock.prototype.getMyCenterPoint = function (gridCoordinate) {\r\n var xOffset = (gridCoordinate.x * this.blockWidth);\r\n var yOffset = (gridCoordinate.y * this.blockHeight);\r\n return new models.Coordinate((this.blockWidth / 2) + xOffset, this.blockHeight / 2 + yOffset);\r\n };\r\n DropZoneWorkflowBlock.prototype.draw = function (paper, coordinate) {\r\n var xOffset = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var yOffset = (coordinate.y * this.blockHeight) + this.yPadding;\r\n var entireBlock = this.drawEntireBlock(paper, coordinate);\r\n this.svgElement = paper.rect(xOffset, yOffset, this.width, this.height, 5, 5);\r\n if (this.required)\r\n this.svgElement.attr(this.attributes);\r\n else\r\n this.svgElement.attr(this.optionalAttributes);\r\n var centerPoint = this.getMyCenterPoint(coordinate);\r\n var textAndRectangleGroup;\r\n if (this.required) {\r\n this.textElement = paper.text(centerPoint.x, centerPoint.y + 5, this.label);\r\n this.textElement.attr({ class: \"alternate-text\" });\r\n textAndRectangleGroup = paper.group(entireBlock, this.svgElement, this.textElement);\r\n }\r\n else {\r\n this.optionalTextElement = paper.text(centerPoint.x, centerPoint.y + 15, '(Optional)');\r\n this.textElement = paper.text(centerPoint.x, centerPoint.y - 5, this.label);\r\n this.optionalTextElement.attr(this.optionalTextAttributes);\r\n this.textElement.attr(this.optionalTextAttributes);\r\n textAndRectangleGroup = paper.group(entireBlock, this.svgElement, this.optionalTextElement, this.textElement);\r\n }\r\n var dropZoneGroup = paper.group(entireBlock, textAndRectangleGroup);\r\n return dropZoneGroup;\r\n };\r\n DropZoneWorkflowBlock.prototype.drawForToolbar = function (paper) {\r\n throw 'Not Supported';\r\n };\r\n DropZoneWorkflowBlock.prototype.highlightValidOption = function () {\r\n //services.WarsLogger.logDebug(\"Highlight Valid\", this.logType);\r\n this.svgElement.attr({ class: \"hover-valid-option\" });\r\n this.textElement.attr({ class: 'text' });\r\n };\r\n DropZoneWorkflowBlock.prototype.highlightInvalidOption = function () {\r\n this.svgElement.attr({ class: \"hover-invalid-option\" });\r\n this.textElement.attr({ class: \"alternate-text\" });\r\n //services.WarsLogger.logDebug(\"Highlight Invalid\", this.logType);\r\n };\r\n DropZoneWorkflowBlock.prototype.unHighlight = function () {\r\n this.svgElement.attr(this.attributes);\r\n this.textElement.attr({ class: \"alternate-text\" });\r\n };\r\n DropZoneWorkflowBlock.prototype.getDeleteCoordinate = function (coordinate) {\r\n throw \"Never draw delete on drop zones\";\r\n };\r\n DropZoneWorkflowBlock.prototype.getSettingsCoordinate = function (coordinate) {\r\n throw \"Never draw delete on drop zones\";\r\n };\r\n DropZoneWorkflowBlock.prototype.updateDrawingBasedOnLabelLengths = function () { };\r\n return DropZoneWorkflowBlock;\r\n }(models.NoOutputWorkflowBlock));\r\n models.DropZoneWorkflowBlock = DropZoneWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class DropZoneWorkflowBlock extends NoOutputWorkflowBlock {\r\n private logType: string = \"DropZoneWorkflowBlock\";\r\n \r\n private width: number;\r\n private height: number;\r\n private xPadding: number;\r\n private yPadding: number;\r\n private attributes: any;\r\n\r\n private optionalTextElement: Snap.Element;\r\n private textElement: Snap.Element;\r\n private required: boolean;\r\n private optionalAttributes: any;\r\n private optionalTextAttributes: any;\r\n\r\n constructor(id: string, required: boolean) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.DropZone, \"Drag Shape Here\");\r\n this.width = 120;\r\n this.height = 70;\r\n this.xPadding = 15;\r\n this.yPadding = 40;\r\n\r\n this.attributes = { id: this.id, class: \"drop-zone-workflow-block\", \"data-class\": \"workflowBlock\", \"data-id\": \"svgDropZone\" };\r\n this.optionalAttributes = { id: this.id, class: \"optional-drop-zone-workflow-block\", \"data-class\": \"workflowBlock\", \"data-id\": \"svgDropZone\"};\r\n this.optionalTextAttributes = { class: \"optional-drop-zone-text\"};\r\n this.required = required;\r\n }\r\n\r\n getBottomPadding(): number {\r\n return this.yPadding;\r\n }\r\n\r\n getTopPadding(): number {\r\n return this.yPadding;\r\n }\r\n\r\n getLeftPadding(): number {\r\n return this.xPadding;\r\n }\r\n\r\n getRightPadding(): number {\r\n return this.xPadding;\r\n }\r\n\r\n private getMyCenterPoint(gridCoordinate: models.Coordinate): Coordinate {\r\n var xOffset = (gridCoordinate.x * this.blockWidth);\r\n var yOffset = (gridCoordinate.y * this.blockHeight);\r\n return new Coordinate((this.blockWidth / 2) + xOffset, this.blockHeight / 2 + yOffset);\r\n }\r\n\r\n draw(paper: Snap.Paper, coordinate: models.Coordinate): Snap.Element {\r\n var xOffset = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var yOffset = (coordinate.y * this.blockHeight) + this.yPadding;\r\n\r\n var entireBlock = this.drawEntireBlock(paper, coordinate);\r\n this.svgElement = paper.rect(xOffset, yOffset, this.width, this.height, 5, 5);\r\n if (this.required) this.svgElement.attr(this.attributes);\r\n else this.svgElement.attr(this.optionalAttributes);\r\n \r\n\r\n var centerPoint = this.getMyCenterPoint(coordinate);\r\n\r\n var textAndRectangleGroup: any;\r\n\r\n if (this.required) {\r\n this.textElement = paper.text(centerPoint.x, centerPoint.y + 5, this.label);\r\n this.textElement.attr({ class: \"alternate-text\" });\r\n textAndRectangleGroup = paper.group(entireBlock, this.svgElement, this.textElement);\r\n } else {\r\n this.optionalTextElement = paper.text(centerPoint.x, centerPoint.y + 15, '(Optional)');\r\n this.textElement = paper.text(centerPoint.x, centerPoint.y -5, this.label);\r\n this.optionalTextElement.attr(this.optionalTextAttributes);\r\n this.textElement.attr(this.optionalTextAttributes);\r\n textAndRectangleGroup = paper.group(entireBlock, this.svgElement, this.optionalTextElement, this.textElement);\r\n }\r\n\r\n var dropZoneGroup = paper.group(entireBlock, textAndRectangleGroup);\r\n return dropZoneGroup;\r\n }\r\n\r\n drawForToolbar(paper: Snap.Paper): Snap.Element {\r\n throw 'Not Supported';\r\n }\r\n\r\n highlightValidOption(): void {\r\n //services.WarsLogger.logDebug(\"Highlight Valid\", this.logType);\r\n this.svgElement.attr({ class: \"hover-valid-option\" });\r\n this.textElement.attr({ class: 'text' });\r\n }\r\n\r\n highlightInvalidOption(): void {\r\n this.svgElement.attr({ class: \"hover-invalid-option\"});\r\n this.textElement.attr({ class: \"alternate-text\" });\r\n //services.WarsLogger.logDebug(\"Highlight Invalid\", this.logType);\r\n }\r\n\r\n unHighlight() : void {\r\n this.svgElement.attr(this.attributes);\r\n this.textElement.attr({ class: \"alternate-text\" });\r\n }\r\n\r\n getDeleteCoordinate(coordinate: models.Coordinate): Coordinate {\r\n throw \"Never draw delete on drop zones\";\r\n }\r\n\r\n getSettingsCoordinate(coordinate: models.Coordinate): Coordinate {\r\n throw \"Never draw delete on drop zones\";\r\n }\r\n\r\n updateDrawingBasedOnLabelLengths(): void { }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var GotoStateWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(GotoStateWorkflowBlock, _super);\r\n function GotoStateWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 18 /* GotoState */, label) || this;\r\n _this.svgScale = .85;\r\n _this.svgToolbarScale = 0.55;\r\n _this.svgWidth = 116.1;\r\n _this.svgHeight = 77.8;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/GotoState.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"changeState\" };\r\n return _this;\r\n }\r\n GotoStateWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.gotoStateDto = dto;\r\n };\r\n return GotoStateWorkflowBlock;\r\n }(models.NoOutputWorkflowBlock));\r\n models.GotoStateWorkflowBlock = GotoStateWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class GotoStateWorkflowBlock extends NoOutputWorkflowBlock {\r\n\r\n public gotoStateDto: Wars.Domain.Model.Dtos.Workflow.GotoStateDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.GotoState, label);\r\n\r\n this.svgScale = .85;\r\n this.svgToolbarScale = 0.55;\r\n this.svgWidth = 116.1;\r\n this.svgHeight = 77.8;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/GotoState.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"changeState\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.GotoStateDto) {\r\n this.gotoStateDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var GotoWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(GotoWorkflowBlock, _super);\r\n function GotoWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 98 /* Goto */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 100;\r\n _this.svgHeight = 100;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/Goto.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"goto\" };\r\n return _this;\r\n }\r\n GotoWorkflowBlock.prototype.hideFeedbackArrow = function () {\r\n if (this.feedbackArrow) {\r\n this.feedbackArrow.stop();\r\n this.feedbackArrow.attr({ opacity: '0' });\r\n }\r\n };\r\n GotoWorkflowBlock.prototype.showFeedbackArrow = function () {\r\n if (this.feedbackArrow) {\r\n this.feedbackArrow.animate({ opacity: '1' }, 300);\r\n }\r\n };\r\n GotoWorkflowBlock.prototype.hoverStart = function () {\r\n this.showOptions();\r\n this.showFeedbackArrow();\r\n };\r\n GotoWorkflowBlock.prototype.hoverEnd = function () {\r\n this.hideOptions();\r\n this.hideFeedbackArrow();\r\n };\r\n GotoWorkflowBlock.prototype.entireWorkflowDrawComplete = function () {\r\n this.toggleEnabledFeedbackArrow = this.drawingInstance.drawFeedbackArrow(this, this.toBlock, true);\r\n _super.prototype.entireWorkflowDrawComplete.call(this);\r\n };\r\n GotoWorkflowBlock.prototype.entireWorkflowDrawComplete2 = function () {\r\n this.feedbackArrow = this.drawingInstance.drawFeedbackArrow(this, this.toBlock, false);\r\n this.hideFeedbackArrow();\r\n _super.prototype.entireWorkflowDrawComplete2.call(this);\r\n };\r\n return GotoWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.GotoWorkflowBlock = GotoWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class GotoWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n private radius: number;\r\n private xPadding: number;\r\n private yPadding: number;\r\n private attributes: any;\r\n private feedbackArrow: Snap.Element;\r\n private toggleEnabledFeedbackArrow: Snap.Element;\r\n public standardLabel: Snap.Element;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.Goto, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 100;\r\n this.svgHeight = 100;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/Goto.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"goto\" };\r\n }\r\n\r\n public hideFeedbackArrow(): void {\r\n if (this.feedbackArrow) {\r\n this.feedbackArrow.stop();\r\n this.feedbackArrow.attr({ opacity: '0' });\r\n }\r\n }\r\n\r\n public showFeedbackArrow(): void {\r\n if (this.feedbackArrow) {\r\n this.feedbackArrow.animate({ opacity: '1' }, 300);\r\n }\r\n }\r\n\r\n public hoverStart(): void {\r\n this.showOptions();\r\n this.showFeedbackArrow();\r\n }\r\n\r\n public hoverEnd(): void {\r\n this.hideOptions();\r\n this.hideFeedbackArrow();\r\n }\r\n\r\n public entireWorkflowDrawComplete() {\r\n this.toggleEnabledFeedbackArrow = this.drawingInstance.drawFeedbackArrow(this, this.toBlock, true);\r\n super.entireWorkflowDrawComplete();\r\n }\r\n\r\n public entireWorkflowDrawComplete2() {\r\n this.feedbackArrow = this.drawingInstance.drawFeedbackArrow(this, this.toBlock, false);\r\n this.hideFeedbackArrow();\r\n super.entireWorkflowDrawComplete2();\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var MessageWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(MessageWorkflowBlock, _super);\r\n function MessageWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 3 /* Message */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 130.3;\r\n _this.svgHeight = 100;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/Message.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"message\" };\r\n return _this;\r\n }\r\n MessageWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.messageDto = dto;\r\n };\r\n return MessageWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.MessageWorkflowBlock = MessageWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class MessageWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public messageDto: Wars.Domain.Model.Dtos.Workflow.MessageDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.Message, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 130.3;\r\n this.svgHeight = 100;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/Message.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"message\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.MessageDto) {\r\n this.messageDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ProcessActionWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(ProcessActionWorkflowBlock, _super);\r\n function ProcessActionWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 13 /* ProcessAction */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 108.9;\r\n _this.svgHeight = 100;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/ProcessAction.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"processAction\" };\r\n _this.isQuickLinkable = true;\r\n return _this;\r\n }\r\n ProcessActionWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.processActionDto = dto;\r\n };\r\n return ProcessActionWorkflowBlock;\r\n }(models.MultipleOutputWorkflowBlock));\r\n models.ProcessActionWorkflowBlock = ProcessActionWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class ProcessActionWorkflowBlock extends MultipleOutputWorkflowBlock {\r\n\r\n public processActionDto: Wars.Domain.Model.Dtos.Workflow.ProcessActionDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 108.9;\r\n this.svgHeight = 100;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/ProcessAction.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"processAction\" };\r\n\r\n this.isQuickLinkable = true;\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.ProcessActionDto) {\r\n this.processActionDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var RemoveResourceWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(RemoveResourceWorkflowBlock, _super);\r\n function RemoveResourceWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 12 /* RemoveResource */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 130.3;\r\n _this.svgHeight = 100;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/Unbook.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"removeResource\" };\r\n return _this;\r\n }\r\n RemoveResourceWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.scheduledResourceDto = dto;\r\n };\r\n return RemoveResourceWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.RemoveResourceWorkflowBlock = RemoveResourceWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class RemoveResourceWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public scheduledResourceDto: Wars.Domain.Model.Dtos.Workflow.ScheduledResourceDto;\r\n \r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 130.3;\r\n this.svgHeight = 100;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/Unbook.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"removeResource\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.ScheduledResourceDto) {\r\n this.scheduledResourceDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ReturnFromProcessActionWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(ReturnFromProcessActionWorkflowBlock, _super);\r\n function ReturnFromProcessActionWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 16 /* ReturnFromProcessAction */, label) || this;\r\n _this.svgWidth = 100;\r\n _this.svgHeight = 40;\r\n _this.svgScale = 1;\r\n _this.svgToolbarScale = 0.75;\r\n _this.width = _this.svgWidth * _this.svgScale;\r\n _this.height = _this.svgHeight * _this.svgScale;\r\n _this.xPadding = (_this.blockWidth - _this.width) / 2;\r\n _this.yPadding = (_this.blockHeight - _this.height) / 2;\r\n _this.attributes = { id: _this.id, class: \"return-from-process-action-workflow-block\", \"data-class\": \"workflowBlock\", \"data-id\": \"returnFromProcessAction\" };\r\n return _this;\r\n }\r\n ReturnFromProcessActionWorkflowBlock.prototype.getBottomPadding = function () {\r\n return this.yPadding;\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.getTopPadding = function () {\r\n return this.yPadding;\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.getLeftPadding = function () {\r\n return this.xPadding;\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.getRightPadding = function () {\r\n return this.xPadding;\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.getMyCenterPoint = function (gridCoordinate) {\r\n var xOffset = (gridCoordinate.x * this.blockWidth);\r\n var yOffset = (gridCoordinate.y * this.blockHeight);\r\n return new models.Coordinate(this.blockWidth / 2 + xOffset, this.blockHeight / 2 + yOffset);\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.draw = function (paper, coordinate) {\r\n var xOffset = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var yOffset = (coordinate.y * this.blockHeight) + this.yPadding;\r\n var entireBlock = this.drawEntireBlock(paper, coordinate);\r\n var centerPoint = this.getMyCenterPoint(coordinate);\r\n this.svgElement = paper.rect(xOffset, yOffset, this.width, this.height, 20, 20);\r\n this.svgElement.attr(this.attributes);\r\n var label = this.label ? this.label : models.WorkflowBlockManager.getWorkflowBlockNameByType(this.type);\r\n this.standardLabel = paper.text(centerPoint.x, centerPoint.y + 5, label);\r\n this.standardLabel.attr({ class: \"text\" });\r\n this.drawOptions(paper, coordinate);\r\n var stateGroup = paper.group(entireBlock, this.svgElement, this.standardLabel, this.deleteImageElement, this.settingsImageElement);\r\n return stateGroup;\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.drawForToolbar = function (paper) {\r\n var width = this.width * 0.75;\r\n var height = this.height * 0.75;\r\n var xOffset = (this.toolbarWidth - width) / 2;\r\n var yOffset = (this.toolbarHeight - height) / 2;\r\n this.svgElement = paper.rect(xOffset, yOffset, width, height, 20, 20);\r\n this.svgElement.attr(this.attributes);\r\n var text = paper.text(xOffset + width / 2, yOffset + height / 2 + 2, this.label);\r\n text.attr({ class: \"text\" });\r\n var stateGroup = paper.group(this.svgElement, text);\r\n return stateGroup;\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.getDeleteCoordinate = function (coordinate) {\r\n var x = (coordinate.x * this.blockWidth) + this.xPadding + this.width - this.getIconWidth();\r\n var y = (coordinate.y * this.blockHeight) + this.yPadding - this.getIconWidth() / 2;\r\n return new models.Coordinate(x, y);\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.getSettingsCoordinate = function (coordinate) {\r\n var x = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var y = (coordinate.y * this.blockHeight) + this.yPadding - this.getIconWidth() / 2;\r\n return new models.Coordinate(x, y);\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.returnFromProcessActionDto = dto;\r\n };\r\n ReturnFromProcessActionWorkflowBlock.prototype.updateDrawingBasedOnLabelLengths = function () {\r\n this.trimTextToSize(this.standardLabel, this.width - 10);\r\n };\r\n return ReturnFromProcessActionWorkflowBlock;\r\n }(models.NoOutputWorkflowBlock));\r\n models.ReturnFromProcessActionWorkflowBlock = ReturnFromProcessActionWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class ReturnFromProcessActionWorkflowBlock extends NoOutputWorkflowBlock {\r\n\r\n private width: number;\r\n private height: number;\r\n private xPadding: number;\r\n private yPadding: number;\r\n private attributes: any;\r\n\r\n public returnFromProcessActionId: string;\r\n public returnFromProcessActionDto: Wars.Domain.Model.Dtos.Workflow.ReturnFromProcessActionDto;\r\n public standardLabel: Snap.Element;\r\n \r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction, label);\r\n\r\n this.svgWidth = 100;\r\n this.svgHeight = 40;\r\n\r\n this.svgScale = 1;\r\n this.svgToolbarScale = 0.75;\r\n\r\n this.width = this.svgWidth * this.svgScale;\r\n this.height = this.svgHeight * this.svgScale;\r\n\r\n this.xPadding = (this.blockWidth - this.width) / 2;\r\n this.yPadding = (this.blockHeight - this.height) / 2;\r\n\r\n this.attributes = { id: this.id, class: \"return-from-process-action-workflow-block\", \"data-class\": \"workflowBlock\", \"data-id\": \"returnFromProcessAction\" };\r\n }\r\n\r\n public getBottomPadding(): number {\r\n return this.yPadding;\r\n }\r\n\r\n public getTopPadding(): number {\r\n return this.yPadding;\r\n }\r\n\r\n public getLeftPadding(): number {\r\n return this.xPadding;\r\n }\r\n\r\n public getRightPadding(): number {\r\n return this.xPadding;\r\n }\r\n\r\n private getMyCenterPoint(gridCoordinate: models.Coordinate): Coordinate {\r\n var xOffset = (gridCoordinate.x * this.blockWidth);\r\n var yOffset = (gridCoordinate.y * this.blockHeight);\r\n return new Coordinate(this.blockWidth / 2 + xOffset, this.blockHeight / 2 + yOffset);\r\n }\r\n\r\n public draw(paper: Snap.Paper, coordinate: models.Coordinate): Snap.Element {\r\n var xOffset = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var yOffset = (coordinate.y * this.blockHeight) + this.yPadding;\r\n\r\n var entireBlock = this.drawEntireBlock(paper, coordinate);\r\n var centerPoint = this.getMyCenterPoint(coordinate);\r\n this.svgElement = paper.rect(xOffset, yOffset, this.width, this.height, 20, 20);\r\n this.svgElement.attr(this.attributes);\r\n\r\n var label = this.label ? this.label : models.WorkflowBlockManager.getWorkflowBlockNameByType(this.type);\r\n this.standardLabel = paper.text(centerPoint.x, centerPoint.y + 5, label);\r\n this.standardLabel.attr({ class: \"text\" });\r\n\r\n this.drawOptions(paper, coordinate);\r\n\r\n var stateGroup = paper.group(entireBlock, this.svgElement, this.standardLabel, this.deleteImageElement, this.settingsImageElement);\r\n return stateGroup;\r\n }\r\n\r\n public drawForToolbar(paper: Snap.Paper): Snap.Element {\r\n var width = this.width * 0.75;\r\n var height = this.height * 0.75;\r\n\r\n var xOffset = (this.toolbarWidth - width) / 2;\r\n var yOffset = (this.toolbarHeight - height) / 2;\r\n\r\n this.svgElement = paper.rect(xOffset, yOffset, width, height, 20, 20);\r\n this.svgElement.attr(this.attributes);\r\n \r\n var text = paper.text(xOffset + width/2, yOffset + height/2 + 2, this.label);\r\n text.attr({ class: \"text\" });\r\n\r\n var stateGroup = paper.group(this.svgElement, text);\r\n return stateGroup;\r\n }\r\n\r\n public getDeleteCoordinate(coordinate: models.Coordinate): Coordinate {\r\n var x = (coordinate.x * this.blockWidth) + this.xPadding + this.width - this.getIconWidth();\r\n var y = (coordinate.y * this.blockHeight) + this.yPadding - this.getIconWidth() / 2;\r\n return new Coordinate(x, y);\r\n }\r\n\r\n public getSettingsCoordinate(coordinate: models.Coordinate): Coordinate {\r\n var x = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var y = (coordinate.y * this.blockHeight) + this.yPadding - this.getIconWidth() / 2;\r\n return new Coordinate(x, y);\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.ReturnFromProcessActionDto) {\r\n this.returnFromProcessActionDto = dto;\r\n }\r\n\r\n public updateDrawingBasedOnLabelLengths(): void {\r\n this.trimTextToSize(this.standardLabel, this.width - 10);\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var SendEmailWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(SendEmailWorkflowBlock, _super);\r\n function SendEmailWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 8 /* SendEmailAction */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 116;\r\n _this.svgHeight = 76.7;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/SendEmail.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"sendEmail\" };\r\n return _this;\r\n }\r\n SendEmailWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.sendEmailDto = dto;\r\n };\r\n return SendEmailWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.SendEmailWorkflowBlock = SendEmailWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class SendEmailWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public sendEmailDto: Wars.Domain.Model.Dtos.Workflow.SendEmailDto;\r\n \r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 116;\r\n this.svgHeight = 76.7;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/SendEmail.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"sendEmail\" };\r\n }\r\n \r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.SendEmailDto) {\r\n this.sendEmailDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var SetDataWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(SetDataWorkflowBlock, _super);\r\n function SetDataWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 20 /* SetData */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 94;\r\n _this.svgHeight = 100;\r\n _this.svgHorizontalOffset = 7;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/SetData.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"setData\" };\r\n return _this;\r\n }\r\n SetDataWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.setDataDto = dto;\r\n };\r\n return SetDataWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.SetDataWorkflowBlock = SetDataWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class SetDataWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public setDataDto: Wars.Domain.Model.Dtos.Workflow.SetDataDto;\r\n \r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.SetData, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 94;\r\n this.svgHeight = 100;\r\n\r\n this.svgHorizontalOffset = 7;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/SetData.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"setData\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.SetDataDto) {\r\n this.setDataDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var StartProcessActionWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(StartProcessActionWorkflowBlock, _super);\r\n function StartProcessActionWorkflowBlock(id, label, initialBlock) {\r\n var _this = _super.call(this, id, 15 /* StartProcessAction */, label) || this;\r\n _this.svgWidth = 100;\r\n _this.svgHeight = 40;\r\n _this.svgScale = 1;\r\n _this.svgToolbarScale = 0.75;\r\n _this.width = _this.svgWidth * _this.svgScale;\r\n _this.height = _this.svgHeight * _this.svgScale;\r\n _this.xPadding = (_this.blockWidth - _this.width) / 2;\r\n _this.yPadding = (_this.blockHeight - _this.height) / 2;\r\n _this.attributes = { id: _this.id, class: \"start-process-action-workflow-block\", \"data-class\": \"workflowBlock\", \"data-id\": \"startProcessAction\" };\r\n _this.isInitialBlock = initialBlock && initialBlock === true;\r\n return _this;\r\n }\r\n StartProcessActionWorkflowBlock.prototype.getBottomPadding = function () {\r\n return this.yPadding;\r\n };\r\n StartProcessActionWorkflowBlock.prototype.getTopPadding = function () {\r\n return this.yPadding;\r\n };\r\n StartProcessActionWorkflowBlock.prototype.getLeftPadding = function () {\r\n return this.xPadding;\r\n };\r\n StartProcessActionWorkflowBlock.prototype.getRightPadding = function () {\r\n return this.xPadding;\r\n };\r\n StartProcessActionWorkflowBlock.prototype.getMyCenterPoint = function (gridCoordinate) {\r\n var xOffset = (gridCoordinate.x * this.blockWidth);\r\n var yOffset = (gridCoordinate.y * this.blockHeight);\r\n return new models.Coordinate(this.blockWidth / 2 + xOffset, this.blockHeight / 2 + yOffset);\r\n };\r\n StartProcessActionWorkflowBlock.prototype.draw = function (paper, coordinate) {\r\n var xOffset = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var yOffset = (coordinate.y * this.blockHeight) + this.yPadding;\r\n var entireBlock = this.drawEntireBlock(paper, coordinate);\r\n var centerPoint = this.getMyCenterPoint(coordinate);\r\n this.svgElement = paper.rect(xOffset, yOffset, this.width, this.height, 20, 20);\r\n this.svgElement.attr(this.attributes);\r\n var label = this.label ? this.label : models.WorkflowBlockManager.getWorkflowBlockNameByType(this.type);\r\n this.standardLabel = paper.text(centerPoint.x, centerPoint.y + 5, label);\r\n this.standardLabel.attr({ class: \"text\" });\r\n this.drawOptions(paper, coordinate);\r\n var stateGroup = paper.group(entireBlock, this.svgElement, this.standardLabel, this.deleteImageElement, this.settingsImageElement);\r\n return stateGroup;\r\n };\r\n StartProcessActionWorkflowBlock.prototype.drawForToolbar = function (paper) {\r\n this.svgElement = paper.rect(2, 20, this.width, this.height, 20, 20);\r\n this.svgElement.attr(this.attributes);\r\n var text = paper.text(this.width / 2, this.height / 2 + 25, this.label);\r\n text.attr({ class: \"text\" });\r\n var stateGroup = paper.group(this.svgElement, text);\r\n return stateGroup;\r\n };\r\n StartProcessActionWorkflowBlock.prototype.getDeleteCoordinate = function (coordinate) {\r\n var x = (coordinate.x * this.blockWidth) + this.xPadding + this.width - this.getIconWidth();\r\n var y = (coordinate.y * this.blockHeight) + this.yPadding - this.getIconWidth() / 2;\r\n return new models.Coordinate(x, y);\r\n };\r\n StartProcessActionWorkflowBlock.prototype.getSettingsCoordinate = function (coordinate) {\r\n var x = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var y = (coordinate.y * this.blockHeight) + this.yPadding - this.getIconWidth() / 2;\r\n return new models.Coordinate(x, y);\r\n };\r\n StartProcessActionWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.startProcessActionDto = dto;\r\n };\r\n StartProcessActionWorkflowBlock.prototype.updateDrawingBasedOnLabelLengths = function () {\r\n this.trimTextToSize(this.standardLabel, this.width - 10);\r\n };\r\n return StartProcessActionWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.StartProcessActionWorkflowBlock = StartProcessActionWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class StartProcessActionWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n private width: number;\r\n private height: number;\r\n private xPadding: number;\r\n private yPadding: number;\r\n private attributes: any;\r\n\r\n public startProcessActionId: string;\r\n public startProcessActionDto: Wars.Domain.Model.Dtos.Workflow.StartProcessActionDto;\r\n public standardLabel: Snap.Element;\r\n \r\n constructor(id: string, label: string, initialBlock?: boolean) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.StartProcessAction, label);\r\n\r\n this.svgWidth = 100;\r\n this.svgHeight = 40;\r\n \r\n this.svgScale = 1;\r\n this.svgToolbarScale = 0.75;\r\n\r\n this.width = this.svgWidth * this.svgScale;\r\n this.height = this.svgHeight * this.svgScale;\r\n\r\n this.xPadding = (this.blockWidth - this.width ) / 2;\r\n this.yPadding = (this.blockHeight - this.height) / 2;\r\n\r\n this.attributes = { id: this.id, class: \"start-process-action-workflow-block\", \"data-class\": \"workflowBlock\", \"data-id\": \"startProcessAction\" };\r\n this.isInitialBlock = initialBlock && initialBlock === true;\r\n }\r\n\r\n public getBottomPadding(): number {\r\n return this.yPadding;\r\n }\r\n\r\n public getTopPadding(): number {\r\n return this.yPadding;\r\n }\r\n\r\n public getLeftPadding(): number {\r\n return this.xPadding;\r\n }\r\n\r\n public getRightPadding(): number {\r\n return this.xPadding;\r\n }\r\n\r\n public getMyCenterPoint(gridCoordinate: models.Coordinate): Coordinate {\r\n var xOffset = (gridCoordinate.x * this.blockWidth);\r\n var yOffset = (gridCoordinate.y * this.blockHeight);\r\n return new Coordinate(this.blockWidth / 2 + xOffset, this.blockHeight / 2 + yOffset);\r\n }\r\n\r\n public draw(paper: Snap.Paper, coordinate: models.Coordinate): Snap.Element {\r\n var xOffset = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var yOffset = (coordinate.y * this.blockHeight) + this.yPadding;\r\n\r\n var entireBlock = this.drawEntireBlock(paper, coordinate);\r\n var centerPoint = this.getMyCenterPoint(coordinate);\r\n this.svgElement = paper.rect(xOffset, yOffset, this.width, this.height, 20, 20);\r\n this.svgElement.attr(this.attributes);\r\n\r\n var label = this.label ? this.label : models.WorkflowBlockManager.getWorkflowBlockNameByType(this.type);\r\n this.standardLabel = paper.text(centerPoint.x, centerPoint.y + 5, label);\r\n this.standardLabel.attr({ class: \"text\" });\r\n\r\n this.drawOptions(paper, coordinate);\r\n\r\n var stateGroup = paper.group(entireBlock, this.svgElement, this.standardLabel, this.deleteImageElement, this.settingsImageElement);\r\n return stateGroup;\r\n }\r\n\r\n public drawForToolbar(paper: Snap.Paper): Snap.Element {\r\n this.svgElement = paper.rect(2, 20, this.width, this.height, 20, 20);\r\n this.svgElement.attr(this.attributes);\r\n \r\n var text = paper.text(this.width/2, this.height/2 + 25, this.label);\r\n text.attr({ class: \"text\" });\r\n\r\n var stateGroup = paper.group(this.svgElement, text);\r\n return stateGroup;\r\n }\r\n\r\n public getDeleteCoordinate(coordinate: models.Coordinate): Coordinate {\r\n var x = (coordinate.x * this.blockWidth) + this.xPadding + this.width - this.getIconWidth();\r\n var y = (coordinate.y * this.blockHeight) + this.yPadding - this.getIconWidth() / 2;\r\n return new Coordinate(x, y);\r\n }\r\n\r\n public getSettingsCoordinate(coordinate: models.Coordinate): Coordinate {\r\n var x = (coordinate.x * this.blockWidth) + this.xPadding;\r\n var y = (coordinate.y * this.blockHeight) + this.yPadding - this.getIconWidth() / 2;\r\n return new Coordinate(x, y);\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.StartProcessActionDto) {\r\n this.startProcessActionDto = dto;\r\n }\r\n\r\n public updateDrawingBasedOnLabelLengths(): void {\r\n this.trimTextToSize(this.standardLabel, this.width - 10);\r\n }\r\n }\r\n}\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var StateWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(StateWorkflowBlock, _super);\r\n function StateWorkflowBlock(id, label, initialBlock) {\r\n var _this = _super.call(this, id, 0 /* State */, label) || this;\r\n _this.svgScale = 1;\r\n _this.svgToolbarScale = 0.66;\r\n _this.svgWidth = 98.6;\r\n _this.svgHeight = 58;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/State.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"state\" };\r\n _this.isInitialBlock = initialBlock && initialBlock === true;\r\n return _this;\r\n }\r\n StateWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.stateDto = dto;\r\n };\r\n return StateWorkflowBlock;\r\n }(models.MultipleOutputWorkflowBlock));\r\n models.StateWorkflowBlock = StateWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class StateWorkflowBlock extends MultipleOutputWorkflowBlock {\r\n\r\n public stateDto: Wars.Domain.Model.Dtos.Workflow.StateDto;\r\n \r\n constructor(id: string, label: string, initialBlock? : boolean) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.State, label);\r\n\r\n this.svgScale = 1;\r\n this.svgToolbarScale = 0.66;\r\n this.svgWidth = 98.6;\r\n this.svgHeight = 58;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/State.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"state\" };\r\n this.isInitialBlock = initialBlock && initialBlock === true;\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.StateDto) {\r\n this.stateDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var StatusChangeWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(StatusChangeWorkflowBlock, _super);\r\n function StatusChangeWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 4 /* StatusChange */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 88.5;\r\n _this.svgHeight = 100;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/StatusChange.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"statusChange\" };\r\n return _this;\r\n }\r\n StatusChangeWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.statusChangeDto = dto;\r\n };\r\n return StatusChangeWorkflowBlock;\r\n }(models.NoOutputWorkflowBlock));\r\n models.StatusChangeWorkflowBlock = StatusChangeWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class StatusChangeWorkflowBlock extends NoOutputWorkflowBlock {\r\n\r\n public statusChangeDto: Wars.Domain.Model.Dtos.Workflow.StatusChangeDto;\r\n\r\n public statusChangeId: string;\r\n public toStatusGroupId: string;\r\n \r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.StatusChange, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 88.5;\r\n this.svgHeight = 100;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/StatusChange.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"statusChange\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.StatusChangeDto) {\r\n this.statusChangeDto = dto;\r\n }\r\n }\r\n}\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var SystemActionWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(SystemActionWorkflowBlock, _super);\r\n function SystemActionWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 17 /* SystemAction */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 95.45;\r\n _this.svgHeight = 99.95;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/SystemAction.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"systemAction\" };\r\n return _this;\r\n }\r\n SystemActionWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.systemActionDto = dto;\r\n };\r\n return SystemActionWorkflowBlock;\r\n }(models.MultipleOutputWorkflowBlock));\r\n models.SystemActionWorkflowBlock = SystemActionWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class SystemActionWorkflowBlock extends MultipleOutputWorkflowBlock {\r\n\r\n public systemActionDto: Wars.Domain.Model.Dtos.Workflow.SystemActionDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.SystemAction, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 95.45;\r\n this.svgHeight = 99.95;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/SystemAction.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"systemAction\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.SystemActionDto) {\r\n this.systemActionDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var UserActionWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(UserActionWorkflowBlock, _super);\r\n function UserActionWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 1 /* UserAction */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 90.2;\r\n _this.svgHeight = 100;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/UserAction.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"userAction\" };\r\n return _this;\r\n }\r\n UserActionWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.userActionDto = dto;\r\n };\r\n return UserActionWorkflowBlock;\r\n }(models.SingleOutputWorkflowBlock));\r\n models.UserActionWorkflowBlock = UserActionWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class UserActionWorkflowBlock extends SingleOutputWorkflowBlock {\r\n\r\n public userActionDto: Wars.Domain.Model.Dtos.Workflow.UserActionDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.UserAction, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 90.2;\r\n this.svgHeight = 100;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/UserAction.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"userAction\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.UserActionDto) {\r\n this.userActionDto = dto;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ValidateWorkflowBlock = /** @class */ (function (_super) {\r\n __extends(ValidateWorkflowBlock, _super);\r\n function ValidateWorkflowBlock(id, label) {\r\n var _this = _super.call(this, id, 6 /* Validate */, label) || this;\r\n _this.svgScale = 0.75;\r\n _this.svgToolbarScale = 0.4;\r\n _this.svgWidth = 72.2;\r\n _this.svgHeight = 101.3;\r\n _this.svgUrl = \"./Content/Images/WorkflowShapes/Validate.svg\";\r\n _this.svgAttributes = { id: _this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"validate\" };\r\n return _this;\r\n }\r\n ValidateWorkflowBlock.prototype.populateDto = function (dto) {\r\n this.validateDto = dto;\r\n };\r\n return ValidateWorkflowBlock;\r\n }(models.YesNoOutputWorkflowBlock));\r\n models.ValidateWorkflowBlock = ValidateWorkflowBlock;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class ValidateWorkflowBlock extends YesNoOutputWorkflowBlock {\r\n\r\n public validateDto: Wars.Domain.Model.Dtos.Workflow.ValidateDto;\r\n\r\n constructor(id: string, label: string) {\r\n super(id, Wars.Domain.Model.Codes.Enums.BlockType.Validate, label);\r\n\r\n this.svgScale = 0.75;\r\n this.svgToolbarScale = 0.4;\r\n this.svgWidth = 72.2;\r\n this.svgHeight = 101.3;\r\n\r\n this.svgUrl = \"./Content/Images/WorkflowShapes/Validate.svg\";\r\n this.svgAttributes = { id: this.id, \"data-class\": \"workflowBlock\", \"data-id\": \"validate\" };\r\n }\r\n\r\n public populateDto(dto: Wars.Domain.Model.Dtos.Workflow.ValidateDto) : void {\r\n this.validateDto = dto;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ActiveProcessTypesModel{\r\n\r\n public activeProcessTypes: Wars.Domain.Model.ProcessType[];\r\n\r\n constructor(private processTypeService: services.ProcessTypeService) {\r\n this.processTypeService.getActiveProcessTypes().then(result => {\r\n this.activeProcessTypes = result;\r\n });\r\n } \r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ApplicationCode {\r\n public uniqueIdentifier: string;\r\n public codeGroup: string;\r\n public shortDescription: string;\r\n public longDescription: string;\r\n public isActive: boolean;\r\n\r\n constructor(uniqueIdentifier? : string, codeGroup? : string, shortDescription? : string, longDescription? : string, isActive? :boolean) {\r\n this.uniqueIdentifier = uniqueIdentifier;\r\n this.codeGroup = codeGroup;\r\n this.shortDescription = shortDescription;\r\n this.longDescription = longDescription;\r\n this.isActive = isActive;\r\n }\r\n\r\n public createFormattedString(displayFormat: string) : string {\r\n return displayFormat\r\n .replace(\"{id}\", this.uniqueIdentifier)\r\n .replace(\"{codeGroup}\", this.codeGroup)\r\n .replace(\"{shortDescription}\", this.shortDescription)\r\n .replace(\"{longDescription}\", this.longDescription)\r\n .replace(\"{isActive}\", this.isActive ? \"True\" : \"False\");\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ApplicationCodePromise {\r\n \r\n public model: GetCodeModel;\r\n public includeInactiveCodes: boolean;\r\n public deferred: ng.IDeferred;\r\n\r\n constructor(model: GetCodeModel, includeInactiveCodes: boolean, deferred: ng.IDeferred) {\r\n this.model = model;\r\n this.includeInactiveCodes = includeInactiveCodes;\r\n this.deferred = deferred;\r\n }\r\n\r\n \r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n declare var batchJobDashboardModelActionSelf: BatchJobDashboardModel;\r\n\r\n export class BatchJobDashboardModel {\r\n batchJobDtos: Wars.Domain.Model.Dtos.BatchJobDto[];\r\n\r\n constructor(\r\n private scope: angular.IScope,\r\n private growlService: angular.growl.IGrowlService,\r\n private batchJobDashboardService: services.BatchJobDashboardService) {\r\n batchJobDashboardModelActionSelf = this;\r\n batchJobDashboardModelActionSelf.batchJobDashboardService.getBatchJobExecutions()\r\n .then((batchJobExecutions) => {\r\n batchJobDashboardModelActionSelf.batchJobDtos = batchJobExecutions;\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class CodeDropDownContext {\r\n public includeSpecifiedOptionsOnly: Array;\r\n public removeSpecifiedOptions: Array;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class CodeDropDownItem {\r\n public text: string;\r\n public value: string;\r\n\r\n constructor(text: string, value: string) {\r\n this.text = text;\r\n this.value = value;\r\n }\r\n\r\n public static getDefaultSelectOption(): CodeDropDownItem {\r\n return new CodeDropDownItem('Select...', null);\r\n }\r\n\r\n public static getDefaultAllOption(): CodeDropDownItem {\r\n return new CodeDropDownItem('All', null);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class CodeGroup {\r\n public groupName: string;\r\n public codes: ApplicationCode[];\r\n }\r\n}","/// \r\n//module warsApp.models {\r\n// export enum ExpressionType {\r\n// Group,\r\n// Value,\r\n// Field,\r\n// Claim,\r\n// ProcessData\r\n// }\r\n// export abstract class Expression {\r\n// public parent:Expression\r\n// public comparsionOperator: ComparisonOperator;\r\n// abstract getType(): ExpressionType; \r\n// public depth:number;\r\n// }\r\n// export class GroupExpression extends warsApp.models.Expression {\r\n// getType(): ExpressionType {\r\n// return ExpressionType.Group;\r\n// } \r\n// public childExpressions:Expression[];\r\n// } \r\n// export class TreeItemToConstantExpression extends warsApp.models.Expression {\r\n// getType(): ExpressionType { return ExpressionType.Value; }\r\n// public value: string;\r\n//;\r\n// }\r\n// export class TreeItemToTreeItemExpression extends warsApp.models.BooleanExpression {\r\n// getType(): ExpressionType { return ExpressionType.Field; }\r\n// public valueText: string;\r\n// public valueFieldId: number;\r\n// public valueFieldName: string\r\n// }\r\n// export abstract class BooleanExpression extends warsApp.models.Expression {\r\n// public logicalOperator:LogicalOperator;\r\n// public fieldId: number;\r\n// public fieldName: string;\r\n// public fieldText: string;\r\n// public setComparsionOperator(operator: string) {\r\n// switch (operator) {\r\n// case \"==\":\r\n// this.comparsionOperator = ComparisonOperator.Equals;\r\n// break;\r\n// case \"!=\":\r\n// this.comparsionOperator = ComparisonOperator.NotEquals;\r\n// break;\r\n// case \">\":\r\n// this.comparsionOperator = ComparisonOperator.GreaterThan;\r\n// break;\r\n// case \"<\":\r\n// this.comparsionOperator = ComparisonOperator.LessThan;\r\n// break;\r\n// case \">=\":\r\n// this.comparsionOperator = ComparisonOperator.GreaterThanOrEqual;\r\n// break;\r\n// case \"<=\":\r\n// this.comparsionOperator = ComparisonOperator.LessThanOrEqual;\r\n// break;\r\n// default:\r\n// this.comparsionOperator = ComparisonOperator.Equals;\r\n// }\r\n// }\r\n// }\r\n//}\r\n//# sourceMappingURL=booleanExpression.js.map","/// \r\nenum ComparisonOperator {\r\n Equals = 0,\r\n NotEquals = 1,\r\n GreaterThan=2,\r\n LessThan = 3,\r\n GreaterThanOrEqual = 4,\r\n LessThanOrEqual=5 \r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var Condition = /** @class */ (function (_super) {\r\n __extends(Condition, _super);\r\n function Condition() {\r\n return _super.call(this) || this;\r\n //this.expressionParts = [];\r\n }\r\n Condition.prototype.getText = function (processConfiguration) {\r\n if (this.isManuallyEdited)\r\n return this.javascript;\r\n //if (!this.expressionParts) {\r\n // this.reverseJavascript(processConfiguration);\r\n //}\r\n };\r\n //private getExpressionText(expression:BooleanExpression):string {\r\n // if (expression.isFieldExpression) {\r\n // }\r\n //}\r\n Condition.prototype.generateJavascript = function () {\r\n var jStr = 'if(';\r\n //TODO: Uncomment and fix\r\n //for (var i = 0; i < this.expressionParts.length; i++) {\r\n // if (i !== 0) {\r\n // if (this.expressionParts[i].logicalOperator == LogicalOperator.And) {\r\n // jStr += \" && \";\r\n // }\r\n // else if (this.expressionParts[i].logicalOperator == LogicalOperator.Or) {\r\n // jStr += \" || \";\r\n // } else {\r\n // jStr += \" && \";\r\n // }\r\n // }\r\n // jStr += \"process['\" + this.expressionParts[i].fieldName + \"']\";\r\n // if (this.expressionParts[i].comparsionOperator == ComparisonOperator.Equals) {\r\n // jStr += \" == \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.NotEquals) {\r\n // jStr += \" != \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.GreaterThan) {\r\n // jStr += \" > \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.LessThan) {\r\n // jStr += \" < \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.GreaterThanOrEqual) {\r\n // jStr += \" >= \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.LessThanOrEqual) {\r\n // jStr += \" <= \";\r\n // } else {\r\n // jStr += \" == \";\r\n // }\r\n // if (this.expressionParts[i].isFieldExpression) {\r\n // jStr += \"process['\" + this.expressionParts[i].valueFieldName + \"']\";\r\n // } else {\r\n // var value = this.expressionParts[i].value;\r\n // if (value == 'true' || value == 'false') {\r\n // jStr += value;\r\n // } else {\r\n // jStr += \"'\" + this.expressionParts[i].value + \"'\";\r\n // }\r\n // }\r\n //}\r\n jStr += \"){\\n \\treturn true;\\n}\\nreturn false;\";\r\n this.javascript = jStr;\r\n };\r\n Condition.prototype.reverseJavascript = function (processConfiguration) {\r\n console.info(\"reverse\");\r\n if (this == null || this.javascript == null)\r\n return;\r\n // var parts = new Array();\r\n //var startIndex = this.javascript.indexOf(\"(\");\r\n //var lastStart = this.javascript.lastIndexOf(\"(\");\r\n //if (startIndex != lastStart) {\r\n // //this.onlyShowAdvanced = true;\r\n // return;\r\n //}\r\n //var endIndex = this.javascript.indexOf(\")\");\r\n //var conditionStr = this.javascript.substring(startIndex + 1, endIndex);\r\n //var andConditions = conditionStr.split(\" && \");\r\n //var orConditions = conditionStr.split(\" || \");\r\n //var firstAndIndex = conditionStr.indexOf(\" && \");\r\n //var firstOrIndex = conditionStr.indexOf(\" || \");\r\n //if (firstAndIndex == -1 && firstOrIndex == -1) {\r\n // this.setParts(andConditions, true, true, parts, processConfiguration);\r\n //} else {\r\n // if (firstAndIndex == -1) {\r\n // this.setParts(orConditions, true, false, parts, processConfiguration);\r\n // } else if (firstOrIndex == -1) {\r\n // this.setParts(andConditions, true, true, parts, processConfiguration);\r\n // } else {\r\n // var isFirstAnd = firstAndIndex < firstOrIndex;\r\n // this.setParts(andConditions, isFirstAnd, true, parts, processConfiguration);\r\n // this.setParts(orConditions, !isFirstAnd, false, parts, processConfiguration);\r\n // }\r\n //}\r\n //this.expressionParts = parts;\r\n };\r\n Condition.prototype.setParts = function (conditions, isFirst, isAnd, parts, processConfiguration) {\r\n for (var i = 0; i < conditions.length; i++) {\r\n var partCondition = conditions[i].split(\" \");\r\n if (partCondition.length != 3) {\r\n //this.onlyShowAdvanced = true;\r\n return;\r\n }\r\n //TODO: Uncomment and fix\r\n //var newPart = new warsApp.models.BooleanExpression();\r\n //if (!isFirst || i != 0) {\r\n // if (isAnd) {\r\n // newPart.logicalOperator = LogicalOperator.And;\r\n // } else {\r\n // newPart.logicalOperator = LogicalOperator.Or;\r\n // }\r\n //}\r\n //newPart.setComparsionOperator(partCondition[1]);\r\n //if (partCondition[0].indexOf(\"process['\") == -1) {\r\n // //this.onlyShowAdvanced = true;\r\n // return;\r\n //} else {\r\n // newPart.fieldName = partCondition[0].replace(\"process['\", \"\").replace(\"']\", \"\");\r\n // newPart.fieldText = this.getTextForUniqueName(newPart.fieldName, processConfiguration);\r\n //}\r\n //if (partCondition[2].indexOf(\"process['\") == -1) {\r\n // newPart.value = partCondition[2].replace(/'/g, \"\");\r\n //} else {\r\n // newPart.valueFieldName = partCondition[2].replace(\"process['\", \"\").replace(\"']\", \"\");\r\n // newPart.valueText = this.getTextForUniqueName(newPart.valueFieldName, processConfiguration);\r\n // newPart.isFieldExpression = true;\r\n //}\r\n //parts.push(newPart);\r\n }\r\n };\r\n Condition.prototype.getTextForUniqueName = function (name, form) {\r\n var fields = Wars.Domain.Model.ProcessConfigurationUtilities.GetFields(form);\r\n for (var i = 0; i < fields.length; i++) {\r\n if (fields[i].schemaProperty.uniqueIdentifier == name) {\r\n return fields[i].schemaProperty.name;\r\n }\r\n }\r\n return '';\r\n };\r\n return Condition;\r\n }(BaseEntity));\r\n models.Condition = Condition;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n\r\n export class Condition extends BaseEntity implements Wars.Domain.Model.Conditions.Condition {\r\n constructor() {\r\n super();\r\n //this.expressionParts = [];\r\n }\r\n\r\n //public expressionParts: warsApp.models.Expression[];\r\n public message;\r\n public name;\r\n public javascript;\r\n public description;\r\n public processConfiguration_id: string;\r\n public tags: Wars.Domain.Model.Tag[];\r\n public bindings: Wars.Domain.Model.TreeItem[];\r\n onlyShowAdvanced: boolean;\r\n isManuallyEdited: boolean;\r\n expression: Wars.Domain.Model.Conditions.GroupExpression;\r\n expression_id: string;\r\n\r\n\r\n\r\n public getText(processConfiguration: Wars.Domain.Model.ProcessConfiguration) {\r\n if (this.isManuallyEdited)\r\n return this.javascript;\r\n\r\n //if (!this.expressionParts) {\r\n // this.reverseJavascript(processConfiguration);\r\n //}\r\n\r\n }\r\n\r\n //private getExpressionText(expression:BooleanExpression):string {\r\n // if (expression.isFieldExpression) {\r\n\r\n // }\r\n //}\r\n\r\n public generateJavascript() {\r\n var jStr = 'if(';\r\n\r\n //TODO: Uncomment and fix\r\n //for (var i = 0; i < this.expressionParts.length; i++) {\r\n // if (i !== 0) {\r\n // if (this.expressionParts[i].logicalOperator == LogicalOperator.And) {\r\n // jStr += \" && \";\r\n // }\r\n // else if (this.expressionParts[i].logicalOperator == LogicalOperator.Or) {\r\n // jStr += \" || \";\r\n // } else {\r\n // jStr += \" && \";\r\n // }\r\n // }\r\n\r\n // jStr += \"process['\" + this.expressionParts[i].fieldName + \"']\";\r\n\r\n // if (this.expressionParts[i].comparsionOperator == ComparisonOperator.Equals) {\r\n // jStr += \" == \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.NotEquals) {\r\n // jStr += \" != \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.GreaterThan) {\r\n // jStr += \" > \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.LessThan) {\r\n // jStr += \" < \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.GreaterThanOrEqual) {\r\n // jStr += \" >= \";\r\n // }\r\n // else if (this.expressionParts[i].comparsionOperator == ComparisonOperator.LessThanOrEqual) {\r\n // jStr += \" <= \";\r\n // } else {\r\n // jStr += \" == \";\r\n // }\r\n\r\n // if (this.expressionParts[i].isFieldExpression) {\r\n // jStr += \"process['\" + this.expressionParts[i].valueFieldName + \"']\";\r\n // } else {\r\n // var value = this.expressionParts[i].value;\r\n // if (value == 'true' || value == 'false') {\r\n // jStr += value;\r\n // } else {\r\n // jStr += \"'\" + this.expressionParts[i].value + \"'\";\r\n // }\r\n // }\r\n //}\r\n\r\n jStr += \"){\\n \\treturn true;\\n}\\nreturn false;\";\r\n\r\n this.javascript = jStr;\r\n }\r\n\r\n public reverseJavascript(processConfiguration: Wars.Domain.Model.ProcessConfiguration) {\r\n console.info(\"reverse\");\r\n if (this == null || this.javascript == null)\r\n return;\r\n\r\n // var parts = new Array();\r\n\r\n //var startIndex = this.javascript.indexOf(\"(\");\r\n //var lastStart = this.javascript.lastIndexOf(\"(\");\r\n\r\n //if (startIndex != lastStart) {\r\n // //this.onlyShowAdvanced = true;\r\n // return;\r\n //}\r\n\r\n //var endIndex = this.javascript.indexOf(\")\");\r\n //var conditionStr = this.javascript.substring(startIndex + 1, endIndex);\r\n\r\n //var andConditions = conditionStr.split(\" && \");\r\n //var orConditions = conditionStr.split(\" || \");\r\n\r\n //var firstAndIndex = conditionStr.indexOf(\" && \");\r\n //var firstOrIndex = conditionStr.indexOf(\" || \");\r\n\r\n //if (firstAndIndex == -1 && firstOrIndex == -1) {\r\n // this.setParts(andConditions, true, true, parts, processConfiguration);\r\n //} else {\r\n // if (firstAndIndex == -1) {\r\n // this.setParts(orConditions, true, false, parts, processConfiguration);\r\n // } else if (firstOrIndex == -1) {\r\n // this.setParts(andConditions, true, true, parts, processConfiguration);\r\n // } else {\r\n // var isFirstAnd = firstAndIndex < firstOrIndex;\r\n // this.setParts(andConditions, isFirstAnd, true, parts, processConfiguration);\r\n // this.setParts(orConditions, !isFirstAnd, false, parts, processConfiguration);\r\n // }\r\n //}\r\n\r\n //this.expressionParts = parts;\r\n }\r\n\r\n private setParts(conditions: any, isFirst: boolean, isAnd: boolean, parts: any, processConfiguration: Wars.Domain.Model.ProcessConfiguration) {\r\n for (var i = 0; i < conditions.length; i++) {\r\n var partCondition = conditions[i].split(\" \");\r\n\r\n if (partCondition.length != 3) {\r\n //this.onlyShowAdvanced = true;\r\n return;\r\n }\r\n//TODO: Uncomment and fix\r\n\r\n //var newPart = new warsApp.models.BooleanExpression();\r\n\r\n //if (!isFirst || i != 0) {\r\n // if (isAnd) {\r\n // newPart.logicalOperator = LogicalOperator.And;\r\n // } else {\r\n // newPart.logicalOperator = LogicalOperator.Or;\r\n // }\r\n //}\r\n\r\n //newPart.setComparsionOperator(partCondition[1]);\r\n\r\n //if (partCondition[0].indexOf(\"process['\") == -1) {\r\n // //this.onlyShowAdvanced = true;\r\n // return;\r\n //} else {\r\n // newPart.fieldName = partCondition[0].replace(\"process['\", \"\").replace(\"']\", \"\");\r\n // newPart.fieldText = this.getTextForUniqueName(newPart.fieldName, processConfiguration);\r\n //}\r\n\r\n //if (partCondition[2].indexOf(\"process['\") == -1) {\r\n // newPart.value = partCondition[2].replace(/'/g, \"\");\r\n //} else {\r\n // newPart.valueFieldName = partCondition[2].replace(\"process['\", \"\").replace(\"']\", \"\");\r\n // newPart.valueText = this.getTextForUniqueName(newPart.valueFieldName, processConfiguration);\r\n // newPart.isFieldExpression = true;\r\n //}\r\n\r\n //parts.push(newPart);\r\n }\r\n }\r\n\r\n private getTextForUniqueName(name: string, form: Wars.Domain.Model.Form) {\r\n var fields = Wars.Domain.Model.ProcessConfigurationUtilities.GetFields(form);\r\n for (var i = 0; i < fields.length; i++) {\r\n if (fields[i].schemaProperty.uniqueIdentifier == name) {\r\n return fields[i].schemaProperty.name;\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n operationParameters: Wars.Domain.Model.OperationParameter[];\r\n }\r\n}","/// \r\nenum LogicalOperator {\r\n And = 0,\r\n Or = 1\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ApiConfigurationModel {\r\n\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n apiConfigurations: Wars.Domain.Model.ApiConfiguration[];\r\n apiConfiguration: Wars.Domain.Model.ApiConfiguration;\r\n objectQueries: Array;\r\n showEdit: boolean;\r\n editingNew: boolean;\r\n editingExisting: boolean;\r\n public exampleUrl: string;\r\n public keys: Wars.Domain.Model.ApiKey[];\r\n\r\n constructor(\r\n private scope: angular.IScope,\r\n private growlService: angular.growl.IGrowlService,\r\n private processConfigurationId: string,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private apiConfigurationService: services.ApiConfigurationService,\r\n private queryConfigurationService: services.QueryConfigurationService,\r\n private objectQueryService: services.ObjectQueryService,\r\n private deleteService: services.DeleteService,\r\n private apiKeyService: services.ApiKeyService,\r\n private externalApiService: services.ExternalApiService,\r\n private baseUrl: string)\r\n {\r\n apiKeyService.getKeys().then(keys => {\r\n this.keys = keys;\r\n });\r\n\r\n this.baseUrl += \"api/ExternalApi/\";\r\n\r\n if (this.processConfigurationId) {\r\n this.apiConfigurationService.getAllApiConfigurationsByProcessId(this.processConfigurationId)\r\n .then((apiConfigurations) => {\r\n this.apiConfigurations = apiConfigurations;\r\n });\r\n objectQueryService.getAllObjectQueriesForProcessConfiguration(this.processConfigurationId)\r\n .then(objectQueries => {\r\n this.objectQueries = Enumerable.from(objectQueries).where(i => i.isExecutable).toArray();\r\n });\r\n this.processConfigurationService.getProcessConfigEagerLoadProcessType(this.processConfigurationId).then(\r\n (processConfig) => {\r\n this.processConfiguration = processConfig;\r\n });\r\n } else {\r\n this.systemLevelService.getSystemLevelApiConfigurations()\r\n .then((systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n this.apiConfigurations = systemLevel.myApiConfigurations;\r\n });\r\n objectQueryService.getAllObjectQueriesForSystemLevel()\r\n .then(objectQueries => {\r\n this.objectQueries = objectQueries;\r\n });\r\n }\r\n }\r\n\r\n\r\n addApiConfiguration() {\r\n var newApiConfiguration = this.apiConfigurationService.createApiConfiguration();\r\n if (this.processConfigurationId) {\r\n newApiConfiguration.processConfiguration_id = this.processConfigurationId;\r\n } else {\r\n newApiConfiguration.systemLevel_id = this.systemLevel.id;\r\n }\r\n newApiConfiguration.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n this.apiConfigurationService.saveAllChanges(() => {\r\n this.apiConfiguration = newApiConfiguration;\r\n this.apiConfigurations.push(newApiConfiguration);\r\n this.showEdit = true;\r\n this.editingNew = true;\r\n });\r\n }\r\n\r\n configureApiConfiguration(apiConfiguration: Wars.Domain.Model.ApiConfiguration) {\r\n this.apiConfiguration = apiConfiguration;\r\n this.showEdit = true;\r\n this.editingExisting = true;\r\n this.setExampleUrl();\r\n }\r\n\r\n deleteApiConfiguration(apiConfiguration: Wars.Domain.Model.ApiConfiguration) {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"ApiConfiguration\",\r\n apiConfiguration.id,\r\n \"Successfully delete API Configuration\",\r\n () => {\r\n this.apiConfigurations.remove(apiConfiguration);\r\n this.showEdit = false;\r\n },\r\n \"Could not delete API Configuration\");\r\n }\r\n\r\n selectApiQuery() {\r\n if (this.apiConfiguration.parameters.length > 0) {\r\n this.apiConfiguration.parameters.forEach(parameter => {\r\n parameter.entityAspect.setDeleted();\r\n });\r\n }\r\n if (this.apiConfiguration.myObjectQuery &&\r\n this.apiConfiguration.myObjectQuery.myInputObjectSchema &&\r\n this.apiConfiguration.myObjectQuery.myInputObjectSchema.properties) {\r\n this.apiConfiguration.myObjectQuery.myInputObjectSchema.properties\r\n .forEach(property => {\r\n var queryParameter = this.queryConfigurationService.createNewQueryParameter();\r\n queryParameter.name = property.name;\r\n queryParameter.mySchemaProperty = property;\r\n queryParameter.schemaProperty_id = property.id;\r\n this.apiConfiguration.parameters.push(queryParameter);\r\n });\r\n }\r\n this.saveChanges();\r\n }\r\n\r\n saveChanges() {\r\n this.setExampleUrl();\r\n this.apiConfigurationService.saveAllChanges();\r\n }\r\n\r\n private setExampleUrl(): void {\r\n if (this.apiConfiguration.name === null || this.apiConfiguration.name === undefined) return;\r\n\r\n var apiName = this.apiConfiguration.name.replace(/\\s+/g, '-').toLowerCase();\r\n var processConfigName = this.processConfigurationId\r\n ? this.processConfiguration.myProcessType.name.replace(/\\s+/g, '-').toLowerCase()\r\n : '';\r\n\r\n if (this.apiConfiguration.apiType === Wars.Domain.Model.Codes.Enums.ApiType.QueryGet) {\r\n if (this.processConfigurationId) {\r\n var url = this.baseUrl + processConfigName + \"/Query/\" + apiName;\r\n this.exampleUrl = this.addQueryStringParams(url, this.apiConfiguration.parameters);\r\n } else {\r\n var url = this.baseUrl + \"Query/\" + apiName;\r\n this.exampleUrl = this.addQueryStringParams(url, this.apiConfiguration.parameters);\r\n }\r\n } else if (this.apiConfiguration.apiType === Wars.Domain.Model.Codes.Enums.ApiType.PerProcessGet) {\r\n var paramerterPart = this.apiConfiguration.inputType ===\r\n Wars.Domain.Model.Codes.Enums.ProcessApiInputType.ProcessName\r\n ? \"/[processName]\"\r\n : \"/[processId]\";\r\n\r\n if (this.processConfigurationId) {\r\n this.exampleUrl = this.baseUrl +\r\n \"GetAllProcessData/\" +\r\n processConfigName +\r\n \"/\" +\r\n apiName +\r\n paramerterPart;\r\n } else {\r\n this.exampleUrl = this.baseUrl + \"GetAllProcessData/\" + apiName + paramerterPart;\r\n }\r\n }\r\n }\r\n\r\n private addQueryStringParams(url: string, parameters: Wars.Domain.Model.OperationParameter[]): string {\r\n if (parameters && parameters.length > 0) {\r\n url += \"?\";\r\n for (let i = 0; i < parameters.length; i++) {\r\n url += parameters[i].name.replace(/\\s+/g, '-').toLowerCase() + \"=[paramValue]&\"\r\n }\r\n url = url.substring(0, url.length - 1);\r\n }\r\n return url;\r\n }\r\n\r\n private close() {\r\n this.showEdit = false;\r\n }\r\n }\r\n}","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ApiConfigurationModel = /** @class */ (function () {\r\n function ApiConfigurationModel(scope, growlService, processConfigurationId, processConfigurationService, systemLevelService, apiConfigurationService, queryConfigurationService, objectQueryService, deleteService, apiKeyService, externalApiService, baseUrl) {\r\n var _this = this;\r\n this.scope = scope;\r\n this.growlService = growlService;\r\n this.processConfigurationId = processConfigurationId;\r\n this.processConfigurationService = processConfigurationService;\r\n this.systemLevelService = systemLevelService;\r\n this.apiConfigurationService = apiConfigurationService;\r\n this.queryConfigurationService = queryConfigurationService;\r\n this.objectQueryService = objectQueryService;\r\n this.deleteService = deleteService;\r\n this.apiKeyService = apiKeyService;\r\n this.externalApiService = externalApiService;\r\n this.baseUrl = baseUrl;\r\n apiKeyService.getKeys().then(function (keys) {\r\n _this.keys = keys;\r\n });\r\n this.baseUrl += \"api/ExternalApi/\";\r\n if (this.processConfigurationId) {\r\n this.apiConfigurationService.getAllApiConfigurationsByProcessId(this.processConfigurationId)\r\n .then(function (apiConfigurations) {\r\n _this.apiConfigurations = apiConfigurations;\r\n });\r\n objectQueryService.getAllObjectQueriesForProcessConfiguration(this.processConfigurationId)\r\n .then(function (objectQueries) {\r\n _this.objectQueries = Enumerable.from(objectQueries).where(function (i) { return i.isExecutable; }).toArray();\r\n });\r\n this.processConfigurationService.getProcessConfigEagerLoadProcessType(this.processConfigurationId).then(function (processConfig) {\r\n _this.processConfiguration = processConfig;\r\n });\r\n }\r\n else {\r\n this.systemLevelService.getSystemLevelApiConfigurations()\r\n .then(function (systemLevel) {\r\n _this.systemLevel = systemLevel;\r\n _this.apiConfigurations = systemLevel.myApiConfigurations;\r\n });\r\n objectQueryService.getAllObjectQueriesForSystemLevel()\r\n .then(function (objectQueries) {\r\n _this.objectQueries = objectQueries;\r\n });\r\n }\r\n }\r\n ApiConfigurationModel.prototype.addApiConfiguration = function () {\r\n var _this = this;\r\n var newApiConfiguration = this.apiConfigurationService.createApiConfiguration();\r\n if (this.processConfigurationId) {\r\n newApiConfiguration.processConfiguration_id = this.processConfigurationId;\r\n }\r\n else {\r\n newApiConfiguration.systemLevel_id = this.systemLevel.id;\r\n }\r\n newApiConfiguration.uniqueIdentifier = warsApp.services.UtilityService.generateGuidComb();\r\n this.apiConfigurationService.saveAllChanges(function () {\r\n _this.apiConfiguration = newApiConfiguration;\r\n _this.apiConfigurations.push(newApiConfiguration);\r\n _this.showEdit = true;\r\n _this.editingNew = true;\r\n });\r\n };\r\n ApiConfigurationModel.prototype.configureApiConfiguration = function (apiConfiguration) {\r\n this.apiConfiguration = apiConfiguration;\r\n this.showEdit = true;\r\n this.editingExisting = true;\r\n this.setExampleUrl();\r\n };\r\n ApiConfigurationModel.prototype.deleteApiConfiguration = function (apiConfiguration) {\r\n var _this = this;\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\"ApiConfiguration\", apiConfiguration.id, \"Successfully delete API Configuration\", function () {\r\n _this.apiConfigurations.remove(apiConfiguration);\r\n _this.showEdit = false;\r\n }, \"Could not delete API Configuration\");\r\n };\r\n ApiConfigurationModel.prototype.selectApiQuery = function () {\r\n var _this = this;\r\n if (this.apiConfiguration.parameters.length > 0) {\r\n this.apiConfiguration.parameters.forEach(function (parameter) {\r\n parameter.entityAspect.setDeleted();\r\n });\r\n }\r\n if (this.apiConfiguration.myObjectQuery &&\r\n this.apiConfiguration.myObjectQuery.myInputObjectSchema &&\r\n this.apiConfiguration.myObjectQuery.myInputObjectSchema.properties) {\r\n this.apiConfiguration.myObjectQuery.myInputObjectSchema.properties\r\n .forEach(function (property) {\r\n var queryParameter = _this.queryConfigurationService.createNewQueryParameter();\r\n queryParameter.name = property.name;\r\n queryParameter.mySchemaProperty = property;\r\n queryParameter.schemaProperty_id = property.id;\r\n _this.apiConfiguration.parameters.push(queryParameter);\r\n });\r\n }\r\n this.saveChanges();\r\n };\r\n ApiConfigurationModel.prototype.saveChanges = function () {\r\n this.setExampleUrl();\r\n this.apiConfigurationService.saveAllChanges();\r\n };\r\n ApiConfigurationModel.prototype.setExampleUrl = function () {\r\n if (this.apiConfiguration.name === null || this.apiConfiguration.name === undefined)\r\n return;\r\n var apiName = this.apiConfiguration.name.replace(/\\s+/g, '-').toLowerCase();\r\n var processConfigName = this.processConfigurationId\r\n ? this.processConfiguration.myProcessType.name.replace(/\\s+/g, '-').toLowerCase()\r\n : '';\r\n if (this.apiConfiguration.apiType === 1 /* QueryGet */) {\r\n if (this.processConfigurationId) {\r\n var url = this.baseUrl + processConfigName + \"/Query/\" + apiName;\r\n this.exampleUrl = this.addQueryStringParams(url, this.apiConfiguration.parameters);\r\n }\r\n else {\r\n var url = this.baseUrl + \"Query/\" + apiName;\r\n this.exampleUrl = this.addQueryStringParams(url, this.apiConfiguration.parameters);\r\n }\r\n }\r\n else if (this.apiConfiguration.apiType === 10 /* PerProcessGet */) {\r\n var paramerterPart = this.apiConfiguration.inputType ===\r\n 2 /* ProcessName */\r\n ? \"/[processName]\"\r\n : \"/[processId]\";\r\n if (this.processConfigurationId) {\r\n this.exampleUrl = this.baseUrl +\r\n \"GetAllProcessData/\" +\r\n processConfigName +\r\n \"/\" +\r\n apiName +\r\n paramerterPart;\r\n }\r\n else {\r\n this.exampleUrl = this.baseUrl + \"GetAllProcessData/\" + apiName + paramerterPart;\r\n }\r\n }\r\n };\r\n ApiConfigurationModel.prototype.addQueryStringParams = function (url, parameters) {\r\n if (parameters && parameters.length > 0) {\r\n url += \"?\";\r\n for (var i = 0; i < parameters.length; i++) {\r\n url += parameters[i].name.replace(/\\s+/g, '-').toLowerCase() + \"=[paramValue]&\";\r\n }\r\n url = url.substring(0, url.length - 1);\r\n }\r\n return url;\r\n };\r\n ApiConfigurationModel.prototype.close = function () {\r\n this.showEdit = false;\r\n };\r\n return ApiConfigurationModel;\r\n }());\r\n models.ApiConfigurationModel = ApiConfigurationModel;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class ApiKeyModel {\r\n public keys: Wars.Domain.Model.ApiKey[];\r\n public newKeyName:string;\r\n\r\n constructor(private apiKeyService: warsApp.services.ApiKeyService) {\r\n this.apiKeyService.getKeys().then(keys => {\r\n this.keys = keys;\r\n });\r\n }\r\n\r\n public add() {\r\n this.apiKeyService.addKey(this.newKeyName).then(r => {\r\n this.keys.push(r);\r\n });\r\n }\r\n\r\n public updateKey(key: Wars.Domain.Model.ApiKey) {\r\n this.apiKeyService.updateKey(key);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class BatchJobConfigurationModel {\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n batchJobConfigurations: Array;\r\n batchJobConfiguration: Wars.Domain.Model.BatchJobConfiguration;\r\n objectQueries: Array;\r\n processActions: Array;\r\n systemActions: Array;\r\n timeZones: Wars.Domain.Model.Dtos.TimeZoneDto[];\r\n showEdit: boolean;\r\n isNewBathJob: boolean;\r\n\r\n constructor(\r\n private scope: angular.IScope,\r\n private growlService: angular.growl.IGrowlService,\r\n private batchJobConfigurationService: services.BatchJobConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private objectQueryService: services.ObjectQueryService,\r\n private processActionService: services.ProcessActionService,\r\n private treeService: services.TreeService,\r\n private queryConfigurationService: services.QueryConfigurationService,\r\n private timeZoneService: services.TimeZoneService,\r\n private processConfigurationId: string)\r\n {\r\n this.processConfigurationId = processConfigurationId;\r\n\r\n if (this.processConfigurationId) {\r\n batchJobConfigurationService.getBatchJobConfigurationsByProcess(this.processConfigurationId)\r\n .then(b => {\r\n this.batchJobConfigurations = b;\r\n });\r\n objectQueryService.getAllObjectQueriesForProcessConfiguration(this.processConfigurationId)\r\n .then(objectQueries => {\r\n this.objectQueries = Enumerable.from(objectQueries).where(i => i.isExecutable).toArray();\r\n });\r\n processActionService.getAllProcessActions(this.processConfigurationId)\r\n .then((processActions) => {\r\n this.processActions = processActions;\r\n });\r\n } else {\r\n systemLevelService.getSystemLevelBatchJobs()\r\n .then(systemLevel => {\r\n this.systemLevel = systemLevel;\r\n this.batchJobConfigurations = systemLevel.myBatchJobConfigurations;\r\n });\r\n objectQueryService.getAllObjectQueriesForSystemLevel()\r\n .then(objectQueries => {\r\n this.objectQueries = objectQueries;\r\n });\r\n systemLevelService.getSystemLevelSystemActions()\r\n .then((systemLevel) => {\r\n this.systemActions = systemLevel.mySystemActions;\r\n });\r\n }\r\n\r\n this.timeZoneService.getValidServerTimeZones()\r\n .then(timeZones => {\r\n this.timeZones = timeZones;\r\n });\r\n }\r\n\r\n addBatchJob() {\r\n var newBatchJobConfiguration = this.batchJobConfigurationService.createBatchJobConfiguration();\r\n newBatchJobConfiguration.isRecurring = false;\r\n if (this.processConfigurationId) {\r\n newBatchJobConfiguration.processConfiguration_id = this.processConfigurationId;\r\n } else {\r\n newBatchJobConfiguration.systemLevel_id = this.systemLevel.id;\r\n }\r\n newBatchJobConfiguration.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n this.batchJobConfigurationService.saveAllChanges(() => {\r\n this.batchJobConfigurations.push(newBatchJobConfiguration);\r\n this.batchJobConfiguration = newBatchJobConfiguration;\r\n this.showEdit = true;\r\n this.isNewBathJob = true;\r\n });\r\n }\r\n\r\n editBatchJobConfiguration(batchJobConfiguration: Wars.Domain.Model.BatchJobConfiguration) {\r\n this.batchJobConfiguration = batchJobConfiguration;\r\n this.showEdit = true;\r\n this.isNewBathJob = false;\r\n }\r\n\r\n removeBatchJobConfiguration(batchJobConfiguration: Wars.Domain.Model.BatchJobConfiguration) {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"BatchJobConfiguration\",\r\n batchJobConfiguration.id,\r\n \"Successfully delete Batch Job Configuration\",\r\n () => {\r\n this.batchJobConfigurations.remove(batchJobConfiguration);\r\n this.showEdit = false;\r\n },\r\n \"Could not delete Batch Job Configuration\");\r\n }\r\n\r\n recurringChange() {\r\n if (this.batchJobConfiguration.isRecurring === false) {\r\n this.batchJobConfiguration.interval = null;\r\n }\r\n this.saveChanges();\r\n }\r\n\r\n getTreeItemName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n return this.treeService.getDisplayName(treeItem);\r\n }\r\n\r\n onDropTreeItem($event, batchJobConfigurationParameter: Wars.Domain.Model.OperationParameter) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n\r\n batchJobConfigurationParameter.treeItem = treeItem;\r\n batchJobConfigurationParameter.treeItem_id = treeItem.id;\r\n this.saveChanges();\r\n }\r\n\r\n selectProcessCandidatesQuery() {\r\n if (this.batchJobConfiguration.parameters.length > 0) {\r\n this.batchJobConfiguration.parameters.forEach(parameter => {\r\n parameter.entityAspect.setDeleted();\r\n });\r\n }\r\n if (this.batchJobConfiguration.myObjectQuery.myInputObjectSchema &&\r\n this.batchJobConfiguration.myObjectQuery.myInputObjectSchema.properties) {\r\n this.batchJobConfiguration.myObjectQuery.myInputObjectSchema.properties\r\n .forEach(property => {\r\n var queryParameter = this.queryConfigurationService.createNewQueryParameter();\r\n queryParameter.name = property.name;\r\n this.batchJobConfiguration.parameters.push(queryParameter);\r\n });\r\n }\r\n this.saveChanges();\r\n }\r\n\r\n saveChanges() {\r\n this.batchJobConfigurationService.saveAllChanges();\r\n }\r\n\r\n close() {\r\n this.showEdit = false;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class CalculationConfigurationModel {\r\n\r\n public selectedCalculation: Wars.Domain.Model.Calculations.Calculation;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public editingCalculation: boolean;\r\n public isReadonly: boolean;\r\n public search: any;\r\n\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n \r\n constructor(\r\n private processConfigId,\r\n private calculationId: string,\r\n private processConfigService: services.ProcessConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private calculationService: services.CalculationService,\r\n private objectSchemaService: services.ObjectSchemaService,\r\n private deleteService: services.DeleteService,\r\n private growlService: angular.growl.IGrowlService)\r\n {\r\n this.editingCalculation = false;\r\n\r\n this.search = {\r\n name: ''\r\n }\r\n\r\n if (this.processConfigId) {\r\n this.processConfigService.getProcessConfigurationEagerLoadCalculations(this.processConfigId).then(\r\n (processConfiguration) => {\r\n if (processConfiguration == null) {\r\n this.isReadonly = true;\r\n this.growlService.error(\"Could not find process configuration: \" + this.processConfigId);\r\n } else {\r\n this.processConfiguration = processConfiguration;\r\n if (this.processConfiguration.minorVersion != null) this.isReadonly = true;\r\n if (calculationId) {\r\n const match = Enumerable.from(this.processConfiguration.myCalculations).singleOrDefault(i => i.id === calculationId);\r\n if (match) {\r\n this.search.name = match.name;\r\n this.editCalculation(match);\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n this.systemLevelService.getSystemLevelCalculations().then(\r\n (systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n if (calculationId) {\r\n const match = Enumerable.from(this.systemLevel.myCalculations).singleOrDefault(i => i.id === calculationId);\r\n if (match) {\r\n this.search.name = match.name;\r\n this.editCalculation(match);\r\n \r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n public getCalculations() : Array {\r\n if (this.systemLevel) return this.systemLevel.myCalculations;\r\n if (this.processConfiguration) return this.processConfiguration.myCalculations;\r\n return [];\r\n }\r\n\r\n public editCalculation(calculation: Wars.Domain.Model.Calculations.Calculation): void {\r\n this.editingCalculation = true;\r\n\r\n this.calculationService.getCalculationEagerLoadOperations(calculation.id)\r\n .then((calculationWithEagerLoadedFields) => this.selectedCalculation = calculationWithEagerLoadedFields);\r\n }\r\n\r\n public deleteCalculation(calculation: Wars.Domain.Model.Calculations.Calculation): void {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"Calculation\",\r\n calculation.id,\r\n \"Successfully deleted Calculation\",\r\n () => this.getCalculations().remove(calculation),\r\n \"Could not delete Calculation\");\r\n }\r\n\r\n public addNewCalculation(): void {\r\n this.selectedCalculation = this.calculationService.createNewCalculation();\r\n this.selectedCalculation.inputSchema = this.objectSchemaService.createNewObjectSchema();\r\n this.selectedCalculation.objectSchema_id = this.selectedCalculation.inputSchema.id;\r\n\r\n this.editingCalculation = false;\r\n }\r\n\r\n public cancelSave(): void {\r\n this.selectedCalculation = undefined;\r\n this.processConfigService.rejectChanges();\r\n if (this.editingCalculation === false) this.getCalculations().pop();\r\n }\r\n\r\n public saveCalculation(): void {\r\n this.selectedCalculation.isList = this.calculationService.returnsAList(this.selectedCalculation.valueOperation);\r\n var validationIssues = this.calculationService.isCalculateCompleteAndValid(this.selectedCalculation);\r\n validationIssues = validationIssues.concat(this.objectSchemaService.validateObjectSchema(this.selectedCalculation.inputSchema));\r\n if (validationIssues.length > 0) {\r\n for (let i = 0; i < validationIssues.length; i++) {\r\n this.growlService.error(validationIssues[i]);\r\n }\r\n return;\r\n }\r\n\r\n if (!this.editingCalculation) {\r\n this.getCalculations().push(this.selectedCalculation);\r\n this.editingCalculation = true;\r\n }\r\n\r\n this.calculationService.deleteEntitiesWithDeleteServiceWithoutWarning(this.deleteService).then(() => {\r\n this.processConfigService.saveAllChanges(() => this.saveSuccessful(), () => this.saveFailed());\r\n });\r\n }\r\n\r\n private saveSuccessful(): void {\r\n this.editingCalculation = false;\r\n this.selectedCalculation = undefined;\r\n }\r\n\r\n private saveFailed(): void {\r\n if (!this.editingCalculation) {\r\n this.getCalculations().pop();\r\n }\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n declare var joint: any;\r\n\r\n export class ConfigurationModel {\r\n\r\n public navigation: ProcessNavigationModel;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public processType: Wars.Domain.Model.ProcessType;\r\n\r\n constructor(\r\n public id: string,\r\n section: string,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n processTypeService: services.ProcessTypeService)\r\n {\r\n processConfigurationService.getProcessConfigurationWithForms(id).then(processConfig => {\r\n this.processConfiguration = processConfig;\r\n processTypeService.getProcessTypeById(this.processConfiguration.processType_id).then((processType) => this.processType = processType);\r\n });\r\n\r\n this.navigation = new models.ProcessNavigationModel(section);\r\n }\r\n\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ManageClaimGroupModel {\r\n public claimGroups: Wars.Domain.Model.ClaimGroup[];\r\n public currentClaimGroup: Wars.Domain.Model.ClaimGroup;\r\n \r\n constructor(\r\n private claimGroupService: services.ClaimGroupService,\r\n private deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService)\r\n {\r\n systemLevelService.getSystemLevelClaimGroups().then(\r\n (systemLevel) => {\r\n this.claimGroups = systemLevel.myClaimGroups;\r\n });\r\n }\r\n\r\n public addClaimGroup(): void {\r\n var newClaimGroup = this.claimGroupService.createNewClaimGroup();\r\n this.claimGroups.push(newClaimGroup);\r\n this.currentClaimGroup = newClaimGroup;\r\n }\r\n\r\n public editClaimGroup(claimGroup: Wars.Domain.Model.ClaimGroup) {\r\n this.currentClaimGroup = claimGroup;\r\n }\r\n\r\n public removeClaimGroup(claimGroup: Wars.Domain.Model.ClaimGroup) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ClaimGroup\",\r\n claimGroup.id,\r\n \"Claim Group\",\r\n () => this.claimGroups.remove(claimGroup));\r\n }\r\n\r\n public save(): void {\r\n this.claimGroupService.saveAllChanges();\r\n }\r\n\r\n public close(): void {\r\n this.currentClaimGroup = undefined;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ManageFormContainerAssociationModel {\r\n public formContainerAssociations: Wars.Domain.Model.FormContainerAssociation[];\r\n public currentFormContainerAssociation: Wars.Domain.Model.FormContainerAssociation;\r\n \r\n constructor(\r\n private formContainerAssociationService: services.FormContainerAssociationService,\r\n private deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService)\r\n {\r\n systemLevelService.getSystemLevelFormContainerAssociations().then(\r\n (systemLevel) => {\r\n this.formContainerAssociations = systemLevel.myFormContainerAssociations;\r\n });\r\n }\r\n\r\n public addFormContainerAssociation(): void {\r\n var newFormContainerAssociation = this.formContainerAssociationService.createNewFormContainerAssociation();\r\n this.formContainerAssociations.push(newFormContainerAssociation);\r\n this.currentFormContainerAssociation = newFormContainerAssociation;\r\n }\r\n\r\n public editFormContainerAssociation(formContainerAssociation: Wars.Domain.Model.FormContainerAssociation) {\r\n this.currentFormContainerAssociation = formContainerAssociation;\r\n }\r\n\r\n public removeFormContainerAssociation(formContainerAssociation: Wars.Domain.Model.FormContainerAssociation) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"FormContainerAssociation\",\r\n formContainerAssociation.id,\r\n \"System Action\",\r\n () => this.formContainerAssociations.remove(formContainerAssociation));\r\n }\r\n\r\n public save(): void {\r\n this.formContainerAssociationService.saveAllChanges();\r\n }\r\n\r\n public close(): void {\r\n this.currentFormContainerAssociation = undefined;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ManageReviewGroupModel {\r\n public reviewGroups: Wars.Domain.Model.Reviews.ReviewGroup[];\r\n public currentReviewGroup: Wars.Domain.Model.Reviews.ReviewGroup;\r\n public systemCodeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n \r\n constructor(\r\n private reviewGroupService: services.ReviewGroupService,\r\n private deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService)\r\n {\r\n systemLevelService.getSystemLevelReviewGroups().then(\r\n (systemLevel) => {\r\n this.reviewGroups = systemLevel.myReviewGroups;\r\n this.systemCodeGroups = systemLevel.myCodeGroups;\r\n });\r\n }\r\n\r\n public addReviewGroup(): void {\r\n var newReviewGroup = this.reviewGroupService.createNewReviewGroup();\r\n this.reviewGroups.push(newReviewGroup);\r\n this.currentReviewGroup = newReviewGroup;\r\n }\r\n\r\n public editReviewGroup(reviewGroup: Wars.Domain.Model.Reviews.ReviewGroup) {\r\n this.currentReviewGroup = reviewGroup;\r\n }\r\n\r\n public removeReviewGroup(reviewGroup: Wars.Domain.Model.Reviews.ReviewGroup) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ReviewGroup\",\r\n reviewGroup.id,\r\n \"Review Group\",\r\n () => this.reviewGroups.remove(reviewGroup));\r\n }\r\n\r\n public save(): void {\r\n this.reviewGroupService.saveAllChanges();\r\n }\r\n\r\n public close(): void {\r\n this.currentReviewGroup = undefined;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ManageStatusesModel {\r\n\r\n public addingNewStatusGroup: boolean;\r\n\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n\r\n constructor(\r\n private statusAndStateService: services.StatusAndStateService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService)\r\n {\r\n this.loadSystemLevelStatesAndStatuses();\r\n }\r\n\r\n private loadSystemLevelStatesAndStatuses(): void {\r\n this.systemLevelService.getSystemLevelStatusesAndStates().then((systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n });\r\n }\r\n\r\n public addNewStatus(statusCodeGroup: Wars.Domain.Model.Statuses.StatusCodeGroup): void {\r\n var newStatus = this.statusAndStateService.createNewStatus();\r\n statusCodeGroup.myStatuses.push(newStatus);\r\n newStatus.myParentStatusGroup = statusCodeGroup;\r\n newStatus.parentStatusCodeGroup_id = statusCodeGroup.id;\r\n newStatus.shortDescription = \"New Status\";\r\n this.addNewState(newStatus, \"Initial State\");\r\n this.save();\r\n }\r\n\r\n public addNewState(statusCode: Wars.Domain.Model.Statuses.StatusCode, stateName?: string): void {\r\n var newState = this.statusAndStateService.createNewState();\r\n statusCode.myStates.push(newState);\r\n newState.myParentStatus = statusCode;\r\n newState.statusCode_id = statusCode.id;\r\n newState.shortDescription = stateName ? stateName : \"New State\";\r\n this.save();\r\n }\r\n\r\n public deleteStatus(status: Wars.Domain.Model.Statuses.StatusCode): void {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"StatusCode\",\r\n status.id,\r\n \"Status successfully deleted\",\r\n () => this.loadSystemLevelStatesAndStatuses(),\r\n \"Status could not be deleted\");\r\n }\r\n\r\n public deleteState(state: Wars.Domain.Model.Statuses.StateCode): void {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"StateCode\",\r\n state.id,\r\n \"State successfully deleted\",\r\n () => this.loadSystemLevelStatesAndStatuses(),\r\n \"State could not be deleted\");\r\n }\r\n\r\n private removeStatus(status: Wars.Domain.Model.Statuses.StatusCode): void {\r\n var systemStatusGroup = this.systemLevel.statusCodeGroup;\r\n for (var statusIndex = 0; statusIndex < systemStatusGroup.myStatuses.length; statusIndex++) {\r\n var currentStatus = systemStatusGroup.myStatuses[statusIndex];\r\n if (currentStatus.id === status.id) {\r\n systemStatusGroup.myStatuses.splice(statusIndex, 1);\r\n }\r\n }\r\n \r\n }\r\n\r\n private removeState(state: Wars.Domain.Model.Statuses.StateCode): void {\r\n var systemStatusGroup = this.systemLevel.statusCodeGroup;\r\n for (var statusIndex = 0; statusIndex < systemStatusGroup.myStatuses.length; statusIndex++) {\r\n var currentStatus = systemStatusGroup.myStatuses[statusIndex];\r\n for (var stateIndex = 0; stateIndex < currentStatus.myStates.length; stateIndex++) {\r\n var currentState = currentStatus.myStates[stateIndex];\r\n if (currentState.id === state.id) {\r\n currentStatus.myStates.splice(stateIndex, 1);\r\n }\r\n }\r\n }\r\n \r\n }\r\n\r\n public save(): void {\r\n this.systemLevelService.saveAllChanges();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ManageSubTypeGroupModel {\r\n public subTypeGroups: Wars.Domain.Model.SystemSubTypeGroup[];\r\n public currentSubTypeGroup: Wars.Domain.Model.SystemSubTypeGroup;\r\n \r\n constructor(\r\n private subTypeGroupService: services.SubTypeGroupService,\r\n private deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService)\r\n {\r\n systemLevelService.getSystemLevelSubTypeGroups().then(\r\n (systemLevel) => {\r\n this.subTypeGroups = systemLevel.mySubTypeGroups;\r\n });\r\n }\r\n\r\n public addSubTypeGroup(): void {\r\n var newSubTypeGroup = this.subTypeGroupService.createNewSubTypeGroup();\r\n this.subTypeGroups.push(newSubTypeGroup);\r\n newSubTypeGroup.isActive = true;\r\n this.currentSubTypeGroup = newSubTypeGroup;\r\n }\r\n\r\n public editSubTypeGroup(subTypeGroup: Wars.Domain.Model.SystemSubTypeGroup) {\r\n this.currentSubTypeGroup = subTypeGroup;\r\n }\r\n\r\n public removeSubTypeGroup(subTypeGroup: Wars.Domain.Model.SystemSubTypeGroup) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"SystemSubTypeGroup\",\r\n subTypeGroup.id,\r\n \"Sub Type Group\",\r\n () => this.subTypeGroups.remove(subTypeGroup));\r\n }\r\n\r\n public save(): void {\r\n this.subTypeGroupService.saveAllChanges();\r\n }\r\n\r\n public close(): void {\r\n this.currentSubTypeGroup = undefined;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ManageSystemActionModel {\r\n public systemActions: Wars.Domain.Model.SystemAction[];\r\n public currentSystemAction: Wars.Domain.Model.SystemAction;\r\n \r\n constructor(\r\n private systemActionService: services.SystemActionService,\r\n private deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService)\r\n {\r\n systemLevelService.getSystemLevelSystemActions().then(\r\n (systemLevel) => {\r\n this.systemActions = systemLevel.mySystemActions;\r\n });\r\n }\r\n\r\n public addSystemAction(): void {\r\n var newSystemAction = this.systemActionService.createNewSystemAction();\r\n newSystemAction.numberOfReturnPaths = 1;\r\n this.systemActions.push(newSystemAction);\r\n this.currentSystemAction = newSystemAction;\r\n }\r\n\r\n public editSystemAction(systemAction: Wars.Domain.Model.SystemAction) {\r\n this.currentSystemAction = systemAction;\r\n }\r\n\r\n public removeSystemAction(systemAction: Wars.Domain.Model.SystemAction) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"SystemAction\",\r\n systemAction.id,\r\n \"System Action\",\r\n () => this.systemActions.remove(systemAction));\r\n }\r\n\r\n public save(): void {\r\n this.systemActionService.saveAllChanges();\r\n }\r\n\r\n public close(): void {\r\n this.currentSystemAction = undefined;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class PaymentConfigurationModel {\r\n\r\n public selectedPaymentConfiguration: Wars.Domain.Model.Payment.PaymentConfiguration;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public isReadonly: boolean;\r\n public calculations: Wars.Domain.Model.Calculations.Calculation[];\r\n public customActionContract: Wars.Domain.Model.ExtensibleContract;\r\n public processActions: Wars.Domain.Model.ProcessAction[];\r\n\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n\r\n constructor(\r\n private processConfigurationId: string,\r\n private processConfigService: services.ProcessConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private paymentConfigurationService: services.PaymentConfigurationService,\r\n private calculationService: services.CalculationService,\r\n private extensibilityService: services.ExtensibilityService,\r\n private processActionService: services.ProcessActionService,\r\n private deleteService: services.DeleteService,\r\n private treeService: services.TreeService,\r\n private growlService: angular.growl.IGrowlService) {\r\n\r\n if (this.processConfigurationId) {\r\n this.processConfigService.getProcessConfigurationEagerLoadPaymentInfo(this.processConfigurationId).then(\r\n (processConfiguration) => {\r\n if (processConfiguration == null) {\r\n this.isReadonly = true;\r\n this.growlService.error(\"Could not find process configuration: \" + this.processConfigurationId);\r\n } else {\r\n this.processConfiguration = processConfiguration;\r\n if (this.processConfiguration.minorVersion != null) this.isReadonly = true;\r\n }\r\n });\r\n } else {\r\n this.systemLevelService.getSystemLevelPaymentInfo().then(\r\n (systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n });\r\n }\r\n\r\n this.calculationService.getAllSequenceCalculations(this.processConfigurationId).then(\r\n (calculations) => {\r\n this.calculations = calculations;\r\n });\r\n\r\n this.extensibilityService.getCustomActionContract().then(\r\n (customActionContract) => {\r\n this.customActionContract = customActionContract;\r\n });\r\n\r\n if (this.processConfigurationId) {\r\n this.processActionService.getAllProcessActions(this.processConfigurationId).then(\r\n (processActions) => {\r\n this.processActions = processActions;\r\n });\r\n }\r\n }\r\n\r\n public getPaymentConfigurations(): Array {\r\n if (this.systemLevel) return this.systemLevel.myPaymentConfigurations;\r\n if (this.processConfiguration) return this.processConfiguration.myPaymentConfigurations;\r\n return [];\r\n }\r\n\r\n public editPaymentConfiguration(index: number): void {\r\n this.selectedPaymentConfiguration = this.getPaymentConfigurations()[index];\r\n }\r\n\r\n public deletePaymentConfiguration(index: number): void {\r\n var paymentConfig = this.getPaymentConfigurations()[index];\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"PaymentConfiguration\",\r\n paymentConfig.id,\r\n \"Payment Configuration\",\r\n () => {\r\n this.getPaymentConfigurations().splice(index, 1);\r\n this.selectedPaymentConfiguration = undefined;\r\n });\r\n }\r\n\r\n public addNewPaymentConfiguration(): void {\r\n this.selectedPaymentConfiguration = this.paymentConfigurationService.createNewPaymentConfig();\r\n this.getPaymentConfigurations().push(this.selectedPaymentConfiguration);\r\n }\r\n\r\n public saveChanges(): void {\r\n this.processConfigService.saveAllChanges();\r\n }\r\n\r\n public onDragOver($event: any, $index: number): void {\r\n //var treeConfig = this.treeService.getTreeConfigurationItem();\r\n }\r\n\r\n public onDrop($event: any, $index: number): void {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n this.selectedPaymentConfiguration.amountTreeItem = treeItem;\r\n this.selectedPaymentConfiguration.amountTreeItem_id = treeItem.id;\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n this.saveChanges();\r\n }\r\n\r\n public onCalculateDragOver($event: any, $index: number): void {\r\n \r\n }\r\n\r\n public onCalculateDrop($event: any, $index: number): void {\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n this.selectedPaymentConfiguration.myPaymentCustomInformation[$index].valueCalculation_id = treeConfig.calculationId;\r\n\r\n this.calculationService.getCalculation(treeConfig.calculationId).then(\r\n (calculation) => {\r\n this.selectedPaymentConfiguration.myPaymentCustomInformation[$index].valueCalculation = calculation;\r\n });\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n this.saveChanges();\r\n }\r\n\r\n public onFieldDragOver($event: any, $index: number): void {\r\n }\r\n\r\n public onFieldDrop($event: any, $index: number): void {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n\r\n this.selectedPaymentConfiguration.myMappings[$index].treeItem = treeItem;\r\n this.selectedPaymentConfiguration.myMappings[$index].treeItem_id = treeItem.id;\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n this.saveChanges();\r\n }\r\n\r\n public clearMapping($index: number): void {\r\n this.selectedPaymentConfiguration.myMappings[$index].treeItem.entityAspect.setDeleted();\r\n this.selectedPaymentConfiguration.myMappings[$index].treeItem = undefined;\r\n this.selectedPaymentConfiguration.myMappings[$index].treeItem_id = undefined;\r\n this.saveChanges();\r\n }\r\n\r\n public getDisplayName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n return this.treeService.getDisplayName(treeItem);\r\n }\r\n\r\n public addNewCustomInfo(): void {\r\n this.selectedPaymentConfiguration.myPaymentCustomInformation.push(this.paymentConfigurationService.createNewCustomInfo(this.selectedPaymentConfiguration.id));\r\n this.saveChanges();\r\n }\r\n\r\n public deleteCustomInfo(index: number): void {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"PaymentCustomInformation\",\r\n this.selectedPaymentConfiguration.myPaymentCustomInformation[index].id,\r\n \"Payment Custom Information\",\r\n () => {\r\n this.selectedPaymentConfiguration.myPaymentCustomInformation.splice(index, 1);\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ApiActionsModel {\r\n public currentApiAction: Wars.Domain.Model.ApiAction;\r\n public objectQueries: Wars.Domain.Model.ObjectQuery[];\r\n public apiActions: Wars.Domain.Model.ApiAction[];\r\n public autoCompleteConfigurations: Wars.Domain.Model.AutoCompleteConfiguration[];\r\n public allowMapping: boolean = true;\r\n public reload: boolean = false;\r\n\r\n constructor(private processConfigurationId: string, private apiActionService: services.ApiActionService,\r\n private objectQueryService: services.ObjectQueryService, private objectSchemaService: services.ObjectSchemaService,\r\n private apiSchemaMappingService: services.ApiSchemaMappingService) {\r\n\r\n apiActionService.getApiActions(processConfigurationId).then(result => {\r\n //console.log(result);\r\n this.apiActions = result;\r\n });\r\n\r\n objectQueryService.getAllObjectQueriesForProcessConfiguration(processConfigurationId).then(result => {\r\n this.objectQueries = result;\r\n });\r\n }\r\n\r\n public save(callback?: any) {\r\n this.apiActionService.saveAllChanges(callback);\r\n }\r\n\r\n public selectAction(apiAction: Wars.Domain.Model.ApiAction) {\r\n this.currentApiAction = apiAction;\r\n\r\n this.reload = true;\r\n }\r\n\r\n public addApiAction() {\r\n this.currentApiAction = this.apiActionService.createApiAction();\r\n this.currentApiAction.processConfiguration_id = this.processConfigurationId;\r\n this.currentApiAction.isActive = false;\r\n\r\n this.apiActions.push(this.currentApiAction);\r\n this.save();\r\n }\r\n\r\n public copySchema() {\r\n if (this.currentApiAction.objectQuery.myInputObjectSchema) {\r\n this.currentApiAction.inputObjectSchema = this.objectSchemaService.cloneObjectSchema(this.currentApiAction.objectQuery.myInputObjectSchema);\r\n this.addObjectSchemaMappingFromCopy(this.currentApiAction.inputObjectSchema, Wars.Domain.Model.Codes.Enums.SchemaMappingType.Input);\r\n }\r\n\r\n this.currentApiAction.outputObjectSchema = this.objectSchemaService.cloneObjectSchema(this.currentApiAction.objectQuery.myProjectionObjectSchema);\r\n this.addObjectSchemaMappingFromCopy(this.currentApiAction.outputObjectSchema, Wars.Domain.Model.Codes.Enums.SchemaMappingType.Output);\r\n\r\n\r\n this.save(() => {\r\n this.reload = true;\r\n });\r\n }\r\n\r\n public remapSchema() {\r\n this.currentApiAction.apiSchemaMappings.forEach(mapping => {\r\n if (mapping.type == Wars.Domain.Model.Codes.Enums.SchemaMappingType.Output) {\r\n this.setMappedPropId(this.currentApiAction.objectQuery.myProjectionObjectSchema, mapping);\r\n }\r\n else {\r\n this.setMappedPropId(this.currentApiAction.objectQuery.myInputObjectSchema, mapping)\r\n }\r\n });\r\n\r\n\r\n\r\n this.save(() => {\r\n this.reload = true;\r\n });\r\n }\r\n\r\n private setMappedPropId(objectSchema: Wars.Domain.Model.ObjectSchema, mapping: Wars.Domain.Model.SchemaMapping): boolean {\r\n var foundProp = Enumerable.from(objectSchema.properties).firstOrDefault(p => p.name == mapping.leftSchemaProperty.name);\r\n\r\n if (foundProp) {\r\n mapping.rightSchemaProperty_id = foundProp.id;\r\n //console.log('found ' + mapping.leftSchemaProperty.name);\r\n return;\r\n }\r\n //console.log('not found ' + mapping.leftSchemaProperty.name);\r\n }\r\n\r\n private addObjectSchemaMappingFromCopy(objectSchema: warsApp.models.ObjectSchema, type: Wars.Domain.Model.Codes.Enums.SchemaMappingType) {\r\n objectSchema.properties.forEach(prop => {\r\n let newMapping = this.apiSchemaMappingService.createApiSchemaMapping();\r\n\r\n newMapping.apiAction_id = this.currentApiAction.id;\r\n newMapping.leftSchemaProperty_id = prop.id;\r\n newMapping.rightSchemaProperty_id = prop.clonedFromId;\r\n newMapping.type = type;\r\n\r\n this.currentApiAction.apiSchemaMappings.push(newMapping);\r\n });\r\n }\r\n\r\n public deleteAction() {\r\n if(this.currentApiAction.isActive){\r\n return;\r\n }\r\n this.currentApiAction.apiSchemaMappings.forEach(a=>{\r\n a.entityAspect.setDeleted(); \r\n });\r\n \r\n this.save(()=>{\r\n this.currentApiAction.entityAspect.setDeleted();\r\n this.save();\r\n this.apiActions.remove(this.currentApiAction);\r\n this.currentApiAction = null;\r\n })\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ApiGridConfigurationModel {\r\n public currentApiGrid: Wars.Domain.Model.ApiGridConfiguration;\r\n public apiActions: Wars.Domain.Model.ApiAction[];\r\n public filteredApiActions: Wars.Domain.Model.ApiAction[];\r\n public apiGridConfigurations: Wars.Domain.Model.ApiGridConfiguration[];\r\n public processTypes: Wars.Domain.Model.ProcessType[];\r\n public selectedApiAction: Wars.Domain.Model.ApiAction;\r\n public objectQueries:Wars.Domain.Model.ObjectQuery[];\r\n\r\n constructor(private processConfigurationId: string, private apiGridConfigurationService: services.ApiGridConfigurationService,\r\n private apiConfigurationService: services.ApiActionService,\r\n private deleteService: services.DeleteService, private systemLevelService:services.SystemLevelService) {\r\n\r\n this.apiConfigurationService.getApiConfigurations().then(r => {\r\n this.apiActions = r;\r\n\r\n this.processTypes = Enumerable.from(this.apiActions).select(a => a.processConfiguration.myProcessType).distinct().toArray();\r\n //console.log(this.processTypes);\r\n });\r\n\r\n this.systemLevelService.getSystemLevelObjectQueries().then(r => {\r\n this.objectQueries = r.myObjectQueries;\r\n });\r\n\r\n this.systemLevelService.getSystemLevelSystemActions().then(r => {\r\n this.systemActions= r.mySystemActions;\r\n });\r\n\r\n apiGridConfigurationService.getApiGridConfigurations(processConfigurationId).then(result => {\r\n this.apiGridConfigurations = result;\r\n });\r\n }\r\n\r\n public save() {\r\n this.apiGridConfigurationService.saveAllChanges();\r\n }\r\n\r\n public selectApiGrid(apiGrid: Wars.Domain.Model.ApiGridConfiguration) {\r\n this.currentApiGrid = apiGrid;\r\n this.setFilteredApiActions();\r\n }\r\n\r\n\r\n public getName(schemaPropertyUniqueId: string): string {\r\n let property = Enumerable.from(this.selectedApiAction.outputObjectSchema.properties).single(p => p.uniqueIdentifier == schemaPropertyUniqueId);\r\n\r\n return property.name;\r\n }\r\n\r\n public removeColumn(column: Wars.Domain.Model.ApiGridColumnConfiguration) {\r\n column.entityAspect.setDeleted();\r\n this.apiGridConfigurationService.saveAllChanges();\r\n }\r\n\r\n public addSystemAction(action: Wars.Domain.Model.SystemAction) {\r\n let column = this.getNewColumn();\r\n\r\n column.name = action.name;\r\n column.displayName = action.name;\r\n column.type = Wars.Domain.Model.Codes.Enums.ApiGridColumnType.ProcessAction;\r\n\r\n column.systemAction = action;\r\n column.position = this.currentApiGrid.columns.length;\r\n\r\n this.currentApiGrid.columns.push(column);\r\n this.save();\r\n }\r\n\r\n public addTextProcessLink() {\r\n let column = this.getNewColumn();\r\n\r\n column.name = 'Navigate to Process';\r\n column.displayName = 'View';\r\n column.type = Wars.Domain.Model.Codes.Enums.ApiGridColumnType.TextProcessLink;\r\n column.isProcessLink = true;\r\n\r\n column.position = this.currentApiGrid.columns.length;\r\n\r\n this.currentApiGrid.columns.push(column);\r\n this.save();\r\n }\r\n\r\n public selectApiAction() {\r\n this.setSelectedApiAction();\r\n\r\n this.setColumns(this.selectedApiAction.outputObjectSchema);\r\n\r\n this.save();\r\n }\r\n\r\n private removeColumns() {\r\n Enumerable.from(this.currentApiGrid.columns).toArray().forEach(c => {\r\n c.entityAspect.setDeleted();\r\n });\r\n }\r\n private getNewColumn():Wars.Domain.Model.ApiGridColumnConfiguration {\r\n let column = this.apiGridConfigurationService.createApiGridColumn();\r\n\r\n column.hide = false;\r\n column.isProcessLink = false;\r\n column.isFilterable = false;\r\n column.isSortable = false;\r\n column.noWrap = false;\r\n\r\n return column;\r\n }\r\n\r\n private setColumns(objectSchema:Wars.Domain.Model.ObjectSchema) {\r\n this.removeColumns();\r\n var index = 0;\r\n\r\n for (let i = 0; i < objectSchema.properties.length; i++) {\r\n\r\n if (objectSchema.properties[i].typeSchema) {\r\n for (var x = 0; x < objectSchema.properties[i].typeSchema.properties.length; x++) {\r\n this.addColumn(objectSchema.properties[i].typeSchema.properties[x], index);\r\n index++;\r\n }\r\n } else {\r\n this.addColumn(objectSchema.properties[i], index);\r\n index++;\r\n }\r\n\r\n } \r\n }\r\n\r\n private addColumn(property:Wars.Domain.Model.SchemaProperty,index:number) {\r\n let column = this.getNewColumn();\r\n\r\n column.schemaPropertyUniqueId = property.uniqueIdentifier;\r\n column.name = property.name;\r\n column.displayName = property.name;\r\n\r\n if (property.name.startsWith('_')) {\r\n column.hide = true;\r\n }\r\n\r\n if (property.propertyType == Wars.Domain.Model.Codes.Enums.VariableType.TimeTracker) {\r\n column.type = Wars.Domain.Model.Codes.Enums.ApiGridColumnType.Clock;\r\n } else {\r\n column.type = Wars.Domain.Model.Codes.Enums.ApiGridColumnType.Data;\r\n }\r\n\r\n column.position = index + 1;\r\n\r\n this.currentApiGrid.columns.push(column);\r\n }\r\n\r\n private setSelectedApiAction() {\r\n this.selectedApiAction = Enumerable.from(this.filteredApiActions).singleOrDefault(a => a.uniqueId == this.currentApiGrid.apiUniqueId);\r\n }\r\n\r\n public orderDown(column: Wars.Domain.Model.ApiGridColumnConfiguration) {\r\n const newPosition = column.position + 1;\r\n\r\n var oldColumn = Enumerable.from(this.currentApiGrid.columns).singleOrDefault(c => c.position == newPosition);\r\n\r\n if (oldColumn) {\r\n oldColumn.position--;\r\n column.position++;\r\n }\r\n }\r\n\r\n public orderUp(column: Wars.Domain.Model.ApiGridColumnConfiguration) {\r\n const newPosition = column.position - 1;\r\n\r\n var oldColumn = Enumerable.from(this.currentApiGrid.columns).singleOrDefault(c => c.position == newPosition);\r\n\r\n if (oldColumn) {\r\n oldColumn.position++;\r\n column.position--;\r\n }\r\n }\r\n\r\n public addApiGridConfiguration() {\r\n this.currentApiGrid = this.apiGridConfigurationService.createApiGridConfiguration();\r\n this.currentApiGrid.processConfiguration_id = this.processConfigurationId;\r\n this.currentApiGrid.isSelectable = false;\r\n this.currentApiGrid.allowColumnsToBeHidden = true;\r\n this.currentApiGrid.allowSaveState = false;\r\n this.currentApiGrid.usePaging = false;\r\n\r\n\r\n this.save();\r\n }\r\n\r\n private setFilteredApiActions() {\r\n this.filteredApiActions = Enumerable.from(this.apiActions).where(a => a.processConfiguration.processType_id == this.currentApiGrid.processType_id)\r\n .distinct(a => a.uniqueId).toArray();\r\n\r\n this.setSelectedApiAction();\r\n }\r\n\r\n public processTypeChanged() {\r\n this.setFilteredApiActions();\r\n this.currentApiGrid.apiUniqueId = null;\r\n\r\n this.save();\r\n }\r\n\r\n public objectQueryChanged() {\r\n this.currentApiGrid.apiUniqueId = null;\r\n this.currentApiGrid.processType_id = null;\r\n\r\n if (this.currentApiGrid.objectQuery) {\r\n this.setColumns(this.currentApiGrid.objectQuery.myProjectionObjectSchema);\r\n } else {\r\n this.currentApiGrid.objectQuery_id = null;\r\n this.removeColumns();;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public deleteApiGridConfiguration() {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\"ApiGridConfiguration\", this.currentApiGrid.id);\r\n this.apiGridConfigurations.remove(this.currentApiGrid);\r\n this.currentApiGrid = null;\r\n }\r\n\r\n public systemActions: Wars.Domain.Model.SystemAction[];\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class AutoCompleteConfigurationModel {\r\n public currentAutoComplete: Wars.Domain.Model.AutoCompleteConfiguration;\r\n public apiActions: Wars.Domain.Model.ApiAction[];\r\n public filteredApiActions: Wars.Domain.Model.ApiAction[];\r\n public autoCompleteConfigurations: Wars.Domain.Model.AutoCompleteConfiguration[];\r\n public processTypes: Wars.Domain.Model.ProcessType[];\r\n public selectedApiAction: Wars.Domain.Model.ApiAction;\r\n public objectQueries: Wars.Domain.Model.ObjectQuery[];\r\n public inputObjectSchema:Wars.Domain.Model.ObjectSchema;\r\n public outputObjectSchema:Wars.Domain.Model.ObjectSchema;\r\n\r\n\r\n constructor(private processConfigurationId: string, private autoCompleteService: services.AutoCompleteConfigurationService,\r\n private apiConfigurationService: services.ApiActionService,private systemLevelService:services.SystemLevelService) {\r\n\r\n this.apiConfigurationService.getApiConfigurations().then(r => {\r\n this.apiActions = r;\r\n\r\n this.processTypes = Enumerable.from(this.apiActions).select(a => a.processConfiguration.myProcessType).distinct().toArray();\r\n });\r\n\r\n this.systemLevelService.getSystemLevelObjectQueries().then(o => {\r\n this.objectQueries = o.myObjectQueries;\r\n });\r\n\r\n autoCompleteService.getAutoCompleteConfigurations(processConfigurationId).then(result => {\r\n this.autoCompleteConfigurations = result;\r\n });\r\n }\r\n\r\n public save() {\r\n this.autoCompleteService.saveAllChanges();\r\n }\r\n\r\n public selectAutoComplete(autoComplete: Wars.Domain.Model.AutoCompleteConfiguration) {\r\n this.currentAutoComplete = autoComplete;\r\n this.setFilteredApiActions();\r\n }\r\n\r\n public selectApiAction() {\r\n this.setSelectedApiAction();\r\n this.save();\r\n }\r\n\r\n private setSelectedApiAction() {\r\n this.selectedApiAction = Enumerable.from(this.filteredApiActions).singleOrDefault(a => a.uniqueId == this.currentAutoComplete.apiUniqueId);\r\n this.setObjectSchemas();\r\n }\r\n\r\n public addAutoComplete() {\r\n this.currentAutoComplete = this.autoCompleteService.createAutoCompleteConfiguration();\r\n this.currentAutoComplete.processConfiguration_id = this.processConfigurationId;\r\n this.currentAutoComplete.returnProcessId = false;\r\n this.autoCompleteConfigurations.push(this.currentAutoComplete);\r\n\r\n this.save();\r\n }\r\n\r\n private setFilteredApiActions() {\r\n this.filteredApiActions = Enumerable.from(this.apiActions).where(a => a.processConfiguration.processType_id == this.currentAutoComplete.processType_id)\r\n .distinct(a => a.uniqueId).toArray();\r\n\r\n this.setSelectedApiAction();\r\n }\r\n\r\n public objectQueryChanged() {\r\n this.currentAutoComplete.apiUniqueId = null;\r\n this.currentAutoComplete.processType_id = null;\r\n this.setObjectSchemas();\r\n\r\n this.save();\r\n }\r\n\r\n private setObjectSchemas() {\r\n if (this.currentAutoComplete.objectQuery_id) {\r\n this.inputObjectSchema = this.currentAutoComplete.objectQuery.myInputObjectSchema;\r\n this.outputObjectSchema= this.currentAutoComplete.objectQuery.myProjectionObjectSchema;\r\n } else if(this.currentAutoComplete.apiUniqueId) {\r\n this.inputObjectSchema = this.selectedApiAction.inputObjectSchema;\r\n this.outputObjectSchema = this.selectedApiAction.outputObjectSchema; \r\n }\r\n }\r\n\r\n public processTypeChanged() {\r\n this.setFilteredApiActions();\r\n this.currentAutoComplete.apiUniqueId = null;\r\n\r\n this.save();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models{\r\n export class ClaimsAssignmentConfigurationModel {\r\n private logType: string = \"ClaimsConfigurationModel\";\r\n\r\n public processClaims: Wars.Domain.Model.ClaimDefinition[];\r\n public systemAndProcessClaims: Wars.Domain.Model.ClaimDefinition[];\r\n public selectedClaim: Wars.Domain.Model.ClaimDefinition;\r\n public selectedClaimsChildren: Wars.Domain.Model.Workflow.ClaimsAssignmentConfiguration[];\r\n public currentClaimsAssignment: Wars.Domain.Model.Workflow.ClaimsAssignmentConfiguration;\r\n public showAddEditSection: boolean;\r\n public addingNewClaim: boolean;\r\n public addClaimsOptions: Wars.Domain.Model.ClaimDefinition[] = [];\r\n public conditions: Wars.Domain.Model.Conditions.Condition[];\r\n \r\n constructor(\r\n public processConfigurationId: string,\r\n private claimsAssignmentService: services.ClaimsAssignmentConfigurationService,\r\n private claimsDefinitionService: services.ClaimDefinitionService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private treeService: services.TreeService,\r\n private conditionService: services.ConditionService,\r\n private growl: angular.growl.IGrowlService)\r\n {\r\n claimsDefinitionService.getAllProcessClaims(processConfigurationId).then((claims) => {\r\n this.processClaims = claims;\r\n });\r\n\r\n claimsDefinitionService.getAllProcessAndSystemClaims(processConfigurationId).then((claims) => {\r\n this.systemAndProcessClaims = claims;\r\n });\r\n\r\n conditionService.getAllConditions(processConfigurationId).then((conditions) => {\r\n this.conditions = conditions;\r\n });\r\n }\r\n\r\n public selectedClaimChanged() {\r\n var self = this;\r\n this.claimsAssignmentService.getAllAssignmentConfigurationClaims(this.processConfigurationId, this.selectedClaim.id).then(\r\n (claimChildren: Wars.Domain.Model.Workflow.ClaimsAssignmentConfiguration[]) => {\r\n self.selectedClaimsChildren = claimChildren; \r\n if (claimChildren && claimChildren.length>=1) {\r\n self.treeItem =claimChildren[0].assigningClaimValue;\r\n }\r\n self.setAddOptions();\r\n });\r\n }\r\n public treeItem: Wars.Domain.Model.TreeItem;\r\n private setAddOptions() {\r\n //console.log(this.selectedClaimsChildren);\r\n this.addClaimsOptions = Enumerable.from(this.processClaims).where(processClaimDefinition => {\r\n return !Enumerable.from(this.selectedClaimsChildren).any(\r\n (claimChild) => {\r\n return processClaimDefinition.id === claimChild.claimChild_id;\r\n });\r\n }).toArray();\r\n }\r\n\r\n public getTreeItemName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n return this.treeService.getDisplayName(treeItem);\r\n }\r\n\r\n public onDrop($event) {\r\n var droppedTreeItem = this.treeService.getTreeConfigurationItem();\r\n\r\n if (droppedTreeItem.variableType !== this.selectedClaim.valueType) {\r\n this.growl.error(\"The value dragged does not match the type of the claim.\");\r\n } else {\r\n this.treeItem = this.treeService.createTreeItemFromItemDropped();\r\n if (this.selectedClaimsChildren && this.selectedClaimsChildren.length > 0) {\r\n this.selectedClaimsChildren.forEach(c => {\r\n c.assigningClaimValue = this.treeItem;\r\n c.treeItem_id = this.treeItem.id;\r\n });\r\n this.claimsAssignmentService.saveAllChanges();\r\n }\r\n }\r\n }\r\n\r\n public deleteClaimAssignment(claimAssignment: Wars.Domain.Model.Workflow.ClaimsAssignmentConfiguration) {\r\n claimAssignment.entityAspect.setDeleted();\r\n this.saveChanges();\r\n this.selectedClaimsChildren.remove(claimAssignment);\r\n this.setAddOptions();\r\n }\r\n\r\n public editClaimAssignment(claimAssignment: Wars.Domain.Model.Workflow.ClaimsAssignmentConfiguration) {\r\n this.currentClaimsAssignment = claimAssignment;\r\n this.showAddEditSection = true;\r\n }\r\n\r\n public saveChanges() {\r\n this.claimsAssignmentService.saveAllChanges();\r\n }\r\n\r\n public addSave() {\r\n this.currentClaimsAssignment.claimChild_id = this.currentClaimsAssignment.myClaimChild.id;\r\n this.saveChanges();\r\n this.showAddEditSection = false;\r\n this.addingNewClaim = false;\r\n this.selectedClaimsChildren.push(this.currentClaimsAssignment);\r\n this.currentClaimsAssignment = null;\r\n this.setAddOptions();\r\n }\r\n\r\n public add() {\r\n this.currentClaimsAssignment = this.claimsAssignmentService.createClaimAssignmentConfiguration();\r\n this.currentClaimsAssignment.claim_id = this.selectedClaim.id;\r\n this.currentClaimsAssignment.preventAssignmentRemovalOfSelf = false;\r\n\r\n this.currentClaimsAssignment.processConfiguration_id = this.processConfigurationId;\r\n if (this.treeItem) {\r\n this.currentClaimsAssignment.assigningClaimValue = this.treeItem;\r\n this.currentClaimsAssignment.treeItem_id= this.treeItem.id; \r\n } else {\r\n this.currentClaimsAssignment.treeItem_id = null;\r\n }\r\n\r\n this.addingNewClaim = true;\r\n this.showAddEditSection = true;\r\n }\r\n\r\n public cancel() {\r\n this.claimsAssignmentService.rejectChanges();\r\n this.currentClaimsAssignment = null;\r\n this.showAddEditSection = false;\r\n }\r\n }\r\n}","/// \r\n/// \r\nmodule warsApp.models {\r\n declare var _processConfigurationModelSelf: any;\r\n declare var _processConfigurationTimeout: any;\r\n\r\n export class FormConfigurationModel {\r\n private logType: string = \"FormConfigurationModel\";\r\n\r\n public form: Wars.Domain.Model.Form = null;\r\n public currentStep: Wars.Domain.Model.FormStep;\r\n public isEditMode: boolean = true;\r\n public currentStepIndex: number = null;\r\n public showHtml = true;\r\n public showJavascript = false;\r\n public showPreview = false;\r\n public showSlider = false;\r\n public process = {};\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n\r\n constructor(\r\n private formId: string,\r\n private processConfigurationId: string,\r\n private formService: services.FormService,\r\n private modalService: any,\r\n private growlService: angular.growl.IGrowlService,\r\n private $http: ng.IHttpService,\r\n private contentPageService: services.ContentPageService,\r\n private formSectionService: services.FormSectionService,\r\n private $scope: angular.IScope,\r\n private dataSourceService: services.DataSourceService,\r\n private $q: angular.IQService,\r\n private processConfigurationService: services.ProcessConfigurationService) {\r\n _processConfigurationModelSelf = this;\r\n _processConfigurationTimeout = null;\r\n\r\n $q.all([\r\n this.formService.getById(formId).then(f => {\r\n if (f.formType === Wars.Domain.Model.Codes.Enums.FormType.Manage) {\r\n this.formService.getManageFormConfiguration(formId).then(\r\n (form) => {\r\n _processConfigurationModelSelf.form = form;\r\n });\r\n } else {\r\n this.formService.getFormConfiguration(formId).then(\r\n (form) => {\r\n _processConfigurationModelSelf.form = form;\r\n });\r\n }\r\n }),\r\n this.processConfigurationService.getProcessConfigurationEagerLoadConditions(processConfigurationId).then(processConfiguration => {\r\n _processConfigurationModelSelf.processConfiguration = processConfiguration;\r\n })\r\n ]);\r\n\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class FormContainerModel {\r\n public containers: Wars.Domain.Model.FormContainer[];\r\n public currentContainer: Wars.Domain.Model.FormContainer;\r\n public forms: Wars.Domain.Model.Form[];\r\n public formContainerAssociations: Wars.Domain.Model.FormContainerAssociation[];\r\n\r\n constructor(private formContainerService: services.FormContainerService,\r\n private formService: services.FormService,\r\n private deleteService: services.DeleteService,\r\n private systemLevelService: services.SystemLevelService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private processConfigurationId: string) {\r\n\r\n this.formContainerService.getAllFormContainersForProcessConfiguration(processConfigurationId)\r\n .then(containers => {\r\n this.containers = containers;\r\n });\r\n\r\n this.formService.getProcessConfigurationForms(processConfigurationId).then(forms => {\r\n this.forms = forms;\r\n });\r\n\r\n this.systemLevelService.getSystemLevelFormContainerAssociations().then((sysLevel) => {\r\n this.formContainerAssociations = sysLevel.myFormContainerAssociations;\r\n });\r\n }\r\n\r\n public containerOrderDown(formContainer: Wars.Domain.Model.FormContainer) {\r\n const newPosition = formContainer.displayOrder + 1;\r\n\r\n var oldFormContainer = Enumerable.from(this.containers).singleOrDefault(c => c.displayOrder == newPosition);\r\n\r\n if (oldFormContainer) {\r\n oldFormContainer.displayOrder--;\r\n formContainer.displayOrder++;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public containerOrderUp(formContainer: Wars.Domain.Model.FormContainer) {\r\n const newPosition = formContainer.displayOrder - 1;\r\n\r\n var oldFormContainer = Enumerable.from(this.containers).singleOrDefault(c => c.displayOrder == newPosition);\r\n\r\n if (oldFormContainer) {\r\n oldFormContainer.displayOrder++;\r\n formContainer.displayOrder--;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public containerItemOrderDown(item: Wars.Domain.Model.FormContainerItem) {\r\n const newPosition = item.displayOrder + 1;\r\n\r\n var oldItem = Enumerable.from(this.currentContainer.containerItems).singleOrDefault(c => c.displayOrder == newPosition);\r\n\r\n if (oldItem) {\r\n oldItem.displayOrder--;\r\n item.displayOrder++;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public containerItemOrderUp(item: Wars.Domain.Model.FormContainerItem) {\r\n const newPosition = item.displayOrder - 1;\r\n\r\n var oldItem = Enumerable.from(this.currentContainer.containerItems).singleOrDefault(c => c.displayOrder == newPosition);\r\n\r\n if (oldItem) {\r\n oldItem.displayOrder++;\r\n item.displayOrder--;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public addFormContainer() {\r\n this.currentContainer = this.formContainerService.createFormContainer();\r\n this.currentContainer.displayOrder = this.containers.length + 1;\r\n this.currentContainer.name = \"New Container\";\r\n this.currentContainer.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n this.currentContainer.securityMatrix = this.securityMatrixService.createSecurityMatrix(false, true);\r\n this.currentContainer.securityMatrix_id = this.currentContainer.securityMatrix.id;\r\n this.currentContainer.processConfiguration_id = this.processConfigurationId;\r\n\r\n this.containers.push(this.currentContainer);\r\n this.save();\r\n }\r\n\r\n public addItem() {\r\n let newItem = this.formContainerService.createFormContainerItem();\r\n newItem.displayOrder = this.currentContainer.containerItems.length + 1;\r\n\r\n this.currentContainer.containerItems.push(newItem);\r\n this.save();\r\n }\r\n\r\n public manageSecurityMatrix() : void {\r\n if (!this.currentContainer.securityMatrix_id) {\r\n this.currentContainer.securityMatrix = this.securityMatrixService.createSecurityMatrix(false, true);\r\n this.currentContainer.securityMatrix_id = this.currentContainer.securityMatrix.id;\r\n this.save();\r\n }\r\n this.securityMatrixService.openSecurityMatrixModal(this.currentContainer.securityMatrix, this.processConfigurationId);\r\n }\r\n\r\n public save() {\r\n this.formContainerService.saveAllChanges();\r\n }\r\n\r\n public deleteContainerItem(item: Wars.Domain.Model.FormContainerItem) {\r\n item.entityAspect.setDeleted();\r\n\r\n this.currentContainer.containerItems.forEach(c => {\r\n if (c.displayOrder > item.displayOrder) {\r\n c.displayOrder--;\r\n }\r\n });\r\n\r\n this.save();\r\n }\r\n\r\n public deleteFormContainer() {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"FormContainer\",\r\n this.currentContainer.id,\r\n \"Form Container\",\r\n () => {\r\n this.containers.remove(this.currentContainer);\r\n\r\n this.containers.forEach(c => {\r\n if (c.displayOrder>this.currentContainer.displayOrder) {\r\n c.displayOrder--;\r\n }\r\n });\r\n\r\n this.save();\r\n this.currentContainer = null;\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class GisDataStoreMetadataMappingModel {\r\n public gisDataStoreMetadataMappings: Wars.Domain.Model.Gis.GisDatastoreMetadataMapping[];\r\n public gisDatastores: Wars.Domain.Model.Gis.GisDatastore[];\r\n public unusedGisDatastores: Wars.Domain.Model.Gis.GisDatastore[];\r\n public selectedGisDataStore: Wars.Domain.Model.Gis.GisDatastore;\r\n\r\n constructor(public processConfigurationId: string,\r\n private gisDataStoreMetadataMappingService: services.GisDataStoreMetadataMappingService,\r\n private gisDataStoreService: services.GisDatastoreService,\r\n private treeService: services.TreeService,\r\n private $q: angular.IQService) {\r\n\r\n $q.all([\r\n gisDataStoreService.getGisDatastores().then(r => {\r\n this.gisDatastores = r;\r\n }),\r\n gisDataStoreMetadataMappingService.getGisDatastoreMetadataMappings(processConfigurationId).then(r => {\r\n this.gisDataStoreMetadataMappings = r;\r\n this.gisDataStoreMetadataMappings.forEach(g => {\r\n let mappings = [];\r\n\r\n for (let i = 1; i < 21; i++) {\r\n mappings.push(\r\n {\r\n mappingProperty: g[\"gisDatastorePropertyMapping\" + i],\r\n name: g.gisDatastore[\"metadata\" + i + \"PropertyName\"],\r\n index: i\r\n });\r\n }\r\n\r\n (g).mappings = mappings;\r\n });\r\n })\r\n ]).then(() => {\r\n this.unusedGisDatastores=Enumerable.from(this.gisDatastores).\r\n where(g=>Enumerable.from(this.gisDataStoreMetadataMappings).all(gd=>gd.gisDataStore_id !== g.id)).toArray();\r\n });\r\n\r\n\r\n }\r\n\r\n public onDragOver($event) {\r\n\r\n }\r\n\r\n public getTreeItemName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n return this.treeService.getDisplayName(treeItem);\r\n }\r\n\r\n public onDropTreeItem($event, index, gisDataStoreMetadataMapping, mapping) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped(() => {\r\n gisDataStoreMetadataMapping[\"gisDatastorePropertyMapping\" + index] = treeItem;\r\n gisDataStoreMetadataMapping[\"gisDatastorePropertyMapping\" + index + \"_id\"] = treeItem.id;\r\n mapping.mappingProperty = treeItem;\r\n\r\n this.save();\r\n });\r\n }\r\n\r\n public removeBinding(gisDataStoreMetadataMapping, mapping) {\r\n mapping.mappingProperty.entityAspect.setDeleted();\r\n mapping.mappingProperty = null;\r\n gisDataStoreMetadataMapping[\"gisDatastorePropertyMapping\" + mapping.index] = null;\r\n\r\n this.save();\r\n }\r\n\r\n public add() {\r\n let newMapping = this.gisDataStoreMetadataMappingService.createGisDatastoreMetadataMapping();\r\n newMapping.processConfiguration_id = this.processConfigurationId;\r\n newMapping.gisDatastore = this.selectedGisDataStore;\r\n\r\n this.gisDataStoreMetadataMappings.push(newMapping);\r\n\r\n this.save();\r\n }\r\n\r\n public save() {\r\n this.gisDataStoreMetadataMappingService.saveAllChanges();\r\n }\r\n\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ManageProcessClaimsModel {\r\n\r\n public newProcessClaim: Wars.Domain.Model.ClaimDefinition;\r\n public existingProcessClaims: Wars.Domain.Model.ClaimDefinition[];\r\n public systemClaimGroups: Wars.Domain.Model.ClaimGroup[];\r\n public processActions: Wars.Domain.Model.ProcessAction[];\r\n\r\n constructor(\r\n private processConfigurationId: string,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private service: services.ClaimDefinitionService,\r\n private systemLevelService: services.SystemLevelService,\r\n private processActionService: services.ProcessActionService,\r\n private deleteService: services.DeleteService,\r\n private modalService: any)\r\n {\r\n this.existingProcessClaims = [];\r\n this.getExistingProcessClaims();\r\n\r\n this.systemLevelService.getSystemLevelClaimGroups().then(\r\n (systemLevel) => {\r\n this.systemClaimGroups = systemLevel.myClaimGroups;\r\n });\r\n\r\n this.processActionService.getAllProcessActions(processConfigurationId).then((processActions) => {\r\n this.processActions = processActions;\r\n });\r\n }\r\n\r\n private getExistingProcessClaims(): void {\r\n this.service.getAllProcessClaims(this.processConfigurationId).then(\r\n (processClaims) => {\r\n this.existingProcessClaims = processClaims\r\n });\r\n }\r\n\r\n public addNewProcessClaim(): void {\r\n this.newProcessClaim = this.service.createNewEntity(\"ClaimDefinition\");\r\n this.newProcessClaim.valueAssignable = false;\r\n this.newProcessClaim.valueType = undefined;\r\n this.newProcessClaim.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n this.newProcessClaim.processConfiguration_id = this.processConfigurationId;\r\n this.showModal(this.newProcessClaim, true);\r\n }\r\n\r\n public editExistingProcessClaim(claim: Wars.Domain.Model.ClaimDefinition): void {\r\n this.showModal(claim, false);\r\n }\r\n\r\n public deleteClaim(claim: Wars.Domain.Model.ClaimDefinition) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ClaimDefinition\",\r\n claim.id,\r\n \"Claim Definition\",\r\n () => this.existingProcessClaims.remove(claim));\r\n }\r\n\r\n private showModal(claim: Wars.Domain.Model.ClaimDefinition, adding: boolean) { // Just provide a template url, a controller and call 'showModal'.\r\n var self: ManageProcessClaimsModel = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/_claimEditModal.html\",\r\n controller: \"editClaimModalController\",\r\n inputs: {\r\n claim: claim,\r\n mapping: { isMapped: false },\r\n systemClaimGroups: this.systemClaimGroups,\r\n variableTypeContext: null,\r\n codeGroups: null,\r\n processActions: this.processActions\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n if (adding) {\r\n claim.processConfiguration_id = this.processConfigurationId;\r\n this.existingProcessClaims.push(claim);\r\n }\r\n this.service.saveAllChanges();\r\n } else {\r\n self.service.rejectChanges();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}","/// \r\n\r\nmodule warsApp.models {\r\n export class MapConfigurationOverridesModel {\r\n public overrides: Wars.Domain.Model.Gis.MapConfigurationOverride[];\r\n public currentOverride: Wars.Domain.Model.Gis.MapConfigurationOverride;\r\n public selectedMapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n public selectedWorkflow: Wars.Domain.Model.Gis.GisActionWorkflowConfiguration;\r\n public selectedMapFunction: Wars.Domain.Model.Gis.MapFunctionConfiguration;\r\n public selectedWorkflowOverride: Wars.Domain.Model.Gis.GisActionWorkflowOverride;\r\n public mapConfigurations: Wars.Domain.Model.Gis.MapConfiguration[];\r\n\r\n public sectionBindings: Array;\r\n public metadataProperties: Array;\r\n\r\n public isLastActionAddFeature:boolean;\r\n\r\n constructor(private mapConfigurationOverridesService: services.MapConfigurationOverridesService,\r\n private mapConfigurationService: services.MapConfigurationService,\r\n private formService: services.FormService,\r\n private deleteService:services.DeleteService,\r\n private processConfigurationId: string) {\r\n\r\n this.mapConfigurationService.getMapConfigurations().then(mapConfigurations => {\r\n this.mapConfigurations = mapConfigurations;\r\n });\r\n\r\n this.mapConfigurationOverridesService.getMapConfigurationOverrides(processConfigurationId).then(r => {\r\n this.overrides = r;\r\n });\r\n\r\n this.formService.getProcessConfigurationFormsWithSections(processConfigurationId).then(forms => {\r\n this.sectionBindings = [];\r\n\r\n forms.forEach(f => {\r\n f.mySteps.forEach(step => {\r\n step.formSections.forEach(section => {\r\n this.sectionBindings.push({\r\n name: f.name + ' Form , '+ section.objectSchema.name + ' Section ',\r\n formSection: section\r\n });\r\n });\r\n });\r\n });\r\n })\r\n\r\n }\r\n\r\n public addMapConfigurationOverrides() {\r\n let newOverride = this.mapConfigurationOverridesService.createMapConfigurationOverrides();\r\n\r\n newOverride.name = \"New Override\";\r\n newOverride.mapConfiguration = this.selectedMapConfiguration;\r\n newOverride.processConfiguration_id = this.processConfigurationId;\r\n\r\n this.overrides.push(newOverride);\r\n this.currentOverride = newOverride;\r\n\r\n this.save();\r\n }\r\n\r\n public deleteFunction(func: Wars.Domain.Model.Gis.IncludedMapFunction) {\r\n func.entityAspect.setDeleted();\r\n\r\n this.save();\r\n }\r\n\r\n public deleteFieldMap(fieldMap: Wars.Domain.Model.Gis.GisActionWorkflowGisFieldMap) {\r\n fieldMap.entityAspect.setDeleted();\r\n\r\n this.save();\r\n }\r\n\r\n public deleteWorkflowOverride(workflowOverride: Wars.Domain.Model.Gis.GisActionWorkflowOverride) {\r\n workflowOverride.entityAspect.setDeleted();\r\n\r\n this.save();\r\n }\r\n\r\n public addIncludedFunction() {\r\n this.currentIncludedFunction = this.mapConfigurationOverridesService.createIncludedMapFunction();\r\n this.currentIncludedFunction.mapFunctionConfiguration = this.selectedMapFunction;\r\n this.currentOverride.includedMapFunctions.push(this.currentIncludedFunction);\r\n\r\n this.save();\r\n }\r\n\r\n public addGisActionWorkflowOverride() {\r\n let newWorkflow = this.mapConfigurationOverridesService.createGisActionWorkflowOverride();\r\n newWorkflow.isAddReadOnly = false;\r\n\r\n newWorkflow.gisActionWorkflowConfiguration = this.selectedWorkflow;\r\n this.currentOverride.gisActionWorkflowOverrides.push(newWorkflow);\r\n\r\n this.save();\r\n }\r\n\r\n public addFieldMap() {\r\n let newFieldMap = this.mapConfigurationOverridesService.createGisActionWorkflowGisFieldMap();\r\n newFieldMap.metadataPosition = 0;\r\n newFieldMap.isReadOnly = false;\r\n\r\n this.selectedWorkflowOverride.fieldMappings.push(newFieldMap);\r\n\r\n this.save();\r\n }\r\n\r\n public addQueryGrid() {\r\n this.currentQueryGridOverride = this.mapConfigurationOverridesService.createQueryGridOverride();\r\n this.currentQueryGridOverride.queryGridConfiguration = this.selectedQueryGrid;\r\n this.currentQueryGridOverride.name = this.selectedQueryGrid.name;\r\n this.currentQueryGridOverride.excludeNullPlaceholders = true;\r\n this.currentQueryGridOverride.queryGridConfiguration.queryGridQueries.forEach(q => {\r\n if (q.esriQueryConfiguration) {\r\n q.esriQueryConfiguration.wherePredicates.forEach(w => {\r\n if (w.isPlaceholder) {\r\n let placeholderValue = this.mapConfigurationOverridesService.createGisWherePlaceHolderValue();\r\n\r\n placeholderValue.placeHolderUniqueIdentifier = w.placeHolderUniqueIdentifier;\r\n placeholderValue.name = w.placeholderName;\r\n\r\n this.currentQueryGridOverride.placeHolderValues.push(placeholderValue);\r\n }\r\n });\r\n }\r\n\r\n if (q.gisDatastoreQueryConfiguration) {\r\n q.gisDatastoreQueryConfiguration.wherePredicates.forEach(w => {\r\n if (w.isPlaceholder) {\r\n let placeholderValue = this.mapConfigurationOverridesService.createGisWherePlaceHolderValue();\r\n\r\n placeholderValue.placeHolderUniqueIdentifier = w.placeHolderUniqueIdentifier;\r\n placeholderValue.name = w.placeholderName;\r\n\r\n this.currentQueryGridOverride.placeHolderValues.push(placeholderValue);\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.currentOverride.queryGridConfigurationOverrides.push(this.currentQueryGridOverride);\r\n this.save();\r\n }\r\n\r\n public setActionOverride(override:Wars.Domain.Model.Gis.GisActionWorkflowOverride) {\r\n this.selectedWorkflowOverride= override;\r\n var lastActionBlock = Enumerable.from(this.selectedWorkflowOverride.gisActionWorkflowConfiguration\r\n .gisActionBlocks)\r\n .lastOrDefault();\r\n\r\n if (lastActionBlock.gisActionBlockType == Wars.Domain.Model.Codes.Enums.GisActionBlockType.AddFeature) {\r\n this.isLastActionAddFeature = true;\r\n this.metadataProperties = [];\r\n\r\n for (let i = 1; i < 21; i++) {\r\n if (lastActionBlock.addFeaturesConfiguration.gisDatastore['metadata' + i + 'PropertyName']) {\r\n this.metadataProperties.push({\r\n name: lastActionBlock.addFeaturesConfiguration.gisDatastore['metadata' + i + 'PropertyName'],\r\n index: i\r\n });\r\n }\r\n }\r\n console.log(this.metadataProperties);\r\n\r\n } else {\r\n this.isLastActionAddFeature =false; \r\n }\r\n }\r\n\r\n public deleteQueryGridOverride() {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"QueryGridOverride\",\r\n this.currentQueryGridOverride.id, \"QueryGridOverride\", () => {\r\n this.currentOverride.queryGridConfigurationOverrides.remove(this.currentQueryGridOverride);\r\n\r\n this.currentQueryGridOverride = null;\r\n });\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationOverridesService.saveAllChanges();\r\n }\r\n\r\n public currentQueryGridOverride: Wars.Domain.Model.Gis.QueryGridOverride;\r\n public selectedQueryGrid: Wars.Domain.Model.Gis.QueryGridConfiguration;\r\n currentIncludedFunction: Wars.Domain.Model.Gis.IncludedMapFunction;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class MapToSystemStatusAndStatesModel {\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n private processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n private confirmChangeOfSystemCodeGroup: boolean;\r\n private systemStatusCodeGroupId: string;\r\n private isReadonly: boolean;\r\n\r\n constructor(\r\n private processConfigId: string,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private systemLevelService: services.SystemLevelService)\r\n {\r\n\r\n this.systemLevelService.getSystemLevelStatusesAndStates().then((systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n this.processConfigurationService.loadProcessConfigurationStatusGroup(processConfigId).then((processConfig) => {\r\n this.processConfiguration = processConfig;\r\n this.processConfiguration.systemStatusCodeGroup_id = systemLevel.statusCodeGroup_id;\r\n\r\n this.systemStatusCodeGroupId = this.processConfiguration.systemStatusCodeGroup_id;\r\n this.isReadonly = this.processConfiguration.minorVersion !== null;\r\n });\r\n });\r\n \r\n this.confirmChangeOfSystemCodeGroup = false;\r\n }\r\n\r\n public clearAllConnections(): void {\r\n var statusCount = this.processConfiguration.myStatusCodeGroup === null ? 0 : this.processConfiguration.myStatusCodeGroup.myStatuses.length;\r\n for (var statusIndex = 0; statusIndex < statusCount; statusIndex++) {\r\n var currentStatus = this.processConfiguration.myStatusCodeGroup.myStatuses[statusCount];\r\n currentStatus.systemStatusCode_id = null;\r\n currentStatus.mySystemStatusCode = null;\r\n\r\n var stateCount = currentStatus.myStates.length;\r\n for (var stateIndex = 0; stateIndex < stateCount; stateIndex++) {\r\n var currentState = currentStatus.myStates[stateIndex];\r\n currentState.systemStateCode_id = null;\r\n currentState.mySystemStateCode = null;\r\n }\r\n }\r\n }\r\n \r\n\r\n\r\n public save() {\r\n this.processConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n","/// \r\nmodule warsApp.models {\r\n export class ProcessConditionsModel {\r\n private logType: string = \"ProcessConditionsModel\";\r\n\r\n public selectedCondition: Wars.Domain.Model.Conditions.Condition;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public search: any;\r\n\r\n public editingCondition: boolean;\r\n\r\n constructor(\r\n private processConfigId: string,\r\n private conditionId: string,\r\n private processConfigService: services.ProcessConfigurationService,\r\n private conditionService: services.ConditionService,\r\n private deleteService: services.DeleteService)\r\n {\r\n this.editingCondition = false;\r\n\r\n this.processConfigService.getProcessConfigurationEagerLoadConditions(this.processConfigId).then(\r\n (appConfig) => {\r\n this.processConfiguration = appConfig;\r\n });\r\n\r\n this.search = {\r\n name: ''\r\n }\r\n\r\n this.processConfigService.getProcessConfigurationEagerLoadConditions(this.processConfigId).then(\r\n (processConfig) => {\r\n this.processConfiguration = processConfig;\r\n if (conditionId) {\r\n const match = Enumerable.from(this.processConfiguration.myConditions).singleOrDefault(i => i.id === conditionId);\r\n if (match) {\r\n this.search.name = match.name;\r\n this.editCondition(match);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public editCondition(condition: Wars.Domain.Model.Conditions.Condition): void {\r\n this.editingCondition = true;\r\n this.selectedCondition = condition;\r\n services.WarsLogger.logDebug(\"Selected Condition\", this.logType, this.selectedCondition);\r\n }\r\n\r\n public deleteCondition(condition: Wars.Domain.Model.Conditions.Condition): void {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"Condition\",\r\n condition.id,\r\n \"Condition Successfully Deleted\",\r\n () => {\r\n this.processConfiguration.myConditions.remove(condition);\r\n },\r\n \"Condition Could not be Deleted\");\r\n }\r\n\r\n public addNewCondition(): void {\r\n this.selectedCondition = this.processConfigService.createNewCondition();\r\n\r\n this.editingCondition = false;\r\n }\r\n\r\n public cancelSave(): void {\r\n this.selectedCondition = undefined;\r\n this.processConfigService.rejectChanges();\r\n this.processConfiguration.myConditions.pop();\r\n }\r\n\r\n public saveCondition(): void {\r\n var condition = this.selectedCondition;\r\n\r\n if (!this.editingCondition) {\r\n this.selectedCondition.processConfiguration_id = this.processConfigId;\r\n this.processConfiguration.myConditions.push(condition);\r\n }\r\n\r\n var exp = condition.expression;\r\n this.setGroupExpressionDefaults(exp);\r\n\r\n this.editingCondition = false;\r\n this.processConfigService.saveAllChanges();\r\n this.selectedCondition = undefined;\r\n }\r\n\r\n private setGroupExpressionDefaults(expression: Wars.Domain.Model.Conditions.Expression) {\r\n if (expression.expressionType === Wars.Domain.Model.Codes.Enums.ExpressionType.Group) {\r\n var ge = ( expression);\r\n if (ge.isAnd === null) {\r\n ge.isAnd = false;\r\n }\r\n if (ge.children != null) {\r\n for (var i = 0; i < ge.children.length; i++) {\r\n this.setGroupExpressionDefaults(ge.children[i]);\r\n } \r\n }\r\n }\r\n \r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessConfigVersionModel {\r\n\r\n public processConfig: Wars.Domain.Model.ProcessConfiguration;\r\n public processType: Wars.Domain.Model.ProcessType;\r\n public newVersionName: string;\r\n public validationIssues: Array = [];\r\n public versioning: boolean;\r\n\r\n\r\n constructor(\r\n private $location: ng.ILocationService,\r\n private $route: ng.route.IRouteService,\r\n private appTypeService: services.ProcessTypeService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private deleteService: services.DeleteService,\r\n private processConfigId: string,\r\n private sendConfigActivatedEvent: () => void,\r\n private growl: angular.growl.IGrowlService)\r\n {\r\n this.fetchProcessConfigurationsFromServer();\r\n this.versioning = false;\r\n }\r\n\r\n private appConfigsInPlace(): boolean {\r\n if (this.processType == undefined) return false;\r\n if (this.processType.processConfigurations == undefined) return false;\r\n return this.processType.processConfigurations.length > 0;\r\n }\r\n\r\n public isVersionDisabled() {\r\n return !this.appConfigsInPlace() || !this.newVersionName || this.versioning;\r\n }\r\n\r\n public showExistingVersions(): boolean {\r\n if (!this.appConfigsInPlace()) return false;\r\n return Enumerable.from(this.processType.processConfigurations).any(i => i.minorVersion != null);\r\n }\r\n\r\n public version(): void {\r\n this.processConfigurationService.version(this.processConfig.id, this.newVersionName)\r\n .then((result: any) => {\r\n if (result.success) {\r\n alert(\"Versioning your Process Configuration in the Background.\");\r\n this.versioning = true;\r\n var interval = setInterval(() => {\r\n this.fetchProcessConfigurationsFromServer();\r\n var processConfigBeingVersioned = Enumerable.from(this.processType.processConfigurations).single(p => p.id === this.processConfig.id);\r\n if (processConfigBeingVersioned.minorVersion !== null) {\r\n if (Enumerable.from(this.processType.processConfigurations).any(p => p.minorVersion === null)) {\r\n clearInterval(interval);\r\n this.growl.success(this.processType.name + \" has been Versioned.\", { ttl: 7000 });\r\n var newProcessConfig = Enumerable.from(this.processType.processConfigurations).single(p => p.minorVersion === null);\r\n this.versioning = false;\r\n this.$location.path('/ProcessConfiguration/' + newProcessConfig.id + '/Manage/Version');\r\n }\r\n }\r\n },\r\n 4000);\r\n\r\n } else {\r\n this.validationIssues = result.validationIssues;\r\n }\r\n });\r\n }\r\n\r\n public canActivate(processConfig: Wars.Domain.Model.ProcessConfiguration): boolean {\r\n if (processConfig.configurationStatus !== Wars.Domain.Model.Codes.Enums.ConfigurationStatus.InWork) return false;\r\n\r\n var moreRecentActivatedVersionsExist = Enumerable.from(this.processType.processConfigurations)\r\n .where(i => i.configurationStatus === Wars.Domain.Model.Codes.Enums.ConfigurationStatus.Activating ||\r\n i.configurationStatus === Wars.Domain.Model.Codes.Enums.ConfigurationStatus.Active)\r\n .where(i => i.minorVersion !== null && i.minorVersion > processConfig.minorVersion)\r\n .any();\r\n return !moreRecentActivatedVersionsExist;\r\n }\r\n\r\n public deleteProcessConfiguration(processConfig: Wars.Domain.Model.ProcessConfiguration): void {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ProcessConfiguration\",\r\n processConfig.id,\r\n \"Process Configuration\",\r\n () => {\r\n this.processType.processConfigurations.remove(processConfig);\r\n }\r\n );\r\n }\r\n\r\n public beginActivation(processConfig: Wars.Domain.Model.ProcessConfiguration): void {\r\n if (processConfig.minorVersion == null) {\r\n alert(\"This process configuration is not versioned it cannot be activated.\");\r\n return;\r\n }\r\n\r\n this.processConfigurationService.beginActivation(processConfig.id)\r\n .then((result) => {\r\n if (result.success) {\r\n this.sendConfigActivatedEvent();\r\n var interval = setInterval(() => {\r\n this.fetchProcessConfigurationsFromServer();\r\n if (!Enumerable.from(this.processType.processConfigurations)\r\n .any(p => p.configurationStatus === Wars.Domain.Model.Codes.Enums.ConfigurationStatus.Activating)) {\r\n clearInterval(interval);\r\n this.growl.success(this.processType.name + \" has been activated.\", { ttl: 7000 });\r\n }\r\n },\r\n 4000);\r\n //this.$route.reload();\r\n } else {\r\n if (result.validationIssues.length > 0) {\r\n this.validationIssues = result.validationIssues;\r\n } else {\r\n this.validationIssues\r\n .push(\"An unexpected error occurred and the process configuration could not activated.\");\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n public processConfigIsVersioned(processConfig: Wars.Domain.Model.ProcessConfiguration): boolean {\r\n if (!processConfig) return false;\r\n return processConfig.minorVersion != null;\r\n }\r\n\r\n private fetchProcessConfigurationsFromServer(): void {\r\n this.processConfigurationService.getById(this.processConfigId)\r\n .then(\r\n (newProcessConfigId) => {\r\n this.processConfig = newProcessConfigId;\r\n this.appTypeService.getByIdEagerLoadAppConfigs(this.processConfig.processType_id)\r\n .then(\r\n (appType) => {\r\n this.processType = appType;\r\n });\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ProcessDataModel {\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n private processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public objectSchema: Wars.Domain.Model.ObjectSchema;\r\n public reloadTree: boolean;\r\n public dataLoaded: boolean;\r\n public reloadData: () => void;\r\n public codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n\r\n constructor(\r\n private objectSchemaService: services.ObjectSchemaService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private manageCodeService: services.ManageSystemCodesService,\r\n private growlService: angular.growl.IGrowlService,\r\n private processConfigId: string)\r\n {\r\n this.dataLoaded = false;\r\n this.loadDataInternal();\r\n\r\n this.reloadData = () => {\r\n this.loadDataInternal();\r\n };\r\n }\r\n\r\n private dataLoadedCallback(): void {\r\n this.dataLoaded = true;\r\n }\r\n\r\n private loadDataInternal(): void {\r\n if (this.processConfigId) {\r\n this.loadProcessConfigData(this.processConfigId);\r\n } else {\r\n this.loadSystemVariables();\r\n }\r\n this.loadCodes();\r\n }\r\n\r\n private loadProcessConfigData(processConfigId: string): void {\r\n \r\n this.processConfigurationService.getById(processConfigId).then(\r\n (processConfiguration) => {\r\n this.processConfiguration = processConfiguration;\r\n if (processConfiguration.processDataSchema_id) {\r\n this.objectSchemaService.getObjectSchemaExpanded(processConfiguration.processDataSchema_id).then(\r\n (objectSchema) => {\r\n processConfiguration.processDataSchema = objectSchema;\r\n this.objectSchema = objectSchema;\r\n if (!objectSchema) {\r\n processConfiguration.processDataSchema = this.objectSchemaService.createNewObjectSchema();\r\n processConfiguration.processDataSchema_id = processConfiguration.processDataSchema.id;\r\n this.objectSchemaService.saveAllChanges(() => {\r\n this.objectSchema = processConfiguration.processDataSchema;\r\n this.dataLoadedCallback();\r\n });\r\n } else {\r\n this.dataLoadedCallback();\r\n }\r\n });\r\n\r\n } else {\r\n processConfiguration.processDataSchema = this.objectSchemaService.createNewObjectSchema();\r\n processConfiguration.processDataSchema_id = processConfiguration.processDataSchema.id;\r\n this.objectSchemaService.saveAllChanges(() => {\r\n this.objectSchema = processConfiguration.processDataSchema;\r\n this.dataLoadedCallback();\r\n });\r\n }\r\n });\r\n }\r\n\r\n private loadSystemVariables(): void {\r\n this.systemLevelService.getSystemLevel().then((systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n this.objectSchemaService.getObjectSchemaExpanded(systemLevel.variableSchema_id).then(\r\n (objectSchema) => {\r\n this.objectSchema = objectSchema;\r\n this.dataLoadedCallback();\r\n });\r\n });\r\n }\r\n\r\n private loadCodes(): void {\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n (systemLevel) => {\r\n this.codeGroups = systemLevel.myCodeGroups;\r\n if (this.processConfigId) {\r\n this.manageCodeService.getAllCodesForProcessConfiguration(this.processConfigId).then(\r\n (codeGroups) => {\r\n this.codeGroups = this.codeGroups.concat(codeGroups);\r\n });\r\n }\r\n });\r\n }\r\n\r\n public save(): void {\r\n var validationResults = this.objectSchemaService.validateObjectSchema(this.objectSchema);\r\n if (validationResults.length === 0) {\r\n this.objectSchemaService.saveAllChanges(() => this.saveCallback());\r\n } else {\r\n validationResults.forEach(error => this.growlService.error(error));\r\n }\r\n }\r\n\r\n public saveCallback(): void {\r\n // We have to tie this end of the relationship up here after the initial save due to the fact that breeze cannot\r\n // save both sides of a many-to-one to many-to-one (simulating one-to-one) at the same time because it does not\r\n // know which one to save first.\r\n var moreChangesNecessary = false;\r\n for (var i = 0; i < this.objectSchema.properties.length; i++) {\r\n var currentSchemaProperty = this.objectSchema.properties[i];\r\n if (currentSchemaProperty.typeSchema !== null && currentSchemaProperty.typeSchema.parentProperty === null) {\r\n moreChangesNecessary = true;\r\n currentSchemaProperty.typeSchema.parentProperty = currentSchemaProperty;\r\n currentSchemaProperty.typeSchema.schemaProperty_id = currentSchemaProperty.id;\r\n }\r\n if (currentSchemaProperty.typeSchema !== null && currentSchemaProperty.typeSchema.name !== currentSchemaProperty.name) {\r\n moreChangesNecessary = true;\r\n currentSchemaProperty.typeSchema.name = currentSchemaProperty.name;\r\n }\r\n }\r\n if (moreChangesNecessary) {\r\n this.save();\r\n } else {\r\n this.reloadTree = true;\r\n }\r\n }\r\n\r\n public cancel(): void {\r\n this.objectSchemaService.rejectChanges();\r\n }\r\n\r\n public hasChanges() {\r\n return this.objectSchemaService.hasChanges();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessDataNode {\r\n public nodeId: string;\r\n public variableType: Wars.Domain.Model.Codes.Enums.VariableType;\r\n public isReportable: boolean;\r\n public isGroupNode: boolean;\r\n public isVariableNode: boolean;\r\n\r\n constructor(nodeId: string, nodeType: string, variableType?: Wars.Domain.Model.Codes.Enums.VariableType, isReportable? : boolean) {\r\n this.nodeId = nodeId;\r\n this.isGroupNode = nodeType == 'group';\r\n this.isVariableNode = nodeType == \"variable\";\r\n this.variableType = variableType;\r\n this.isReportable = isReportable;\r\n }\r\n\r\n public static CreateGroup(nodeId: string) {\r\n return new ProcessDataNode(nodeId, 'group');\r\n }\r\n\r\n public static CreateVariable(nodeId: string, variableType: Wars.Domain.Model.Codes.Enums.VariableType, isReportable: boolean) {\r\n return new ProcessDataNode(nodeId, 'variable', variableType, isReportable);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ProcessFormsConfigurationModel {\r\n private logType: string = \"ProcessFormsConfigurationModel\";\r\n\r\n public process = {};\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public forms: Wars.Domain.Model.Form[];\r\n public search: any;\r\n\r\n constructor(\r\n private id: string,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private formService: services.FormService,\r\n private locationService: angular.ILocationService,\r\n private dataSourceService: services.DataSourceService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private deleteService: services.DeleteService,\r\n private modalService: any)\r\n {\r\n var self = this;\r\n if (id) {\r\n this.processConfigurationService.getProcessConfigurationWithForms(id)\r\n .then(\r\n (processConfig) => {\r\n self.processConfiguration = processConfig;\r\n self.forms = processConfig.myForms;\r\n });\r\n } else {\r\n this.formService.getSystemForms()\r\n .then(forms => {\r\n this.forms = forms;\r\n });\r\n }\r\n\r\n this.search = {\r\n name: ''\r\n }\r\n }\r\n\r\n public orderDown(form: Wars.Domain.Model.Form) {\r\n const newPosition = form.displayOrder + 1;\r\n\r\n var oldForm = Enumerable.from(this.forms).firstOrDefault(c => c.displayOrder == newPosition);\r\n\r\n if (oldForm) {\r\n oldForm.displayOrder--;\r\n form.displayOrder++;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public orderUp(form: Wars.Domain.Model.Form) {\r\n const newPosition = form.displayOrder - 1;\r\n\r\n var oldForm = Enumerable.from(this.forms).firstOrDefault(c => c.displayOrder == newPosition);\r\n\r\n if (oldForm) {\r\n oldForm.displayOrder++;\r\n form.displayOrder--;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public fixFormOrder() : void {\r\n var formCount = this.forms.length;\r\n var orderedForms = Enumerable.from(this.forms).orderBy(i => i.displayOrder).toArray();\r\n for (let i = 0; i < formCount; i++) {\r\n orderedForms[i].displayOrder = (i + 1);\r\n }\r\n this.save();\r\n }\r\n\r\n public addForm() {\r\n var newForm = this.formService.createForm(this.processConfiguration);\r\n if (this.processConfiguration.myProcessType.isReportProcess) {\r\n newForm.formType = Wars.Domain.Model.Codes.Enums.FormType.Report;\r\n } else {\r\n newForm.formType = Wars.Domain.Model.Codes.Enums.FormType.SinglePage;\r\n }\r\n\r\n newForm.maxInstances = 1;\r\n newForm.formSchema = this.dataSourceService.createNewObjectSchema();\r\n newForm.formSchema.formUniqueId = newForm.uniqueIdentifier;\r\n newForm.securityMatrix = this.securityMatrixService.createAdvancedSecurityMatrix(false, false);\r\n newForm.displayOrder = this.forms.length + 1;\r\n\r\n var self = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/addFormModal.html\",\r\n controller: \"addFormModalController\",\r\n size: 'lg',\r\n inputs: {\r\n form: newForm,\r\n isReportProcess: this.processConfiguration.myProcessType.isReportProcess\r\n }\r\n })\r\n .then(modal => {\r\n modal.element.modal();\r\n\r\n modal.close.then(result => {\r\n $('.modal-backdrop')\r\n .each(function() {\r\n $(this).remove();\r\n });\r\n\r\n if (result) {\r\n if (this.id) {\r\n this.processConfiguration.myForms.push(newForm);\r\n }\r\n this.forms.push(newForm);\r\n\r\n if (newForm.formType == Wars.Domain.Model.Codes.Enums.FormType.Report) {\r\n let formStep = this.formService.createFormStep(newForm);\r\n formStep.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n formStep.position = 0;\r\n\r\n newForm.mySteps.push(formStep);\r\n\r\n let section = this.formService.createFormSection(formStep);\r\n section.formSectionDisplayType = Wars.Domain.Model.Codes.Enums.FormSectionDisplayType.Panel;\r\n section.formSectionType = Wars.Domain.Model.Codes.Enums.FormSectionType.Standard;\r\n section.isVisible = true;\r\n section.position = 0;\r\n section.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n section.objectSchema.uniqueIdentifier= services.UtilityService.generateGuidComb();\r\n section.formSectionDisplayType = Wars.Domain.Model.Codes.Enums.FormSectionDisplayType.Panel;\r\n\r\n formStep.formSections.push(section);\r\n\r\n this.formService.setupFormSchema(newForm);\r\n }\r\n this.save();\r\n } else {\r\n self.dataSourceService.rejectChanges();\r\n }\r\n });\r\n });;\r\n }\r\n\r\n public save(form?) {\r\n if (form) services.WarsLogger.logDebug(\"Form Object\", this.logType, form);\r\n this.formService.saveAllChanges();\r\n }\r\n\r\n public removeForm(form: Wars.Domain.Model.Form) {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"Form\",\r\n form.id,\r\n \"Form successfully deleted\",\r\n () => this.forms.remove(form),\r\n \"Form could not be deleted\");\r\n }\r\n\r\n public configure(form: Wars.Domain.Model.Form) {\r\n if (this.id) {\r\n this.locationService.path('ProcessConfiguration/' +\r\n this.processConfiguration.id +\r\n '/Manage/Form/' +\r\n form.id);\r\n } else {\r\n this.locationService.path('/ManageForm/' + form.id);\r\n }\r\n }\r\n\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n declare var processHeaderModel: ProcessHeaderModel;\r\n\r\n export class ProcessHeaderModel {\r\n public tinyMceOptions: any;\r\n public processHeaders: Wars.Domain.Model.ProcessHeader[];\r\n public staticDocuments: Wars.Domain.Model.StaticDocument[];\r\n public currentTreeItem: models.TreeConfigurationItem;\r\n public currentProcessHeader:Wars.Domain.Model.ProcessHeader = null;\r\n public showTinyMce:boolean = false;\r\n\r\n constructor(public processConfigurationId: string,\r\n private processHeaderService: services.ProcessHeaderService,\r\n private manageStaticDocumentsService: services.ManageStaticDocumentsService, private treeService: services.TreeService,\r\n private growlService: angular.growl.IGrowlService, private securityMatrixService: services.SecurityMatrixService) {\r\n processHeaderModel = this;\r\n\r\n this.processHeaderService.getAllProcessHeaders(processConfigurationId)\r\n .then(headers => {\r\n this.processHeaders = headers;\r\n });\r\n\r\n manageStaticDocumentsService.getStaticDocumentsForProcessConfiguration(this.processConfigurationId)\r\n .then(d => {\r\n this.staticDocuments = d;\r\n this.showTinyMce = true;\r\n\r\n var images = [];\r\n this.staticDocuments.forEach(i => {\r\n var image = {\r\n title: i.fileName,\r\n value: 'api/Document/' + i.id\r\n }\r\n images.push(image);\r\n });\r\n\r\n this.tinyMceOptions = {\r\n format: 'raw',\r\n menubar: false,\r\n height: 500,\r\n plugins: \"noneditable, image, preview, code\",\r\n content_css: \"content/mce.css\",\r\n toolbar1:\r\n 'insertfield | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | image | preview | code',\r\n relative_urls: false,\r\n remove_script_host: false,\r\n document_base_url: localStorage.getItem('baseUrl'),\r\n image_list: images,\r\n external_image_list_url: images,\r\n setup: (editor) =>{\r\n editor.addButton('insertfield',\r\n {\r\n text: 'Insert Field',\r\n icon: false,\r\n onclick: () => {\r\n if (!this.currentTreeItem) {\r\n this.growlService.error('A field must be selected on the tree before you can insert a field.');\r\n } else {\r\n var treeItem = this.treeService.createTreeItemFromConfig(this.currentTreeItem,\r\n () => {\r\n treeItem.processHeader = this.currentProcessHeader, this.currentProcessHeader.bindings.push(treeItem);\r\n this.save(() => {\r\n editor.insertContent(\"\" + this.currentTreeItem.text + \"\");\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n\r\n public addProcessHeader() {\r\n let newHeader = this.processHeaderService.createProcessHeader();\r\n newHeader.name = \"New Header\";\r\n newHeader.processConfiguration_id = this.processConfigurationId;\r\n newHeader.securityMatrix = this.securityMatrixService.createSecurityMatrix(false);\r\n newHeader.securityMatrix.matrixType = Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrShow;\r\n this.processHeaders.push(newHeader);\r\n this.save();\r\n\r\n this.currentProcessHeader = newHeader;\r\n }\r\n\r\n public getSelectedNode(data: models.TreeConfigurationItem) {\r\n console.info(data);\r\n processHeaderModel.currentTreeItem = data;\r\n }\r\n\r\n public save(callback?) {\r\n this.processHeaderService.saveAllChanges(callback);\r\n }\r\n\r\n public manageSecurityMatrix() {\r\n this.securityMatrixService.openSecurityMatrixModal(this.currentProcessHeader.securityMatrix, this.processConfigurationId);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessNavigationModel {\r\n\r\n public workflowDesignerVisible: boolean;\r\n public processActionsVisible: boolean;\r\n public childProcessesVisible: boolean;\r\n public conditionsVisible: boolean;\r\n public calculationsVisible: boolean;\r\n public paymentsVisible: boolean;\r\n public emailSystemActionsVisible: boolean;\r\n public pdfGenerationSystemActionsVisible: boolean;\r\n public processDataVisible: boolean;\r\n public workflowVersionVisible: boolean;\r\n public assignmentConfigurationVisible: boolean;\r\n public processFormVisible: boolean;\r\n public processFormsVisible: boolean;\r\n public processEmailGroupsVisible: boolean;\r\n public timePeriodConfigurationVisible: boolean;\r\n public processClaimsVisible: boolean;\r\n public processStaticDocumentsVisible: boolean;\r\n public documentConfigVisible: boolean;\r\n public codesVisible: boolean;\r\n public constantsVisible: boolean;\r\n public dataSourcesVisible: boolean;\r\n public dataLinksVisible: boolean;\r\n public queriesVisible: boolean;\r\n public reviewConfigurationVisible: boolean;\r\n public scheduledResourcesConfigurationVisible: boolean;\r\n public interProcessApiVisible: boolean;\r\n public objectQueriesVisible: boolean;\r\n public objectQueryFormApiVisible: boolean;\r\n public processHeadersVisible: boolean;\r\n public mapToSystemStatusAndStatesVisible: boolean;\r\n public autoCompleteVisible: boolean;\r\n public apiVisible: boolean;\r\n public apiGridConfigurationVisible: boolean;\r\n public processSubTypesVisible: boolean;\r\n public batchJobsVisible: boolean;\r\n public relatedClaimProcessTypeVisible: boolean;\r\n public securityMatricesVisible: boolean;\r\n public gisDataStoreMetadataMapping: boolean;\r\n public processEventsVisible: boolean;\r\n public externalApiConfigurationVisible: boolean;\r\n public mapConfigurationVisible:boolean;\r\n public formContainersVisible: boolean;\r\n public processSecurityVisible: boolean;\r\n public apiConfigurationVisible: boolean;\r\n\r\n constructor(routeName: string) {\r\n switch (routeName) {\r\n case \"Form\":\r\n this.processFormVisible = true;\r\n break;\r\n case \"FormContainers\":\r\n this.formContainersVisible = true;\r\n break;\r\n case \"GisDataStoreMetadata\":\r\n this.gisDataStoreMetadataMapping = true;\r\n break;\r\n case \"SecurityMatrices\":\r\n this.securityMatricesVisible = true;\r\n break;\r\n case \"ProcessSecurity\":\r\n this.processSecurityVisible = true;\r\n break;\r\n case \"RelatedClaimProcessType\":\r\n this.relatedClaimProcessTypeVisible = true;\r\n break;\r\n case \"MapConfiguration\":\r\n this.mapConfigurationVisible = true;\r\n break\r\n case \"AutoComplete\":\r\n this.autoCompleteVisible = true;\r\n break;\r\n case \"ApiGrid\":\r\n this.apiGridConfigurationVisible = true;\r\n break;\r\n case \"Api\":\r\n this.apiVisible = true;\r\n break;\r\n case \"BatchJobs\":\r\n this.batchJobsVisible = true;\r\n break;\r\n case \"ReviewConfigurations\":\r\n this.reviewConfigurationVisible = true;\r\n break;\r\n case \"Forms\":\r\n this.processFormsVisible = true;\r\n break;\r\n case \"Workflow\":\r\n this.workflowDesignerVisible = true;\r\n break;\r\n case \"ProcessActions\":\r\n this.processActionsVisible = true;\r\n break;\r\n case \"Codes\":\r\n this.codesVisible = true;\r\n break;\r\n case \"Claims\":\r\n this.processClaimsVisible = true;\r\n break;\r\n case \"ManageStaticDocuments\":\r\n this.processStaticDocumentsVisible = true;\r\n break;\r\n case \"DocumentConfiguration\":\r\n this.documentConfigVisible = true;\r\n break;\r\n case \"CustomUi\":\r\n this.childProcessesVisible = true;\r\n break;\r\n case \"Conditions\":\r\n this.conditionsVisible = true;\r\n break;\r\n case \"Calculations\":\r\n this.calculationsVisible = true;\r\n break;\r\n case \"Email\":\r\n this.emailSystemActionsVisible = true;\r\n break;\r\n case \"Payments\":\r\n this.paymentsVisible = true;\r\n break;\r\n case \"Pdf\":\r\n this.pdfGenerationSystemActionsVisible = true;\r\n break;\r\n case \"ProcessData\":\r\n this.processDataVisible = true;\r\n break;\r\n case \"ProcessEvents\":\r\n this.processEventsVisible = true;\r\n break;\r\n case \"AssigmentConfiguration\":\r\n this.assignmentConfigurationVisible = true;\r\n break;\r\n case \"TimePeriods\":\r\n this.timePeriodConfigurationVisible = true;\r\n break;\r\n case \"ScheduledResources\":\r\n this.scheduledResourcesConfigurationVisible = true;\r\n break;\r\n case \"InterProcessApis\":\r\n this.interProcessApiVisible = true;\r\n break;\r\n case \"EmailGroups\":\r\n this.processEmailGroupsVisible = true;\r\n break;\r\n case \"Version\":\r\n this.workflowVersionVisible = true;\r\n break;\r\n case \"Constants\":\r\n this.constantsVisible = true;\r\n break;\r\n case \"DataSources\":\r\n this.dataSourcesVisible = true;\r\n break;\r\n case \"DataLinks\":\r\n this.dataLinksVisible = true;\r\n break;\r\n case \"Queries\":\r\n this.queriesVisible = true;\r\n break;\r\n case \"ChildProcesses\":\r\n this.childProcessesVisible = true;\r\n break;\r\n case \"ObjectQueries\":\r\n this.objectQueriesVisible = true;\r\n break;\r\n case \"ObjectQueryFormsApi\":\r\n this.objectQueryFormApiVisible = true;\r\n break;\r\n case \"ProcessHeaders\":\r\n this.processHeadersVisible = true;\r\n break;\r\n case \"ProcessSubTypes\":\r\n this.processSubTypesVisible = true;\r\n break;\r\n case \"MapToSystemStatusAndStates\":\r\n this.mapToSystemStatusAndStatesVisible = true;\r\n break;\r\n case \"ExternalApiConfiguration\":\r\n this.externalApiConfigurationVisible = true;\r\n break;\r\n case \"ApiConfiguration\":\r\n this.apiConfigurationVisible = true;\r\n break;\r\n default:\r\n this.processFormsVisible = true;\r\n }\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessSecurityModel {\r\n public securityMatricies: Wars.Domain.Model.SecurityMatrix[]\r\n public objectQueries: Wars.Domain.Model.ObjectQuery[]\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public processTypes: Wars.Domain.Model.ProcessType[];\r\n \r\n constructor(\r\n public processConfigurationId: string,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private processTypeService: services.ProcessTypeService,\r\n private objectQueryService: services.ObjectQueryService,\r\n private systemLevelService: services.SystemLevelService)\r\n {\r\n this.securityMatricies = [];\r\n this.objectQueries = [];\r\n\r\n this.processConfigurationService.getById(processConfigurationId).then(p => {\r\n this.processConfiguration = p;\r\n });\r\n\r\n this.securityMatrixService.getProcessConfigurationSecurityMatrices(processConfigurationId)\r\n .then(processLevelSecurityMatricies => {\r\n this.securityMatricies.addRange(processLevelSecurityMatricies);\r\n });\r\n\r\n this.systemLevelService.getSystemLevelSecurityMatrices()\r\n .then(systemLevel => {\r\n this.securityMatricies.addRange(systemLevel.mySecurityMatrices);\r\n });\r\n\r\n this.systemLevelService.getSystemLevelObjectQueries().then(systemLevel => {\r\n this.objectQueries.addRange(systemLevel.myObjectQueries);\r\n });\r\n\r\n this.objectQueryService.getProcessLevelObjectQueries(processConfigurationId).then((objectQueries) => {\r\n this.objectQueries.addRange(objectQueries);\r\n });\r\n\r\n this.processTypeService.getAllProcessTypes().then((processTypes) => {\r\n this.processTypes = processTypes;\r\n });\r\n }\r\n\r\n public save() {\r\n this.securityMatrixService.saveAllChanges();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class StatusGroupResult {\r\n\r\n public isReadonly: boolean;\r\n public processStatusGroups: models.ProcessStatusGroup[];\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ProcessSubTypesModel {\r\n\r\n public config: Wars.Domain.Model.ProcessSubTypeConfiguration;\r\n public systemSubTypeGroups: Wars.Domain.Model.SystemSubTypeGroup[];\r\n public processActions: Wars.Domain.Model.ProcessAction[];\r\n public processClaims: Wars.Domain.Model.ClaimDefinition[];\r\n\r\n private initialStateUniqueId: string;\r\n private editingProcessSubType: boolean;\r\n private currentProcessSubType: Wars.Domain.Model.ProcessSubType;\r\n\r\n constructor(\r\n private processConfigId: string,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private processSubTypeService: services.ProcessSubTypeService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private systemLevelService: services.SystemLevelService,\r\n private processActionService: services.ProcessActionService,\r\n private claimDefinitionService: services.ClaimDefinitionService)\r\n {\r\n this.editingProcessSubType = false;\r\n this.currentProcessSubType = undefined;\r\n\r\n this.processConfigurationService.getPermitSubTypeInfo(processConfigId).then(\r\n (processConfiguration: Wars.Domain.Model.ProcessConfiguration) => {\r\n this.config = processConfiguration.mySubTypeConfiguration;\r\n var initialStatus = Enumerable.from(processConfiguration.myStatusCodeGroup.myStatuses).single(i => i.isInitialStatus);\r\n var initialState = Enumerable.from(initialStatus.myStates).single(i => i.isInitialState);\r\n this.initialStateUniqueId = initialState.uniqueIdentifier;\r\n });\r\n\r\n this.processActionService.getAllProcessActions(processConfigId).then(processActions => this.processActions = processActions);\r\n\r\n this.systemLevelService.getSystemLevelSubTypeGroups().then(\r\n (systemLevel) => {\r\n this.systemSubTypeGroups = systemLevel.mySubTypeGroups;\r\n });\r\n\r\n this.claimDefinitionService.getAllProcessClaims(processConfigId).then(\r\n (processClaimDefinition) => {\r\n this.processClaims = Enumerable.from(processClaimDefinition)\r\n .where(i => i.specialClaimTagType == null)\r\n .where(i => i.claimMapName == null)\r\n .toArray();\r\n });\r\n }\r\n\r\n public addProcessSubType(): void {\r\n this.processSubTypeService.createNewSubType(this.config);\r\n this.save();\r\n }\r\n\r\n public save(): void {\r\n this.processConfigurationService.saveAllChanges();\r\n }\r\n\r\n public editSubType(subType: Wars.Domain.Model.ProcessSubType): void {\r\n this.editingProcessSubType = true;\r\n this.currentProcessSubType = subType;\r\n }\r\n\r\n public stopEditingSubType(): void {\r\n this.editingProcessSubType = false;\r\n this.currentProcessSubType = undefined;\r\n }\r\n\r\n public editSecurityMatrix(processSubType: Wars.Domain.Model.ProcessSubType): void {\r\n this.securityMatrixService.openSecurityMatrixModal(processSubType.myCreateSecurityMatrix, this.processConfigId, this.initialStateUniqueId);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models{\r\n export class RelatedClaimProcessTypeModel {\r\n public relatedClaimProcessTypes: Wars.Domain.Model.RelatedClaimProcessType[];\r\n public selectedRelatedClaimProcessType: Wars.Domain.Model.RelatedClaimProcessType;\r\n public fields: any[] = [];\r\n public selectedField:any;\r\n public claims: Wars.Domain.Model.ClaimDefinition[];\r\n public selectedClaimUniqueId:string;\r\n\r\n constructor(private processConfigurationId: string,\r\n private relatedClaimProcessTypeService: services.RelatedClaimProcessTypeService,\r\n private processConfigurationService: services.ProcessConfigurationService) {\r\n this.relatedClaimProcessTypeService.getRelatedClaims(processConfigurationId)\r\n .then(r => {\r\n this.relatedClaimProcessTypes = r;\r\n //console.log(this.relatedClaimProcessTypes);\r\n });\r\n\r\n this.processConfigurationService.getExpandFields(processConfigurationId)\r\n .then(p => {\r\n p.myForms.forEach(form => {\r\n Enumerable.from(form.mySteps)\r\n .selectMany(s => s.formSections)\r\n .selectMany(s => s.fields)\r\n .where(f => f.autoCompleteConfiguration_id != null)\r\n .forEach(f => {\r\n this.fields.push({\r\n field: f,\r\n formId: form.id\r\n });\r\n });\r\n });\r\n\r\n //console.log(this.fields);\r\n });\r\n }\r\n\r\n public add() {\r\n this.selectedRelatedClaimProcessType = this.relatedClaimProcessTypeService\r\n .createNewRelatedClaimProcessType();\r\n this.selectedRelatedClaimProcessType.processConfiguration_id = this.processConfigurationId;\r\n this.selectedRelatedClaimProcessType.field_id = this.selectedField.field.id;\r\n this.relatedClaimProcessTypes.push(this.selectedRelatedClaimProcessType);\r\n\r\n this.save();\r\n }\r\n\r\n public addClaim() {\r\n let newRelatedClaim = this.relatedClaimProcessTypeService.createNewRelatedClaim();\r\n newRelatedClaim.claimUniqueId = this.selectedClaimUniqueId;\r\n (newRelatedClaim).type = Enumerable.from(this.claims).single(claim => claim.uniqueIdentifier === this.selectedClaimUniqueId).type;\r\n\r\n this.selectedRelatedClaimProcessType.relatedClaims.push(newRelatedClaim);\r\n this.save();\r\n }\r\n\r\n public removeClaim(claim:Wars.Domain.Model.RelatedClaim) {\r\n claim.entityAspect.setDeleted();\r\n this.save(); \r\n }\r\n\r\n public edit(relatedClaimProcessType: Wars.Domain.Model.RelatedClaimProcessType) {\r\n this.selectedRelatedClaimProcessType = relatedClaimProcessType;\r\n this.processConfigurationService\r\n .getRelatedProcessTypeClaims(relatedClaimProcessType.field.autoCompleteConfiguration.processType_id)\r\n .then(c => {\r\n this.claims = c;\r\n this.selectedRelatedClaimProcessType.relatedClaims.forEach(c => {\r\n (c).type=Enumerable.from(this.claims).single(claim => claim.uniqueIdentifier === c.claimUniqueId).type;\r\n }); \r\n });\r\n }\r\n\r\n public save() {\r\n this.relatedClaimProcessTypeService.saveAllChanges();\r\n }\r\n\r\n }\r\n}\r\n\r\n","/// \r\nmodule warsApp.models {\r\n export class ReviewConfigurationModel {\r\n public reviews: Wars.Domain.Model.Reviews.ReviewConfiguration[];\r\n public currentReviewConfiguration: Wars.Domain.Model.Reviews.ReviewConfiguration = null;\r\n public forms: Wars.Domain.Model.Form[];\r\n public claims: Wars.Domain.Model.ClaimDefinition[];\r\n public emails: Wars.Domain.Model.EmailConfiguration[];\r\n public userRepositories: string[];\r\n public reviewGroups: Wars.Domain.Model.Reviews.ReviewGroup[];\r\n public systemReviewGroup: Wars.Domain.Model.Reviews.ReviewGroup;\r\n public codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n\r\n public constructor(\r\n private reviewConfigurationService: services.ReviewConfigurationService,\r\n private formService: services.FormService,\r\n private claimDefinitionService: services.ClaimDefinitionService,\r\n private emailService: services.EmailConfigurationService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private deleteService: services.DeleteService,\r\n private systemLevelService: services.SystemLevelService,\r\n private manageSystemCodesService: services.ManageSystemCodesService,\r\n private processConfigurationId?: string) {\r\n var self = this;\r\n\r\n if (processConfigurationId) {\r\n this.formService.getProcessConfigurationForms(processConfigurationId).then(forms => {\r\n self.forms = forms;\r\n });\r\n\r\n this.claimDefinitionService.getAllProcessClaims(processConfigurationId).then(claims => {\r\n self.claims = claims;\r\n });\r\n\r\n this.emailService.getAllEmailConfigurationsByProcessId(processConfigurationId).then(emails => {\r\n self.emails = emails;\r\n this.systemLevelService.getSystemEmailConfigurations().then(system => {\r\n self.emails.addRange(system.myEmailConfigurations);\r\n });\r\n });\r\n }\r\n\r\n this.reviewConfigurationService.getExtensibleUserRepositories().then(tags => {\r\n self.userRepositories = tags;\r\n });\r\n\r\n this.reviewConfigurationService.getReviewConfigurations(processConfigurationId).then(r => {\r\n self.reviews = r;\r\n });\r\n\r\n this.loadAllSystemCodes();\r\n\r\n this.systemLevelService.getSystemLevelReviewGroups().then(\r\n (systemLevel) => {\r\n this.reviewGroups = systemLevel.myReviewGroups;\r\n });\r\n }\r\n\r\n private loadAllSystemCodes(): void {\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n (systemLevel) => {\r\n this.codeGroups = systemLevel.myCodeGroups;\r\n if (this.processConfigurationId) {\r\n this.manageSystemCodesService.getAllCodesForProcessConfiguration(this.processConfigurationId).then(\r\n (codeGroups) => {\r\n this.codeGroups = this.codeGroups.concat(codeGroups);\r\n });\r\n }\r\n });\r\n }\r\n\r\n public editReview(review: Wars.Domain.Model.Reviews.ReviewConfiguration): void {\r\n this.currentReviewConfiguration = review;\r\n this.systemReviewGroup = review.systemReviewGroup;\r\n }\r\n\r\n public systemReviewGroupChanged(): void {\r\n if (this.systemReviewGroup != null) {\r\n this.currentReviewConfiguration.systemReviewGroup = this.systemReviewGroup;\r\n this.currentReviewConfiguration.systemReviewGroup_id = this.systemReviewGroup.id;\r\n this.currentReviewConfiguration.codeGroup_id = this.systemReviewGroup.codeGroup_id;\r\n } else {\r\n this.currentReviewConfiguration.systemReviewGroup = undefined;\r\n this.currentReviewConfiguration.systemReviewGroup_id = undefined;\r\n this.currentReviewConfiguration.codeGroup_id = undefined;\r\n }\r\n this.save();\r\n }\r\n\r\n public addReview() {\r\n this.currentReviewConfiguration = this.reviewConfigurationService.createReviewConfiguration();\r\n\r\n this.currentReviewConfiguration.reviewLabel = \"Review\";\r\n this.currentReviewConfiguration.reviewerLabel = \"Reviewer\";\r\n this.currentReviewConfiguration.allowThreadedComments = false;\r\n this.currentReviewConfiguration.automaticallyClose = false;\r\n this.currentReviewConfiguration.allowCommentsOnReview = true;\r\n this.currentReviewConfiguration.allowAttachements = true;\r\n this.currentReviewConfiguration.name = \"New Review\";\r\n this.currentReviewConfiguration.closingType = Wars.Domain.Model.Codes.Enums.ClosingType.None;\r\n this.currentReviewConfiguration.processConfiguration_id = this.processConfigurationId;\r\n this.currentReviewConfiguration.allowAssignDateSelection = false;\r\n this.currentReviewConfiguration.endAssignDateType = Wars.Domain.Model.Codes.Enums.DateRange.AnyDate;\r\n this.currentReviewConfiguration.beginAssignDateType = Wars.Domain.Model.Codes.Enums.DateRange.AnyDate;\r\n\r\n this.currentReviewConfiguration.securityMatrix = this.securityMatrixService.createSecurityMatrix(false);\r\n\r\n this.currentReviewConfiguration.canRemoveSecurityMatrix= this.securityMatrixService.createSecurityMatrix(false);\r\n\r\n this.currentReviewConfiguration.commentThreadConfiguration = this.formService.createCommentThreadConfiguration();\r\n\r\n this.reviews.push(this.currentReviewConfiguration);\r\n this.save();\r\n }\r\n\r\n public delete(review: Wars.Domain.Model.Reviews.ReviewConfiguration): void {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"ReviewConfiguration\",\r\n review.id,\r\n \"Review successfully deleted\",\r\n () => {\r\n this.reviews.remove(review);\r\n this.currentReviewConfiguration = undefined;\r\n },\r\n \"Review could not be deleted\");\r\n }\r\n\r\n public removeOption(code: Wars.Domain.Model.Codes.SystemCode) {\r\n code.entityAspect.setDeleted();\r\n //var index = Enumerable.from(this.field.fieldCodeGroup[0].codes).indexOf(c => c.id == code.id);\r\n //this.field.fieldCodeGroup[0].codes.splice(index, 1);\r\n }\r\n\r\n public addReminder() {\r\n let newReminder = this.reviewConfigurationService.createReviewReminder();\r\n newReminder.name = \"New Reminder\";\r\n newReminder.days = 1;\r\n newReminder.reviewConfiguration = this.currentReviewConfiguration;\r\n\r\n this.currentReviewConfiguration.reviewReminders.push(newReminder);\r\n this.save();\r\n }\r\n\r\n public manageSecurityMatrix() {\r\n this.securityMatrixService.openSecurityMatrixModal(this.currentReviewConfiguration.securityMatrix, this.processConfigurationId);\r\n }\r\n\r\n public manageRemovalSecurityMatrix() {\r\n if (!this.currentReviewConfiguration.canRemoveSecurityMatrix) {\r\n this.currentReviewConfiguration.canRemoveSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false);\r\n }\r\n this.securityMatrixService.openSecurityMatrixModal(this.currentReviewConfiguration.canRemoveSecurityMatrix, this.processConfigurationId);\r\n }\r\n\r\n public removeReminder(reminder: Wars.Domain.Model.Reviews.ReviewReminder) {\r\n reminder.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public save() {\r\n this.reviewConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class TimeTrackerConfigurationModel {\r\n public processConfig: Wars.Domain.Model.ProcessConfiguration;\r\n public timeTrackerContainers: Wars.Domain.Model.Workflow.TimeTrackerContainer[];\r\n public timeTrackers: Wars.Domain.Model.Workflow.TimeTracker[];\r\n public systemTimeTracker: Wars.Domain.Model.Workflow.TimeTracker;\r\n public systemLevelTimeTrackers: Wars.Domain.Model.Workflow.TimeTracker[];\r\n public selectedTimeTrackerContainer: Wars.Domain.Model.Workflow.TimeTrackerContainer;\r\n public selectedTimeTracker: Wars.Domain.Model.Workflow.TimeTracker;\r\n public holidaySets: Wars.Domain.Model.HolidaySet[];\r\n public timeZones: Wars.Domain.Model.Dtos.TimeZoneDto[];\r\n public isEditing: boolean;\r\n public displayTimeZone: boolean;\r\n public selectedTimePeriod: Wars.Domain.Model.Workflow.TimePeriod;\r\n public isEditingTimePeriod: boolean;\r\n public selectedStatusGroup: Wars.Domain.Model.Statuses.StatusCodeGroup;\r\n public systemLevel: Wars.Domain.Model.SystemLevel;\r\n public clockStatuses: any;\r\n public timeTrackingInitialized: boolean;\r\n public type: string;\r\n public addingSystemLevelTimeTracker: boolean;\r\n\r\n constructor(\r\n private processConfigurationId: string,\r\n private $timeout: angular.ITimeoutService,\r\n private timeTrackerService: services.TimeTrackerService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private statusAndStateService: services.StatusAndStateService,\r\n private holidaySetService: services.HolidaySetService,\r\n private timeZoneService: services.TimeZoneService,\r\n private deleteService: services.DeleteService)\r\n {\r\n this.isEditing = false;\r\n this.timeTrackingInitialized = false;\r\n this.clockStatuses = {};\r\n\r\n this.holidaySetService.getHolidaySets().then(h => {\r\n this.holidaySets = h;\r\n });\r\n\r\n if (this.processConfigurationId) {\r\n this.timeTrackerService.getTimeTrackerContainersByProcess(this.processConfigurationId).then(timeTrackerContainers => {\r\n this.timeTrackerContainers = timeTrackerContainers;\r\n });\r\n this.processConfigurationService\r\n .loadProcessConfigurationStatusGroup(this.processConfigurationId)\r\n .then((processConfiguration) => {\r\n this.processConfig = processConfiguration;\r\n this.selectedStatusGroup = processConfiguration.myStatusCodeGroup;\r\n });\r\n this.systemLevelService.getSystemLevelTimeTrackers().then(\r\n (systemLevel) => {\r\n this.systemLevelTimeTrackers = systemLevel.myTimeTrackers;\r\n });\r\n \r\n } else {\r\n this.systemLevelService.getSystemLevelTimeTrackers().then(\r\n (systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n this.timeTrackers = systemLevel.myTimeTrackers;\r\n });\r\n }\r\n \r\n\r\n this.timeZoneService.getValidServerTimeZones()\r\n .then(timeZones => {\r\n this.timeZones = timeZones;\r\n });\r\n }\r\n\r\n private loadStatusCodeGroup(id: string, callback?: () => void): void {\r\n this.statusAndStateService.getStatusCodeGroup(id).then((statusCodeGroup) => {\r\n this.selectedStatusGroup = statusCodeGroup;\r\n if (callback) callback();\r\n });\r\n }\r\n\r\n public addNewTimeTracker() {\r\n\r\n this.isEditing = true;\r\n this.type = \"actual\";\r\n\r\n if (!this.timeTrackers) {\r\n this.timeTrackers = [];\r\n }\r\n\r\n if (this.processConfigurationId) {\r\n this.selectedTimeTrackerContainer = this.timeTrackerService.createTimeTrackerContainer(this.processConfigurationId);\r\n\r\n this.selectedTimeTracker = this.timeTrackerService.createTimeTracker();\r\n this.selectedTimeTracker.myStatusCodeGroup = this.processConfig.myStatusCodeGroup;\r\n this.selectedTimeTracker.statusCodeGroup_id = this.processConfig.myStatusCodeGroup.id;\r\n\r\n this.selectedTimeTrackerContainer.myTimeTracker = this.selectedTimeTracker;\r\n this.timeTrackerContainers.push(this.selectedTimeTrackerContainer);\r\n this.timeTrackingInitialized = true;\r\n } else {\r\n this.selectedTimeTracker = this.timeTrackerService.createTimeTracker();\r\n this.selectedTimeTracker.myStatusCodeGroup = this.systemLevel.statusCodeGroup;\r\n this.selectedTimeTracker.statusCodeGroup_id = this.systemLevel.statusCodeGroup.id;\r\n\r\n this.selectedTimeTracker.systemLevel_id = this.systemLevel.id;\r\n this.selectedTimeTracker.mySystemLevel = this.systemLevel;\r\n\r\n this.timeTrackers.push(this.selectedTimeTracker);\r\n this.timeTrackingInitialized = true;\r\n }\r\n \r\n this.shouldDisplayTimeZone();\r\n this.saveChanges();\r\n }\r\n\r\n public addExistingSystemTimeTracker() {\r\n this.isEditing = false;\r\n this.addingSystemLevelTimeTracker = true;\r\n }\r\n\r\n public addSystemLevelTimeTracker() {\r\n this.selectedTimeTrackerContainer = this.timeTrackerService.createTimeTrackerContainer(this.processConfigurationId);\r\n this.selectedTimeTrackerContainer.myTimeTracker = this.systemTimeTracker;\r\n this.selectedTimeTracker = this.selectedTimeTrackerContainer.myTimeTracker;\r\n this.timeTrackerContainers.push(this.selectedTimeTrackerContainer);\r\n this.addingSystemLevelTimeTracker = false;\r\n this.type = \"reference\";\r\n this.saveChanges();\r\n }\r\n\r\n public clockStateChanged(stateCodeId: string):void {\r\n var clockStatus = this.clockStatuses[stateCodeId];\r\n if (!clockStatus) {\r\n var clockStateToRemove = Enumerable.from(this.selectedTimeTracker.myClockStates).singleOrDefault(i => i.stateCode_id === stateCodeId);\r\n if (clockStateToRemove) clockStateToRemove.entityAspect.setDeleted();\r\n } else {\r\n var clockStateToUpdate = Enumerable.from(this.selectedTimeTracker.myClockStates).singleOrDefault(i => i.stateCode_id === stateCodeId);\r\n if (clockStateToUpdate) {\r\n clockStateToUpdate.clockStatus = clockStatus;\r\n } else {\r\n var clockState = this.timeTrackerService.createClockState();\r\n clockState.myTimeTracker = this.selectedTimeTracker;\r\n clockState.timeTracker_id = this.selectedTimeTracker.id;\r\n clockState.clockStatus = clockStatus;\r\n clockState.stateCode_id = stateCodeId;\r\n this.selectedTimeTracker.myClockStates.push(clockState);\r\n }\r\n }\r\n this.saveChanges();\r\n }\r\n\r\n public deleteExistingSystemTimeTracker() {\r\n alert(\"In-Work\");\r\n }\r\n\r\n private initializeClockStates(): void {\r\n for (var i = 0; i < this.selectedTimeTracker.myClockStates.length; i++) {\r\n var clockState = this.selectedTimeTracker.myClockStates[i];\r\n this.clockStatuses[clockState.stateCode_id] = clockState.clockStatus;\r\n }\r\n this.$timeout(() => { this.timeTrackingInitialized = true;});\r\n }\r\n\r\n public addTimePeriod() {\r\n this.selectedTimePeriod = this.timeTrackerService.createTimePeriod(this.selectedTimeTracker);\r\n this.selectedTimePeriod.value = 0;\r\n if (!this.selectedTimeTracker.myTimePeriods) {\r\n this.selectedTimeTracker.myTimePeriods = [];\r\n }\r\n\r\n this.selectedTimeTracker.myTimePeriods.push(this.selectedTimePeriod);\r\n this.isEditingTimePeriod = true;\r\n }\r\n\r\n public changeTimeType() {\r\n if (this.selectedTimeTracker.timeType === Wars.Domain.Model.Workflow.TimeType.Days) {\r\n this.displayTimeZone = true;\r\n } else {\r\n this.selectedTimeTracker.timeZoneId = null;\r\n this.displayTimeZone = false;\r\n }\r\n this.saveChanges();\r\n }\r\n\r\n public saveChanges() {\r\n this.timeTrackerService.saveAllChanges();\r\n }\r\n\r\n public selectTimeTrackerContainer(timeTrackerContainer: Wars.Domain.Model.Workflow.TimeTrackerContainer) {\r\n this.isEditingTimePeriod = false;\r\n this.selectedTimePeriod = null;\r\n this.selectedStatusGroup = null;\r\n this.selectedTimeTrackerContainer = timeTrackerContainer;\r\n this.selectedTimeTracker = timeTrackerContainer.myTimeTracker;\r\n this.loadStatusCodeGroup(timeTrackerContainer.myTimeTracker.statusCodeGroup_id, () => this.initializeClockStates());\r\n this.type = this.selectedTimeTracker.systemLevel_id ? \"reference\" : \"actual\";\r\n this.isEditing = true;\r\n }\r\n\r\n public deleteTimeTrackerContainer(timeTrackerContainer: Wars.Domain.Model.Workflow.TimeTrackerContainer) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"TimeTrackerContainer\",\r\n timeTrackerContainer.id,\r\n \"Time Tracker\",\r\n () => {\r\n this.timeTrackerContainers.remove(timeTrackerContainer);\r\n this.selectedTimeTrackerContainer = undefined;\r\n this.selectedTimeTracker = undefined;\r\n this.isEditing = false;\r\n });\r\n }\r\n\r\n public selectTimeTracker(timeTracker: Wars.Domain.Model.Workflow.TimeTracker) {\r\n this.selectedTimeTrackerContainer = undefined;\r\n this.selectedTimeTracker = timeTracker;\r\n this.loadStatusCodeGroup(timeTracker.statusCodeGroup_id, () => this.initializeClockStates());\r\n this.type = \"actual\";\r\n this.isEditing = true;\r\n }\r\n\r\n public deleteTimeTracker(timeTracker: Wars.Domain.Model.Workflow.TimeTracker) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"TimeTracker\",\r\n timeTracker.id,\r\n \"Time Tracker\",\r\n () => {\r\n this.timeTrackers.remove(timeTracker);\r\n this.selectedTimeTrackerContainer = undefined;\r\n this.selectedTimeTracker = undefined;\r\n this.isEditing = false;\r\n });\r\n }\r\n\r\n public editTimePeriod(timePeriod: Wars.Domain.Model.Workflow.TimePeriod) {\r\n this.isEditingTimePeriod = true;\r\n this.selectedTimePeriod = timePeriod;\r\n this.shouldDisplayTimeZone();\r\n }\r\n\r\n public deleteTimePeriod(timePeriod: Wars.Domain.Model.Workflow.TimePeriod) {\r\n this.isEditingTimePeriod = false;\r\n timePeriod.entityAspect.setDeleted();\r\n this.saveChanges();\r\n this.selectedTimeTracker.myTimePeriods.remove(timePeriod);\r\n this.selectedTimePeriod = undefined;\r\n }\r\n\r\n private shouldDisplayTimeZone() {\r\n if (this.selectedTimeTracker.timeType === Wars.Domain.Model.Workflow.TimeType.Days) {\r\n this.displayTimeZone = true;\r\n } else {\r\n this.displayTimeZone = false;\r\n }\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n declare var joint: any;\r\n\r\n export const enum WorkflowMode {\r\n Workflow = 0,\r\n ProcessAction = 1\r\n }\r\n\r\n export class WorkflowConfigurationModel {\r\n\r\n private elementMapping: models.jointJs.ElementMap[];\r\n private processStatusGroups: models.ProcessStatusGroup[];\r\n \r\n private isReadonly: boolean;\r\n private drawingOptions: models.jointJs.DrawingOptions;\r\n private graph: joint.dia.Graph;\r\n private paper: joint.dia.Paper;\r\n \r\n public workflowWorkspaceModel: models.WorkflowWorkspaceModel;\r\n\r\n constructor(\r\n private $scope: controllers.IWorkflowConfigurationScope,\r\n private $timeout: ng.ITimeoutService,\r\n private processConfigId: string,\r\n private workflowMode: WorkflowMode,\r\n private workflowService: services.WorkflowService,\r\n private deleteService: services.DeleteService,\r\n public workflowDrawingService: services.WorkflowDrawingService,\r\n private modalService: any)\r\n {\r\n this.$scope = $scope;\r\n this.$timeout = $timeout;\r\n\r\n this.processStatusGroups = [];\r\n this.processConfigId = processConfigId;\r\n this.workflowDrawingService = workflowDrawingService;\r\n this.workflowService = workflowService;\r\n\r\n if (this.workflowMode === WorkflowMode.Workflow) {\r\n this.workflowService.getAllStatusGroups(this.processConfigId).then(\r\n (processStatusGroupResult) => {\r\n this.initialize(processStatusGroupResult.processStatusGroups, processStatusGroupResult.isReadonly);\r\n });\r\n }\r\n\r\n var settings = this.getWorkflowWorkspaceSettings();\r\n\r\n this.workflowWorkspaceModel = new models.WorkflowWorkspaceModel(\r\n settings,\r\n this.workflowMode,\r\n (blocks: models.IWorkflowBlock[]) => this.statusFlowChangedCallback(blocks));\r\n }\r\n\r\n public getAllowedStatusChanges(): models.ProcessStatusGroup[] {\r\n if (!this.workflowWorkspaceModel.getSelectedStatusGroup()) return this.processStatusGroups;\r\n return Enumerable\r\n .from(this.processStatusGroups)\r\n .where(i => i.processStatusGroupDto.id !== this.workflowWorkspaceModel.getSelectedStatusGroup().processStatusGroupDto.id)\r\n .toArray();\r\n }\r\n\r\n public addStatusChange(index: number) {\r\n var processStatusGroupSelected = this.getAllowedStatusChanges()[index];\r\n alert(processStatusGroupSelected.processStatusGroupDto.statusName);\r\n }\r\n\r\n public statusFlowChangedCallback(blocks: models.IWorkflowBlock[]): void {\r\n this.updateSelectedStatusGroup(blocks);\r\n this.redrawConnections();\r\n }\r\n\r\n public editSelectedStatus(): void {\r\n this.showAddEditStatusModal(true);\r\n }\r\n\r\n public addStatus(): void {\r\n this.showAddEditStatusModal(false);\r\n }\r\n\r\n public addNewStatus(newStatus: Wars.Domain.Model.Dtos.Workflow.StatusDto): void {\r\n this.workflowService.addNewStatus(newStatus, this.processConfigId).then(\r\n (processStatusGroup) => {\r\n this.processStatusGroups.push(processStatusGroup);\r\n this.draw();\r\n });\r\n }\r\n\r\n public deleteStatusCode(statusCodeId: string): void {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"StatusCode\",\r\n statusCodeId,\r\n \"Status successfully deleted\",\r\n () => {\r\n this.processStatusGroups = Enumerable\r\n .from(this.processStatusGroups)\r\n .where(i => i.processStatusGroupDto.id !== statusCodeId)\r\n .toArray();\r\n\r\n this.workflowWorkspaceModel.setNewSelectedStatus(this.processConfigId, undefined, this.isReadonly);\r\n this.draw();\r\n },\r\n \"Status could not be deleted\");\r\n }\r\n\r\n public updateStatusGroup(statusCodeId: string, status: Wars.Domain.Model.Dtos.Workflow.StatusDto): void {\r\n this.workflowService.updateStatus(statusCodeId, status).then(\r\n (processStatusGroup) => {\r\n for (let i = 0; i < this.processStatusGroups.length; i++) {\r\n\r\n if (this.processStatusGroups[i].processStatusGroupDto.id === statusCodeId) {\r\n this.processStatusGroups[i] = processStatusGroup;\r\n }\r\n\r\n for (var x = 0; x < this.processStatusGroups[i].workflowBlocks.length; x++) {\r\n if (this.processStatusGroups[i].workflowBlocks[x].type === Wars.Domain.Model.Codes.Enums.BlockType.StatusChange) {\r\n var statusChangeWorkflowBlock = this.processStatusGroups[i].workflowBlocks[x];\r\n if (statusChangeWorkflowBlock.toStatusGroupId === statusCodeId) {\r\n statusChangeWorkflowBlock.label = status.statusName;\r\n }\r\n }\r\n }\r\n }\r\n this.draw();\r\n });\r\n }\r\n\r\n private redrawConnections(): void {\r\n var statusConnections = StatusConnections.createStatusConnectionObjects(this.processStatusGroups);\r\n this.removeAllLinks();\r\n this.drawAllLinks(statusConnections);\r\n }\r\n\r\n private updateSelectedStatusGroup(blocks: models.IWorkflowBlock[]): void {\r\n this.workflowWorkspaceModel.getSelectedStatusGroup().workflowBlocks = blocks;\r\n }\r\n\r\n private initialize(processStatusGroups: models.ProcessStatusGroup[], isReadonly: boolean): void {\r\n\r\n this.processStatusGroups = processStatusGroups;\r\n this.isReadonly = isReadonly;\r\n\r\n var numberOfStatuses = this.processStatusGroups.length;\r\n this.drawingOptions = this.getDrawingOptions(numberOfStatuses);\r\n this.graph = new joint.dia.Graph();\r\n\r\n var paperOptions = {\r\n el: $('#workflowDiagram'),\r\n width: Math.max($(window).width(), this.drawingOptions.calculateWidthRequired()),\r\n height: this.drawingOptions.calculateHeightRequired(),\r\n gridSize: this.drawingOptions.gridSize,\r\n model: this.graph,\r\n interactive: this.interactive\r\n };\r\n\r\n var resizeHanlder = $(window).resize(() => {\r\n var newWidth = Math.max($(window).width(), this.drawingOptions.calculateWidthRequired());\r\n this.paper.setDimensions(newWidth, this.paper.options.height);\r\n this.draw();\r\n });\r\n\r\n var listenerCallback = this.$scope.$on('$locationChangeStart', function (event) {\r\n resizeHanlder.off();\r\n });\r\n\r\n this.$scope.$on(\"$destroy\", () => {\r\n listenerCallback();\r\n });\r\n\r\n this.paper = new joint.dia.Paper(paperOptions);\r\n this.draw();\r\n }\r\n\r\n private draw(): void {\r\n this.graph.clear();\r\n\r\n this.elementMapping = [];\r\n\r\n this.registerMoveHandlerToKeepElementsOnPaper(this.paper, this.drawingOptions);\r\n this.registerSelectOnDoubleClickHandler(this.paper, this.graph, this.drawingOptions);\r\n\r\n var rectangles = [];\r\n for (var i = 0; i < this.processStatusGroups.length; i++) {\r\n var text = this.processStatusGroups[i].processStatusGroupDto.statusName;\r\n if (text.length > 13) {\r\n var index = text.indexOf(\" \");\r\n if (index !== -1) {\r\n text = text.replace(\" \", \"\\n\");\r\n } else {\r\n text = text.substr(0, 13) + \"-\\n\" + text.substr(13);\r\n }\r\n }\r\n\r\n var rectangleOptions = {\r\n position: { x: this.drawingOptions.calculateHorizontalPosition(i), y: this.drawingOptions.verticalSpacing },\r\n size: { width: this.drawingOptions.boxWidth, height: this.drawingOptions.boxHeight },\r\n\r\n attrs: {\r\n rect: {\r\n class: 'state-workflow-block',\r\n rx: '5',\r\n ry: '5'\r\n },\r\n text: {\r\n text: text,\r\n class: 'text'\r\n }\r\n }\r\n }\r\n\r\n var rectangle = new joint.shapes.basic.Rect(rectangleOptions);\r\n this.elementMapping.push(new models.jointJs.ElementMap(this.processStatusGroups[i].processStatusGroupDto.id, rectangle.id));\r\n rectangles.push(rectangle);\r\n }\r\n\r\n this.graph.addCells(rectangles);\r\n \r\n this.drawAllLinks(models.StatusConnections.createStatusConnectionObjects(this.processStatusGroups));\r\n }\r\n\r\n private drawAllLinks(statusConnections: StatusConnections[]): void {\r\n var links = [];\r\n for (var i = 0; i < statusConnections.length; i++) {\r\n var currentStatus = statusConnections[i];\r\n\r\n for (var index = 0; index < currentStatus.toStatusGroupIds.length; index++) {\r\n var linkOptions = {\r\n source: {\r\n id: Enumerable.from(this.elementMapping).single(i => i.entityId === currentStatus.statusCodeId).elementId,\r\n port: 'out'\r\n },\r\n target: {\r\n id: Enumerable.from(this.elementMapping).single(i => i.entityId === currentStatus.toStatusGroupIds[index]).elementId,\r\n port: 'in'\r\n }\r\n };\r\n var link = new joint.dia.Link(linkOptions);\r\n link.attr({\r\n '.connection': { 'fill-opacity': 0 },\r\n '.connection-wrap': { 'fill-opacity': 0 },\r\n '.marker-target': { d: 'M 10 0 L 0 5 L 10 10 z' }\r\n });\r\n\r\n link.set('router', { name: 'manhattan' });\r\n //link.set('manhattan', true)\r\n links.push(link);\r\n }\r\n }\r\n\r\n this.graph.addCells(links);\r\n links.forEach((link) => link.toBack());\r\n }\r\n\r\n private removeAllLinks(): void {\r\n for (var i = 0; i < this.elementMapping.length; i++) {\r\n var cell = this.getJointjsCellByStatusGroupId(this.elementMapping[i].entityId);\r\n this.graph.removeLinks(cell);\r\n }\r\n }\r\n\r\n private getJointjsCellByStatusGroupId(id: string): joint.dia.Cell {\r\n var elementId = Enumerable.from(this.elementMapping).single(i => i.entityId == id).elementId;\r\n var graphAny: any = this.graph;\r\n return graphAny.getCell(elementId);\r\n }\r\n\r\n private getDrawingOptions(numberOfBoxes: number): models.jointJs.DrawingOptions {\r\n var drawingOptions = new models.jointJs.DrawingOptions();\r\n\r\n drawingOptions.numberOfBoxes = numberOfBoxes;\r\n\r\n drawingOptions.boxWidth = 100;\r\n drawingOptions.boxHeight = 50;\r\n\r\n drawingOptions.verticalSpacing = 20;\r\n drawingOptions.horizontalSpacing = 20;\r\n\r\n drawingOptions.gridSize = 1;\r\n\r\n drawingOptions.rectangleColor = 'maroon';\r\n drawingOptions.textColor = 'white';\r\n\r\n drawingOptions.selectedRectangleColor = 'yellow';\r\n drawingOptions.selectedTextColor = 'black';\r\n\r\n return drawingOptions;\r\n }\r\n\r\n private interactive(cellView: any): any {\r\n if (cellView.model instanceof joint.dia.Link) {\r\n // Disable the default vertex add functionality on pointerdown.\r\n return {\r\n vertexAdd: false,\r\n vertexMove: false,\r\n vertexRemove: false,\r\n arrowheadMove: false\r\n };\r\n }\r\n return true;\r\n }\r\n\r\n private registerMoveHandlerToKeepElementsOnPaper(paper: any, drawingOptions: models.jointJs.DrawingOptions) {\r\n paper.on('cell:pointermove', (cellView, evt, x, y) => {\r\n\r\n var bbox = cellView.getBBox();\r\n var constrained = false;\r\n var width = this.paper.options.width;\r\n\r\n var constrainedX = x;\r\n\r\n if (bbox.x <= 0) { constrainedX = x + drawingOptions.gridSize; constrained = true }\r\n if (bbox.x + bbox.width >= width) { constrainedX = x - drawingOptions.gridSize; constrained = true }\r\n\r\n var constrainedY = y;\r\n\r\n if (bbox.y <= 0) { constrainedY = y + drawingOptions.gridSize; constrained = true }\r\n if (bbox.y + bbox.height >= drawingOptions.calculateHeightRequired()) { constrainedY = y - drawingOptions.gridSize; constrained = true }\r\n\r\n //if you fire the event all the time you get a stack overflow\r\n if (constrained) { cellView.pointermove(evt, constrainedX, constrainedY) }\r\n });\r\n }\r\n\r\n private registerSelectOnDoubleClickHandler(paper: any, graph: any, drawingOptions: models.jointJs.DrawingOptions) {\r\n var self = this;\r\n paper.on('cell:pointerdblclick', (cellView) => {\r\n var model = cellView.model;\r\n if (!model) return;\r\n var attributes = model.attributes;\r\n if (!attributes || attributes.type !== 'basic.Rect') return;\r\n\r\n self.unselectAllBoxes(graph, drawingOptions);\r\n\r\n model.attr('rect/class', 'selected-state-workflow-block');\r\n \r\n var statusCodeId = Enumerable.from(self.elementMapping).single(i => i.elementId === model.id).entityId;\r\n self.workflowWorkspaceModel.scope.$apply(() => {\r\n\r\n var processStatusGroup = Enumerable.from(self.processStatusGroups).single(i => i.processStatusGroupDto.id === statusCodeId);\r\n self.workflowWorkspaceModel.setNewSelectedStatus(self.processConfigId, processStatusGroup, self.isReadonly);\r\n\r\n self.workflowWorkspaceModel.drawWorkflow();\r\n self.workflowWorkspaceModel.drawShapesForToolbox();\r\n\r\n self.workflowWorkspaceModel.settings.xOrigin = 0;\r\n self.workflowWorkspaceModel.settings.yOrigin = 0;\r\n self.workflowWorkspaceModel.changeViewBoxSizeAndOffset();\r\n });\r\n });\r\n }\r\n\r\n private getWorkflowWorkspaceSettings() : models.WorkflowDrawingSettings {\r\n return new models.WorkflowDrawingSettings(3200, 1800);\r\n }\r\n\r\n private unselectAllBoxes(graph: any, drawingOptions: models.jointJs.DrawingOptions) : void {\r\n for (var i = 0; i < this.elementMapping.length; i++) {\r\n var currentMap = this.elementMapping[i];\r\n var cell = graph.getCell(currentMap.elementId);\r\n cell.attr('rect/class', 'state-workflow-block');\r\n }\r\n }\r\n\r\n private showAddEditStatusModal(existingStatusGroup: boolean): void {\r\n var self: WorkflowConfigurationModel = this;\r\n var model: models.AddEditStatusModel;\r\n\r\n if (existingStatusGroup) {\r\n model = new models.AddEditStatusModel(this.workflowWorkspaceModel.getSelectedStatusGroup());\r\n } else {\r\n model = new models.AddEditStatusModel();\r\n if (this.processStatusGroups == null || this.processStatusGroups === undefined || this.processStatusGroups.length === 0) {\r\n model.processStatusGroup.processStatusGroupDto.isInitialStatus = true;\r\n }\r\n }\r\n \r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_addEditStatus.html\",\r\n controller: \"addEditStatusModalController\",\r\n inputs: {\r\n model: model\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n if (model.existingStatus) {\r\n if (model.deleteStatusCode) {\r\n self.deleteStatusCode(this.workflowWorkspaceModel.getSelectedStatusGroup().processStatusGroupDto.id);\r\n } else {\r\n self.updateStatusGroup(this.workflowWorkspaceModel.getSelectedStatusGroup().processStatusGroupDto.id, model.processStatusGroup.processStatusGroupDto);\r\n }\r\n \r\n } else {\r\n self.addNewStatus(model.processStatusGroup.processStatusGroupDto);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ProcessEventConfigurationModel {\r\n processEventConfigurations: Wars.Domain.Model.ProcessEventConfiguration[];\r\n systemLevel: Wars.Domain.Model.SystemLevel;\r\n systemActions: Wars.Domain.Model.SystemAction[];\r\n processActions: Wars.Domain.Model.ProcessAction[];\r\n selectedProcessEvent: Wars.Domain.Model.ProcessEventConfiguration;\r\n isSystem: boolean;\r\n\r\n constructor(\r\n private processConfigurationId: string,\r\n private processEventConfigurationService: services.ProcessEventConfigurationService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private systemLevelService: services.SystemLevelService,\r\n private processActionService: services.ProcessActionService,\r\n private deleteService: services.DeleteService) {\r\n\r\n if (processConfigurationId) {\r\n this.isSystem = false;\r\n this.processEventConfigurationService.getProcessEventConfigurations(processConfigurationId)\r\n .then(eventConfigurations => {\r\n this.processEventConfigurations = eventConfigurations;\r\n });\r\n } else {\r\n this.isSystem = true;\r\n this.systemLevelService.getSystemLevelProcessEventConfigurations()\r\n .then(systemLevel => {\r\n this.systemLevel = systemLevel;\r\n this.processEventConfigurations = systemLevel.myProcessEventConfigurations;\r\n });\r\n }\r\n\r\n this.processActionService.getAllProcessActions(processConfigurationId).then(\r\n (processActions) => {\r\n this.processActions = processActions;\r\n });\r\n\r\n this.systemLevelService.getSystemLevelSystemActions().then(\r\n (systemLevel) => {\r\n this.systemActions = systemLevel.mySystemActions;\r\n });\r\n }\r\n\r\n public addProcessEventConfiguration() {\r\n var initiateSecurityMatrix = this.securityMatrixService.createSecurityMatrix(this.isSystem);\r\n var viewSecurityMatrix = this.securityMatrixService.createSecurityMatrix(this.isSystem);\r\n\r\n var processEventConfiguration = this.processEventConfigurationService.createProcessEventConfiguration();\r\n if (this.processConfigurationId) {\r\n processEventConfiguration.processConfiguration_id = this.processConfigurationId;\r\n } else {\r\n processEventConfiguration.systemLevel_id = this.systemLevel.id;\r\n }\r\n processEventConfiguration.initiateSecurityMatrix_id = initiateSecurityMatrix.id;\r\n processEventConfiguration.viewSecurityMatrix_id = viewSecurityMatrix.id;\r\n processEventConfiguration.name = \"Event\";\r\n processEventConfiguration.allowComment = false;\r\n processEventConfiguration.allowAttachments = false;\r\n processEventConfiguration.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n\r\n this.processEventConfigurationService.saveAllChanges(() => {\r\n this.processEventConfigurations.push(processEventConfiguration);\r\n this.selectedProcessEvent = processEventConfiguration;\r\n });\r\n }\r\n\r\n public openInitiateSecurityMatrixModal(processEventConfiguration: Wars.Domain.Model.ProcessEventConfiguration) {\r\n this.securityMatrixService.fetchById(processEventConfiguration.initiateSecurityMatrix_id, \"SecurityMatrix\")\r\n .then((securityMatrix) => {\r\n this.securityMatrixService.openSecurityMatrixModal(securityMatrix, this.processConfigurationId);\r\n });\r\n }\r\n\r\n public openViewSecurityMatrixModal(processEventConfiguration: Wars.Domain.Model.ProcessEventConfiguration) {\r\n this.securityMatrixService.fetchById(processEventConfiguration.viewSecurityMatrix_id, \"SecurityMatrix\")\r\n .then((securityMatrix) => {\r\n this.securityMatrixService.openSecurityMatrixModal(securityMatrix, this.processConfigurationId);\r\n });\r\n }\r\n\r\n public editProcessEventConfiguration(processEventConfiguration: Wars.Domain.Model.ProcessEventConfiguration): void {\r\n this.selectedProcessEvent = processEventConfiguration;\r\n }\r\n\r\n public closeEdit(): void {\r\n this.selectedProcessEvent = undefined;\r\n }\r\n\r\n public removeProcessEventConfiguration(processEventConfiguration: Wars.Domain.Model.ProcessEventConfiguration): void {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ProcessEventConfiguration\",\r\n processEventConfiguration.id,\r\n \"Process Event Configuration\",\r\n () => {\r\n this.processEventConfigurations.remove(processEventConfiguration);\r\n });\r\n }\r\n\r\n public updateProcessEventConfiguration() {\r\n this.processEventConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ConstantConfigurationModel {\r\n public constants: Wars.Domain.Model.ConstantValue[];\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n\r\n public constructor(\r\n private constantService: services.ConstantService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n public id: string,\r\n private growl: angular.growl.IGrowlService)\r\n {\r\n this.dropDownContext.includeSpecifiedOptionsOnly = [\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Integer,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Decimal,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Boolean];\r\n\r\n if (id) {\r\n constantService.getAllConstantsForProcessConfiguration(id).then(c => {\r\n this.constants = c;\r\n });\r\n } else {\r\n systemLevelService.getSystemLevelConstants().then(systemLevel => {\r\n this.systemLevel = systemLevel;\r\n this.constants = systemLevel.myConstants;\r\n });\r\n }\r\n }\r\n\r\n public dropDownContext : models.EnumDropDownContext = new EnumDropDownContext();\r\n \r\n public addConstant() {\r\n var newConstant = this.constantService.createConstant();\r\n\r\n if (this.id) {\r\n newConstant.processConfiguration_id = this.id;\r\n } else {\r\n newConstant.systemLevel_id = this.systemLevel.id;\r\n }\r\n\r\n this.constants.push(newConstant);\r\n }\r\n\r\n public removeConstant(constant: Wars.Domain.Model.ConstantValue) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ConstantValue\",\r\n constant.id,\r\n \"Constant\",\r\n () => {\r\n this.constants.remove(constant);\r\n });\r\n }\r\n\r\n public cancel() {\r\n this.constantService.rejectChanges();\r\n }\r\n\r\n public save() {\r\n this.constantService.saveAllChanges();\r\n }\r\n }\r\n}","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ConstantConfigurationModel = /** @class */ (function () {\r\n function ConstantConfigurationModel(constantService, systemLevelService, deleteService, id, growl) {\r\n var _this = this;\r\n this.constantService = constantService;\r\n this.systemLevelService = systemLevelService;\r\n this.deleteService = deleteService;\r\n this.id = id;\r\n this.growl = growl;\r\n this.dropDownContext = new models.EnumDropDownContext();\r\n this.dropDownContext.includeSpecifiedOptionsOnly = [\r\n 0 /* String */,\r\n 1 /* Integer */,\r\n 2 /* Decimal */,\r\n 6 /* Boolean */\r\n ];\r\n if (id) {\r\n constantService.getAllConstantsForProcessConfiguration(id).then(function (c) {\r\n _this.constants = c;\r\n });\r\n }\r\n else {\r\n systemLevelService.getSystemLevelConstants().then(function (systemLevel) {\r\n _this.systemLevel = systemLevel;\r\n _this.constants = systemLevel.myConstants;\r\n });\r\n }\r\n }\r\n ConstantConfigurationModel.prototype.addConstant = function () {\r\n var newConstant = this.constantService.createConstant();\r\n if (this.id) {\r\n newConstant.processConfiguration_id = this.id;\r\n }\r\n else {\r\n newConstant.systemLevel_id = this.systemLevel.id;\r\n }\r\n this.constants.push(newConstant);\r\n };\r\n ConstantConfigurationModel.prototype.removeConstant = function (constant) {\r\n var _this = this;\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"ConstantValue\", constant.id, \"Constant\", function () {\r\n _this.constants.remove(constant);\r\n });\r\n };\r\n ConstantConfigurationModel.prototype.cancel = function () {\r\n this.constantService.rejectChanges();\r\n };\r\n ConstantConfigurationModel.prototype.save = function () {\r\n this.constantService.saveAllChanges();\r\n };\r\n return ConstantConfigurationModel;\r\n }());\r\n models.ConstantConfigurationModel = ConstantConfigurationModel;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\n/// \r\nmodule warsApp.models {\r\n export class ContentManagementModel{\r\n public contentPagesVisible: boolean = true;\r\n public menuManagementVisible:boolean = false;\r\n public siteConfigurationVisible: boolean = false;\r\n public landingPageConfigurationVisible: boolean = false;\r\n\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n\r\n\r\n public contentPagesSelected() {\r\n this.contentPagesVisible = true;\r\n this.menuManagementVisible =false;\r\n this.siteConfigurationVisible = false;\r\n this.landingPageConfigurationVisible = false;\r\n }\r\n\r\n public siteConfigurationSelected() {\r\n this.contentPagesVisible =false;\r\n this.siteConfigurationVisible =true;\r\n this.menuManagementVisible = false;\r\n this.landingPageConfigurationVisible = false;\r\n }\r\n\r\n public menuConfigurationSelected() {\r\n this.menuManagementVisible = true;\r\n this.siteConfigurationVisible =false;\r\n this.contentPagesVisible = false;\r\n this.landingPageConfigurationVisible = false;\r\n }\r\n\r\n public landingPageConfigurationSelected() {\r\n this.menuManagementVisible = false;\r\n this.siteConfigurationVisible = false;\r\n this.contentPagesVisible = false;\r\n this.landingPageConfigurationVisible = true;\r\n }\r\n\r\n }\r\n}","/// \r\n/// \r\nmodule warsApp.models {\r\n\r\n declare var contentPagesModelSelf: ContentPagesModel;\r\n\r\n export class ContentPageDto {\r\n Id: string;\r\n Title: string;\r\n IsEditable: boolean;\r\n Html: string;\r\n FriendlyName: string;\r\n SecurityMatrixId: string;\r\n EditSecurityMatrixId: string;\r\n }\r\n\r\n export class ContentPagesModel {\r\n\r\n public pages: Wars.Domain.Model.Dtos.ContentPageDto[];\r\n public selectedPage: Wars.Domain.Model.Dtos.ContentPageDto;\r\n public linkPage: Wars.Domain.Model.Dtos.ContentPageDto;\r\n public viewSecurityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n public editSecurityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n public activeProcessTypes: Wars.Domain.Model.ProcessType[];\r\n public processConfigurationId: string;\r\n public tinyMce: any;\r\n private modalService: any;\r\n public documentList: any;\r\n public staticDocuments: Array;\r\n public tinyMceOptions: any;\r\n\r\n constructor(\r\n private contentPageService: warsApp.services.ContentPageService,\r\n private securityMatrixService: warsApp.services.SecurityMatrixService,\r\n private processTypeService: services.ProcessTypeService,\r\n private systemLevelService: services.SystemLevelService,\r\n modalService: any) {\r\n\r\n contentPagesModelSelf = this;\r\n contentPagesModelSelf.modalService = modalService;\r\n contentPagesModelSelf.processConfigurationId = undefined;\r\n\r\n contentPagesModelSelf.contentPageService.getContentPagesForConfiguration()\r\n .then(pages => {\r\n contentPagesModelSelf.pages = pages;\r\n });\r\n\r\n contentPagesModelSelf.processTypeService.getActiveProcessTypes()\r\n .then(result => {\r\n contentPagesModelSelf.activeProcessTypes = result;\r\n });\r\n\r\n contentPagesModelSelf.systemLevelService.getSystemLevelStaticDocuments()\r\n .then(systemLevel => {\r\n contentPagesModelSelf.staticDocuments = systemLevel.myStaticDocuments;\r\n contentPagesModelSelf.documentList = [];\r\n contentPagesModelSelf.staticDocuments.forEach(document => {\r\n contentPagesModelSelf.documentList\r\n .push({ title: document.name, value: 'api/Document/StaticDocument/' + document.id });\r\n });\r\n\r\n contentPagesModelSelf.tinyMceOptions = {\r\n format: 'raw',\r\n entity_encoding: 'raw',\r\n menubar: false,\r\n height: 600,\r\n plugins: \"link image imagetools preview code\",\r\n imagetools_toolbar: \"rotateleft rotateright | flipv fliph | editimage imageoptions\",\r\n content_css: \"content/mce.css\",\r\n toolbar1:\r\n 'addlink | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link | image | preview | code',\r\n link_list: contentPagesModelSelf.documentList,\r\n image_list: contentPagesModelSelf.documentList, //TODO - Kevin do i need this?\r\n setup(editor) {\r\n editor.addButton('addlink',\r\n {\r\n text: 'Link to Page',\r\n type: 'menubutton',\r\n icon: false,\r\n menu: [\r\n {\r\n text: 'Link to Static Page',\r\n onclick() {\r\n contentPagesModelSelf.modalService.showModal({\r\n templateUrl: \"./app/views/modals/contentPageStaticLinkModal.html\",\r\n controller: \"contentPageStaticLinkModalController\",\r\n inputs: {\r\n contentPages: contentPagesModelSelf.pages\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n editor\r\n .insertContent('Link to ' + result.title + '');\r\n }\r\n });\r\n });\r\n }\r\n },\r\n {\r\n text: 'Link to Process',\r\n onclick() {\r\n contentPagesModelSelf.modalService.showModal({\r\n templateUrl: \"./app/views/modals/contentPageProcessLinkModal.html\",\r\n controller: \"contentPageProcessLinkModalController\",\r\n inputs: {\r\n activeProcessTypes: contentPagesModelSelf.activeProcessTypes\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n editor.insertContent('Link to ' + result.name + '');\r\n }\r\n });\r\n });\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n public selectPage(page: Wars.Domain.Model.Dtos.ContentPageDto) {\r\n contentPagesModelSelf.securityMatrixService.fetchById(page.securityMatrixId, \"SecurityMatrix\")\r\n .then((securityMatrix) => {\r\n contentPagesModelSelf.viewSecurityMatrix = securityMatrix;\r\n contentPagesModelSelf.securityMatrixService.fetchById(page.editSecurityMatrixId, \"SecurityMatrix\")\r\n .then((editSecurityMatrix) => {\r\n contentPagesModelSelf.editSecurityMatrix = editSecurityMatrix;\r\n contentPagesModelSelf.selectedPage = page;\r\n });\r\n });\r\n }\r\n\r\n public addPage() {\r\n contentPagesModelSelf.viewSecurityMatrix = contentPagesModelSelf.securityMatrixService.createSecurityRow(true);\r\n contentPagesModelSelf.editSecurityMatrix = contentPagesModelSelf.securityMatrixService.createSecurityRow(true);\r\n var contentPageDto = new ContentPageDto();\r\n contentPageDto.Title = \"New Content Page\";\r\n contentPageDto.FriendlyName = \"\";\r\n contentPageDto.SecurityMatrixId = contentPagesModelSelf.viewSecurityMatrix.id;\r\n contentPageDto.EditSecurityMatrixId = contentPagesModelSelf.editSecurityMatrix.id;\r\n\r\n contentPagesModelSelf.securityMatrixService.saveAllChanges(() => {\r\n contentPagesModelSelf.contentPageService.addContentPage(contentPageDto)\r\n .then((contentPage) => {\r\n contentPagesModelSelf.pages.push(contentPage);\r\n contentPagesModelSelf.selectPage(contentPage);\r\n });\r\n });\r\n }\r\n\r\n public updateContentPage() {\r\n contentPagesModelSelf.contentPageService.updateContentPage(contentPagesModelSelf.selectedPage);\r\n }\r\n\r\n public openViewSecurityMatrixModal() {\r\n contentPagesModelSelf.securityMatrixService.openSecurityMatrixModal(contentPagesModelSelf.viewSecurityMatrix, undefined);\r\n }\r\n\r\n public openEditSecurityMatrixModal() {\r\n contentPagesModelSelf.securityMatrixService.openSecurityMatrixModal(contentPagesModelSelf.editSecurityMatrix, undefined);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n declare var landingPageConfigurationSelf: LandingPageConfigurationModel;\r\n\r\n export class LandingPageConfigurationDto {\r\n Id: string;\r\n Name: string;\r\n Order: number;\r\n ContentPageId: string;\r\n ProcessTypeId: string;\r\n SecurityMatrixId: string;\r\n SecurityMatrixUniqueIdentifier: string;\r\n IsSingleInstanceProcess: boolean;\r\n }\r\n\r\n export class LandingPageConfigurationModel {\r\n public landingPageConfiguration: Wars.Domain.Model.Dtos.LandingPageConfigurationDto;\r\n public landingPageConfigurationDtos: Wars.Domain.Model.Dtos.LandingPageConfigurationDto[];\r\n public contentPageDtos: Wars.Domain.Model.Dtos.ContentPageDto[];\r\n public activeProcessTypes: Wars.Domain.Model.ProcessType[];\r\n public processSecurityMatrices: any;\r\n\r\n constructor(\r\n private landingPageConfigurationService: warsApp.services.LandingPageConfigurationService,\r\n private contentPageService: warsApp.services.ContentPageService,\r\n private securityMatrixService: warsApp.services.SecurityMatrixService,\r\n private processTypeService: services.ProcessTypeService,\r\n private modalService: any,\r\n private growlService: angular.growl.IGrowlService) {\r\n landingPageConfigurationSelf = this;\r\n landingPageConfigurationSelf.processSecurityMatrices = [];\r\n\r\n landingPageConfigurationSelf.landingPageConfigurationService.getLandingPageConfigurations()\r\n .then(landingPageConfigurations => {\r\n landingPageConfigurationSelf.landingPageConfigurationDtos = landingPageConfigurations;\r\n });\r\n\r\n landingPageConfigurationSelf.contentPageService.getContentPagesForConfiguration()\r\n .then(pages => {\r\n landingPageConfigurationSelf.contentPageDtos = pages;\r\n });\r\n\r\n landingPageConfigurationSelf.processTypeService.getActiveProcessTypes().then(result => {\r\n landingPageConfigurationSelf.activeProcessTypes = result;\r\n });\r\n }\r\n\r\n public addLandingPageConfiguration() {\r\n var securityMatrix = landingPageConfigurationSelf.securityMatrixService.createSecurityRow(true);\r\n var landingPageConfigurationDto = new LandingPageConfigurationDto();\r\n landingPageConfigurationDto.Name = \"New Landing Page\";\r\n landingPageConfigurationDto.Order = landingPageConfigurationSelf.landingPageConfigurationDtos.length + 1;\r\n landingPageConfigurationDto.SecurityMatrixId = securityMatrix.id;\r\n\r\n landingPageConfigurationSelf.securityMatrixService.saveAllChanges(() => {\r\n landingPageConfigurationSelf.landingPageConfigurationService.addLandingPageConfiguration(landingPageConfigurationDto)\r\n .then((landingPageConfiguration) => {\r\n landingPageConfigurationSelf.landingPageConfigurationDtos.push(landingPageConfiguration);\r\n });\r\n });\r\n }\r\n\r\n public updateLandingPageConfiguration(landingPageConfiguration: Wars.Domain.Model.Dtos.LandingPageConfigurationDto) {\r\n landingPageConfigurationSelf.landingPageConfigurationService.updateLandingPageConfiguration(landingPageConfiguration);\r\n }\r\n\r\n public updateLandingPageConfigurationProcess(landingPageConfiguration: Wars.Domain.Model.Dtos.LandingPageConfigurationDto) {\r\n landingPageConfiguration.securityMatrixUniqueIdentifier = null;\r\n if (landingPageConfiguration.processTypeId) {\r\n landingPageConfiguration.isSingleInstanceProcess = Enumerable.from(landingPageConfigurationSelf.activeProcessTypes).first(i => i.id === landingPageConfiguration.processTypeId).isSingleInstanceProcess;\r\n } else {\r\n landingPageConfiguration.isSingleInstanceProcess = false;\r\n }\r\n landingPageConfigurationSelf.landingPageConfigurationService.updateLandingPageConfiguration(landingPageConfiguration);\r\n }\r\n\r\n public sortLinks($item: Wars.Domain.Model.Dtos.LandingPageConfigurationDto, $partFrom: Wars.Domain.Model.Dtos.LandingPageConfigurationDto[], $partTo, $indexFrom, $indexTo, $modal) {\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(z => z.order).toArray();\r\n\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n\r\n $item.order = $indexTo;\r\n\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].order = Enumerable.from(arrayCopy).indexOf(i => i.id == numberId);\r\n }\r\n\r\n landingPageConfigurationSelf.landingPageConfigurationService.updateLandingPageConfigurations(landingPageConfigurationSelf.landingPageConfigurationDtos);\r\n }\r\n\r\n public openProcessSecurityMatrixModal(landingPageConfiguration: Wars.Domain.Model.Dtos.LandingPageConfigurationDto) {\r\n landingPageConfigurationSelf.processTypeService.getActiveProcessTypeAndSecurity(landingPageConfiguration.processTypeId)\r\n .then(processType => {\r\n var activeProcessConfiguration = Enumerable.from(processType.processConfigurations).firstOrDefault(i => i.configurationStatus === Wars.Domain.Model.Codes.Enums.ConfigurationStatus.Active);\r\n if (activeProcessConfiguration) {\r\n if (activeProcessConfiguration.mySecurityMatrices.length > 0) {\r\n var currentMatrix = Enumerable.from(activeProcessConfiguration.mySecurityMatrices).firstOrDefault(ii => ii.uniqueIdentifier === landingPageConfiguration.securityMatrixUniqueIdentifier);\r\n landingPageConfigurationSelf.modalService.showModal({\r\n templateUrl: \"./app/views/modals/landingPageConfigurationSingleInstanceModal.html\",\r\n controller: \"landingPageConfigurationSingleInstanceModalController\",\r\n inputs: {\r\n securityMatrices: activeProcessConfiguration.mySecurityMatrices,\r\n uniqueIdentifier: currentMatrix ? currentMatrix.uniqueIdentifier : null\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n landingPageConfiguration.securityMatrixUniqueIdentifier = result;\r\n landingPageConfigurationSelf.landingPageConfigurationService.updateLandingPageConfiguration(landingPageConfiguration);\r\n }\r\n });\r\n });\r\n } else {\r\n landingPageConfigurationSelf.growlService.error(\"No Security Matrices available in this Process Configuration.\");\r\n }\r\n } else {\r\n landingPageConfigurationSelf.growlService.error(\"No Active Process Configuration for this Process Type.\");\r\n }\r\n });\r\n }\r\n\r\n public openSecurityMatrixModal(landingPageConfiguration: Wars.Domain.Model.Dtos.LandingPageConfigurationDto) {\r\n landingPageConfigurationSelf.securityMatrixService.fetchById(landingPageConfiguration.securityMatrixId, \"SecurityMatrix\")\r\n .then((securityMatrix) => {\r\n landingPageConfigurationSelf.securityMatrixService.openSecurityMatrixModal(securityMatrix, undefined);\r\n });\r\n }\r\n\r\n public removeLandingPageConfiguration(landingPageConfiguration: Wars.Domain.Model.Dtos.LandingPageConfigurationDto) {\r\n landingPageConfigurationSelf.landingPageConfigurationService.deleteLandingPageConfigurations(landingPageConfiguration)\r\n .then(() => {\r\n landingPageConfigurationSelf.landingPageConfigurationDtos.remove(landingPageConfiguration);\r\n });\r\n }\r\n }\r\n}","/// \r\n/// \r\nmodule warsApp.models {\r\n\r\n declare var menuConfigurationModelSelf: MenuConfigurationModel;\r\n\r\n export class MenuLinkDto {\r\n Id: string;\r\n ContentPageId: string;\r\n ProcessTypeId: string;\r\n MenuItemId: string;\r\n Name: string;\r\n IsSeparator: boolean;\r\n Order: number;\r\n SecurityMatrixId: string;\r\n }\r\n\r\n export class MenuItemDto {\r\n Id: string;\r\n Name: string;\r\n IsPublished: boolean;\r\n DefaultUrl: string;\r\n Order: number;\r\n }\r\n\r\n export class ProcessEventDto {\r\n Id: string;\r\n ProcessEventConfigUniqueId: string;\r\n NotificationType: string;\r\n Comment: string;\r\n CreatedUser: string;\r\n CreatedDate: Date;\r\n DocumentIds: Array;\r\n }\r\n\r\n export class MenuConfigurationModel {\r\n public editModelItem: boolean;\r\n public menuItems: Wars.Domain.Model.Dtos.MenuItemDto[] = [];\r\n public selectedMenuItem: Wars.Domain.Model.Dtos.MenuItemDto;\r\n public contentPageDtos: Wars.Domain.Model.Dtos.ContentPageDto[];\r\n public activeProcessTypes: Wars.Domain.Model.ProcessType[];\r\n public contentPages: any;\r\n\r\n constructor(\r\n private menuItemService: services.MenuItemService,\r\n private menuLinkService: services.MenuLinkService,\r\n private contentPageService: services.ContentPageService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private processTypeService: services.ProcessTypeService) {\r\n menuConfigurationModelSelf = this;\r\n\r\n menuConfigurationModelSelf.menuItemService.getMenuItems().then(r => {\r\n menuConfigurationModelSelf.menuItems = r;\r\n });\r\n\r\n menuConfigurationModelSelf.contentPageService.getContentPagesForConfiguration()\r\n .then(pages => {\r\n menuConfigurationModelSelf.contentPageDtos = pages;\r\n });\r\n\r\n menuConfigurationModelSelf.processTypeService.getActiveProcessTypes().then(result => {\r\n menuConfigurationModelSelf.activeProcessTypes = result;\r\n });\r\n }\r\n\r\n public removeLink(link: Wars.Domain.Model.Dtos.MenuLinkDto) {\r\n menuConfigurationModelSelf.menuLinkService.deleteMenuLink(link)\r\n .then(() => {\r\n menuConfigurationModelSelf.selectedMenuItem.menuLinkDtos.remove(link);\r\n });\r\n }\r\n\r\n public removeMenuItem(item: Wars.Domain.Model.Dtos.MenuItemDto) {\r\n menuConfigurationModelSelf.menuItemService.deleteMenuItem(item)\r\n .then(() => {\r\n menuConfigurationModelSelf.menuItems.remove(item);\r\n });\r\n }\r\n\r\n public addMenuItem() {\r\n var menuItemDto = new MenuItemDto();\r\n menuItemDto.Name = \"Menu Item\";\r\n menuItemDto.IsPublished = false;\r\n menuItemDto.Order = menuConfigurationModelSelf.menuItems.length + 1;\r\n\r\n menuConfigurationModelSelf.menuItemService.addMenuItem(menuItemDto)\r\n .then((menuItem) => {\r\n menuConfigurationModelSelf.menuItems.push(menuItem);\r\n });\r\n }\r\n\r\n public updateMenuItem(menuItem: Wars.Domain.Model.Dtos.MenuItemDto) {\r\n menuConfigurationModelSelf.menuItemService.updateMenuItem(menuItem);\r\n }\r\n\r\n public sortMenuItems($item: Wars.Domain.Model.Dtos.MenuItemDto, $partFrom: Wars.Domain.Model.Dtos.MenuItemDto[], $partTo, $indexFrom, $indexTo, $modal) {\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(z => z.order).toArray();\r\n\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n\r\n $item.order = $indexTo;\r\n\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].order = Enumerable.from(arrayCopy).indexOf(i => i.id == numberId);\r\n }\r\n\r\n menuConfigurationModelSelf.menuItemService.updateMenuItems(menuConfigurationModelSelf.menuItems);\r\n }\r\n\r\n public select(item: Wars.Domain.Model.Dtos.MenuItemDto) {\r\n menuConfigurationModelSelf.selectedMenuItem = item;\r\n menuConfigurationModelSelf.selectedMenuItem.menuLinkDtos.forEach(i => {\r\n //i.se\r\n });\r\n }\r\n\r\n public addSeparator() {\r\n var menuLinkDto = new MenuLinkDto();\r\n menuLinkDto.Name = \"\";\r\n menuLinkDto.IsSeparator = true;\r\n menuLinkDto.Order = menuConfigurationModelSelf.selectedMenuItem.menuLinkDtos.length + 1;\r\n menuLinkDto.MenuItemId = menuConfigurationModelSelf.selectedMenuItem.id;\r\n menuConfigurationModelSelf.menuLinkService.addMenuLink(menuLinkDto)\r\n .then((menuLink) => {\r\n menuConfigurationModelSelf.selectedMenuItem.menuLinkDtos.push(menuLink);\r\n });\r\n }\r\n\r\n public addLink() {\r\n var securityMatrix = menuConfigurationModelSelf.securityMatrixService.createSecurityRow(true);\r\n var menuLinkDto = new MenuLinkDto();\r\n menuLinkDto.Name = \"New Link\";\r\n menuLinkDto.IsSeparator = false;\r\n menuLinkDto.Order = menuConfigurationModelSelf.selectedMenuItem.menuLinkDtos.length + 1;\r\n menuLinkDto.MenuItemId = menuConfigurationModelSelf.selectedMenuItem.id;\r\n menuLinkDto.SecurityMatrixId = securityMatrix.id;\r\n menuConfigurationModelSelf.securityMatrixService.saveAllChanges(() => {\r\n menuConfigurationModelSelf.menuLinkService.addMenuLink(menuLinkDto)\r\n .then((menuLink) => {\r\n menuConfigurationModelSelf.selectedMenuItem.menuLinkDtos.push(menuLink);\r\n });\r\n });\r\n }\r\n\r\n public updateMenuLink(menuLink: Wars.Domain.Model.Dtos.MenuLinkDto) {\r\n menuConfigurationModelSelf.menuLinkService.updateMenuLink(menuLink);\r\n }\r\n\r\n public sortLinks($item: Wars.Domain.Model.Dtos.MenuLinkDto, $partFrom: Wars.Domain.Model.Dtos.MenuLinkDto[], $partTo, $indexFrom, $indexTo, $modal) {\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(z => z.order).toArray();\r\n\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n\r\n $item.order = $indexTo;\r\n\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].order = Enumerable.from(arrayCopy).indexOf(i => i.id == numberId);\r\n }\r\n\r\n menuConfigurationModelSelf.menuLinkService.updateMenuLinks(menuConfigurationModelSelf.selectedMenuItem.menuLinkDtos);\r\n }\r\n\r\n public openSecurityMatrixModal(link: Wars.Domain.Model.Dtos.MenuLinkDto) {\r\n menuConfigurationModelSelf.securityMatrixService.fetchById(link.securityMatrixId, \"SecurityMatrix\")\r\n .then((securityMatrix) => {\r\n menuConfigurationModelSelf.securityMatrixService.openSecurityMatrixModal(securityMatrix, undefined);\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n declare var siteConfigurationSelf: SiteConfigurationModel;\r\n\r\n export class SiteConfigurationDto {\r\n Id: string;\r\n SiteName: string;\r\n ShowHeaderAfterLogIn: boolean;\r\n HeaderHtml: string;\r\n LeftTitleHtml: string;\r\n RightTitleHtml: string;\r\n ShowFooter: boolean;\r\n FooterHtml: string;\r\n HomeContentPageId: string;\r\n }\r\n\r\n export class SiteConfigurationModel{\r\n\r\n public siteConfiguration: Wars.Domain.Model.Dtos.SiteConfigurationDto;\r\n public contentPageDtos: Wars.Domain.Model.Dtos.ContentPageDto[];\r\n\r\n constructor(\r\n private siteConfigurationService: warsApp.services.SiteConfigurationService,\r\n private contentPageService: warsApp.services.ContentPageService) {\r\n siteConfigurationSelf = this;\r\n siteConfigurationSelf.siteConfigurationService.getSiteConfigurationForConfiguration()\r\n .then(c => {\r\n if (c.id) {\r\n siteConfigurationSelf.siteConfiguration = c;\r\n } else {\r\n siteConfigurationSelf.siteConfigurationService.addSiteConfiguration(siteConfigurationSelf.siteConfiguration)\r\n .then((siteConfiguration) => {\r\n siteConfigurationSelf.siteConfiguration = siteConfiguration;\r\n });\r\n }\r\n });\r\n\r\n siteConfigurationSelf.contentPageService.getContentPagesForConfiguration()\r\n .then(pages => {\r\n siteConfigurationSelf.contentPageDtos = pages;\r\n });\r\n }\r\n\r\n public update() {\r\n siteConfigurationSelf.siteConfigurationService.updateSiteConfiguration(siteConfigurationSelf.siteConfiguration);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n declare var contentPageModelSelf: ContentPageModel;\r\n\r\n export class ContentPageModel{\r\n public contentPage: Wars.Domain.Model.Dtos.ContentPageDto;\r\n public editableContentPageDto: Wars.Domain.Model.Dtos.EditableContentPageDto;\r\n\r\n constructor(\r\n private contentPageService: services.ContentPageService,\r\n private editableContentPageService: warsApp.services.EditableContentPageService,\r\n private growlService: angular.growl.IGrowlService,\r\n private id: string) {\r\n contentPageModelSelf = this;\r\n\r\n //if content page is editable go get the editable version (security checks are performed on server)\r\n contentPageService.getContentPageForExecution(id).then(p => {\r\n if (!p.isEditable) {\r\n contentPageModelSelf.contentPage = p;\r\n } else {\r\n editableContentPageService.getEditableContentPageForView(id)\r\n .then(ep => {\r\n contentPageModelSelf.editableContentPageDto = ep;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var DataOperation = /** @class */ (function (_super) {\r\n __extends(DataOperation, _super);\r\n function DataOperation() {\r\n var _this = _super.call(this) || this;\r\n _this.json = null;\r\n return _this;\r\n }\r\n DataOperation.prototype.jsonView = function () {\r\n if (!this.json && this.responseExample) {\r\n this.json = JSON.parse(this.responseExample);\r\n }\r\n return this.json;\r\n };\r\n return DataOperation;\r\n }(BaseEntity));\r\n models.DataOperation = DataOperation;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n import DataOperationType = Wars.Domain.Model.Codes.Enums.DataOperationType;\r\n\r\n export class DataOperation extends BaseEntity implements Wars.Domain.Model.DataOperation{\r\n constructor() {\r\n super();\r\n }\r\n\r\n dataSource_id: string;\r\n description: string;\r\n myDataSource: Wars.Domain.Model.DataSource;\r\n operationType: DataOperationType;\r\n parameters: Wars.Domain.Model.DataOperationParameter[];\r\n responseExample: string;\r\n url: string;\r\n private json:any = null;\r\n public jsonView(): any {\r\n if (!this.json && this.responseExample) {\r\n this.json = JSON.parse(this.responseExample);\r\n }\r\n\r\n return this.json;\r\n }\r\n\r\n name: string;\r\n isArrayResult: boolean;\r\n objectSchema_id: string;\r\n resultSchema: Wars.Domain.Model.ObjectSchema;\r\n isTested: boolean;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class DataSourceConfigurationModel {\r\n public dataSources: Wars.Domain.Model.DataSource[];\r\n public currentDataSource: Wars.Domain.Model.DataSource;\r\n public swaggerApiUrl: string;\r\n\r\n constructor(private dataSourceService: services.DataSourceService, private id: string,\r\n private $scope: angular.IScope, private codeService: services.ManageSystemCodesService,\r\n private $http: angular.IHttpService, private growl: angular.growl.IGrowlService,\r\n private $location:angular.ILocationService) {\r\n var self = this;\r\n\r\n\r\n dataSourceService.getDataSources(id).then(p => {\r\n self.dataSources = p;\r\n });\r\n }\r\n\r\n public addDataSource() {\r\n this.currentDataSource = this.dataSourceService.createNewEntity(\"DataSource\");\r\n this.currentDataSource.processConfiguration_id = this.id;\r\n this.dataSources.push(this.currentDataSource);\r\n this.save();\r\n }\r\n\r\n public save(callback?: any) {\r\n this.dataSourceService.saveAllChanges(callback);\r\n }\r\n\r\n public editDataSource(dataSource: Wars.Domain.Model.DataSource) {\r\n this.currentDataSource = dataSource;\r\n }\r\n\r\n private getDataOperationType(type: string): Wars.Domain.Model.Codes.Enums.DataOperationType {\r\n switch (type.toUpperCase()) {\r\n case \"POST\":\r\n return Wars.Domain.Model.Codes.Enums.DataOperationType.Post;\r\n case \"GET\":\r\n return Wars.Domain.Model.Codes.Enums.DataOperationType.Get;\r\n case \"PUT\":\r\n return Wars.Domain.Model.Codes.Enums.DataOperationType.Put;\r\n case \"DELETE\":\r\n return Wars.Domain.Model.Codes.Enums.DataOperationType.Delete;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private getDataType(type: string): Wars.Domain.Model.Codes.Enums.VariableType {\r\n if (!type) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n }\r\n\r\n switch (type.toLowerCase()) {\r\n case \"integer\":\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n case \"number\":\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n case \"boolean\":\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Boolean;\r\n case \"array\":\r\n return Wars.Domain.Model.Codes.Enums.VariableType.List;\r\n case \"string\":\r\n return Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n default:\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n }\r\n }\r\n\r\n public addOperation() {\r\n var dataOp = this.dataSourceService.createNewDataOperation();\r\n dataOp.operationType = Wars.Domain.Model.Codes.Enums.DataOperationType.Get;\r\n dataOp.isArrayResult = false;\r\n dataOp.isTested = false;\r\n this.currentDataSource.operations.push(dataOp);\r\n this.save();\r\n }\r\n\r\n public operationUrlChanged(operation: warsApp.models.DataOperation) {\r\n var splitUrl = operation.url.split('/');\r\n var urlParameters = Enumerable.from(splitUrl).where(s => s[0] === \":\" && !Enumerable.from(operation.parameters).any(p => p.name === s.substring(1)));\r\n\r\n urlParameters.forEach(p => {\r\n var parameter = this.dataSourceService.createNewDataOperationParameter();\r\n parameter.name = p.substring(1);\r\n parameter.parameterType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n parameter.required = true;\r\n operation.parameters.push(parameter);\r\n });\r\n\r\n this.save();\r\n }\r\n\r\n public addParameter(operation: warsApp.models.DataOperation) {\r\n var parameter = this.dataSourceService.createNewDataOperationParameter();\r\n parameter.parameterType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n parameter.required = false;\r\n operation.parameters.push(parameter);\r\n this.save();\r\n }\r\n\r\n public removeOperation(operation: warsApp.models.DataOperation) {\r\n operation.parameters.forEach(p => {\r\n p.entityAspect.setDeleted();\r\n });\r\n\r\n var self = this;\r\n this.save(() => {\r\n operation.entityAspect.setDeleted();\r\n self.save();\r\n });\r\n }\r\n\r\n public removeParameter(parameter: Wars.Domain.Model.DataOperationParameter) {\r\n parameter.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public testOperation(operation: warsApp.models.DataOperation) {\r\n\r\n var url = operation.url;\r\n var inlineParameter: Wars.Domain.Model.DataOperationParameter[] = [];\r\n\r\n if (operation.parameters) {\r\n operation.parameters.forEach(p => {\r\n url = url.replace(\":\" + p.name, (p).value);\r\n inlineParameter.push(p);\r\n });\r\n\r\n if (inlineParameter.length < operation.parameters.length) {\r\n url = url + \"?\";\r\n\r\n Enumerable.from(operation.parameters).where(p => !Enumerable.from(inlineParameter).any(inlineParameter => inlineParameter.id == p.id)).forEach(p => {\r\n url += p.name + \"=\" + (p).value + \";\";\r\n });\r\n }\r\n }\r\n\r\n this.$http.post('./proxy', url).then(r => {\r\n operation.responseExample = JSON.stringify(r.data);\r\n\r\n var resultSchema: Wars.Domain.Model.ObjectSchema = null;\r\n var objToGetSchema: any = null;\r\n\r\n if (Array.isArray(r.data)) {\r\n operation.isArrayResult = true;\r\n objToGetSchema = r.data[0];\r\n } else {\r\n objToGetSchema = r.data;\r\n }\r\n\r\n resultSchema = this.getObjectSchema(objToGetSchema, operation.name);\r\n operation.resultSchema = resultSchema;\r\n operation.isTested = true;\r\n\r\n this.currentDataSource.objectSchemas.push(resultSchema);\r\n this.save();\r\n this.growl.success(\"Operation Successfully Tested\", { ttl: 5000 });\r\n }).catch(r => {\r\n console.error(r);\r\n });\r\n\r\n }\r\n\r\n private getObjectSchema(obj: any, operationName: string, parentProperty?:Wars.Domain.Model.SchemaProperty): Wars.Domain.Model.ObjectSchema {\r\n var name: string;\r\n\r\n if (obj.__type) {\r\n name = obj.__type;\r\n } else if (obj.$type) {\r\n name = obj.$type;\r\n } else {\r\n name = operationName.replace(\"\\\\s\", \"_\") + \"_Result\";\r\n }\r\n\r\n var returnSchema = null;\r\n this.currentDataSource.objectSchemas.forEach(o => {\r\n if (o.name === name) {\r\n returnSchema = o;\r\n }\r\n });\r\n\r\n if (returnSchema)\r\n return returnSchema;\r\n\r\n var objectSchema = this.dataSourceService.createNewObjectSchema();\r\n objectSchema.name = name;\r\n\r\n for (var propName in obj) {\r\n if (propName === \"__type\" || propName === \"$type\" || propName === \"\" || propName == null)\r\n continue;\r\n\r\n var value = obj[propName];\r\n var property = this.dataSourceService.createNewSchemaProperty();\r\n if (value == null) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n } else {\r\n switch (typeof value) {\r\n case 'number':\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n break;\r\n case 'string':\r\n if (value.toUpperCase().startsWith(\"/DATE(\")) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n } else {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n }\r\n break;\r\n case 'boolean':\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Boolean;\r\n break;\r\n case 'undefined':\r\n case 'function':\r\n continue;\r\n case 'object':\r\n //property.entityAspect.setDeleted();\r\n //continue;\r\n if (Array.isArray(value)) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.List;\r\n } else {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n if (value) {\r\n property.typeSchema = this.getObjectSchema(value, propName,property);\r\n }\r\n\r\n this.currentDataSource.objectSchemas.push(property.typeSchema);\r\n }\r\n\r\n\r\n break;\r\n default:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n }\r\n }\r\n\r\n property.name = propName;\r\n property.required = false;\r\n\r\n objectSchema.properties.push(property);\r\n }\r\n return objectSchema;\r\n }\r\n\r\n public deleteDataSource() {\r\n this.$http.delete('./datasource/' + this.currentDataSource.id);\r\n this.dataSources.remove(this.currentDataSource);\r\n //this.currentDataSource.entityAspect.setDeleted();\r\n //this.dataSourceService.saveChanges(new Array(this.currentDataSource));\r\n this.currentDataSource = null;\r\n }\r\n\r\n public importSwaggerApi() {\r\n var self = this;\r\n this.dataSourceService.parseSwaggerUrl(this.swaggerApiUrl).then(api => {\r\n console.info(api);\r\n if (api) {\r\n for (var definitionName in api.definitions) {\r\n var definition = api.definitions[definitionName];\r\n\r\n var objectSchema = self.dataSourceService.createNewObjectSchema();\r\n\r\n objectSchema.name = definitionName;\r\n for (var propName in definition.properties) {\r\n var property = definition.properties[propName];\r\n var newProperty = self.dataSourceService.createNewSchemaProperty();\r\n\r\n newProperty.name = propName;\r\n newProperty.propertyType = self.getDataType(property.type);\r\n\r\n if (definition.required && definition.required[propName]) {\r\n newProperty.required = true;\r\n } else {\r\n newProperty.required = false;\r\n }\r\n\r\n if (property.enum) {\r\n var enumCodeGroup = self.codeService.createNewSpecializedCodeGroup();\r\n enumCodeGroup.groupName = propName;\r\n\r\n var isSystemLevel = !this.currentDataSource.processConfiguration_id;\r\n property.enum.forEach(e => {\r\n var code = self.codeService.createNewSystemCode(enumCodeGroup, isSystemLevel);\r\n\r\n code.shortDescription = e;\r\n code.isActive = true;\r\n\r\n enumCodeGroup.codes.push(code);\r\n });\r\n\r\n newProperty.codeGroup = enumCodeGroup;\r\n }\r\n\r\n objectSchema.properties.push(newProperty);\r\n }\r\n\r\n self.currentDataSource.objectSchemas.push(objectSchema);\r\n }\r\n\r\n for (var pathName in api.paths) {\r\n var path = api.paths[pathName];\r\n for (var typeName in path) {\r\n\r\n var type = path[typeName];\r\n var dataOp = self.dataSourceService.createNewDataOperation();\r\n\r\n dataOp.url = api.host + api.basePath + pathName;\r\n dataOp.operationType = self.getDataOperationType(typeName);\r\n dataOp.description = type.summary;\r\n //dataOp.responseExample = type.responses;\r\n dataOp.isArrayResult = false;\r\n dataOp.isTested = false;\r\n\r\n if (!type.parameters)\r\n continue;\r\n\r\n type.parameters.forEach(parameter => {\r\n var newParameter = self.dataSourceService.createNewDataOperationParameter();\r\n newParameter.name = parameter.name;\r\n newParameter.required = parameter.required;\r\n newParameter.description = parameter.description;\r\n newParameter.parameterType = self.getDataType(parameter.type);\r\n if (parameter.schema && parameter.schema.$ref) {\r\n var schemaSplit = parameter.schema.$ref.split(\"/\");\r\n var name = schemaSplit[schemaSplit.length - 1];\r\n\r\n newParameter.parmeterSchema = Enumerable.from(self.currentDataSource.objectSchemas).single(s => s.name === name);\r\n }\r\n\r\n dataOp.parameters.push(newParameter);\r\n });\r\n\r\n self.currentDataSource.operations.push(dataOp);\r\n }\r\n }\r\n console.info(self.currentDataSource);\r\n self.save();\r\n self.$scope.$apply();\r\n\r\n }\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class DeletePopoverModel {\r\n isOpen: boolean = false;\r\n\r\n constructor(\r\n private deleteCallback: (index: number) => void,\r\n private name: string,\r\n private index: number) { }\r\n\r\n public open() : void {\r\n this.isOpen = true;\r\n }\r\n\r\n public close() : void {\r\n this.isOpen = false;\r\n }\r\n\r\n public cancel(): void {\r\n this.isOpen = false;\r\n }\r\n\r\n public delete(): void {\r\n if (this.deleteCallback) {\r\n this.deleteCallback(this.index);\r\n }\r\n this.isOpen = false;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class DocumentationModel {\r\n\r\n private processConfigId: string;\r\n\r\n private $location: ng.ILocationService;\r\n private $anchorScroll: ng.IAnchorScrollService;\r\n private $scope: ng.IScope;\r\n private $rootScope: ng.IRootScopeService;\r\n\r\n private processConfigurationService: services.ProcessConfigurationService;\r\n private processTypeService: services.ProcessTypeService;\r\n private workflowService: services.WorkflowService;\r\n private workflowDrawingService: services.WorkflowDrawingService;\r\n private conditionService: services.ConditionService;\r\n private emailConfigurationService: services.EmailConfigurationService;\r\n private pdfBindingService: services.PdfBindingService;\r\n\r\n private modalService: any;\r\n\r\n public processType: Wars.Domain.Model.ProcessType;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public processStatusGroupResult: models.StatusGroupResult;\r\n public statusGroups: models.StatusGroup[];\r\n public conditions: Wars.Domain.Model.Conditions.Condition[];\r\n public emailConfigurations: Wars.Domain.Model.EmailConfiguration[];\r\n public pdfBindings: Wars.Domain.Model.PdfBinding[];\r\n \r\n\r\n constructor(\r\n processConfigId: string,\r\n anchor: string,\r\n $location: ng.ILocationService,\r\n $anchorScroll: ng.IAnchorScrollService,\r\n $scope: ng.IScope,\r\n $rootScope: ng.IRootScopeService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n processTypeService: services.ProcessTypeService,\r\n workflowService: services.WorkflowService,\r\n workflowDrawingService: services.WorkflowDrawingService,\r\n conditionService: services.ConditionService,\r\n emailConfigurationService: services.EmailConfigurationService,\r\n pdfBindingService: services.PdfBindingService,\r\n modalService: any)\r\n {\r\n this.processConfigId = processConfigId;\r\n this.$location = $location;\r\n this.$anchorScroll = $anchorScroll;\r\n this.$scope = $scope;\r\n this.$rootScope = $rootScope;\r\n this.statusGroups = [];\r\n\r\n this.processConfigurationService = processConfigurationService;\r\n this.processTypeService = processTypeService;\r\n this.workflowService = workflowService;\r\n this.workflowDrawingService = workflowDrawingService;\r\n this.conditionService = conditionService;\r\n this.emailConfigurationService = emailConfigurationService;\r\n this.pdfBindingService = pdfBindingService;\r\n\r\n this.modalService = modalService;\r\n //this.loadProcessConfiguration();\r\n this.loadWorkflowData();\r\n this.loadConditions();\r\n this.loadEmailConfigurations();\r\n this.loadPdfBindings();\r\n\r\n if (anchor) this.gotoAnchor(anchor);\r\n }\r\n\r\n public gotoAnchor(anchorId: string) {\r\n var old = this.$location.hash();\r\n this.$location.hash(anchorId);\r\n this.$anchorScroll();\r\n //reset to old to keep any additional routing logic from kicking in\r\n this.$location.hash(old);\r\n }\r\n\r\n public getDataTypeByFieldType(fieldType: Wars.Domain.Model.Codes.Enums.FieldType) : string {\r\n switch (fieldType) {\r\n case Wars.Domain.Model.Codes.Enums.FieldType.TextBox:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.TextArea:\r\n \r\n return \"String\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.CheckBox:\r\n return \"Boolean\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.DocumentUpload:\r\n return \"Document\";\r\n \r\n case Wars.Domain.Model.Codes.Enums.FieldType.Date:\r\n return \"Date/Time\";\r\n \r\n case Wars.Domain.Model.Codes.Enums.FieldType.Dropdown:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.RadioButton:\r\n return \"Code\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.PhoneNumber:\r\n return \"Phone Number\"; \r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.RichText: \r\n case Wars.Domain.Model.Codes.Enums.FieldType.Label:\r\n return \"Informative Label\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Location:\r\n return \"Location\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Number:\r\n return \"Number\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Zipcode:\r\n return \"Zip Code\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Time:\r\n return \"Time\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Currency:\r\n return \"Currency\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Url:\r\n return \"Url\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.EmailAddress:\r\n return \"Email Address\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Percentage:\r\n return \"Percentage\";\r\n\r\n default:\r\n return \"Unknown\";\r\n }\r\n }\r\n\r\n public getConditionNameForField(field: Wars.Domain.Model.Field): string {\r\n if (!field || !field.condition_id) return \"N/A\";\r\n var condition = this.getConditionById(field.condition_id);\r\n if (condition) return condition.name;\r\n return \"N/A\";\r\n }\r\n\r\n public getDisplayConditions(step: Wars.Domain.Model.FormStep) {\r\n var stepConditions: Wars.Domain.Model.Conditions.Condition[] = [];\r\n var ids: string[] = [];\r\n var match: Wars.Domain.Model.Conditions.Condition;\r\n\r\n if (step.condition_id != null) {\r\n match = Enumerable.from(this.conditions).singleOrDefault(i => i.id == step.condition_id);\r\n if (match) {\r\n stepConditions.push(match);\r\n ids.push(match.id);\r\n }\r\n }\r\n\r\n for (var i = 0; i < step.formSections.length; i++) {\r\n var formSection = step.formSections[i];\r\n if (formSection.condition_id != null) {\r\n match = Enumerable.from(this.conditions).singleOrDefault(i => i.id == formSection.condition_id);\r\n if (match && ids.indexOf(match.id) === -1) {\r\n stepConditions.push(match);\r\n ids.push(match.id);\r\n }\r\n }\r\n\r\n for (var x = 0; x < formSection.fields.length; x++) {\r\n var field = formSection.fields[x];\r\n if (field.condition_id != null) {\r\n match = Enumerable.from(this.conditions).singleOrDefault(i => i.id == field.condition_id);\r\n if (match && ids.indexOf(match.id) === -1) {\r\n stepConditions.push(match);\r\n ids.push(match.id);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (stepConditions.length > 0) {\r\n //debugger;\r\n }\r\n return stepConditions;\r\n }\r\n\r\n public isCode(value: Wars.Domain.Model.Field): boolean {\r\n return value && (value.type === Wars.Domain.Model.Codes.Enums.FieldType.Dropdown || value.type === Wars.Domain.Model.Codes.Enums.FieldType.RadioButton);\r\n }\r\n\r\n public getOptions(field: Wars.Domain.Model.Field): string[] {\r\n var options = [];\r\n if (field.schemaProperty.codeGroup) {\r\n options = Enumerable.from(field.schemaProperty.codeGroup.codes).select(i => i.shortDescription).toArray();\r\n }\r\n\r\n return options;\r\n }\r\n\r\n //private loadProcessConfiguration(): void {\r\n // this.processConfigurationService.getProcessConfigurationTree(this.processConfigId)\r\n // .then(\r\n // (processConfig) => {\r\n // this.processConfiguration = processConfig\r\n // this.processTypeService.getProcessTypeById(processConfig.processType_id).then(\r\n // (processType) => {\r\n // this.processType = processType;\r\n // });\r\n // });\r\n //}\r\n\r\n private loadConditions(): void {\r\n this.conditionService.getAllConditionsEagerLoadExpression(this.processConfigId).then((conditions) => this.conditions = conditions);\r\n }\r\n\r\n private loadEmailConfigurations(): void {\r\n this.emailConfigurationService.getAllEmailConfigurationsByProcessId(this.processConfigId).then((emailConfigurations) => this.emailConfigurations = emailConfigurations);\r\n }\r\n\r\n private loadPdfBindings(): void {\r\n this.pdfBindingService.getPdfBindings(this.processConfigId).then((pdfBindings) => this.pdfBindings = pdfBindings);\r\n }\r\n\r\n private loadWorkflowData(): void {\r\n var self = this;\r\n\r\n this.workflowService.getAllStatusGroupsWithAdditionalInfo(this.processConfigId)\r\n .then((processStatusGroupResult) => {\r\n self.processStatusGroupResult = processStatusGroupResult;\r\n self.statusGroups = [];\r\n for (var i = 0; i < this.processStatusGroupResult.processStatusGroups.length; i++) {\r\n self.statusGroups.push(new StatusGroup(this.processStatusGroupResult.processStatusGroups[i]));\r\n }\r\n setTimeout(() => this.drawWorkflowDiagrams());\r\n });\r\n }\r\n\r\n private drawWorkflowDiagrams(): void {\r\n \r\n for (var i = 0; i < this.processStatusGroupResult.processStatusGroups.length; i++) {\r\n var settings = new WorkflowDrawingSettings(1136, 639);\r\n\r\n var svgId = 'diagram_' + (i + 1);\r\n var drawingInstance = new models.WorkflowDrawingInstance(\r\n svgId,\r\n this.workflowService,\r\n this.workflowDrawingService,\r\n settings,\r\n this.$scope,\r\n this.$rootScope,\r\n undefined,\r\n undefined,\r\n this.modalService);\r\n\r\n drawingInstance.initializeData(this.processConfigId, this.processStatusGroupResult.isReadonly);\r\n\r\n var blocks = this.processStatusGroupResult.processStatusGroups[i].workflowBlocks;\r\n var initialBlock = Enumerable.from(blocks).single(i => i.isInitialBlock);\r\n\r\n for (var x = 0; x < this.processStatusGroupResult.processStatusGroups[i].workflowBlocks.length; x++) {\r\n this.processStatusGroupResult.processStatusGroups[i].workflowBlocks[x].setDrawingInstance(drawingInstance);\r\n }\r\n\r\n var maxCoordinates = drawingInstance.drawModel(initialBlock);\r\n\r\n this.$scope.$apply(() => {\r\n this.zoomAsNecessary(drawingInstance, settings, maxCoordinates, initialBlock);\r\n\r\n for (var x = 0; x < blocks.length; x++) {\r\n if (blocks[x].type == Wars.Domain.Model.Codes.Enums.BlockType.Goto) {\r\n (blocks[x]).hoverStart();\r\n }\r\n }\r\n });\r\n\r\n \r\n }\r\n }\r\n\r\n private zoomAsNecessary(drawingInstance: WorkflowDrawingInstance, settings: WorkflowDrawingSettings, maxDrawingCoordinate: Coordinate, exampleBlock: IWorkflowBlock) : void {\r\n var drawingWidth = (maxDrawingCoordinate.x + 1) * exampleBlock.blockWidth;\r\n var drawingHeight = (maxDrawingCoordinate.y + 1) * exampleBlock.blockHeight;\r\n\r\n var zoomPercentageHeight = settings.getZoomPercentageFromViewBoxHeight(drawingHeight);\r\n var zoomPercentageWidth = settings.getZoomPercentageFromViewBoxWidth(drawingWidth);\r\n\r\n settings.zoomPercentage = Math.min(zoomPercentageHeight, zoomPercentageWidth);\r\n\r\n this.workflowDrawingService.changeViewBoxSizeAndOffset(\r\n drawingInstance.paper,\r\n drawingInstance.settings.xOrigin,\r\n drawingInstance.settings.yOrigin,\r\n settings.getViewBoxWidth(),\r\n settings.getViewBoxHeight());\r\n }\r\n\r\n public getConditionById(id: string): Wars.Domain.Model.Conditions.Condition {\r\n if (!this.conditions) return undefined;\r\n return Enumerable.from(this.conditions).singleOrDefault(i => i.id == id);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class DocumentMetadataModel {\r\n\r\n constructor(documentDto: Wars.Domain.Model.Dtos.DocumentDto) {\r\n if (!documentDto) return;\r\n this.documentTypeUniqueId = documentDto.documentTypeUniqueId;\r\n this.descriptiveComment = documentDto.descriptiveComment;\r\n this.isSecured = documentDto.isSecured;\r\n }\r\n\r\n public documentTypeUniqueId: string;\r\n public descriptiveComment: string;\r\n public isSecured: boolean;\r\n\r\n public updateDocumentDto(documentDto: Wars.Domain.Model.Dtos.DocumentDto): void {\r\n documentDto.documentTypeUniqueId = this.documentTypeUniqueId;\r\n documentDto.descriptiveComment = this.descriptiveComment;\r\n documentDto.isSecured = this.isSecured;\r\n }\r\n }\r\n}","/// \r\n/// \r\nmodule warsApp.models {\r\n\r\n declare var editableWebPageModelSelf: EditableWebPageModel;\r\n\r\n export class EditableWebPageModel {\r\n\r\n pages: Wars.Domain.Model.Dtos.ContentPageDto[];\r\n editableContentPageDto: Wars.Domain.Model.Dtos.EditableContentPageDto;\r\n activeProcessTypes: Wars.Domain.Model.ProcessType[];\r\n editProduction: boolean = false;\r\n selectableProcessTypes: any = [];\r\n showTinyMce: boolean = false;\r\n tinyMceOptions: any;\r\n\r\n constructor(\r\n private contentPageId: string,\r\n private contentPageService: warsApp.services.ContentPageService,\r\n private editableContentPageService: warsApp.services.EditableContentPageService,\r\n private processTypeService: services.ProcessTypeService,\r\n private modalService: any) {\r\n editableWebPageModelSelf = this;\r\n editableWebPageModelSelf.editableContentPageService.getEditiableContentPage(editableWebPageModelSelf.contentPageId)\r\n .then((editableContentPageDto) => {\r\n editableWebPageModelSelf.editableContentPageDto = editableContentPageDto;\r\n });\r\n editableWebPageModelSelf.processTypeService.getActiveProcessTypesNonBreeze()\r\n .then((processTypes) => {\r\n processTypes.forEach(processType => {\r\n var pt = \"\";\r\n if (processType.type === 1 || processType.type === 3) {\r\n pt = \"/Process\";\r\n } else if (processType.type === 2) {\r\n pt = \"/ReportProcess\";\r\n }\r\n editableWebPageModelSelf.selectableProcessTypes.push({\r\n title: processType.name,\r\n value: \"#/ProcessType/\" + processType.id + pt\r\n });\r\n editableWebPageModelSelf.showTinyMce = true;\r\n editableWebPageModelSelf.tinyMceOptions = {\r\n entity_encoding: \"raw\",\r\n //extended_valid_elements: \"script[src|type|language]\",\r\n valid_elements: \"@[id|class|style|title|dirCustom');\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n };\r\n });\r\n });\r\n }\r\n\r\n updateContentPage() {\r\n editableWebPageModelSelf.editableContentPageService.updateEditableContentPage(editableWebPageModelSelf.editableContentPageDto);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class EditFieldModel {\r\n\r\n public hidename: boolean = true;\r\n public showCondition: boolean = false;\r\n public systemCodes: Wars.Domain.Model.Codes.CodeGroup[];\r\n public documentTypes: Wars.Domain.Model.Codes.SystemCode[];\r\n public scheduledResourceConfigurations: Wars.Domain.Model.ScheduledResourceConfiguration[];\r\n public paymentConfigurations: Wars.Domain.Model.Payment.PaymentConfiguration[];\r\n public autoCompleteConfigurations: Wars.Domain.Model.AutoCompleteConfiguration[];\r\n public apiGridConfigurations: Wars.Domain.Model.ApiGridConfiguration[];\r\n public objectSchema: Wars.Domain.Model.ObjectSchema;\r\n public staticDocuments: Wars.Domain.Model.StaticDocument[] = [];\r\n public isNameProperty: boolean;\r\n public calculations: Wars.Domain.Model.Calculations.Calculation[];\r\n public userRepositories: string[];\r\n public apiAction: Wars.Domain.Model.ApiAction;\r\n public systemDocumentConfiguration: Wars.Domain.Model.Documents.SystemDocumentConfiguration;\r\n public documentConfigurations: Wars.Domain.Model.Documents.DocumentConfiguration[];\r\n public codeToExclude: Wars.Domain.Model.Codes.SystemCode;\r\n public statusToExclude: Wars.Domain.Model.Statuses.StatusCode;\r\n public stateToExclude: Wars.Domain.Model.Statuses.StateCode;\r\n public processTypeToExclude: Wars.Domain.Model.ProcessType;\r\n public processTypes: Wars.Domain.Model.ProcessType[];\r\n public mapConfigurations:Wars.Domain.Model.Gis.MapConfiguration[];\r\n public mapOverrides:Wars.Domain.Model.Gis.MapConfigurationOverride[];\r\n public statusCodes: Wars.Domain.Model.Statuses.StatusCode[];\r\n public stateCodes: Wars.Domain.Model.Statuses.StateCode[];\r\n\r\n constructor(\r\n public field: Wars.Domain.Model.Field,\r\n private service: services.ProcessConfigurationService,\r\n private manageCodeService: services.ManageSystemCodesService,\r\n private systemLevelService: services.SystemLevelService,\r\n private processTypeService: services.ProcessTypeService,\r\n public processConfigId: string,\r\n public formSection: Wars.Domain.Model.FormSection,\r\n private treeService: services.TreeService,\r\n private manageScheduledResourcesService: services.ManageScheduledResourcesService,\r\n private objectSchemaService: services.ObjectSchemaService,\r\n private manageStaticDocumentsService: services.ManageStaticDocumentsService,\r\n private autoCompleteService: services.AutoCompleteConfigurationService,\r\n private processConfiguration: Wars.Domain.Model.ProcessConfiguration,\r\n private apiGridConfigurationService: services.ApiGridConfigurationService,\r\n private calculationService: services.CalculationService,\r\n private reviewConfigurationService: services.ReviewConfigurationService,\r\n private apiActionService: services.ApiActionService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private documentService: services.DocumentService,\r\n private form: Wars.Domain.Model.Form,\r\n private fieldService: services.FieldService,\r\n private growl: angular.growl.IGrowlService,\r\n private processActionService: services.ProcessActionService,\r\n private mapConfigurationService: services.MapConfigurationService,\r\n private mapOverridesService: services.MapConfigurationOverridesService)\r\n {\r\n var self = this;\r\n\r\n this.loadProcessTypes();\r\n\r\n if (this.field.maxTextLength == null || this.field.maxTextLength === 0 || this.field.maxTextLength > 4000) {\r\n this.field.maxTextLength = 4000;\r\n }\r\n\r\n if (this.field.textAreaRows == null || this.field.textAreaRows < 5 || this.field.textAreaRows > 20) {\r\n this.field.textAreaRows = 5;\r\n }\r\n\r\n if (form && form.defaultFormValueApiActionUniqueId) {\r\n apiActionService.getApiActionForField(form.defaultFormValueApiActionUniqueId).then(r => {\r\n this.apiAction = r[0];\r\n });\r\n }\r\n\r\n this.mapOverridesService.getMapConfigurationOverrides(this.processConfigId).then(o => {\r\n this.mapOverrides = o;\r\n });\r\n\r\n this.processActionService.getAllProcessActions(this.processConfigId).then(processActions => {\r\n this.processActions = processActions;\r\n });\r\n\r\n mapConfigurationService.getMapConfigurations().then(m => {\r\n this.mapConfigurations = m;\r\n });\r\n\r\n this.documentConfigurations = [];\r\n this.systemLevelService.getSystemLevelDocumentConfiguration().then(\r\n (sysLevel) => {\r\n this.systemDocumentConfiguration = sysLevel.systemDocumentConfiguration;\r\n this.documentConfigurations = this.documentConfigurations.concat(sysLevel.myDocumentConfigurations);\r\n });\r\n\r\n this.documentService.getDocumentConfigs(this.processConfigId).then(\r\n (docConfigs) => {\r\n this.documentConfigurations = this.documentConfigurations.concat(docConfigs);\r\n });\r\n\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n (systemLevel) => {\r\n this.systemCodes = systemLevel.myCodeGroups;\r\n this.manageCodeService.getAllCodesForProcessConfiguration(this.processConfigId).then(\r\n (codeGroups) => {\r\n this.systemCodes = this.systemCodes.concat(codeGroups);\r\n });\r\n });\r\n\r\n this.systemLevelService.getSystemLevelStaticDocuments().then(\r\n (systemLevel) => {\r\n this.staticDocuments = systemLevel.myStaticDocuments;\r\n manageStaticDocumentsService.getStaticDocumentsForProcessConfiguration(this.processConfigId)\r\n .then(d => {\r\n d.forEach(doc => {\r\n this.staticDocuments.push(doc);\r\n });\r\n });\r\n });\r\n\r\n this.statusCodes = [];\r\n this.stateCodes = [];\r\n this.systemLevelService.getSystemLevelStatusesAndStates().then((systemLevel) => {\r\n systemLevel.statusCodeGroup.myStatuses.forEach(statusCode => {\r\n this.statusCodes.push(statusCode)\r\n\r\n statusCode.myStates.forEach(stateCode => {\r\n this.stateCodes.push(stateCode);\r\n });\r\n });\r\n });\r\n\r\n this.autoCompleteService.getAutoCompleteConfigurations(processConfigId).then(r => {\r\n this.autoCompleteConfigurations = r;\r\n });\r\n\r\n this.reviewConfigurationService.getExtensibleUserRepositories().then(repos => {\r\n this.userRepositories = repos;\r\n });\r\n\r\n if (formSection.objectSchema.isList && formSection.systemLevelListSchemaProperty_id) {\r\n //console.log(\"list\");\r\n self.objectSchemaService.getObjectSchemaExpanded(formSection.systemLevelListSchemaProperty.typeSchema.id)\r\n .then(\r\n (objectSchema) => {\r\n self.objectSchema = formSection.systemLevelListSchemaProperty.typeSchema;\r\n });\r\n } else {\r\n this.systemLevelService.getSystemLevel()\r\n .then((systemLevel) => {\r\n //console.log(\"not list\");\r\n self.objectSchemaService.getObjectSchemaExpanded(systemLevel.variableSchema_id)\r\n .then(\r\n (objectSchema) => {\r\n self.objectSchema = objectSchema;\r\n });\r\n });\r\n }\r\n\r\n this.apiGridConfigurationService.getApiGridConfigurations(processConfigId).then(configs => {\r\n this.apiGridConfigurations = configs;\r\n });\r\n\r\n this.calculationService.getAllCalculations(this.processConfigId).then(calcs => {\r\n this.calculations = calcs;\r\n });\r\n\r\n service.getProcessConfigurationEagerEditFormParameters(processConfigId).then(processConfig => {\r\n self.processConfiguration = processConfig;\r\n this.paymentConfigurations = processConfig.myPaymentConfigurations;\r\n systemLevelService.getSystemLevelPaymentInfo().then(\r\n (systemLevel) => {\r\n this.paymentConfigurations = this.paymentConfigurations.concat(systemLevel.myPaymentConfigurations);\r\n });\r\n });\r\n\r\n manageScheduledResourcesService\r\n .getAllScheduledResourcesForProcessConfigurationAndSystem(processConfigId)\r\n .then(s => {\r\n self.scheduledResourceConfigurations = s;\r\n });\r\n\r\n service.loadFieldGroup(field);\r\n service.loadFieldExcludes(field);\r\n\r\n if (processConfiguration) {\r\n this.isNameProperty = this.processConfiguration.nameSchemaProperty_id == field.schemaProperty.id;\r\n }\r\n //field.entityAspect.loadNavigationProperty('systemCodeGroup').then(t => {}); \r\n }\r\n\r\n public getNonExcludedStateCodes() {\r\n if (!this.field.fieldExcludedStates || this.field.fieldExcludedStates.length === 0) {\r\n return this.stateCodes;\r\n }\r\n var codes = [];\r\n if (this.stateCodes && this.stateCodes.length) {\r\n for (var i = 0; i < this.stateCodes.length; i++) {\r\n if (Enumerable.from(this.field\r\n .fieldExcludedStates)\r\n .any(x => x.stateCode_id === this.stateCodes[i].id)) {\r\n continue;\r\n }\r\n codes.push(this.stateCodes[i]);\r\n } \r\n }\r\n return codes;\r\n }\r\n\r\n public fieldTypeChanged() {\r\n this.treeService.getVariableTypeForField(this.field).then(type => {\r\n this.field.schemaProperty.propertyType = type;\r\n });\r\n if (this.field.type === Wars.Domain.Model.Codes.Enums.FieldType.StateChange) {\r\n if (this.field.changeStateButtonText === null || this.field.changeStateButtonText === undefined) {\r\n this.field.changeStateButtonText = \"Change State\";\r\n }\r\n }\r\n (this.field).fieldTypeChanged = true;\r\n }\r\n\r\n public applySecurityMatrixChanged(): void {\r\n if (this.field.applySecurityMatrix && !this.field.securityMatrix) {\r\n this.field.securityMatrix = this.securityMatrixService.createAdvancedSecurityMatrix(false, false);\r\n }\r\n }\r\n\r\n public applyDefaultSecurityMatrixChanged(): void {\r\n if (this.field.applyDefaultValueSecurityMatrix && !this.field.defaultValueSecurityMatrix) {\r\n this.field.defaultValueSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false);\r\n }\r\n }\r\n\r\n public isNamePropertyChanged() {\r\n if (this.isNameProperty) {\r\n this.processConfiguration.nameSchemaProperty_id = this.field.schemaProperty.id;\r\n this.processConfiguration.nameFormUniqueId = this.form.uniqueIdentifier;\r\n } else {\r\n this.processConfiguration.nameSchemaProperty_id = null;\r\n this.processConfiguration.nameFormUniqueId = null;\r\n }\r\n }\r\n\r\n public systemVariableChanged() {\r\n\r\n if (this.field.type === 3 || this.field.type === 10) {\r\n if (this.field.schemaProperty.systemVariable) {\r\n this.field.schemaProperty.codeGroup = this.field.schemaProperty.systemVariable.codeGroup;\r\n } else {\r\n this.field.schemaProperty.codeGroup = null;\r\n }\r\n }\r\n }\r\n\r\n public addOption() {\r\n if (this.field.schemaProperty.codeGroup == null || this.field.schemaProperty.codeGroup.systemLevel_id) {\r\n const newCodeGroup = this.manageCodeService.createNewSpecializedCodeGroup();\r\n this.field.schemaProperty.codeGroup = newCodeGroup;\r\n }\r\n\r\n const newCode = this.manageCodeService.createNewSystemCode(this.field.schemaProperty.codeGroup, false);\r\n newCode.isActive = true;\r\n\r\n this.field.schemaProperty.codeGroup.codes.push(newCode);\r\n }\r\n\r\n public removeOption(code: Wars.Domain.Model.Codes.SystemCode) {\r\n code.entityAspect.setDeleted();\r\n //var index = Enumerable.from(this.field.fieldCodeGroup[0].codes).indexOf(c => c.id == code.id);\r\n //this.field.fieldCodeGroup[0].codes.splice(index, 1);\r\n }\r\n\r\n public isIndexedChanged() {\r\n if (!this.field.schemaProperty.isIndexed) {\r\n this.field.schemaProperty.systemVariable = null;\r\n }\r\n }\r\n\r\n public removeExcludedSystemCode(item: Wars.Domain.Model.FieldExcludedSystemCodes) {\r\n item.entityAspect.setDeleted();\r\n }\r\n\r\n public removeExcludedStatus(item: Wars.Domain.Model.FieldExcludedStatuses) {\r\n item.entityAspect.setDeleted();\r\n }\r\n\r\n public removeExcludedState(item: Wars.Domain.Model.FieldExcludedStates) {\r\n item.entityAspect.setDeleted();\r\n }\r\n\r\n public removeExcludedProcessType(item: Wars.Domain.Model.FieldExcludedProcessTypes) {\r\n item.entityAspect.setDeleted();\r\n }\r\n\r\n public loadProcessTypes() {\r\n var self = this;\r\n self.processTypeService.getAllProcessTypes()\r\n .then((processTypes) => {\r\n self.processTypes = Enumerable.from(processTypes)\r\n .where(i => !i.isReportProcess && !i.isSingleInstanceProcess)\r\n .distinct()\r\n .toArray();\r\n });\r\n }\r\n\r\n public addExcludedStatus() {\r\n if (Enumerable.from(this.field.fieldExcludedStatuses).any(c => c.statusCode_id=== this.statusToExclude.id)) {\r\n this.growl.error(\"This status has already been added to the exclude list\");\r\n return;\r\n }\r\n\r\n const excludedStatus = this.fieldService.createFieldExcludedStatuses();\r\n excludedStatus.field = this.field;\r\n excludedStatus.statusCode = this.statusToExclude;\r\n\r\n this.field.fieldExcludedStatuses.push(excludedStatus);\r\n }\r\n\r\n public addExcludedState() {\r\n if (Enumerable.from(this.field.fieldExcludedStates).any(c => c.stateCode_id=== this.stateToExclude.id)) {\r\n this.growl.error(\"This state has already been added to the exclude list\");\r\n return;\r\n }\r\n\r\n const excludedState = this.fieldService.createFieldExcludedStates();\r\n excludedState.field = this.field;\r\n excludedState.stateCode = this.stateToExclude;\r\n\r\n this.field.fieldExcludedStates.push(excludedState);\r\n }\r\n\r\n public addExcludedSystemCode() {\r\n if (Enumerable.from(this.field.fieldExcludedSystemCodes).any(c => c.systemCode_id === this.codeToExclude.id)) {\r\n this.growl.error(\"This code has already been added to the exclude list\");\r\n return;\r\n }\r\n\r\n const excludedCode = this.fieldService.createFieldExcludedSystemCodes();\r\n excludedCode.field = this.field;\r\n excludedCode.systemCode = this.codeToExclude;\r\n\r\n this.field.fieldExcludedSystemCodes.push(excludedCode);\r\n }\r\n\r\n public addExcludedProcessType() {\r\n if (Enumerable.from(this.field.fieldExcludedProcessTypes).any(c => c.processType_id === this.processTypeToExclude.id)) {\r\n this.growl.error(\"This process type has already been added to the exclude list\");\r\n return;\r\n }\r\n\r\n const excludedProcessType = this.fieldService.createFieldExcludedProcessTypes();\r\n excludedProcessType.field = this.field;\r\n excludedProcessType.processType = this.processTypeToExclude;\r\n\r\n this.field.fieldExcludedProcessTypes.push(excludedProcessType);\r\n \r\n }\r\n\r\n public processActions: Wars.Domain.Model.ProcessAction[];\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n declare var emailNotificationActionSelf: EmailNotificationModel;\r\n\r\n export class EmailNotificationModel {\r\n public emails: Wars.Domain.Model.Dtos.EmailDto[];\r\n public filteredEmails: Wars.Domain.Model.Dtos.EmailDto[];\r\n public tinyMceOptions: any;\r\n public filters = {\r\n createdDateString: '',\r\n subject: '',\r\n processName: ''\r\n }\r\n public sorted = {\r\n value: 'createdDate',\r\n ascending: false\r\n }\r\n public paging = {\r\n currentPage: 1,\r\n pageSize: 10,\r\n goToPage: 1\r\n }\r\n public search = {\r\n createDateBegin: moment().startOf('day').subtract(30, 'days').toDate(),\r\n createDateEnd: '',//moment().endOf('day').toDate(),\r\n subject: '',\r\n body: '',\r\n processName: ''\r\n }\r\n public searchOptions = {\r\n maxDate: new Date(),\r\n readonlyInput: false,\r\n showMeridian: true\r\n }\r\n\r\n constructor(\r\n private scope: angular.IScope,\r\n private $rootScope: angular.IRootScopeService,\r\n private $timeout: ng.ITimeoutService,\r\n private $filter: ng.IFilterService,\r\n private growlService: angular.growl.IGrowlService,\r\n private emailService: services.EmailService) {\r\n emailNotificationActionSelf = this;\r\n emailNotificationActionSelf.emails = [];\r\n emailNotificationActionSelf.searchOptions.maxDate = new Date(emailNotificationActionSelf.searchOptions.maxDate.getFullYear(),\r\n emailNotificationActionSelf.searchOptions.maxDate.getMonth(),\r\n emailNotificationActionSelf.searchOptions.maxDate.getDate());\r\n //emailNotificationActionSelf.search.createDateBegin = emailNotificationActionSelf.searchOptions.maxDate;\r\n emailNotificationActionSelf.emailService.getEmails(emailNotificationActionSelf.search)\r\n .then(returnEmail => {\r\n if (returnEmail.length > 0) {\r\n emailNotificationActionSelf.emails = returnEmail;\r\n emailNotificationActionSelf.emails.forEach(setup => {\r\n setup.createdDateString = moment.utc(setup.createdDate).local().format('MMMM Do YYYY, h:mm a').toString();\r\n setup.sentDateTimeString = moment.utc(setup.sentDateTime).local().format('MMMM Do YYYY, h:mm a').toString();\r\n });\r\n\r\n emailNotificationActionSelf.filteredEmails = emailNotificationActionSelf.emails;\r\n var viewedNotifications = Enumerable.from(emailNotificationActionSelf.emails)\r\n .where(f => f.viewed === false)\r\n .toArray();\r\n if (viewedNotifications.length > 0) {\r\n //emailNotificationActionSelf.$timeout(() => {\r\n emailNotificationActionSelf.emailService\r\n .updateViewedNotifications(viewedNotifications)\r\n .then(() => {\r\n emailNotificationActionSelf.$rootScope.$broadcast('notificationCountRefresh', 0);\r\n viewedNotifications.forEach(i => {\r\n i.viewed = true;\r\n });\r\n });\r\n //},\r\n // 2000);\r\n }\r\n } else {\r\n emailNotificationActionSelf.growlService.error(\"No emails match your criteria.\");\r\n }\r\n });\r\n emailNotificationActionSelf.tinyMceOptions = {\r\n format: 'raw',\r\n menubar: false,\r\n statusbar: false,\r\n toolbar: false,\r\n height: 100,\r\n plugins: \"noneditable\",\r\n readonly: 1,\r\n content_css: \"content/mce.css\"\r\n };\r\n }\r\n\r\n public sort(val: string) {\r\n if (emailNotificationActionSelf.sorted.value === val) {\r\n emailNotificationActionSelf.sorted.ascending = !emailNotificationActionSelf.sorted.ascending;\r\n } else {\r\n emailNotificationActionSelf.sorted.value = val;\r\n emailNotificationActionSelf.sorted.ascending = true;\r\n }\r\n }\r\n\r\n public filterEmails() {\r\n emailNotificationActionSelf.paging.currentPage = 1;\r\n emailNotificationActionSelf.paging.goToPage = 1;\r\n emailNotificationActionSelf.filteredEmails = emailNotificationActionSelf.$filter('filter')(emailNotificationActionSelf.emails,\r\n {\r\n createdDateString: emailNotificationActionSelf.filters.createdDateString,\r\n subject: emailNotificationActionSelf.filters.subject,\r\n processName: emailNotificationActionSelf.filters.processName\r\n });\r\n }\r\n\r\n public getTotalPages() {\r\n if (!emailNotificationActionSelf.filteredEmails) return 0;\r\n return emailNotificationActionSelf.filteredEmails.length > 0 ? Math.ceil(emailNotificationActionSelf.filteredEmails.length / emailNotificationActionSelf.paging.pageSize) : 1;\r\n }\r\n\r\n public setCurrentPage() {\r\n if (emailNotificationActionSelf.paging.goToPage > 0 && emailNotificationActionSelf.paging.goToPage <= emailNotificationActionSelf.getTotalPages()) {\r\n emailNotificationActionSelf.paging.currentPage = emailNotificationActionSelf.paging.goToPage;\r\n }\r\n }\r\n\r\n public searchEmails() {\r\n emailNotificationActionSelf.emailService.getEmails(emailNotificationActionSelf.search)\r\n .then((emails) => {\r\n if (emails.length > 0) {\r\n emailNotificationActionSelf.emails = emails;\r\n emailNotificationActionSelf.filteredEmails = emailNotificationActionSelf.emails;\r\n } else {\r\n emailNotificationActionSelf.growlService.error(\"No emails match your criteria.\");\r\n }\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class EnumDropDownContext {\r\n public includeSpecifiedOptionsOnly: Array;\r\n public removeSpecifiedOptions: Array;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class EnumDropDownItem {\r\n public text: string;\r\n public value: number;\r\n\r\n constructor(text: string, value: number) {\r\n this.text = text;\r\n this.value = value;\r\n }\r\n\r\n public static getDefaultSelectOption(): EnumDropDownItem {\r\n return new EnumDropDownItem('Select...', null);\r\n }\r\n\r\n public static getDefaultAllOption(): EnumDropDownItem {\r\n return new EnumDropDownItem('All', null);\r\n }\r\n }\r\n}","/// \r\n//# sourceMappingURL=CalculationType.js.map","/// \r\nmodule warsApp.models {\r\n \r\n export class ExtensibleComponentConfigurationModel {\r\n\r\n public contracts;\r\n public componentAssembliesLocation;\r\n public componentConfigurationsLocation;\r\n public assemblyLoadedExtensibleComponents;\r\n public syncActivePackages;\r\n public useLocalLargeObjectStorage;\r\n public progress: number;\r\n public showConfirm: boolean;\r\n public componentToRemove: Wars.Domain.Model.ExtensibleComponent;\r\n\r\n\r\n constructor(\r\n private $http: angular.IHttpService,\r\n private Upload,\r\n private $timeout: angular.ITimeoutService,\r\n private growlService: angular.growl.IGrowlService) {\r\n this.loadComponents();\r\n } \r\n\r\n private loadComponents() {\r\n var self = this;\r\n this.$http.get('./api/ExtensibleComponent/').success((result: any) => {\r\n self.componentAssembliesLocation = result.componentAssembliesLocation;\r\n self.componentConfigurationsLocation = result.componentConfigurationsLocation;\r\n self.assemblyLoadedExtensibleComponents = result.assemblyLoadedExtensibleComponents;\r\n self.syncActivePackages = result.syncActivePackages;\r\n self.useLocalLargeObjectStorage = result.useLocalLargeObjectStorage;\r\n self.contracts = result.extensibleContracts;\r\n for (var i = 0; i < self.contracts.length; i++) {\r\n for (var j = 0; j < self.contracts[i].extensibleComponents.length; j++) {\r\n self.contracts[i].extensibleComponents[j].configurationJson = JSON.stringify(JSON.parse(self.contracts[i].extensibleComponents[j].configurationJson), null, \"\\t\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n private refresh(contracts: Array) {\r\n var self = this;\r\n var currentContracts: Array = self.contracts;\r\n var contractRemovals = [];\r\n var componentRemovals = [];\r\n var i: number;\r\n var ii: number;\r\n var contractMatch: Wars.Domain.Model.ExtensibleContract;\r\n var componentMatch: Wars.Domain.Model.ExtensibleComponent;\r\n for (i = 0; i < contracts.length; i++) {\r\n contractMatch = Enumerable.from(currentContracts).where(o => o.id === contracts[i].id).firstOrDefault();\r\n if (contractMatch == null) {\r\n self.contracts.push(contracts[i]);\r\n } else {\r\n for (ii = 0; ii < contracts[i].extensibleComponents.length; ii++) {\r\n componentMatch = Enumerable.from(contractMatch.extensibleComponents).where(o => o.id === contracts[i].extensibleComponents[ii].id).firstOrDefault();\r\n if (componentMatch == null) {\r\n contractMatch.extensibleComponents.push(contracts[i].extensibleComponents[ii]);\r\n } else {\r\n componentMatch.enabled = contracts[i].extensibleComponents[ii].enabled;\r\n }\r\n }\r\n }\r\n }\r\n for (i = 0; i < self.contracts.length; i++) {\r\n contractMatch = Enumerable.from(contracts).where(o => o.id === self.contracts[i].id).firstOrDefault();\r\n if (contractMatch == null) {\r\n contractRemovals.push(self.contracts[i]);\r\n } else {\r\n for (ii = 0; ii < self.contracts[i].extensibleComponents.length; ii++) {\r\n componentMatch = Enumerable.from(contractMatch.extensibleComponents).where(o => o.id === self.contracts[i].extensibleComponents[ii].id).firstOrDefault();\r\n if (componentMatch == null) {\r\n componentRemovals.push(self.contracts[i].extensibleComponents[ii]);\r\n }\r\n }\r\n }\r\n }\r\n self.contracts = Enumerable.from(self.contracts).except(contractRemovals).toArray();\r\n for (i = 0; i < self.contracts.length; i++) {\r\n self.contracts[i].extensibleComponents = Enumerable.from(self.contracts[i].extensibleComponents)\r\n .except(componentRemovals)\r\n .toArray(); \r\n }\r\n }\r\n\r\n public activateComponent(component) {\r\n var self = this;\r\n self.$http.post('./api/ExtensibleComponent/Activate', component).success((result: any) => {\r\n self.refresh(result.extensibleContracts);\r\n });\r\n }\r\n\r\n public removeComponent() {\r\n var self = this;\r\n if (self.componentToRemove != null) {\r\n self.$http.post('./api/ExtensibleComponent/Remove', self.componentToRemove).success((result: any) => {\r\n self.refresh(result.extensibleContracts);\r\n self.cancelConfirm();\r\n }); \r\n }\r\n }\r\n\r\n public saveComponentConfiguration(component) {\r\n this.$http.post('./api/ExtensibleComponent/Configure', component);\r\n }\r\n\r\n public uploadFiles(files) {\r\n var self = this;\r\n if (files && files.length) {\r\n self.Upload.upload({\r\n url: './api/ExtensibleComponent',\r\n data: {\r\n files: files\r\n }\r\n }).then(\r\n (result) => {\r\n if (result != null && result.data != null && result.data.message != null) {\r\n self.growlService.info(result.data.message);\r\n }\r\n self.loadComponents();\r\n },\r\n () => {\r\n /* Let the automatic error handling throw up a growl about unexpected error */\r\n },\r\n (evt) => {\r\n self.progress = Math.min(100, 100.0 * evt.loaded / evt.total);\r\n });\r\n }\r\n }\r\n\r\n private displayConfirmation(component: Wars.Domain.Model.ExtensibleComponent) {\r\n var self = this;\r\n self.showConfirm = true;\r\n self.componentToRemove = component;\r\n }\r\n\r\n private cancelConfirm() {\r\n var self = this;\r\n self.showConfirm = false;\r\n self.componentToRemove = null;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class FileUploadModel {\r\n\r\n public fileUploadProgress: number;\r\n public errorMessage: string;\r\n public documents: Wars.Domain.Model.Dtos.DocumentDto[];\r\n\r\n public systemLevelId: string;\r\n public processConfigId: string;\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var FormSection = /** @class */ (function (_super) {\r\n __extends(FormSection, _super);\r\n function FormSection() {\r\n return _super.call(this) || this;\r\n //this.expressionParts = [];\r\n }\r\n return FormSection;\r\n }(BaseEntity));\r\n models.FormSection = FormSection;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n\r\n export class FormSection extends BaseEntity implements Wars.Domain.Model.FormSection {\r\n constructor() {\r\n super();\r\n //this.expressionParts = [];\r\n }\r\n\r\n public splitFields: Wars.Domain.Model.Field[][];\r\n\r\n isVisible: boolean;\r\n position: number;\r\n formStep_id: string;\r\n description: string;\r\n form_id:string;\r\n condition_id: string;\r\n condition: Wars.Domain.Model.Conditions.Condition;\r\n readonlyCondition_id: string;\r\n readonlyCondition: Wars.Domain.Model.Conditions.Condition;\r\n objectSchema_id: string;\r\n SystemLevelListSchemaProperty_id: string;\r\n objectSchema: Wars.Domain.Model.ObjectSchema;\r\n fields: Wars.Domain.Model.Field[];\r\n securityMatrix_id: string;\r\n securityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n systemLevelListSchemaProperty: Wars.Domain.Model.SchemaProperty;\r\n form: Wars.Domain.Model.Form;\r\n columns: Wars.Domain.Model.FormGridColumn[];\r\n formSectionDisplayType: Wars.Domain.Model.Codes.Enums.FormSectionDisplayType;\r\n formSectionType: Wars.Domain.Model.Codes.Enums.FormSectionType;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class GetCodeModel {\r\n\r\n public enumName: string;\r\n public codeGroupId: string;\r\n public processConfigId: string;\r\n public isEnum: boolean;\r\n\r\n public equals(codeModel: GetCodeModel): boolean {\r\n if (this.isEnum) {\r\n return this.enumName === codeModel.enumName;\r\n } else {\r\n return this.codeGroupId === codeModel.codeGroupId &&\r\n this.processConfigId === codeModel.processConfigId;\r\n }\r\n }\r\n\r\n public getName(): string {\r\n if (this.isEnum) {\r\n return this.enumName;\r\n }\r\n return this.codeGroupId;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class EsriQueryConfigurationModel {\r\n public currentQuery:Wars.Domain.Model.Gis.EsriQueryConfiguration;\r\n public mapConfiguration:Wars.Domain.Model.Gis.MapConfiguration;\r\n public selectedLayer:Wars.Domain.Model.Gis.Layer;\r\n public selectedMapServiceLayer:Wars.Domain.Model.Gis.EsriMapServiceLayerMetadata;\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n private deleteService: services.DeleteService,\r\n private $q: angular.IQService,\r\n private esriMapService:services.EsriMapService,\r\n private mapConfigurationId:string) {\r\n\r\n mapConfigurationService.getMapConfiguration(mapConfigurationId).then(m => {\r\n this.mapConfiguration = m;\r\n });\r\n\r\n }\r\n\r\n public addQuery() {\r\n this.currentQuery = this.mapConfigurationService.createEsriQueryConfiguration();\r\n this.currentQuery.name = \"New Query\";\r\n\r\n this.currentQuery.returnGeometry = false;\r\n this.currentQuery.useOrForWheres = false;\r\n this.currentQuery.hasLayerInfoBeenRetrieved = false;\r\n this.currentQuery.includeGeometryFilter= false;\r\n this.currentQuery.layer = this.selectedLayer;\r\n\r\n this.mapConfiguration.esriQueryConfigurations.push(this.currentQuery);\r\n\r\n this.save();\r\n }\r\n\r\n public getLayerInfo() {\r\n this.esriMapService.loadLayerMetadata(this.currentQuery.layer,this.selectedMapServiceLayer);\r\n }\r\n\r\n public mapServiceLayerChanged() {\r\n var d = this.$q.defer();\r\n\r\n var promise = d.promise;\r\n\r\n if (!this.currentQuery.esriMapServiceLayerMetadata.fields || this.currentQuery.esriMapServiceLayerMetadata.fields.length == 0) {\r\n this.esriMapService.loadLayerMetadata(this.currentQuery.layer, this.currentQuery.esriMapServiceLayerMetadata).then(r => {\r\n d.resolve();\r\n })\r\n } else {\r\n d.resolve();\r\n }\r\n\r\n promise.then(r => {\r\n this.currentQuery.wherePredicates.forEach(f=>f.entityAspect.setDeleted());\r\n this.save();\r\n });\r\n }\r\n\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n public geometryFilterChanged() {\r\n if (this.currentQuery.includeGeometryFilter && !this.currentQuery.geometryFilter) {\r\n this.currentQuery.geometryFilter = this.mapConfigurationService.createGeometryFilter();\r\n this.currentQuery.geometryFilter.geometryComparisionType = Wars.Domain.Model.Codes.Enums\r\n .GeometryComparisionType.EnvelopeIntersects;\r\n this.currentQuery.geometryFilter.useMapGeometry = false;\r\n this.currentQuery.geometryFilter.bufferFactor=0;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n\r\n }\r\n\r\n}","/// \r\nmodule warsApp.models {\r\n export class EsriQueryResult {\r\n public displayFieldName: string;\r\n public spatialReference: EsriSpatialReference;\r\n public geometryType: string;\r\n public features: Feature[];\r\n } \r\n\r\n export class EsriSpatialReference {\r\n public wkid:number; \r\n }\r\n\r\n export class Feature {\r\n geometry: any;\r\n attributes:any;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class GisActionWorkflowConfigurationModel {\r\n public mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n public currentWorkflow: Wars.Domain.Model.Gis.GisActionWorkflowConfiguration;\r\n public currentActionBlock: Wars.Domain.Model.Gis.GisActionBlock;\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n mapConfigurationId: string) {\r\n\r\n this.mapConfigurationService.getMapConfiguration(mapConfigurationId).then(r => {\r\n this.mapConfiguration = r;\r\n });\r\n\r\n console.log(this);\r\n }\r\n\r\n public deleteWorkflow(workflow: Wars.Domain.Model.Gis.GisActionWorkflowConfiguration) {\r\n workflow.entityAspect.setDeleted();\r\n\r\n this.save();\r\n }\r\n\r\n public addWorkflow() {\r\n console.log('add workflow');\r\n\r\n let newWorkflow = this.mapConfigurationService.createGisActionWorkflowConfiguration();\r\n newWorkflow.name = \"New Workflow\";\r\n newWorkflow.isFeatureCollectionResult = false;\r\n newWorkflow.clearAllLayersAtCompletion = true;\r\n\r\n this.mapConfiguration.gisActionWorkflowConfigurations.push(newWorkflow);\r\n this.save();\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n public addGisActionBlock(blockType: Wars.Domain.Model.Codes.Enums.GisActionBlockType) {\r\n let newActionBlock = this.mapConfigurationService.createGisActionBlock();\r\n\r\n newActionBlock.name = \"New Action Block\";\r\n newActionBlock.gisActionBlockType = blockType;\r\n newActionBlock.workflowOrder = this.currentWorkflow.gisActionBlocks.length + 1;\r\n\r\n newActionBlock.inputCollection = this.mapConfigurationService.createGisInputOutputCollection();\r\n newActionBlock.outputCollection = this.mapConfigurationService.createGisInputOutputCollection();\r\n\r\n this.currentWorkflow.outputCollection = newActionBlock.outputCollection;\r\n this.currentWorkflow.outputCollection_id = newActionBlock.outputCollection_id;\r\n\r\n this.setOutputCollection(newActionBlock.outputCollection, blockType);\r\n\r\n if (this.currentWorkflow.gisActionBlocks.length > 0) {\r\n this.setInputCollection(newActionBlock.inputCollection, Enumerable.from(this.currentWorkflow.gisActionBlocks).orderBy(a => a.workflowOrder).last());\r\n }\r\n if (newActionBlock.gisActionBlockType == Wars.Domain.Model.Codes.Enums.GisActionBlockType.AddFeature) {\r\n this.currentWorkflow.isFeatureCollectionResult = true;\r\n } else {\r\n this.currentWorkflow.isFeatureCollectionResult = false;\r\n }\r\n this.currentWorkflow.gisActionBlocks.push(newActionBlock);\r\n this.currentActionBlock = newActionBlock;\r\n\r\n return newActionBlock;\r\n }\r\n\r\n private setInputCollection(inputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection,\r\n previousActionBlock: Wars.Domain.Model.Gis.GisActionBlock) {\r\n\r\n if (previousActionBlock && previousActionBlock.outputCollection && previousActionBlock.outputCollection.gisInputOutputs.length > 0) {\r\n previousActionBlock.outputCollection.gisInputOutputs.forEach(g => {\r\n let newInput = this.mapConfigurationService.createGisInputOutput();\r\n\r\n newInput.name = g.name;\r\n newInput.type = g.type;\r\n newInput.relatedGisInputOutput = g;\r\n\r\n inputCollection.gisInputOutputs.push(newInput);\r\n });\r\n }\r\n }\r\n\r\n private setOutputCollection(outputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection,\r\n type: Wars.Domain.Model.Codes.Enums.GisActionBlockType) {\r\n\r\n let newInputOutput = this.mapConfigurationService.createGisInputOutput();\r\n\r\n switch (type) {\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.DrawFeature:\r\n newInputOutput.name = \"Geometry\";\r\n newInputOutput.type = Wars.Domain.Model.Codes.Enums.GisInputOutputType.Geometry;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.QueryEsriQuery:\r\n newInputOutput.name = \"Query Result\";\r\n newInputOutput.type = Wars.Domain.Model.Codes.Enums.GisInputOutputType.FeatureCollection;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.Trim:\r\n newInputOutput.name = \"Trim Result\";\r\n newInputOutput.type = Wars.Domain.Model.Codes.Enums.GisInputOutputType.FeatureCollection;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.Filter:\r\n newInputOutput.name = \"Filter Result\";\r\n newInputOutput.type = Wars.Domain.Model.Codes.Enums.GisInputOutputType.FeatureCollection;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.AddFeature:\r\n newInputOutput.name = \"Add Features Result\";\r\n newInputOutput.type = Wars.Domain.Model.Codes.Enums.GisInputOutputType.ListofGisDatastoreFeatures;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.BufferGeometry:\r\n newInputOutput.name = \"Buffered Geometry\";\r\n newInputOutput.type = Wars.Domain.Model.Codes.Enums.GisInputOutputType.Geometry;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.SetProperty:\r\n newInputOutput.name = \"Feature Collection\";\r\n newInputOutput.type = Wars.Domain.Model.Codes.Enums.GisInputOutputType.FeatureCollection;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.Validation:\r\n newInputOutput.name = \"Validation Result\";\r\n newInputOutput.type = Wars.Domain.Model.Codes.Enums.GisInputOutputType.ValidationResult;\r\n break;\r\n default:\r\n\r\n }\r\n\r\n if (newInputOutput) {\r\n outputCollection.gisInputOutputs.push(newInputOutput);\r\n }\r\n }\r\n\r\n public addDrawFeatureActionBlock() {\r\n let newActionBlock = this.addGisActionBlock(Wars.Domain.Model.Codes.Enums.GisActionBlockType.DrawFeature);\r\n\r\n newActionBlock.drawFeatureConfiguration = this.mapConfigurationService.createDrawFeatureConfiguration();\r\n\r\n this.save();\r\n }\r\n\r\n public addTrimActionBlock() {\r\n let newActionBlock = this.addGisActionBlock(Wars.Domain.Model.Codes.Enums.GisActionBlockType.Trim);\r\n\r\n newActionBlock.trimConfiguration = this.mapConfigurationService.createTrimConfiguration();\r\n\r\n this.save();\r\n }\r\n\r\n public addBufferBlock() {\r\n let newActionBlock = this.addGisActionBlock(Wars.Domain.Model.Codes.Enums.GisActionBlockType.BufferGeometry);\r\n\r\n newActionBlock.bufferConfiguration = this.mapConfigurationService.createBufferConfiguration();\r\n newActionBlock.bufferConfiguration.bufferDistance = 100;\r\n newActionBlock.bufferConfiguration.showBuffer = false;\r\n\r\n this.save();\r\n }\r\n\r\n public addFilterActionBlock() {\r\n let newActionBlock = this.addGisActionBlock(Wars.Domain.Model.Codes.Enums.GisActionBlockType.Filter);\r\n\r\n newActionBlock.filterFeatureCollectionConfiguration = this.mapConfigurationService.createFilterFeatureCollectionConfiguration();\r\n newActionBlock.filterFeatureCollectionConfiguration.useFilterFunction = false;\r\n this.save();\r\n }\r\n\r\n public addValidationBlock() {\r\n let newActionBlock = this.addGisActionBlock(Wars.Domain.Model.Codes.Enums.GisActionBlockType.Validation);\r\n\r\n newActionBlock.gisActionValidationConfiguration = this.mapConfigurationService.createValidationConfiguration();\r\n\r\n newActionBlock.gisActionValidationConfiguration.exitWorkflowOnFailure = true;\r\n newActionBlock.gisActionValidationConfiguration.validationMessage=\"Validation Message\";\r\n newActionBlock.gisActionValidationConfiguration.useJavascriptFunction = false;\r\n newActionBlock.gisActionValidationConfiguration.checkAnyFeatures=true;\r\n\r\n this.save(); \r\n }\r\n\r\n public addSetPropertyBlock() {\r\n let newActionBlock = this.addGisActionBlock(Wars.Domain.Model.Codes.Enums.GisActionBlockType.SetProperty);\r\n\r\n newActionBlock.setPropertyConfiguration = this.mapConfigurationService.creatSetPropertyConfiguration();\r\n newActionBlock.setPropertyConfiguration.useJavascriptTransformer = false;\r\n newActionBlock.setPropertyConfiguration.useJsonDictionaryStore = false;\r\n\r\n this.save(); \r\n }\r\n\r\n public addEsriQueryActionBlock() {\r\n let newActionBlock = this.addGisActionBlock(Wars.Domain.Model.Codes.Enums.GisActionBlockType.QueryEsriQuery);\r\n\r\n newActionBlock.gisActionBlockEsriQueryConfiguration = this.mapConfigurationService.createGisActionBlockEsriQueryConfiguration();\r\n this.save();\r\n }\r\n\r\n public addFeaturesBlock() {\r\n let newActionBlock = this.addGisActionBlock(Wars.Domain.Model.Codes.Enums.GisActionBlockType.AddFeature);\r\n\r\n newActionBlock.addFeaturesConfiguration= this.mapConfigurationService.createAddFeaturesConfiguration();\r\n newActionBlock.addFeaturesConfiguration.filterPropertiesToMappedAttributes= false;\r\n\r\n this.save();\r\n }\r\n\r\n public addGisDatastoreQueryActionBlock() {\r\n let newActionBlock = this.addGisActionBlock(Wars.Domain.Model.Codes.Enums.GisActionBlockType.QueryGisDatastore);\r\n newActionBlock.gisDatastoreQueryConfiguration = this.mapConfigurationService.createGisDatastoreQueryConfiguration();\r\n\r\n this.save();\r\n }\r\n\r\n public deleteActionBlock() {\r\n this.currentActionBlock.entityAspect.setDeleted();\r\n this.currentActionBlock = null;\r\n this.save();\r\n }\r\n\r\n }\r\n}","/// \r\nmodule warsApp.models\r\n{\r\n export class GisDatastoreQueryConfigurationModel {\r\n public mapConfiguration:Wars.Domain.Model.Gis.MapConfiguration;\r\n public currentQuery:Wars.Domain.Model.Gis.GisDatastoreQueryConfiguration;\r\n public selectedGisDatastore: Wars.Domain.Model.Gis.GisDatastore;\r\n public gisDatastores:Wars.Domain.Model.Gis.GisDatastore[];\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n private deleteService: services.DeleteService,\r\n private $q: angular.IQService,\r\n private esriMapService:services.EsriMapService,\r\n private gisDatastoreService:services.GisDatastoreService,\r\n private mapConfigurationId:string) {\r\n\r\n mapConfigurationService.getMapConfiguration(mapConfigurationId).then(m => {\r\n this.mapConfiguration = m;\r\n });\r\n\r\n gisDatastoreService.getGisDatastores().then(g => {\r\n this.gisDatastores = g;\r\n });\r\n\r\n }\r\n\r\n public addQuery() {\r\n this.currentQuery = this.mapConfigurationService.createGisDatastoreQueryConfiguration();\r\n this.currentQuery.gisDatastore = this.selectedGisDatastore;\r\n this.currentQuery.includeGeometryFilter = false;\r\n this.currentQuery.name = \"New Query\";\r\n\r\n this.mapConfiguration.gisDatastoreQueryConfigurations.push(this.currentQuery);\r\n\r\n this.save();\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n public geometryFilterChanged() {\r\n if (this.currentQuery.includeGeometryFilter && !this.currentQuery.geometryFilter) {\r\n this.currentQuery.geometryFilter = this.mapConfigurationService.createGeometryFilter();\r\n this.currentQuery.geometryFilter.geometryComparisionType = Wars.Domain.Model.Codes.Enums\r\n .GeometryComparisionType.EnvelopeIntersects;\r\n this.currentQuery.geometryFilter.useMapGeometry = false;\r\n this.currentQuery.geometryFilter.bufferFactor=0;\r\n }\r\n\r\n this.save();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class JavascriptTransformerModel {\r\n public mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n public currentJavascriptTransformer: Wars.Domain.Model.Gis.JavascriptTransformer;\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n private mapConfigurationId: string) {\r\n mapConfigurationService.getMapConfiguration(mapConfigurationId).then(m => {\r\n this.mapConfiguration = m;\r\n });\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n public addJavascriptTransformer() {\r\n let newTransformer = this.mapConfigurationService.createJavascriptTransformer();\r\n newTransformer.name = \"New Transformer\";\r\n newTransformer.code = \"return value;\";\r\n this.mapConfiguration.javascriptTransformers.push(newTransformer);\r\n this.currentJavascriptTransformer = newTransformer;\r\n this.save();\r\n }\r\n\r\n public delete() {\r\n this.currentJavascriptTransformer.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class LayerConfigurationModel {\r\n public gisDatastores: Wars.Domain.Model.Gis.GisDatastore[];\r\n public layers: Wars.Domain.Model.Gis.Layer[];\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private gisDataStoreService: services.GisDatastoreService,\r\n private esriMapService:services.EsriMapService,\r\n private mapConfigurationId: string) {\r\n\r\n this.mapConfigurationService.getLayerConfigurations(mapConfigurationId).then(r => {\r\n this.layers = r;\r\n });\r\n\r\n gisDataStoreService.getGisDatastores().then(g => {\r\n this.gisDatastores = g;\r\n });\r\n }\r\n\r\n public addLayer() {\r\n console.log('Test');\r\n let newLayer = this.mapConfigurationService.createLayer();\r\n\r\n newLayer.name = \"New Layer\";\r\n newLayer.type = Wars.Domain.Model.Codes.Enums.LayerType.GisDataStore;\r\n newLayer.mapConfiguration_id = this.mapConfigurationId;\r\n newLayer.maxZoom = 18;\r\n newLayer.isQueryOnlyLayer = false;\r\n\r\n this.layers.push(newLayer);\r\n\r\n this.save();\r\n }\r\n\r\n public getMapServiceMetadata(layer: Wars.Domain.Model.Gis.Layer) {\r\n console.log(layer);\r\n\r\n this.esriMapService.getMapServiceMetadata(layer.url, layer.proxyUrl).then(r => {\r\n layer.esriMapServiceMetadata = r;\r\n console.log(layer);\r\n this.save();\r\n });\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n public removeLayer(layer: Wars.Domain.Model.Gis.Layer) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"Layer\", layer.id, \"Layer\",() => {\r\n this.layers.remove(layer);\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class LegendConfigurationModel {\r\n public mapConfiguration:Wars.Domain.Model.Gis.MapConfiguration;\r\n public currentLegend: Wars.Domain.Model.Gis.LegendConfiguration;\r\n public addLayer:Wars.Domain.Model.Gis.Layer;\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n private legendConfigurationService:services.LegendConfigurationService,\r\n private deleteService: services.DeleteService,\r\n private mapConfigurationId:string) {\r\n\r\n this.mapConfigurationService.getMapConfiguration(mapConfigurationId).then(m => {\r\n this.mapConfiguration = m;\r\n });\r\n }\r\n\r\n public addLegend() {\r\n let newLegend = this.legendConfigurationService.createLegendConfiguration();\r\n\r\n newLegend.hideSingleBase = false;\r\n newLegend.displayCornerLocation = Wars.Domain.Model.Codes.DisplayCornerLocation.TopRight;\r\n newLegend.sortLayers = true;\r\n newLegend.name = \"New Legend\";\r\n newLegend.isDefault = this.mapConfiguration.legendConfigurations.length === 0;\r\n\r\n this.mapConfiguration.legendConfigurations.push(newLegend);\r\n this.currentLegend = newLegend;\r\n\r\n this.save();\r\n }\r\n\r\n public addLegendLayer() {\r\n let newLegendLayer = this.legendConfigurationService.createLegendLayer();\r\n\r\n newLegendLayer.layer = this.addLayer;\r\n newLegendLayer.name = this.addLayer.name;\r\n\r\n this.currentLegend.legendLayers.push(newLegendLayer);\r\n\r\n this.save();\r\n }\r\n\r\n public defaultChanged() {\r\n this.mapConfiguration.legendConfigurations.forEach(l => {\r\n if (l.id !== this.currentLegend.id) {\r\n l.isDefault = false;\r\n }\r\n });\r\n\r\n this.save();\r\n }\r\n\r\n public delete() {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"LegendConfiguration\",this.currentLegend.id,\"Legend Configuration\",() => {\r\n this.mapConfiguration.legendConfigurations.remove(this.currentLegend);\r\n this.currentLegend = null;\r\n });\r\n\r\n }\r\n\r\n public deleteLegendLayer(legendLayer:Wars.Domain.Model.Gis.LegendLayer) {\r\n legendLayer.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n } \r\n}","/// \r\nmodule warsApp.models {\r\n export class MapConfigurationModel {\r\n public mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n public gisDatastores: Wars.Domain.Model.Gis.GisDatastore[];\r\n private systemLevelId: string;\r\n\r\n public showMapConfiguration: boolean=true;\r\n public showLayerConfiguration: boolean = false;\r\n public showLegendConfiguration: boolean = false;\r\n public showMapFunctionConfiguration: boolean = false;\r\n public showGisActionWorkflowConfiguration: boolean=false;\r\n public showPreview: boolean=false;\r\n public showEsriQueries: boolean=false;\r\n public showGisDatastoreQueries: boolean=false;\r\n public showQueryGridConfiguration:boolean=false;\r\n public showJavascriptTransformers:boolean=false;\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private gisDataStoreService: services.GisDatastoreService,\r\n private mapConfigurationId: string) {\r\n\r\n this.mapConfigurationService.getMapConfiguration(mapConfigurationId).then(r => {\r\n this.mapConfiguration = r;\r\n });\r\n\r\n gisDataStoreService.getGisDatastores().then(g => {\r\n this.gisDatastores = g;\r\n });\r\n }\r\n\r\n public showSection(sectionName: string) {\r\n this.showMapConfiguration = false;\r\n this.showLayerConfiguration = false;\r\n this.showLegendConfiguration = false;\r\n this.showMapFunctionConfiguration = false;\r\n this.showGisDatastoreQueries = false;\r\n this.showGisActionWorkflowConfiguration = false;\r\n this.showQueryGridConfiguration = false;\r\n this.showPreview = false;\r\n this.showEsriQueries= false;\r\n this.showJavascriptTransformers= false;\r\n\r\n switch (sectionName) {\r\n case \"JavascriptTransformers\":\r\n this.showJavascriptTransformers = true;\r\n break;\r\n case \"MapConfiguration\":\r\n this.showMapConfiguration = true;\r\n break;\r\n case \"Layers\":\r\n this.showLayerConfiguration = true;\r\n break;\r\n case \"Legends\":\r\n this.showLegendConfiguration = true;\r\n break;\r\n case \"GisDatastoreQueries\":\r\n this.showGisDatastoreQueries = true;\r\n break;\r\n case \"MapFunctions\":\r\n this.showMapFunctionConfiguration = true;\r\n break;\r\n case \"GisActionWorkflow\":\r\n this.showGisActionWorkflowConfiguration = true;\r\n break;\r\n case \"EsriQueries\":\r\n this.showEsriQueries = true;\r\n break;\r\n case \"Preview\":\r\n this.showPreview = true;\r\n break;\r\n case \"QueryGrids\":\r\n this.showQueryGridConfiguration = true;\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class MapConfigurationPreviewModel {\r\n public mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n public mapId: string=\"PreviewMap\";\r\n\r\n constructor(mapConfigurationService: services.MapConfigurationService,\r\n private gisMapService: services.GisMapService, mapConfigurationId: string) {\r\n mapConfigurationService.getMapConfiguration(mapConfigurationId).then(m => {\r\n this.mapConfiguration = m;\r\n });\r\n }\r\n\r\n public runWorkflow(workflow: Wars.Domain.Model.Gis.GisActionWorkflowConfiguration) {\r\n this.gisMapService.runWorkflow(workflow,services.UtilityService.generateGuidComb(),\r\n services.UtilityService.generateGuidComb());\r\n }\r\n }\r\n}\r\n\r\n","/// \r\nmodule warsApp.models {\r\n export class MapConfigurationsModel {\r\n public mapConfigurations: Wars.Domain.Model.Gis.MapConfiguration[];\r\n public gisDatastores:Wars.Domain.Model.Gis.GisDatastore[];\r\n private systemLevelId: string;\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private processConfigurationId: string,\r\n private $location:angular.ILocationService) {\r\n\r\n if (processConfigurationId) {\r\n mapConfigurationService.getMapConfigurations().then(mapConfigs => {\r\n this.mapConfigurations = mapConfigs;\r\n });\r\n } else {\r\n systemLevelService.getSystemLevelMapConfigurations().then(systemLevel => {\r\n this.mapConfigurations = systemLevel.myMapConfigurations;\r\n this.systemLevelId = systemLevel.id;\r\n });\r\n }\r\n }\r\n\r\n public addMapConfiguration() {\r\n let newMapConfig= this.mapConfigurationService.createMapConfiguration();\r\n\r\n newMapConfig.systemLevel_id = this.systemLevelId;\r\n newMapConfig.showZoomControl = true;\r\n newMapConfig.defaultZoom = 6;\r\n newMapConfig.centerX = 28.0;\r\n newMapConfig.centerY = -81.9;\r\n newMapConfig.name = \"New Map\";\r\n\r\n this.mapConfigurations.push(newMapConfig);\r\n\r\n this.save();\r\n }\r\n\r\n public editMapConfiguration(map: Wars.Domain.Model.Gis.MapConfiguration) {\r\n this.$location.path('/MapConfiguration/' + map.id);\r\n } \r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n public deleteMapConfiguration(map: Wars.Domain.Model.Gis.MapConfiguration) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"MapConfiguration\", map.id, \"Map Configuration\");\r\n }\r\n\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class MapFunctionConfigurationModel {\r\n public mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n public currentFunction: Wars.Domain.Model.Gis.MapFunctionConfiguration;\r\n public codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n public selectedEsriWherePredicate:string;\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n private deleteService: services.DeleteService,\r\n private systemLevelService:services.SystemLevelService,\r\n private mapConfigurationId:string) {\r\n\r\n console.log(\"test\");\r\n mapConfigurationService.getMapConfiguration(mapConfigurationId).then(map => {\r\n this.mapConfiguration = map;\r\n });\r\n\r\n systemLevelService.getSystemLevelCodes().then(systemLevel => {\r\n this.codeGroups = systemLevel.myCodeGroups;\r\n });\r\n }\r\n\r\n public addExecuteGisActionWorkflow() {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.MapFunctionType.ExecuteGisActionWorkflow);\r\n this.save(); \r\n }\r\n\r\n public addZoomToCodeDropdown() {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.MapFunctionType.ZoomToCodeDropdown);\r\n this.currentFunction.zoomToQueryConfiguration = this.mapConfigurationService.createZoomToQueryConfiguration();\r\n this.currentFunction.zoomToQueryConfiguration.doZoom = true;\r\n this.currentFunction.zoomToQueryConfiguration.placeHolderForInput = this.mapConfigurationService\r\n .createEsriPlaceHolderValue();\r\n\r\n this.save();\r\n }\r\n\r\n public addTextPlaceholder() {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.MapFunctionType.TextPlaceHolder);\r\n this.save();\r\n }\r\n\r\n public addGeometrySelection() {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.MapFunctionType.SelectGeometry);\r\n\r\n this.currentFunction.drawFeatureConfiguration = this.mapConfigurationService.createDrawFeatureConfiguration();\r\n this.save();\r\n }\r\n\r\n public addZoomToTextBox() {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.MapFunctionType.ZoomToTextBox);\r\n\r\n this.currentFunction.zoomToQueryConfiguration = this.mapConfigurationService.createZoomToQueryConfiguration();\r\n this.currentFunction.zoomToQueryConfiguration.doZoom = true;\r\n this.currentFunction.zoomToQueryConfiguration.placeHolderForInput = this.mapConfigurationService\r\n .createEsriPlaceHolderValue();\r\n\r\n this.save();\r\n }\r\n\r\n\r\n public addClearDrawing() {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.MapFunctionType.ClearAllDrawings);\r\n this.save();\r\n }\r\n\r\n private addFunction(functionType: Wars.Domain.Model.Codes.Enums.MapFunctionType) {\r\n this.currentFunction = this.mapConfigurationService.createMapFunctionConfiguration();\r\n\r\n this.currentFunction.name = \"New Function\";\r\n this.currentFunction.showTextInput = false;\r\n this.currentFunction.type = functionType;\r\n\r\n this.mapConfiguration.mapFunctions.push(this.currentFunction);\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n public delete() {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"MapFunctionConfiguration\",\r\n this.currentFunction.id,\r\n \"Map Function Configuration\",() => {\r\n this.currentFunction = null;\r\n });\r\n\r\n }\r\n\r\n\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class QueryGridConfigurationModel {\r\n public currentQueryGrid: Wars.Domain.Model.Gis.QueryGridConfiguration;\r\n public mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n public currentEsriQuery:Wars.Domain.Model.Gis.EsriQueryConfiguration;\r\n public gisDatastoreQuery:Wars.Domain.Model.Gis.GisDatastoreQueryConfiguration;\r\n public systemLevel:Wars.Domain.Model.SystemLevel;\r\n\r\n constructor(private mapConfigurationService: services.MapConfigurationService,\r\n private deleteService:services.DeleteService,\r\n private systemLevelService:services.SystemLevelService,\r\n private mapConfigurationId: string) {\r\n this.mapConfigurationService.getMapConfiguration(mapConfigurationId).then(m => {\r\n this.mapConfiguration = m;\r\n });\r\n\r\n this.systemLevelService.getSystemLevelJsonDictionaryStores().then(systemLevel => {\r\n this.systemLevel = systemLevel;\r\n });\r\n }\r\n\r\n public addQueryGrid() {\r\n let queryGrid = this.mapConfigurationService.createQueryGridConfiguration();\r\n\r\n queryGrid.includeZoomColumn = true;\r\n queryGrid.zoomToResultsOnQuery = false;\r\n queryGrid.highlightOnHover = false;\r\n queryGrid.runQueryOnLoad = false;\r\n queryGrid.includeLoadButton = true;\r\n queryGrid.addResultsToMap =false;\r\n queryGrid.name = \"New Query Grid\";\r\n\r\n this.mapConfiguration.queryGridConfigurations.push(queryGrid);\r\n\r\n this.save();\r\n }\r\n\r\n public addEsriQuery() {\r\n let newQuery = this.addQuery();\r\n newQuery.esriQueryConfiguration = this.currentEsriQuery;\r\n\r\n this.save();\r\n }\r\n\r\n public addGisDatastoreQuery() {\r\n let newQuery = this.addQuery();\r\n newQuery.gisDatastoreQueryConfiguration= this.gisDatastoreQuery;\r\n\r\n this.save();\r\n }\r\n\r\n public addQuery():Wars.Domain.Model.Gis.QueryGridQuery {\r\n let newQuery = this.mapConfigurationService.createQueryGridQuery();\r\n\r\n this.currentQueryGrid.queryGridQueries.push(newQuery);\r\n return newQuery;\r\n }\r\n\r\n public addField() {\r\n let field = this.mapConfigurationService.createIncludedQueryField();\r\n field.uniqueId = services.UtilityService.generateGuidComb();\r\n field.showInPopup = false;\r\n field.displayOrder = this.currentQueryGrid.includedQueryFields.length + 1;\r\n field.name = \"New Field\";\r\n field.distictOnField = false;\r\n\r\n this.currentQueryGrid.includedQueryFields.push(field);\r\n\r\n this.save();\r\n }\r\n\r\n public addResultsToMapChanged() {\r\n if (this.currentQueryGrid.addResultsToMap && !this.currentQueryGrid.drawStyle) {\r\n this.currentQueryGrid.drawStyle = this.mapConfigurationService.createDrawStyle();\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n\r\n\r\n public fieldOrderDown(field: Wars.Domain.Model.Gis.IncludedQueryField) {\r\n const newPosition = field.displayOrder + 1;\r\n\r\n var oldField= Enumerable.from(this.currentQueryGrid.includedQueryFields).singleOrDefault(c => c.displayOrder == newPosition);\r\n\r\n if (oldField) {\r\n oldField.displayOrder--;\r\n field.displayOrder++;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public fieldOrderUp(field: Wars.Domain.Model.Gis.IncludedQueryField) {\r\n const newPosition = field.displayOrder - 1;\r\n\r\n var oldField = Enumerable.from(this.currentQueryGrid.includedQueryFields).singleOrDefault(c => c.displayOrder == newPosition);\r\n\r\n if (oldField) {\r\n oldField.displayOrder++;\r\n field.displayOrder--;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public removeField(field: Wars.Domain.Model.Gis.IncludedQueryField) {\r\n field.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public removeQueryField(field: Wars.Domain.Model.Gis.GisFieldMapping) {\r\n field.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class GisDatastoreModel {\r\n public gisDatastores: Wars.Domain.Model.Gis.GisDatastore[];\r\n public currentDatastore: Wars.Domain.Model.Gis.GisDatastore;\r\n public newGeometryType: Wars.Domain.Model.Codes.Enums.GeometryType;\r\n\r\n constructor(private gisDatastoreService: services.GisDatastoreService,\r\n private growl: angular.growl.IGrowlService,\r\n private systemLevelService: services.SystemLevelService) {\r\n gisDatastoreService.getGisDatastores()\r\n .then(results => {\r\n this.gisDatastores = results;\r\n });\r\n this.systemLevelService.getSystemLevel().then(r => {\r\n this.systemLevel = r;\r\n });\r\n }\r\n\r\n public add() {\r\n this.currentDatastore = this.gisDatastoreService.createGisDatastore();\r\n\r\n this.currentDatastore.systemLevel = this.systemLevel;\r\n this.currentDatastore.name = \"New Gis Datastore\";\r\n this.currentDatastore.maxPerBox = 64;\r\n this.currentDatastore.isActive = false;\r\n\r\n //this.currentDatastore.quadtree = this.gisDatastoreService.createQuadTree();\r\n\r\n //TODO: Let this be user selected or entered in the future\r\n //this.currentDatastore.quadtree.boundingBox.yMax = 31.14132;\r\n //this.currentDatastore.quadtree.boundingBox.xMin = -87.843269;\r\n //this.currentDatastore.quadtree.boundingBox.yMin=24.520060;\r\n //this.currentDatastore.quadtree.boundingBox.xMax = -79.246760;\r\n //this.currentDatastore.quadtree.gisDatastore_id = this.currentDatastore.id;\r\n //this.currentDatastore.quadtree.childrenCount = 0;\r\n //this.currentDatastore.quadtree.needsToSubdivide = false;\r\n\r\n this.gisDatastores.push(this.currentDatastore);\r\n\r\n this.gisDatastoreService.saveAllChanges();\r\n }\r\n\r\n public remove() {\r\n this.currentDatastore.entityAspect.setDeleted();\r\n this.gisDatastores.remove(this.currentDatastore);\r\n this.gisDatastoreService.saveAllChanges();\r\n this.currentDatastore = null;\r\n }\r\n\r\n public save() {\r\n if (!this.currentDatastore.isActive) {\r\n this.gisDatastoreService.saveAllChanges();\r\n }\r\n }\r\n\r\n public activate() {\r\n this.gisDatastoreService.activate(this.currentDatastore.id).then(r => {\r\n this.currentDatastore.isActive = true;\r\n });\r\n }\r\n\r\n public addGeometryType() {\r\n if (Enumerable.from(this.currentDatastore.availableDatastoreTypes)\r\n .any(d => d.geometryType === this.newGeometryType)) {\r\n this.growl.error(\"This geometry type has already been added to the gis datastore\");\r\n } else {\r\n const newGeoType = this.gisDatastoreService.createGeometryDatastoreType();\r\n newGeoType.gisDatastore = this.currentDatastore;\r\n newGeoType.geometryType = this.newGeometryType;\r\n\r\n this.currentDatastore.availableDatastoreTypes.push(newGeoType);\r\n\r\n this.gisDatastoreService.saveAllChanges();\r\n }\r\n }\r\n\r\n public removeGeometryType(geometryDatastoreType: Wars.Domain.Model.Gis.GeometryDatastoreType) {\r\n geometryDatastoreType.entityAspect.setDeleted();\r\n this.gisDatastoreService.saveAllChanges();\r\n }\r\n\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n declare var headerFooterModelSelf: HeaderFooterModel;\r\n\r\n export class HeaderFooterModel {\r\n\r\n constructor(\r\n private scope: angular.IScope,\r\n private growlService: angular.growl.IGrowlService) {\r\n headerFooterModelSelf = this;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class HolidayModalModel {\r\n public dateOpened:boolean;\r\n\r\n constructor(private holidayService:warsApp.services.HolidaySetService) {\r\n \r\n }\r\n public open() {\r\n this.dateOpened = true;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class HolidaySetModel {\r\n public isEditing: boolean;\r\n public selectedHolidaySet: Wars.Domain.Model.HolidaySet;\r\n public holidaySets: Wars.Domain.Model.HolidaySet[];\r\n public isNew:boolean;\r\n public selectedHoliday:Wars.Domain.Model.Holiday;\r\n\r\n constructor(private holidaySetService:warsApp.services.HolidaySetService,private modalService:any) {\r\n var self = this;\r\n holidaySetService.getHolidaySets().then(r => {\r\n this.holidaySets = r;\r\n });\r\n }\r\n\r\n public addHolidaySet() {\r\n this.selectedHolidaySet = this.holidaySetService.createNewHolidaySet();\r\n this.isNew =true;\r\n this.isEditing = true;\r\n\r\n }\r\n\r\n public deleteHolidaySet(holidaySet:Wars.Domain.Model.HolidaySet) {\r\n holidaySet.entityAspect.setDeleted(); \r\n this.saveChanges();\r\n }\r\n\r\n public saveAdd() {\r\n this.saveChanges();\r\n //this.isEditing = false;\r\n this.isNew = false;\r\n }\r\n\r\n public cancel() {\r\n this.holidaySetService.rejectChanges();\r\n this.isEditing = false;\r\n }\r\n\r\n public selectHolidaySet(holidaySet: Wars.Domain.Model.HolidaySet) {\r\n this.selectedHolidaySet = holidaySet;\r\n this.isEditing = true;\r\n\r\n }\r\n\r\n public saveChanges() {\r\n this.holidaySetService.saveAllChanges();\r\n }\r\n\r\n public deleteHoliday(holiday:Wars.Domain.Model.Holiday) {\r\n holiday.entityAspect.setDeleted();\r\n this.holidaySetService.saveAllChanges();\r\n }\r\n\r\n public selectHoliday(holiday:Wars.Domain.Model.Holiday) {\r\n this.selectedHoliday = holiday;\r\n this.openHolidayModal();\r\n }\r\n\r\n private openHolidayModal() {\r\n var self = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/_holidayModal.html\",\r\n controller: \"holidayModalController\",\r\n inputs: {\r\n holiday:self.selectedHoliday\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.holidaySetService.saveAllChanges();\r\n \r\n\r\n } else {\r\n self.holidaySetService.rejectChanges();\r\n }\r\n });\r\n });\r\n }\r\n\r\n public addHoliday() {\r\n this.selectedHoliday =this.holidaySetService.createHoliday();\r\n this.openHolidayModal();\r\n this.selectedHolidaySet.holidays.push(this.selectedHoliday);\r\n }\r\n\r\n }\r\n}","/// \r\nmodule warsApp.models.jointJs {\r\n export class DrawingOptions {\r\n\r\n public numberOfBoxes: number;\r\n\r\n public boxWidth: number;\r\n public boxHeight: number;\r\n \r\n public verticalSpacing: number;\r\n public horizontalSpacing: number;\r\n\r\n public gridSize: number;\r\n\r\n public rectangleColor: string;\r\n public textColor: string;\r\n\r\n public selectedRectangleColor: string;\r\n public selectedTextColor: string;\r\n\r\n constructor() {\r\n \r\n }\r\n\r\n public calculateWidthRequired(): number {\r\n return (this.numberOfBoxes * this.boxWidth) + ((this.numberOfBoxes + 1) * this.horizontalSpacing);\r\n }\r\n\r\n public calculateHeightRequired() : number {\r\n return (this.boxHeight) + (this.verticalSpacing * 2);\r\n }\r\n\r\n // boxNumber is zero based index\r\n public calculateHorizontalPosition(boxNumber: number): number {\r\n var offset = boxNumber * (this.horizontalSpacing + this.boxWidth);\r\n return offset + this.horizontalSpacing;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models.jointJs {\r\n export class ElementMap {\r\n public entityId: string;\r\n public elementId: string;\r\n\r\n constructor(entityId: string, elementId: string) {\r\n this.entityId = entityId;\r\n this.elementId = elementId;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models{\r\n export class JsonDictionaryStoresModel {\r\n public systemLevel: Wars.Domain.Model.SystemLevel;\r\n public currentJsonDictionary: Wars.Domain.Model.JsonDictionaryStore;\r\n\r\n constructor(private systemLevelService: services.SystemLevelService) {\r\n systemLevelService.getSystemLevelJsonDictionaryStores().then(s => {\r\n this.systemLevel = s;\r\n });\r\n }\r\n\r\n public addJsonDictionaryStore() {\r\n this.currentJsonDictionary = this.systemLevelService.createNewEntity(\"JsonDictionaryStore\");\r\n this.currentJsonDictionary.name = \"New Dictionary\";\r\n this.systemLevel.myJsonDictionaryStores.push(this.currentJsonDictionary);\r\n\r\n this.systemLevelService.saveAllChanges();\r\n }\r\n\r\n public save() {\r\n this.systemLevelService.saveAllChanges();\r\n }\r\n\r\n public remove() {\r\n this.currentJsonDictionary.entityAspect.setDeleted();\r\n this.currentJsonDictionary = null;\r\n\r\n this.systemLevelService.saveAllChanges();\r\n }\r\n }\r\n}","/// \r\n//# sourceMappingURL=jsTreeWrappers.js.map","/// \r\nmodule warsApp.models {\r\n\r\n\r\n export interface IAuthenticationStatus {\r\n isAuthenticated: boolean;\r\n isAdmin: boolean;\r\n isConfigurator: boolean;\r\n isMaintenanceAdmin: boolean;\r\n signOutUrl: string;\r\n }\r\n\r\n export class LayoutModel {\r\n\r\n activeProcessTypes: Wars.Domain.Model.ProcessType[];\r\n menuItems: Wars.Domain.Model.Dtos.MenuItemDto[] = [];\r\n siteConfiguration: Wars.Domain.Model.Dtos.SiteConfigurationDto;\r\n authentication: IAuthenticationStatus;\r\n defaultSignOutPath = \"\";\r\n notificationCount: any;\r\n public showNavigation: boolean;\r\n public showFooter: boolean;\r\n contentPageDtos: Wars.Domain.Model.Dtos.ContentPageDto[];\r\n public showUserAdministration: boolean = false;\r\n private isUserPopoverOpen: boolean;\r\n //killTokenUrl = \"\";\r\n\r\n constructor(\r\n private controllerScope: angular.IScope,\r\n private userAdministrationService: services.UserAdministrationService,\r\n private windowService: angular.IWindowService,\r\n private localStorageService: any,\r\n private signalrService: services.ISignalrService,\r\n private httpService: angular.IHttpService,\r\n private rootScopeService: angular.IRootScopeService,\r\n private locationService: angular.ILocationService,\r\n private processTypeService: services.ProcessTypeService,\r\n private menuItemService: services.MenuItemService,\r\n private emailService: services.EmailService,\r\n private siteConfigurationService: services.SiteConfigurationService,\r\n private siteInitializationService: services.SiteInitializationService,\r\n private userService: services.UserService,\r\n private authService: any,\r\n private testService: services.TestService,\r\n private $q: angular.IQService) {\r\n\r\n var self = this;\r\n\r\n self.authentication = {\r\n isConfigurator: false,\r\n isAdmin: false,\r\n isAuthenticated: false,\r\n isMaintenanceAdmin: false,\r\n signOutUrl: undefined\r\n };\r\n\r\n this.isUserPopoverOpen = false; \r\n\r\n if (!self.authService.authentication.isAuth) {\r\n //if the client is not authenticated, attempt to get an authentication provider token since this could be the redirect from an external login source (STS)\r\n self.httpService.get(\"./api/Authenticate/GetToken\")\r\n .success((result: any) => {\r\n if (result.authenticated) {\r\n //we have a STS token, so this is a re-bootstrap after STS signin \r\n self.authService.providerLogin(result.token);\r\n var data = {\r\n signOutUrl: result.signOutUrl,\r\n afterSignInPath: \"/home\"\r\n };\r\n self.authService.signOutData = data;\r\n //if (data.signOutUrl) {\r\n // //immediately signout from STS since we manage our own token from here\r\n // self.windowService.location.assign(data.signOutUrl);\r\n //} else {\r\n // //initialize full login since we're not signing out from STS - we don't do this part anymore\r\n self.basicInitialization();\r\n self.userAuthenticated();\r\n //}\r\n } else {\r\n //not authenticated and don't have a token, so do basic initialization - STS and social logins go through here on initial bootstrap\r\n self.basicInitialization();\r\n }\r\n });\r\n } else {\r\n //must be a re-bootstrap (refresh or redirect after STS signout call)\r\n self.basicInitialization();\r\n self.userAuthenticated();\r\n }\r\n }\r\n\r\n basicInitialization() {\r\n var self = this;\r\n\r\n //show nav bar\r\n self.showNavigation = true;\r\n\r\n //this is only invoked by a social login since STS logins always re-bootstrap due to redirects\r\n self.rootScopeService.$on(\"userAuthenticated\", (event, data) => {\r\n self.userAuthenticated();\r\n });\r\n\r\n self.getSiteConfigurationForExecution();\r\n\r\n self.getMenuItems();\r\n\r\n self.rootScopeService.$on(\"resetMenus\", (event) => {\r\n self.getMenuItems();\r\n });\r\n\r\n //TODO: Cody, please check this when testing payments\r\n if (self.locationService.path() === \"/InitiatePayment\") {\r\n self.showNavigation = false;\r\n self.showFooter = false;\r\n }\r\n\r\n self.rootScopeService.$on(\"userNotAuthorized\",\r\n (event) => {\r\n self.localStorageService.remove(\"authorizationData\");\r\n self.authentication.isAuthenticated = false;\r\n self.authentication.isAdmin = false;\r\n self.authentication.isConfigurator = false;\r\n self.authentication.isMaintenanceAdmin = false;\r\n self.rootScopeService.$broadcast(\"resetMenus\");\r\n self.locationService.url(\"/login\");\r\n });\r\n\r\n }\r\n\r\n userAuthenticated() {\r\n var self = this;\r\n\r\n //set auth data\r\n self.authentication.isAuthenticated = self.authService.authentication.isAuth;\r\n self.authentication.isAdmin = self.authService.authentication.isAdmin;\r\n self.authentication.isConfigurator = self.authService.authentication.isConfigurator;\r\n self.authentication.isMaintenanceAdmin = self.authService.authentication.isMaintenanceAdmin;\r\n self.authentication.signOutUrl = self.defaultSignOutPath;\r\n\r\n //for admin or configurator - reload active process types and hook up unsaved changes confirmation\r\n if (self.authentication.isAdmin || self.authentication.isConfigurator) {\r\n self.reloadActiveProcessTypes();\r\n self.hookUpUnsavedChangesConfirmation();\r\n self.rootScopeService.$on(\"process-configuration-activated\", () => {\r\n self.reloadActiveProcessTypes();\r\n });\r\n }\r\n\r\n //get and listen for email notifications\r\n self.getEmailNotificationCount();\r\n self.signalrService.listen(self.controllerScope).then((listener) => {\r\n listener.onClientReceivedWarsNotification((notificationCount) => {\r\n self.warsNotificationReceived(notificationCount);\r\n });\r\n });\r\n //this clears notification count\r\n self.rootScopeService.$on(\"notificationCountRefresh\", (notificationRefresh, notifications) => {\r\n self.warsNotificationReceived(notifications);\r\n });\r\n\r\n //get editable content pages\r\n self.getEditiableContentPages();\r\n\r\n //get user's grant authorizations for user administration\r\n self.userAdministrationService.getUserGrantAuthorizations()\r\n .then((authorization) => {\r\n if (authorization && authorization.options.length > 0) {\r\n self.showUserAdministration = true;\r\n }\r\n });\r\n\r\n //check if we need to redirect after logging in because of a deep link scenario\r\n var redirect = localStorage.getItem('redirectAfterLogin');\r\n if (redirect != null) {\r\n localStorage.removeItem('redirectAfterLogin');\r\n this.locationService.url(redirect);\r\n } else {\r\n if ((self.locationService.url() === \"/home\" || self.locationService.url() === \"/login\") ||\r\n (self.siteConfiguration !== null && self.siteConfiguration !== undefined && self.siteConfiguration.homeContentPageId !== null && self.siteConfiguration.homeContentPageId !== undefined)) {\r\n self.siteInitializationService.getRoute()\r\n .then((route) => {\r\n self.locationService.url(route);\r\n });\r\n }\r\n }\r\n\r\n //set handler for signout\r\n self.rootScopeService.$on(\"userSignOut\", (event, notifyServerHubOfDisconnect) => {\r\n var promises = [];\r\n\r\n promises.push(this.testService.endImpersonation());\r\n promises.push(this.testService.endChangeDateTime());\r\n\r\n this.$q.all(promises).then(() => {\r\n self.signalrService.stopConnection(notifyServerHubOfDisconnect);\r\n self.localStorageService.remove(\"authorizationData\");\r\n self.authentication.isAuthenticated = false;\r\n self.authentication.isAdmin = false;\r\n self.authentication.isConfigurator = false;\r\n self.authentication.isMaintenanceAdmin = false;\r\n redirect = localStorage.getItem('redirectAfterLogin');\r\n if (redirect != null) {\r\n localStorage.removeItem('redirectAfterLogin');\r\n }\r\n if (self.siteConfiguration !== null && self.siteConfiguration !== undefined && self.siteConfiguration.homeContentPageId !== null && self.siteConfiguration.homeContentPageId !== undefined) {\r\n self.locationService.url(\"ContentPage/\" + self.siteConfiguration.homeContentPageId);\r\n } else {\r\n self.locationService.url(\"/home\");\r\n }\r\n if (self.authService.signOutData) {\r\n var soUrl = self.authService.signOutData.signOutUrl;\r\n self.authService.signOutData = undefined;\r\n self.windowService.location.assign(soUrl); \r\n }\r\n });\r\n });\r\n }\r\n\r\n reloadActiveProcessTypes(): void {\r\n var self = this;\r\n self.processTypeService.getActiveProcessTypes().then(result => {\r\n self.activeProcessTypes = result;\r\n });\r\n }\r\n\r\n signIn(): void {\r\n var self = this;\r\n self.locationService.url(\"/login\");\r\n }\r\n\r\n signOut(): void {\r\n var self = this;\r\n self.rootScopeService.$broadcast(\"userSignOut\", true);\r\n }\r\n\r\n getMenuItems() {\r\n var self = this;\r\n self.siteInitializationService.getMenuItems().then(r => {\r\n self.menuItems = r;\r\n });\r\n }\r\n\r\n getSiteConfigurationForExecution() {\r\n var self = this;\r\n self.siteConfigurationService.getSiteConfigurationForExecution()\r\n .then(s => {\r\n self.siteConfiguration = s;\r\n self.showFooter = s.showFooter;\r\n if (self.locationService.url() === \"/home\" && s.homeContentPageId !== null && s.homeContentPageId !== undefined) {\r\n self.locationService.url(\"ContentPage/\" + s.homeContentPageId);\r\n }\r\n });\r\n }\r\n\r\n getEmailNotificationCount() {\r\n var self = this;\r\n self.emailService.getEmailNotificationCount()\r\n .then((notificationCount) => {\r\n self.notificationCount = notificationCount;\r\n });\r\n }\r\n\r\n getEditiableContentPages() {\r\n var self = this;\r\n self.siteInitializationService.getEditiableContentPages()\r\n .then((contentPages) => {\r\n self.contentPageDtos = contentPages;\r\n });\r\n }\r\n\r\n hookUpUnsavedChangesConfirmation() {\r\n var self = this;\r\n this.rootScopeService.$on('$locationChangeStart', (event) => {\r\n if (self.processTypeService.hasChanges()) {\r\n var confirmation = confirm(\"You have unsaved changes are you sure you wish to discard them and navigate to another page?\");\r\n if (confirmation) {\r\n self.processTypeService.clearCache();\r\n } else {\r\n event.preventDefault();\r\n }\r\n }\r\n });\r\n }\r\n\r\n warsNotificationReceived(notificationCount) {\r\n var self = this;\r\n self.notificationCount = notificationCount;\r\n }\r\n\r\n private getCurrentUserId(): string {\r\n var userId = this.userService.getLoggedInUserId();\r\n return userId;\r\n }\r\n\r\n private openUserPopover(): void {\r\n this.isUserPopoverOpen = true;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ManageClaimsModel {\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n\r\n public newSystemClaim: Wars.Domain.Model.ClaimDefinition;\r\n public existingSystemClaims: Wars.Domain.Model.ClaimDefinition[];\r\n public existingCodeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n public optionalUserRepositories: string[];\r\n public existingUserRepositories: Wars.Domain.Model.UserRepositoryConfiguration[];\r\n public isMapped: boolean;\r\n public seletedUserRepo: string;\r\n\r\n constructor(\r\n private claimDefinitionService: services.ClaimDefinitionService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private modalService: any) {\r\n var self = this;\r\n self.existingSystemClaims = [];\r\n self.getExistingSystemClaims();\r\n self.existingCodeGroups = [];\r\n self.getExistingCodeGroups();\r\n self.optionalUserRepositories = [];\r\n self.existingUserRepositories = [];\r\n self.isMapped = false;\r\n self.seletedUserRepo = \"\";\r\n self.systemLevelService.getUserRepositoryConfigurations().then(\r\n (systemLevel) => {\r\n self.existingUserRepositories.addRange(systemLevel.myUserRepositoryConfigurations);\r\n self.claimDefinitionService.getUserRepositoryComponents()\r\n .then((result) => {\r\n for (var i = 0; i < result.length; i++) {\r\n if (!Enumerable.from(self.existingUserRepositories).any(x => x.userRepositoryComponentTag === result[i])) {\r\n self.optionalUserRepositories.push(result[i]);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n private getExistingSystemClaims(): void {\r\n var self = this;\r\n this.systemLevelService.getSystemLevelClaimsWithGrantAuthorizations().then(\r\n (systemLevel) => {\r\n self.systemLevel = systemLevel;\r\n self.existingSystemClaims = systemLevel.myClaims;\r\n });\r\n }\r\n\r\n private getExistingCodeGroups(): void {\r\n var self = this;\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n (systemLevel) => {\r\n self.systemLevel = systemLevel;\r\n self.existingCodeGroups = systemLevel.myCodeGroups;\r\n });\r\n }\r\n\r\n public addUserRepo(): void {\r\n var self = this;\r\n var ur = self.claimDefinitionService.createNewEntity(\"UserRepositoryConfiguration\");\r\n ur.systemLevel_id = self.systemLevel.id;\r\n ur.userRepositoryComponentTag = self.seletedUserRepo;\r\n self.claimDefinitionService.saveAllChanges(() => {\r\n self.existingUserRepositories.push(ur);\r\n self.optionalUserRepositories = Enumerable.from(self.optionalUserRepositories).where(i => i !== self.seletedUserRepo).toArray();\r\n self.seletedUserRepo = \"\"; \r\n });\r\n }\r\n\r\n public deleteUserRepo(userRepo: Wars.Domain.Model.UserRepositoryConfiguration): void {\r\n var self = this;\r\n var tag = userRepo.userRepositoryComponentTag;\r\n userRepo.entityAspect.setDeleted();\r\n self.claimDefinitionService.saveAllChanges(() => {\r\n self.existingUserRepositories = Enumerable.from(self.existingUserRepositories).where(i => i.id !== userRepo.id).toArray();\r\n self.optionalUserRepositories.push(tag);\r\n });\r\n }\r\n\r\n public addNewSystemClaim(): void {\r\n this.newSystemClaim = this.claimDefinitionService.createNewEntity(\"ClaimDefinition\");\r\n this.newSystemClaim.valueAssignable = false;\r\n this.newSystemClaim.valueType = Wars.Domain.Model.Codes.Enums.VariableType.None;\r\n this.newSystemClaim.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n this.isMapped = false;\r\n this.showModal(this.newSystemClaim, true);\r\n }\r\n\r\n public getGrantClaims() {\r\n var self = this;\r\n return Enumerable.from(self.existingSystemClaims)\r\n .where(i => (i.claimMapName == null || i.claimMapName.trim() === \"\"))\r\n .toArray();\r\n }\r\n\r\n public addClaimGrant(claim: Wars.Domain.Model.ClaimDefinition): void {\r\n var self = this;\r\n var cg = self.claimDefinitionService.createNewEntity(\"ClaimGrantAuthority\");\r\n cg.claimDefinition_id = claim.id;\r\n cg.myClaimDefinition = claim;\r\n cg.systemLevel_id = claim.systemLevel_id;\r\n claim.claimGrantAuthorities.push(cg);\r\n if (claim.myCodeGroup != null) {\r\n for (var i = 0; i < claim.myCodeGroup.codes.length; i++) {\r\n var r = self.claimDefinitionService.createNewEntity(\"ClaimGrantRestrictionValue\");\r\n r.systemLevel_id = cg.systemLevel_id;\r\n r.claimGrantAuthority_id = cg.id;\r\n r.myClaimGrantAuthority = cg;\r\n r.systemCode_id = claim.myCodeGroup.codes[i].id;\r\n r.restricted = false;\r\n }\r\n }\r\n self.claimDefinitionService.saveAllChanges();\r\n }\r\n\r\n public removeClaimGrant(claimGrant: Wars.Domain.Model.ClaimGrantAuthority): void {\r\n var self = this;\r\n while (claimGrant.claimGrantAuthorityValues.length > 0) {\r\n claimGrant.claimGrantAuthorityValues[0].entityAspect.setDeleted();\r\n }\r\n while (claimGrant.claimGrantRestrictionValues.length > 0) {\r\n claimGrant.claimGrantRestrictionValues[0].entityAspect.setDeleted();\r\n }\r\n claimGrant.entityAspect.setDeleted();\r\n self.claimDefinitionService.saveAllChanges();\r\n }\r\n\r\n public updateGrantClaim(claimGrant: Wars.Domain.Model.ClaimGrantAuthority) {\r\n var self = this;\r\n var i: number;\r\n while (claimGrant.claimGrantAuthorityValues.length > 0) {\r\n claimGrant.claimGrantAuthorityValues[0].entityAspect.setDeleted();\r\n }\r\n if (claimGrant.myGrantClaimDefinition.myCodeGroup != null) {\r\n for (i = 0; i < claimGrant.myGrantClaimDefinition.myCodeGroup.codes.length; i++) {\r\n var a = self.claimDefinitionService.createNewEntity(\"ClaimGrantAuthorityValue\");\r\n a.systemLevel_id = claimGrant.systemLevel_id;\r\n a.claimGrantAuthority_id = claimGrant.id;\r\n a.myClaimGrantAuthority = claimGrant;\r\n a.systemCode_id = claimGrant.myGrantClaimDefinition.myCodeGroup.codes[i].id;\r\n a.granted = false;\r\n } \r\n }\r\n self.claimDefinitionService.saveAllChanges();\r\n }\r\n\r\n public save(): void {\r\n var self = this;\r\n self.claimDefinitionService.saveAllChanges();\r\n }\r\n\r\n private transformClaim(claim: Wars.Domain.Model.ClaimDefinition): void {\r\n var self = this;\r\n if (claim.processConfiguration_id != null && claim.processConfiguration_id.trim() !== \"\") {\r\n claim.codeGroup_id = null;\r\n claim.myCodeGroup = null;\r\n claim.valueAssignable = false;\r\n claim.valueType = Wars.Domain.Model.Codes.Enums.VariableType.None;\r\n } else {\r\n if (self.isMapped) {\r\n claim.codeGroup_id = null;\r\n claim.myCodeGroup = null;\r\n claim.valueAssignable = false;\r\n if (claim.claimMapName == null || claim.claimMapName.trim() === \"\") {\r\n claim.valueType = Wars.Domain.Model.Codes.Enums.VariableType.None;\r\n } else {\r\n claim.valueType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n }\r\n } else {\r\n claim.claimMapName = \"\";\r\n claim.claimMapValue = \"\";\r\n if (claim.specialClaimTagType != null &&\r\n (claim.specialClaimTagType === Wars.Domain.Model.Codes.Enums.SpecialClaimTag.SystemAdminClaim ||\r\n claim.specialClaimTagType === Wars.Domain.Model.Codes.Enums.SpecialClaimTag.ConfiguratorClaim)) {\r\n claim.valueType = Wars.Domain.Model.Codes.Enums.VariableType.None;\r\n claim.valueAssignable = false;\r\n } else {\r\n if (claim.valueType == null || claim.valueType === Wars.Domain.Model.Codes.Enums.VariableType.None) {\r\n claim.valueAssignable = false;\r\n } else {\r\n claim.valueAssignable = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public editExistingSystemClaim(claim: Wars.Domain.Model.ClaimDefinition) : void {\r\n this.showModal(claim, false);\r\n }\r\n\r\n public deleteClaim(claim: Wars.Domain.Model.ClaimDefinition) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"ClaimDefinition\", claim.id, \"Claim Definition\", () => this.existingSystemClaims.remove(claim));\r\n }\r\n\r\n public deleteClaimGrantAuthority(claim: Wars.Domain.Model.ClaimDefinition) {\r\n var self = this;\r\n while (claim.claimGrantAuthorities.length > 0) {\r\n while (claim.claimGrantAuthorities[0].claimGrantAuthorityValues.length > 0) {\r\n claim.claimGrantAuthorities[0].claimGrantAuthorityValues[0].entityAspect.setDeleted();\r\n }\r\n while (claim.claimGrantAuthorities[0].claimGrantRestrictionValues.length > 0) {\r\n claim.claimGrantAuthorities[0].claimGrantRestrictionValues[0].entityAspect.setDeleted();\r\n }\r\n claim.claimGrantAuthorities[0].entityAspect.setDeleted();\r\n }\r\n for (var i = 0; i < self.existingSystemClaims.length; i++) {\r\n var c = self.existingSystemClaims[i];\r\n if (c === claim) continue;\r\n var matches = Enumerable.from(c.claimGrantAuthorities).where(x => x.grantClaimDefinition_id === claim.id).toArray();\r\n for (var j = 0; j < matches.length; j++) {\r\n while (matches[j].claimGrantAuthorityValues.length > 0) {\r\n matches[j].claimGrantAuthorityValues[0].entityAspect.setDeleted();\r\n }\r\n while (matches[j].claimGrantRestrictionValues.length > 0) {\r\n matches[j].claimGrantRestrictionValues[0].entityAspect.setDeleted();\r\n }\r\n matches[j].entityAspect.setDeleted();\r\n }\r\n }\r\n }\r\n \r\n private showModal(claim: Wars.Domain.Model.ClaimDefinition, adding: boolean) { // Just provide a template url, a controller and call 'showModal'.\r\n var self: ManageClaimsModel = this;\r\n var variableTypeContext = new models.EnumDropDownContext();\r\n variableTypeContext.includeSpecifiedOptionsOnly = new Array();\r\n variableTypeContext.includeSpecifiedOptionsOnly.push(Wars.Domain.Model.Codes.Enums.VariableType.None);\r\n //variableTypeContext.includeSpecifiedOptionsOnly.push(Wars.Domain.Model.Codes.Enums.VariableType.String);\r\n if (self.existingCodeGroups.length > 0) {\r\n variableTypeContext.includeSpecifiedOptionsOnly.push(Wars.Domain.Model.Codes.Enums.VariableType.Code); \r\n }\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/_claimEditModal.html\",\r\n controller: \"editClaimModalController\",\r\n inputs: {\r\n claim: claim,\r\n mapping: { isMapped: (claim.claimMapName != null && claim.claimMapName.trim() !== \"\") },\r\n systemClaimGroups: undefined,\r\n variableTypeContext: variableTypeContext,\r\n codeGroups: self.existingCodeGroups,\r\n processActions: null\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n (claim).variableTypeChange = () => {\r\n if (claim.entityAspect.entityState.isModified()) {\r\n self.deleteClaimGrantAuthority(claim);\r\n }\r\n if (claim.valueType === Wars.Domain.Model.Codes.Enums.VariableType.Code) {\r\n if (claim.codeGroup_id == null) {\r\n var defaultCode = Enumerable.from(this.existingCodeGroups).firstOrDefault();\r\n if (defaultCode != null) {\r\n claim.codeGroup_id = defaultCode.id;\r\n }\r\n }\r\n } else {\r\n claim.codeGroup_id = null;\r\n claim.myCodeGroup = null;\r\n }\r\n };\r\n (claim).codeGroupChange = () => {\r\n self.deleteClaimGrantAuthority(claim);\r\n };\r\n (claim).mappingStatusChange = () => {\r\n self.deleteClaimGrantAuthority(claim);\r\n if (!self.isMapped) {\r\n claim.valueType = Wars.Domain.Model.Codes.Enums.VariableType.None;\r\n }\r\n };\r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n if (adding) {\r\n this.existingSystemClaims.push(this.newSystemClaim);\r\n this.newSystemClaim.systemLevel_id = this.systemLevel.id;\r\n this.newSystemClaim.mySystemLevel = this.systemLevel;\r\n }\r\n self.isMapped = modal.scope.mapping.isMapped;\r\n self.transformClaim(claim);\r\n self.claimDefinitionService.saveAllChanges();\r\n } else {\r\n self.claimDefinitionService.rejectChanges();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ManageEmailGroupsModel {\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n public emailGroups: Wars.Domain.Model.EmailGroup[];\r\n public newEmailGroup: Wars.Domain.Model.EmailGroup;\r\n public editEmailGroup: Wars.Domain.Model.EmailGroup;\r\n\r\n public isSystemEmailGroup: boolean;\r\n public addingNewEmailGroup: boolean;\r\n public showDeleteEmailGroupConfirm: boolean;\r\n public showDeleteExistingConfirm: boolean;\r\n\r\n constructor(\r\n private processConfigurationId: string,\r\n private emailGroupService: services.EmailGroupService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private modalService: any)\r\n {\r\n this.isSystemEmailGroup = !this.processConfigurationId;\r\n this.addingNewEmailGroup = false;\r\n this.showDeleteEmailGroupConfirm = false;\r\n this.showDeleteExistingConfirm = false;\r\n\r\n this.loadEmailGroups();\r\n }\r\n\r\n private loadEmailGroups() {\r\n if (this.isSystemEmailGroup) {\r\n this.systemLevelService.getSystemLevelEmailGroups()\r\n .then((systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n this.emailGroups = systemLevel.myEmailGroups;\r\n });\r\n } else {\r\n this.emailGroupService.getAllProcessEmailGroups(this.processConfigurationId)\r\n .then((emailGroups) => this.emailGroups = emailGroups);\r\n }\r\n }\r\n\r\n public addNewEmailGroup() : void {\r\n this.addingNewEmailGroup = true;\r\n this.newEmailGroup = this.emailGroupService.createNewEntity(\"EmailGroup\");\r\n this.addNewEmailAddressToGroup();\r\n }\r\n \r\n public addNewEmailAddressToGroup(): void {\r\n var newEmailAddress = this.emailGroupService.createNewEmailAddress();\r\n newEmailAddress.myEmailGroup = this.newEmailGroup;\r\n this.newEmailGroup.myEmailAddresses.push(newEmailAddress);\r\n }\r\n\r\n public deleteNewEmailAddress(index: number): void {\r\n this.newEmailGroup.myEmailAddresses.splice(index, 1);\r\n }\r\n\r\n private save(successCallback?: any): void {\r\n if (this.isSystemEmailGroup) {\r\n this.newEmailGroup.systemLevel_id = this.systemLevel.id;\r\n } else {\r\n this.newEmailGroup.processConfiguration_id = this.processConfigurationId;\r\n }\r\n this.emailGroupService.saveAllChanges(successCallback);\r\n }\r\n\r\n public saveNewEmailGroup(): void {\r\n this.save(() => this.saveSucceeded());\r\n }\r\n\r\n private saveSucceeded(): void {\r\n this.emailGroups.push(this.newEmailGroup);\r\n this.addingNewEmailGroup = false;\r\n this.newEmailGroup = undefined;\r\n }\r\n\r\n public cancelNewEmailGroup(): void {\r\n this.newEmailGroup = undefined;\r\n this.addingNewEmailGroup = false;\r\n }\r\n\r\n public deleteEmailGroup(): void {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"EmailGroup\",\r\n this.editEmailGroup.id,\r\n \"Successfully deleted Email Group\",\r\n undefined,\r\n \"Could not delete Email Group\");\r\n }\r\n\r\n public editExistingEmailAddress(emailAddress: Wars.Domain.Model.EmailAddress): void {\r\n this.showModal(emailAddress);\r\n }\r\n\r\n public deleteExistingEmailAddress(emailAddress: Wars.Domain.Model.EmailAddress): void {\r\n emailAddress.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public addNewEmailAddressToEditGroup(): void {\r\n var newEmailAddress = this.emailGroupService.createNewEmailAddress();\r\n newEmailAddress.myEmailGroup = this.editEmailGroup;\r\n this.editEmailGroup.myEmailAddresses.push(newEmailAddress);\r\n\r\n this.editExistingEmailAddress(newEmailAddress);\r\n }\r\n\r\n private showModal(emailAddress: Wars.Domain.Model.EmailAddress) {\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/_emailAddressEditModal.html\",\r\n controller: \"editEmailAddressModalController\",\r\n inputs: {\r\n emailAddress: emailAddress\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n this.save();\r\n } else {\r\n this.emailGroupService.rejectChanges();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ManageScheduledResourcesModel {\r\n\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n private existingSystemCodes: Array;\r\n private existingScheduledResources: Array;\r\n private selectedCodeGroup: Wars.Domain.Model.Codes.CodeGroup;\r\n private newScheduledResource: Wars.Domain.Model.ScheduledResourceConfiguration;\r\n private newScheduledResourceName = \"\";\r\n \r\n constructor(\r\n public id: string,\r\n private manageScheduledResourcesService: services.ManageScheduledResourcesService,\r\n private manageSystemCodesService: services.ManageSystemCodesService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private modalService: any) {\r\n this.modalService = modalService;\r\n this.existingSystemCodes = [];\r\n this.existingScheduledResources = [];\r\n this.selectedCodeGroup = undefined;\r\n this.loadAllSystemCodes();\r\n this.loadAllScheduledResources();\r\n }\r\n \r\n addNewScheduledResource(): void {\r\n this.newScheduledResource = this.manageScheduledResourcesService.createNewScheduledResourceConfiguration(this.selectedCodeGroup);\r\n this.newScheduledResource.name = this.newScheduledResourceName;\r\n\r\n if (this.id) {\r\n this.newScheduledResource.processConfiguration_id = this.id;\r\n } else {\r\n this.newScheduledResource.systemLevel_id = !this.id && this.systemLevel ? this.systemLevel.id : undefined;\r\n this.newScheduledResource.mySystemLevel = !this.id ? this.systemLevel : undefined;\r\n }\r\n\r\n this.saveNewScheduledResource();\r\n }\r\n\r\n canSaveNewScheduledResource(): boolean {\r\n if (this.selectedCodeGroup == undefined) return false;\r\n if (this.newScheduledResourceName.trim() === \"\") return false;\r\n return true;\r\n }\r\n \r\n deleteScheduledResource(scheduledResource: Wars.Domain.Model.ScheduledResourceConfiguration) {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"ScheduledResourceConfiguration\",\r\n scheduledResource.id,\r\n \"Scheduled Resource Successfully Deleted\",\r\n () => {\r\n this.existingScheduledResources.remove(scheduledResource);\r\n },\r\n \"Scheduled ResourceCould not be Deleted\");\r\n }\r\n \r\n saveNewScheduledResource(): void {\r\n this.manageScheduledResourcesService.saveAllChanges(() => {\r\n this.saveSucceeded();\r\n });\r\n }\r\n\r\n editExistingScheduledResource(scheduledResource: Wars.Domain.Model.ScheduledResourceConfiguration) {\r\n this.showModal(scheduledResource);\r\n }\r\n\r\n private loadAllSystemCodes(): void {\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n (systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n this.existingSystemCodes = systemLevel.myCodeGroups;\r\n if (this.id) {\r\n this.manageSystemCodesService.getAllCodesForProcessConfiguration(this.id).then(\r\n (codeGroups) => {\r\n this.existingSystemCodes = this.existingSystemCodes.concat(codeGroups);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private loadAllScheduledResources(): void {\r\n this.manageScheduledResourcesService.getAllScheduledResourcesForProcessConfiguration(this.id).then(\r\n (scheduledResources) => {\r\n this.existingScheduledResources = scheduledResources;\r\n });\r\n }\r\n\r\n private saveSucceeded(): void {\r\n this.existingScheduledResources.push(this.newScheduledResource);\r\n this.newScheduledResource = undefined;\r\n this.newScheduledResourceName = \"\";\r\n }\r\n \r\n private showModal(scheduledResource: Wars.Domain.Model.ScheduledResourceConfiguration) { // Just provide a template URL, a controller and call 'showModal'.\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/_scheduledResourceEditModal.html\",\r\n controller: \"editScheduledResourceModalController\",\r\n inputs: {\r\n scheduledResource: scheduledResource\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n this.manageScheduledResourcesService.saveAllChanges();\r\n } else {\r\n this.manageScheduledResourcesService.rejectChanges();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ManageSecurityMatrixModel {\r\n public securityMatrixs: Wars.Domain.Model.SecurityMatrix[];\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n public selectedSecurityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public sortBy: string = 'name';\r\n public search: any;\r\n\r\n private isSystemLevel: boolean;\r\n\r\n constructor(\r\n public processConfigurationId: string,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private processConfigurationService: services.ProcessConfigurationService)\r\n {\r\n this.search = {\r\n name: ''\r\n }\r\n\r\n if (processConfigurationId) {\r\n this.isSystemLevel = false;\r\n processConfigurationService.getById(processConfigurationId).then(p => {\r\n this.processConfiguration = p;\r\n });\r\n this.securityMatrixService.getProcessConfigurationSecurityMatrices(processConfigurationId)\r\n .then(r => {\r\n this.securityMatrixs = r;\r\n });\r\n } else {\r\n this.isSystemLevel = true;\r\n this.systemLevelService.getSystemLevelSecurityMatrices()\r\n .then(r => {\r\n this.systemLevel = r;\r\n this.securityMatrixs = r.mySecurityMatrices;\r\n });\r\n }\r\n }\r\n\r\n public save() {\r\n this.securityMatrixService.saveAllChanges();\r\n }\r\n\r\n public addSecurityRow() {\r\n this.selectedSecurityMatrix = this.securityMatrixService.createSecurityRow(this.isSystemLevel);\r\n this.addMatrix();\r\n }\r\n\r\n public addSecurityRowWithSubTypes() {\r\n this.selectedSecurityMatrix = this.securityMatrixService.createSecurityRowWithSubTypes(this.isSystemLevel);\r\n this.addMatrix();\r\n }\r\n\r\n public addAdvancedSecurityMatrix() {\r\n this.selectedSecurityMatrix = this.securityMatrixService.createAdvancedSecurityMatrix(this.isSystemLevel);\r\n this.addMatrix();\r\n }\r\n\r\n public delete() {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"SecurityMatrix\",\r\n this.selectedSecurityMatrix.id,\r\n \"Security Matrix\",\r\n () => {\r\n this.securityMatrixs.remove(this.selectedSecurityMatrix);\r\n this.selectedSecurityMatrix = null;\r\n });\r\n }\r\n\r\n private addMatrix() {\r\n this.selectedSecurityMatrix.name = '';\r\n if (this.systemLevel) {\r\n this.selectedSecurityMatrix.systemLevel = this.systemLevel;\r\n this.selectedSecurityMatrix.systemLevel_id = this.systemLevel.id;\r\n this.selectedSecurityMatrix.isSystemLevel = true;\r\n } else {\r\n this.selectedSecurityMatrix.processConfiguration_id = this.processConfigurationId;\r\n this.selectedSecurityMatrix.isSystemLevel = false;\r\n }\r\n\r\n this.securityMatrixs.push(this.selectedSecurityMatrix);\r\n this.securityMatrixService.saveAllChanges();\r\n }\r\n\r\n public addSecurityMatrix() {\r\n this.selectedSecurityMatrix = this.securityMatrixService.createSecurityMatrix(this.isSystemLevel);\r\n this.addMatrix();\r\n }\r\n\r\n public viewSecurityMatrix(matrix: Wars.Domain.Model.SecurityMatrix): void {\r\n this.securityMatrixService.openViewSecurityMatrixModal(matrix.id);\r\n }\r\n\r\n public copySecurityMatrix(matrix: Wars.Domain.Model.SecurityMatrix): void {\r\n var newSecurityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n\r\n switch (matrix.matrixType) {\r\n case Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrReadOnlyOrUpdateable:\r\n newSecurityMatrix = this.securityMatrixService.createAdvancedSecurityMatrix(this.isSystemLevel, matrix.alwaysVisible);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrShow:\r\n newSecurityMatrix = this.securityMatrixService.createSecurityMatrix(this.isSystemLevel, matrix.alwaysVisible);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRow:\r\n newSecurityMatrix = this.securityMatrixService.createSecurityRow(this.isSystemLevel, matrix.alwaysVisible);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRowWithSubType:\r\n newSecurityMatrix = this.securityMatrixService.createSecurityRowWithSubTypes(this.isSystemLevel, matrix.alwaysVisible);\r\n break;\r\n }\r\n \r\n newSecurityMatrix.alwaysVisible = matrix.alwaysVisible;\r\n newSecurityMatrix.usesAnotherSecurityMatrix = matrix.usesAnotherSecurityMatrix;\r\n newSecurityMatrix.reusedSecurityMatrix = matrix.reusedSecurityMatrix;\r\n newSecurityMatrix.securityMatrix_id = matrix.securityMatrix_id;\r\n newSecurityMatrix.name = matrix.name + ' (Copy)';\r\n newSecurityMatrix.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newSecurityMatrix.systemLevel_id = matrix.systemLevel_id;\r\n newSecurityMatrix.systemLevel = matrix.systemLevel;\r\n newSecurityMatrix.processConfiguration = matrix.processConfiguration;\r\n newSecurityMatrix.processConfiguration_id = matrix.processConfiguration_id;\r\n newSecurityMatrix.claimTreeItemsJson = matrix.claimTreeItemsJson;\r\n newSecurityMatrix.matrixJson = matrix.matrixJson;\r\n newSecurityMatrix.condition = matrix.condition;\r\n newSecurityMatrix.condition_id = matrix.condition_id;\r\n\r\n this.save();\r\n\r\n this.selectedSecurityMatrix = newSecurityMatrix;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class StaticDocumentsModel {\r\n public staticDocument: Wars.Domain.Model.StaticDocument;\r\n public systemLevel: Wars.Domain.Model.SystemLevel;\r\n public staticDocuments: Array;\r\n public fileUploadModel: models.FileUploadModel;\r\n public uploadedFiles: Wars.Domain.Model.Dtos.DocumentDto[];\r\n public name: string;\r\n public description: string;\r\n public newStaticDocument: boolean;\r\n public processConfigurationId: string;\r\n\r\n public constructor(\r\n private manageStaticDocumentsService: services.ManageStaticDocumentsService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private growl: angular.growl.IGrowlService,\r\n private $routeParams: angular.route.IRouteParamsService)\r\n {\r\n this.newStaticDocument = false;\r\n this.staticDocuments = [];\r\n this.uploadedFiles = [];\r\n\r\n this.processConfigurationId = $routeParams[\"id\"];\r\n\r\n if (this.processConfigurationId) {\r\n manageStaticDocumentsService.getStaticDocumentsForProcessConfiguration(this.processConfigurationId).then(d => {\r\n this.staticDocuments = d;\r\n });\r\n } else {\r\n systemLevelService.getSystemLevelStaticDocuments().then(\r\n (systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n this.staticDocuments = systemLevel.myStaticDocuments;\r\n });\r\n }\r\n }\r\n\r\n public addStaticDocument() {\r\n this.newStaticDocument = true;\r\n this.fileUploadModel = new models.FileUploadModel();\r\n if (this.processConfigurationId) {\r\n this.fileUploadModel.processConfigId = this.processConfigurationId;\r\n } else {\r\n this.fileUploadModel.systemLevelId = this.systemLevel.id;\r\n }\r\n this.uploadedFiles = [];\r\n this.name = '';\r\n this.description = '';\r\n }\r\n\r\n public removeStaticDocument(staticDocument: Wars.Domain.Model.StaticDocument) {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"StaticDocument\",\r\n staticDocument.id,\r\n \"Static Document Successfully Deleted\",\r\n () => {\r\n this.staticDocuments.remove(staticDocument);\r\n },\r\n \"Static Document Could not be Deleted\");\r\n }\r\n\r\n public add() {\r\n this.staticDocument.name = this.name;\r\n this.staticDocument.descriptiveComment = this.description;\r\n\r\n if (!this.staticDocument.name) {\r\n this.growl.error(\"Please enter a name for this Static Document\", { ttl: 5000 });\r\n }\r\n else {\r\n if (this.processConfigurationId) {\r\n this.staticDocument.processConfiguration_id = this.processConfigurationId;\r\n } else {\r\n this.staticDocument.systemLevel_id = this.systemLevel.id;\r\n }\r\n\r\n this.manageStaticDocumentsService.saveAllChanges(() => {\r\n this.staticDocuments.push(this.staticDocument);\r\n this.newStaticDocument = false;\r\n });\r\n }\r\n }\r\n\r\n public cancel() {\r\n this.manageStaticDocumentsService.rejectChanges();\r\n }\r\n\r\n public save() {\r\n var changes = this.manageStaticDocumentsService.getChanges(\"StaticDocument\");\r\n var anyMissingNames = Enumerable.from(changes).any(i => !i.name);\r\n if (anyMissingNames) {\r\n this.growl.error(\"Please enter a name for this Static Document\", { ttl: 5000 });\r\n } else {\r\n this.manageStaticDocumentsService.saveAllChanges();\r\n }\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n declare var emailSystemActionSelf: EmailSystemActionsModel;\r\n\r\n export class EmailSystemActionsModel {\r\n private logType: string = \"EmailSystemActionsModel\";\r\n\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n public emailConfigurations: Array;\r\n public selectedEmailConfiguration: Wars.Domain.Model.EmailConfiguration;\r\n public isEditing: boolean;\r\n public editingNew: boolean;\r\n public showTinyMce: boolean;\r\n public editingExisting: boolean;\r\n public showAttachments: boolean;\r\n public showCarbonCopy: boolean;\r\n public showBlindCarbonCopy: boolean;\r\n public disableReceipientValue: boolean;\r\n public tinyMceOptions: any;\r\n public subjectTinyMceOptions: any;\r\n public currentWarsData: any;\r\n public currentTreeItem: models.TreeConfigurationItem;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public documentTags: any;\r\n public recipientTags: any;\r\n public recipient: any;\r\n public carbonCopyTags: any;\r\n public carbonCopy: any;\r\n public blindCarbonCopiesTags: any;\r\n public blindCarbonCopy: any;\r\n public staticDocuments: Array;\r\n public isSystemLevel: boolean;\r\n private modalService: any;\r\n public pages: Wars.Domain.Model.Dtos.ContentPageDto[];\r\n public activeProcessTypes: Wars.Domain.Model.ProcessType[];\r\n\r\n constructor(\r\n private scope: angular.IScope,\r\n private growlService: angular.growl.IGrowlService,\r\n private processConfigurationId: string,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private treeService: services.TreeService,\r\n private treeItemService: services.TreeItemService,\r\n private manageStaticDocumentsService: services.ManageStaticDocumentsService,\r\n private systemLevelService: services.SystemLevelService,\r\n private emailConfigurationService: services.EmailConfigurationService,\r\n private deleteService: services.DeleteService,\r\n private contentPageService: warsApp.services.ContentPageService,\r\n private processTypeService: services.ProcessTypeService,\r\n private formService: services.FormService,\r\n modalService: any\r\n ) {\r\n (scope).getSelectedNode = function (data: models.TreeConfigurationItem) {\r\n console.info(data);\r\n emailSystemActionSelf.currentTreeItem = data;\r\n }\r\n\r\n emailSystemActionSelf = this;\r\n emailSystemActionSelf.showTinyMce = false;\r\n emailSystemActionSelf.showAttachments = true;\r\n emailSystemActionSelf.showCarbonCopy = true;\r\n emailSystemActionSelf.showBlindCarbonCopy = true;\r\n emailSystemActionSelf.disableReceipientValue = false;\r\n emailSystemActionSelf.modalService = modalService;\r\n emailSystemActionSelf.contentPageService = contentPageService;\r\n\r\n emailSystemActionSelf.contentPageService.getContentPagesForConfiguration()\r\n .then(pages => {\r\n emailSystemActionSelf.pages = pages;\r\n });\r\n\r\n emailSystemActionSelf.processTypeService.getActiveProcessTypes().then(result => {\r\n emailSystemActionSelf.activeProcessTypes = result;\r\n });\r\n\r\n if (emailSystemActionSelf.processConfigurationId) {\r\n formService.getProcessConfigurationContainers(emailSystemActionSelf.processConfigurationId).then((processContainers) => {\r\n var forms = [];\r\n processContainers.forEach(f => {\r\n var form = {\r\n title: f.name,\r\n value: '{{GetBaseUrl}}/#/Process/{{ProcessId}}/Form/' + f.uniqueIdentifier\r\n }\r\n forms.push(form);\r\n });\r\n\r\n manageStaticDocumentsService.getStaticDocumentsForProcessConfiguration(this.processConfigurationId).then(d => {\r\n emailSystemActionSelf.showTinyMce = true;\r\n emailSystemActionSelf.staticDocuments = d;\r\n emailSystemActionSelf.isSystemLevel = false;\r\n\r\n var images = [];\r\n emailSystemActionSelf.staticDocuments.forEach(i => {\r\n var image = {\r\n title: i.fileName,\r\n value: '{{GetBaseUrl}}/api/Document/StaticDocument/' + i.id\r\n }\r\n images.push(image);\r\n });\r\n\r\n this.tinyMceOptions = {\r\n format: 'raw',\r\n menubar: false,\r\n height: 500,\r\n plugins: \"noneditable, link, image, imagetools, preview, code\",\r\n imagetools_toolbar: \"rotateleft rotateright | flipv fliph | editimage imageoptions\",\r\n content_css: \"content/mce.css\",\r\n toolbar1: 'insertfield | addlink | destinationLink | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link | image | preview | code',\r\n //relative_urls: false,\r\n //remove_script_host: false,\r\n //document_base_url: localStorage.getItem('baseUrl'),\r\n image_list: images,\r\n link_list: forms,\r\n external_image_list_url: images,\r\n setup: function (editor) {\r\n editor.addButton('insertfield', {\r\n text: 'Insert Field',\r\n icon: false,\r\n onclick: function () {\r\n if (!emailSystemActionSelf.currentTreeItem) {\r\n emailSystemActionSelf.growlService.error('A field must be selected on the tree before you can insert a field.');\r\n } else {\r\n var treeItem = emailSystemActionSelf.treeService.createTreeItemFromConfig(emailSystemActionSelf.currentTreeItem, () => {\r\n treeItem.emailBinding = emailSystemActionSelf.selectedEmailConfiguration;\r\n emailSystemActionSelf.selectedEmailConfiguration.bindings.push(treeItem);\r\n emailSystemActionSelf.saveChanges(() => {\r\n editor.insertContent(\"\" + emailSystemActionSelf.treeService.getDisplayName(treeItem) + \"\");\r\n });\r\n });\r\n }\r\n }\r\n });\r\n\r\n editor.addButton('addlink', {\r\n text: 'Link to Page',\r\n type: 'menubutton',\r\n icon: false,\r\n menu: [\r\n {\r\n text: 'Link to Static Page',\r\n onclick: function () {\r\n emailSystemActionSelf.modalService.showModal({\r\n templateUrl: \"./app/views/modals/contentPageStaticLinkModal.html\",\r\n controller: \"contentPageStaticLinkModalController\",\r\n inputs: {\r\n contentPages: emailSystemActionSelf.pages\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n editor.insertContent('Link to ' + result.title + '');\r\n }\r\n });\r\n });\r\n }\r\n },\r\n {\r\n text: 'Link to Process', //Link to New Process\r\n onclick: function () {\r\n editor.insertContent('Link to Process'); //Link to New Process\r\n }\r\n },\r\n {\r\n text: 'Link to Home Page',\r\n onclick: function () {\r\n editor.insertContent('Link to Home Page');\r\n }\r\n }\r\n ]\r\n });\r\n\r\n editor.addButton('destinationLink', {\r\n text: 'Future Status/State',\r\n type: 'menubutton',\r\n icon: false,\r\n menu: [\r\n {\r\n text: 'Destination Status',\r\n onclick() {\r\n editor.insertContent('{{DestinationStatus}}');\r\n }\r\n },\r\n {\r\n text: 'Destination State',\r\n onclick() {\r\n editor.insertContent('{{DestinationState}}');\r\n }\r\n }\r\n ]\r\n });\r\n\r\n services.WarsLogger.logDebug(\"Editor Object\", this.logType, editor);\r\n }\r\n };\r\n });\r\n });\r\n\r\n processConfigurationService.getProcessConfigurationExpandFieldsAndEmailConfigs(processConfigurationId).then(\r\n (appConfig) => {\r\n this.processConfiguration = appConfig;\r\n });\r\n emailConfigurationService.getAllEmailConfigurationsByProcessId(processConfigurationId).then(\r\n (emailConfigs) => {\r\n this.emailConfigurations = emailConfigs;\r\n });\r\n } else {\r\n systemLevelService.getSystemLevelFormContainerAssociations().then(\r\n (systemLevel) => {\r\n var forms = [];\r\n systemLevel.myFormContainerAssociations.forEach(f => {\r\n var form = {\r\n title: f.name,\r\n value: '{{GetBaseUrl}}/#/Process/{{ProcessId}}/{{FormContainerAssociationId}}/' + f.id\r\n }\r\n forms.push(form);\r\n });\r\n\r\n systemLevelService.getSystemLevelStaticDocuments().then(\r\n (systemLevel) => {\r\n emailSystemActionSelf.systemLevel = systemLevel;\r\n emailSystemActionSelf.showTinyMce = true;\r\n emailSystemActionSelf.staticDocuments = systemLevel.myStaticDocuments;\r\n emailSystemActionSelf.isSystemLevel = true;\r\n\r\n var images = [];\r\n emailSystemActionSelf.staticDocuments.forEach(i => {\r\n var image = {\r\n title: i.fileName,\r\n value: '{{GetBaseUrl}}/api/Document/StaticDocument/' + i.id\r\n }\r\n images.push(image);\r\n });\r\n\r\n this.tinyMceOptions = {\r\n format: 'raw',\r\n menubar: false,\r\n height: 500,\r\n plugins: \"noneditable, link, image, imagetools, preview, code\",\r\n imagetools_toolbar: \"rotateleft rotateright | flipv fliph | editimage imageoptions\",\r\n content_css: \"content/mce.css\",\r\n toolbar1: 'insertfield | addlink | destinationLink | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link | image | preview | code',\r\n //relative_urls: false,\r\n //remove_script_host: false,\r\n //document_base_url: localStorage.getItem('baseUrl'),\r\n link_list: forms,\r\n image_list: images,\r\n external_image_list_url: images,\r\n setup: function (editor) {\r\n editor.addButton('insertfield', {\r\n text: 'Insert Field',\r\n icon: false,\r\n onclick: function () {\r\n if (!emailSystemActionSelf.currentTreeItem) {\r\n emailSystemActionSelf.growlService.error('A field must be selected on the tree before you can insert a field.');\r\n } else {\r\n var treeItem = emailSystemActionSelf.treeService.createTreeItemFromConfig(emailSystemActionSelf.currentTreeItem, () => {\r\n treeItem.emailBinding = emailSystemActionSelf.selectedEmailConfiguration;\r\n emailSystemActionSelf.selectedEmailConfiguration.bindings.push(treeItem);\r\n emailSystemActionSelf.saveChanges(() => {\r\n editor.insertContent(\"\" + emailSystemActionSelf.treeService.getDisplayName(treeItem) + \"\");\r\n });\r\n });\r\n }\r\n }\r\n });\r\n\r\n editor.addButton('addlink', {\r\n text: 'Link to Page',\r\n type: 'menubutton',\r\n icon: false,\r\n menu: [\r\n {\r\n text: 'Link to Static Page',\r\n onclick: function () {\r\n emailSystemActionSelf.modalService.showModal({\r\n templateUrl: \"./app/views/modals/contentPageStaticLinkModal.html\",\r\n controller: \"contentPageStaticLinkModalController\",\r\n inputs: {\r\n contentPages: emailSystemActionSelf.pages\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n editor.insertContent('Link to ' + result.title + '');\r\n }\r\n });\r\n });\r\n }\r\n },\r\n {\r\n text: 'Link to Process',\r\n onclick: function () {\r\n emailSystemActionSelf.modalService.showModal({\r\n templateUrl: \"./app/views/modals/contentPageProcessLinkModal.html\",\r\n controller: \"contentPageProcessLinkModalController\",\r\n inputs: {\r\n activeProcessTypes: emailSystemActionSelf.activeProcessTypes\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n editor.insertContent('Link to ' + result.name + '');\r\n }\r\n });\r\n });\r\n }\r\n },\r\n {\r\n text: 'Link to Home Page',\r\n onclick: function () {\r\n editor.insertContent('Link to Home Page');\r\n }\r\n }\r\n ]\r\n });\r\n\r\n editor.addButton('destinationLink', {\r\n text: 'Future Status/State',\r\n type: 'menubutton',\r\n icon: false,\r\n menu: [\r\n {\r\n text: 'Destination Status',\r\n onclick() {\r\n editor.insertContent('{{DestinationStatus}}');\r\n }\r\n },\r\n {\r\n text: 'Destination State',\r\n onclick() {\r\n editor.insertContent('{{DestinationState}}');\r\n }\r\n }\r\n ]\r\n });\r\n\r\n services.WarsLogger.logDebug(\"Editor Object\", this.logType, editor);\r\n }\r\n };\r\n });\r\n });\r\n\r\n systemLevelService.getSystemEmailConfigurations().then(\r\n (systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n this.emailConfigurations = systemLevel.myEmailConfigurations;\r\n });\r\n }\r\n\r\n this.subjectTinyMceOptions = {\r\n format: 'raw',\r\n menubar: false,\r\n height: 25,\r\n plugins: \"noneditable, preview, code\",\r\n content_css: \"content/mce.css\",\r\n toolbar1: 'insertfield | destinationLink | undo redo | preview | code',\r\n charLimit: 512,\r\n setup: function (editor) {\r\n editor.addButton('insertfield', {\r\n text: 'Insert Field',\r\n icon: false,\r\n onclick: function () {\r\n if (!emailSystemActionSelf.currentTreeItem) {\r\n emailSystemActionSelf.growlService.error('A field must be selected on the tree before you can insert a field.');\r\n } else {\r\n var treeItem = emailSystemActionSelf.treeService.createTreeItemFromConfig(emailSystemActionSelf.currentTreeItem, () => {\r\n treeItem.emailBinding = emailSystemActionSelf.selectedEmailConfiguration;\r\n emailSystemActionSelf.selectedEmailConfiguration.bindings.push(treeItem);\r\n emailSystemActionSelf.saveChanges(() => {\r\n editor.insertContent(\"\" + emailSystemActionSelf.treeService.getDisplayName(treeItem) + \"\");\r\n });\r\n });\r\n }\r\n }\r\n });\r\n\r\n editor.addButton('destinationLink', {\r\n text: 'Future Status/State',\r\n type: 'menubutton',\r\n icon: false,\r\n menu: [\r\n {\r\n text: 'Destination Status',\r\n onclick() {\r\n editor.insertContent('{{DestinationStatus}}');\r\n }\r\n },\r\n {\r\n text: 'Destination State',\r\n onclick() {\r\n editor.insertContent('{{DestinationState}}');\r\n }\r\n }\r\n ]\r\n });\r\n\r\n services.WarsLogger.logDebug(\"Editor Object\", this.logType, editor);\r\n }\r\n };\r\n\r\n this.documentTags = [];\r\n this.recipientTags = [];\r\n this.carbonCopyTags = [];\r\n this.blindCarbonCopiesTags = [];\r\n }\r\n\r\n public addEmail() {\r\n this.documentTags = [];\r\n this.recipientTags = [];\r\n this.carbonCopyTags = [];\r\n this.blindCarbonCopiesTags = [];\r\n\r\n var newEmail = this.emailConfigurationService.createEmailConfiguration();\r\n if (this.processConfigurationId) {\r\n newEmail.processConfiguration_id = this.processConfigurationId;\r\n } else {\r\n newEmail.systemLevel_id = this.systemLevel.id;\r\n newEmail.mySystemLevel = this.systemLevel;\r\n }\r\n newEmail.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n this.saveChanges(() => {\r\n this.emailConfigurations.push(newEmail);\r\n this.selectedEmailConfiguration = newEmail;\r\n this.isEditing = true;\r\n this.editingNew = true;\r\n this.editingExisting = false;\r\n });\r\n }\r\n\r\n private pushTags(tags: any, treeItem: Wars.Domain.Model.TreeItem) {\r\n if (!treeItem.isClaimWithValue) {\r\n if (treeItem.claim !== null) {\r\n tags.push({ id: treeItem.id, text: treeItem.claim.type });\r\n }\r\n else {\r\n tags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n } else {\r\n if (treeItem.constantValue_id) {\r\n tags.push({ id: treeItem.id, text: treeItem.claim.type + '-' + treeItem.constantValue.name }); \r\n } else if (treeItem.calculation_id) {\r\n tags.push({ id: treeItem.id, text: treeItem.claim.type + '-' + treeItem.calculation.name });\r\n } else if (treeItem.queryConfiguration_id) {\r\n tags.push({ id: treeItem.id, text: treeItem.claim.type + '-' + treeItem.queryConfiguration.name });\r\n } else if (treeItem.schemaProperty_id) {\r\n tags.push({ id: treeItem.id, text: treeItem.claim.type + '-' + treeItem.schemaProperty.name });\r\n }\r\n }\r\n }\r\n\r\n private createDocumentTags(treeItem: Wars.Domain.Model.TreeItem) {\r\n if (treeItem.staticDocument_id !== null) {\r\n this.documentTags.push({ id: treeItem.id, text: treeItem.staticDocument.name });\r\n } else if (treeItem.schemaProperty_id !== null) {\r\n this.documentTags.push({ id: treeItem.id, text: treeItem.schemaProperty.name });\r\n }\r\n }\r\n\r\n public configureEmail(emailConfig: Wars.Domain.Model.EmailConfiguration) {\r\n this.isEditing = true;\r\n this.editingExisting = true;\r\n this.editingNew = false;\r\n this.selectedEmailConfiguration = emailConfig;\r\n this.documentTags = [];\r\n this.recipientTags = [];\r\n this.carbonCopyTags = [];\r\n this.blindCarbonCopiesTags = [];\r\n\r\n emailConfig.documents.forEach(d => {\r\n this.createDocumentTags(d);\r\n });\r\n emailConfig.recipients.forEach(r => {\r\n this.pushTags(this.recipientTags, r);\r\n });\r\n emailConfig.carbonCopies.forEach(c => {\r\n this.pushTags(this.carbonCopyTags, c);\r\n });\r\n emailConfig.blindCarbonCopies.forEach(b => {\r\n this.pushTags(this.blindCarbonCopiesTags, b);\r\n });\r\n }\r\n\r\n public deleteEmail(emailConfig: Wars.Domain.Model.EmailConfiguration): void {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"EmailConfiguration\",\r\n emailConfig.id,\r\n \"Email Configuration Successfully Deleted\",\r\n () => {\r\n if (emailConfig.id === this.selectedEmailConfiguration.id) {\r\n this.isEditing = false;\r\n }\r\n this.emailConfigurations.remove(emailConfig);\r\n },\r\n \"Email Configuration Could not be Deleted\");\r\n }\r\n\r\n public close() {\r\n this.isEditing = false;\r\n this.editingNew = false;\r\n this.editingExisting = false;\r\n }\r\n\r\n public getSelectedNode(data: models.TreeConfigurationItem) {\r\n console.info(data);\r\n emailSystemActionSelf.currentTreeItem = data;\r\n }\r\n\r\n public saveChanges(callback: () => void) {\r\n this.emailConfigurationService.saveAllChanges(callback);\r\n }\r\n\r\n public onDropAttachmentTreeItem($event) {\r\n var droppedTreeItem = this.treeService.getTreeConfigurationItem();\r\n if (!droppedTreeItem.staticDocumentId && !droppedTreeItem.schemaPropertyId) {\r\n emailSystemActionSelf.growlService.error(\"This item is not valid for this drop zone.\");\r\n return;\r\n }\r\n //TODO - Kevin look inside the create tree item and modify where I am wiring up static doc id to also look at schema property id\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n treeItem.emailConfiguration_id = this.selectedEmailConfiguration.id;\r\n treeItem.emailConfiguration = this.selectedEmailConfiguration;\r\n treeItem.variableType = Wars.Domain.Model.Codes.Enums.VariableType.Document;\r\n\r\n this.selectedEmailConfiguration.documents.push(treeItem);\r\n this.saveChanges(null);\r\n\r\n this.createDocumentTags(treeItem);\r\n }\r\n\r\n public onDropEmailRecipientToTreeItem($event) {\r\n var droppedTreeItem = this.treeService.getTreeConfigurationItem();\r\n if (droppedTreeItem.variableType !== Wars.Domain.Model.Codes.Enums.VariableType.User &&\r\n !droppedTreeItem.claimId &&\r\n !droppedTreeItem.emailGroupId &&\r\n !droppedTreeItem.claimGroupId &&\r\n !droppedTreeItem.schemaPropertyId &&\r\n !droppedTreeItem.relatedClaimProcessTypeId) {\r\n emailSystemActionSelf.growlService.error(\"This item is not valid for this drop zone.\");\r\n return;\r\n }\r\n if (!droppedTreeItem.isClaimWithValue) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n treeItem.emailRecipient_id = this.selectedEmailConfiguration.id;\r\n treeItem.emailRecipient = this.selectedEmailConfiguration;\r\n\r\n this.selectedEmailConfiguration.recipients.push(treeItem);\r\n if (treeItem.claim !== null) {\r\n this.recipientTags.push({ id: treeItem.id, text: treeItem.claim.type });\r\n }\r\n else if (treeItem.emailGroup !== null) {\r\n this.recipientTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.User) {\r\n this.recipientTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.claimGroup !== null) {\r\n this.recipientTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.schemaProperty !== null) {\r\n this.recipientTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.relatedClaimProcessType_id !== null) {\r\n this.recipientTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n this.saveChanges(null);\r\n } else {\r\n this.recipient = droppedTreeItem;\r\n }\r\n }\r\n\r\n public onDropEmailRecipientValueToTreeItem($event) {\r\n var droppedTreeItem = this.treeService.getTreeConfigurationItem();\r\n\r\n if (!(droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Code\r\n || droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.String\r\n || droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Integer)) {\r\n emailSystemActionSelf.growlService.error(\"This item is not valid for this drop zone.\");\r\n return;\r\n }\r\n\r\n var claimTreeItem = this.treeService.createTreeItemFromConfig(this.recipient);\r\n claimTreeItem.emailRecipient_id = this.selectedEmailConfiguration.id;\r\n claimTreeItem.emailRecipient = this.selectedEmailConfiguration;\r\n\r\n if (droppedTreeItem.constantId) {\r\n claimTreeItem.constantValue_id = droppedTreeItem.constantId;\r\n this.recipientTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.constantValue.name });\r\n } else if (droppedTreeItem.calculationId) {\r\n claimTreeItem.calculation_id = droppedTreeItem.calculationId;\r\n this.recipientTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.calculation.name });\r\n } else if (droppedTreeItem.queryId) {\r\n claimTreeItem.queryConfiguration_id = droppedTreeItem.queryId;\r\n this.recipientTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.queryConfiguration.name });\r\n } else if (droppedTreeItem.schemaPropertyId) {\r\n claimTreeItem.schemaProperty_id = droppedTreeItem.schemaPropertyId;\r\n this.recipientTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.schemaProperty.name });\r\n }\r\n claimTreeItem.claimWithValueIsSystemLevel = droppedTreeItem.isSystemLevel;\r\n this.selectedEmailConfiguration.recipients.push(claimTreeItem);\r\n this.recipient = null;\r\n this.saveChanges(null);\r\n }\r\n\r\n public onDropEmailCarbonCopyToTreeItem($event) {\r\n var droppedTreeItem = this.treeService.getTreeConfigurationItem();\r\n if (droppedTreeItem.variableType !== Wars.Domain.Model.Codes.Enums.VariableType.User &&\r\n !droppedTreeItem.claimId &&\r\n !droppedTreeItem.emailGroupId &&\r\n !droppedTreeItem.claimGroupId &&\r\n !droppedTreeItem.schemaPropertyId &&\r\n !droppedTreeItem.relatedClaimProcessTypeId)\r\n {\r\n emailSystemActionSelf.growlService.error(\"This item is not valid for this drop zone.\");\r\n return;\r\n }\r\n if (!droppedTreeItem.isClaimWithValue) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n treeItem.emailCarbonCopy_id = this.selectedEmailConfiguration.id;\r\n treeItem.emailCarbonCopy = this.selectedEmailConfiguration;\r\n\r\n this.selectedEmailConfiguration.carbonCopies.push(treeItem);\r\n\r\n if (treeItem.claim !== null) {\r\n this.carbonCopyTags.push({ id: treeItem.id, text: treeItem.claim.type });\r\n } else if (treeItem.emailGroup !== null) {\r\n this.carbonCopyTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.User) {\r\n this.carbonCopyTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.claimGroup !== null) {\r\n this.carbonCopyTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.schemaProperty !== null) {\r\n this.carbonCopyTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.relatedClaimProcessType_id !== null) {\r\n this.carbonCopyTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n this.saveChanges(null);\r\n } else {\r\n this.carbonCopy = droppedTreeItem;\r\n }\r\n }\r\n\r\n public onDropEmailCarbonCopyValueToTreeItem($event) {\r\n var droppedTreeItem = this.treeService.getTreeConfigurationItem();\r\n\r\n if (!(droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Code\r\n || droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.String\r\n || droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Integer)) {\r\n emailSystemActionSelf.growlService.error(\"This item is not valid for this drop zone.\");\r\n return;\r\n }\r\n\r\n var claimTreeItem = this.treeService.createTreeItemFromConfig(this.carbonCopy);\r\n claimTreeItem.emailCarbonCopy_id = this.selectedEmailConfiguration.id;\r\n claimTreeItem.emailCarbonCopy = this.selectedEmailConfiguration;\r\n\r\n if (droppedTreeItem.constantId) {\r\n claimTreeItem.constantValue_id = droppedTreeItem.constantId;\r\n this.carbonCopyTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.constantValue.name });\r\n } else if (droppedTreeItem.calculationId) {\r\n claimTreeItem.calculation_id = droppedTreeItem.calculationId;\r\n this.carbonCopyTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.calculation.name });\r\n } else if (droppedTreeItem.queryId) {\r\n claimTreeItem.queryConfiguration_id = droppedTreeItem.queryId;\r\n this.carbonCopyTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.queryConfiguration.name });\r\n } else if (droppedTreeItem.schemaPropertyId) {\r\n claimTreeItem.schemaProperty_id = droppedTreeItem.schemaPropertyId;\r\n this.carbonCopyTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.schemaProperty.name });\r\n }\r\n claimTreeItem.claimWithValueIsSystemLevel = droppedTreeItem.isSystemLevel;\r\n this.selectedEmailConfiguration.carbonCopies.push(claimTreeItem);\r\n this.carbonCopy = null;\r\n this.saveChanges(null);\r\n }\r\n\r\n public onDropEmailBlindCarbonCopyToTreeItem($event) {\r\n var droppedTreeItem = this.treeService.getTreeConfigurationItem();\r\n if (droppedTreeItem.variableType !== Wars.Domain.Model.Codes.Enums.VariableType.User &&\r\n !droppedTreeItem.claimId &&\r\n !droppedTreeItem.emailGroupId &&\r\n !droppedTreeItem.claimGroupId &&\r\n !droppedTreeItem.relatedClaimProcessTypeId)\r\n {\r\n emailSystemActionSelf.growlService.error(\"This item is not valid for this drop zone.\");\r\n return;\r\n }\r\n if (!droppedTreeItem.isClaimWithValue) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n treeItem.emailBlindCarbonCopy_id = this.selectedEmailConfiguration.id;\r\n treeItem.emailBlindCarbonCopy = this.selectedEmailConfiguration;\r\n\r\n this.selectedEmailConfiguration.blindCarbonCopies.push(treeItem);\r\n if (treeItem.claim !== null) {\r\n this.blindCarbonCopiesTags.push({ id: treeItem.id, text: treeItem.claim.type });\r\n } else if (treeItem.emailGroup !== null) {\r\n this.blindCarbonCopiesTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.User) {\r\n this.blindCarbonCopiesTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.claimGroup !== null) {\r\n this.blindCarbonCopiesTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.schemaProperty !== null) {\r\n this.blindCarbonCopiesTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n else if (treeItem.relatedClaimProcessType_id !== null) {\r\n this.blindCarbonCopiesTags.push({ id: treeItem.id, text: this.treeService.getDisplayName(treeItem) });\r\n }\r\n this.saveChanges(null);\r\n } else {\r\n this.blindCarbonCopy = droppedTreeItem;\r\n }\r\n }\r\n\r\n public onDropEmailBlindCarbonCopyValueToTreeItem($event) {\r\n var droppedTreeItem = this.treeService.getTreeConfigurationItem();\r\n\r\n if (!(droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Code\r\n || droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.String\r\n || droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Integer)) {\r\n emailSystemActionSelf.growlService.error(\"This item is not valid for this drop zone.\");\r\n return;\r\n }\r\n\r\n var claimTreeItem = this.treeService.createTreeItemFromConfig(this.blindCarbonCopy);\r\n claimTreeItem.emailBlindCarbonCopy_id = this.selectedEmailConfiguration.id;\r\n claimTreeItem.emailBlindCarbonCopy = this.selectedEmailConfiguration;\r\n\r\n if (droppedTreeItem.constantId) {\r\n claimTreeItem.constantValue_id = droppedTreeItem.constantId;\r\n this.blindCarbonCopiesTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.constantValue.name });\r\n } else if (droppedTreeItem.calculationId) {\r\n claimTreeItem.calculation_id = droppedTreeItem.calculationId;\r\n this.blindCarbonCopiesTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.calculation.name });\r\n } else if (droppedTreeItem.queryId) {\r\n claimTreeItem.queryConfiguration_id = droppedTreeItem.queryId;\r\n this.blindCarbonCopiesTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.queryConfiguration.name });\r\n } else if (droppedTreeItem.schemaPropertyId) {\r\n claimTreeItem.schemaProperty_id = droppedTreeItem.schemaPropertyId;\r\n this.blindCarbonCopiesTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.schemaProperty.name });\r\n } else if (droppedTreeItem.claimGroupId) {\r\n claimTreeItem.claimGroup_id = droppedTreeItem.claimGroupId;\r\n this.recipientTags.push({ id: claimTreeItem.id, text: claimTreeItem.claim.type + '-' + claimTreeItem.claimGroup.name });\r\n }\r\n claimTreeItem.claimWithValueIsSystemLevel = droppedTreeItem.isSystemLevel;\r\n this.selectedEmailConfiguration.blindCarbonCopies.push(claimTreeItem);\r\n this.blindCarbonCopy = null;\r\n this.saveChanges(null);\r\n }\r\n\r\n public removeRecipient(tag) {\r\n this.selectedEmailConfiguration.recipients.forEach(r => {\r\n if (r.id === tag.id) {\r\n r.entityAspect.setDeleted();\r\n this.saveChanges(null);\r\n }\r\n });\r\n }\r\n\r\n public removeCarbonCarbonCopy(tag) {\r\n this.selectedEmailConfiguration.carbonCopies.forEach(c => {\r\n if (c.id === tag.id) {\r\n c.entityAspect.setDeleted();\r\n this.saveChanges(null);\r\n }\r\n });\r\n }\r\n\r\n public removeBlindCarbonCopy(tag) {\r\n this.selectedEmailConfiguration.blindCarbonCopies.forEach(b => {\r\n if (b.id === tag.id) {\r\n b.entityAspect.setDeleted();\r\n this.saveChanges(null);\r\n }\r\n });\r\n }\r\n\r\n public removeDocument(tag) {\r\n this.selectedEmailConfiguration.documents.forEach(d => {\r\n if (d.id === tag.id) {\r\n d.entityAspect.setDeleted();\r\n this.saveChanges(null);\r\n }\r\n });\r\n }\r\n\r\n public removeEmailRecipient(emailRecipient) {\r\n emailRecipient.entityAspect.setDeleted();\r\n this.saveChanges(null);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n declare var CustomStyle: any;\r\n declare var modelSelf: PdfGenerationConfigurationModel;\r\n\r\n export class PdfGenerationConfigurationModel {\r\n\r\n public isEditing: boolean = false;\r\n public progress: number;\r\n public selectedPdf: models.PdfBinding;\r\n public fileUploadModel: models.FileUploadModel;\r\n public newPdfModel: models.FileUploadModel;\r\n public showConfigureBindings: boolean = false;\r\n public activePageIndex: number = 0;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public newPdfdocuments: Array;\r\n \r\n constructor(\r\n private scope: angular.IScope,\r\n private $route: angular.route.IRouteService,\r\n private processConfigurationId: string,\r\n private pdfBindingService: services.PdfBindingService,\r\n private boundItemService: services.BoundItemService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private treeService: services.TreeService,\r\n private deleteService: services.DeleteService) {\r\n\r\n this.fileUploadModel = new models.FileUploadModel();\r\n this.newPdfModel = new models.FileUploadModel();\r\n\r\n this.newPdfdocuments = [];\r\n \r\n if (processConfigurationId) {\r\n processConfigurationService.getWorkflowExpandFieldsAndPdfBindings(processConfigurationId).then(\r\n (processConfig) => {\r\n this.processConfiguration = processConfig;\r\n });\r\n }\r\n\r\n modelSelf = this;\r\n\r\n scope.$watch(\"model.selectedPdf.documents[0]\", () => {\r\n modelSelf.fileUploaded();\r\n });\r\n\r\n scope.$watch(\"model.newPdfdocuments[0]\", () => {\r\n modelSelf.newPdfUploaded();\r\n });\r\n }\r\n\r\n public saveChanges() {\r\n this.processConfigurationService.saveAllChanges();\r\n }\r\n\r\n private newPdfUploaded() {\r\n if (!this.newPdfdocuments || this.newPdfdocuments.length === 0) return;\r\n if (this.newPdfdocuments[0].id <= 0) return;\r\n\r\n this.selectedPdf.staticDocument_id = modelSelf.newPdfdocuments[0].id;\r\n this.processConfigurationService.saveAllChanges(() => {\r\n this.$route.reload();\r\n });\r\n }\r\n\r\n private fileUploaded() {\r\n if (!modelSelf.selectedPdf|| !modelSelf.selectedPdf.documents || modelSelf.selectedPdf.documents.length === 0) {\r\n return;\r\n }\r\n\r\n if (modelSelf.selectedPdf.documents[0].id <= 0) return;\r\n\r\n modelSelf.showConfigureBindings = true;\r\n modelSelf.selectedPdf.staticDocument_id = modelSelf.selectedPdf.documents[0].id;\r\n modelSelf.configureBindings();\r\n modelSelf.saveChanges();\r\n }\r\n\r\n public addPdf() {\r\n this.isEditing = true;\r\n this.selectedPdf = this.pdfBindingService.createPdfBinding();\r\n if (!this.processConfiguration.myPdfBindings) {\r\n this.processConfiguration.myPdfBindings = [];\r\n }\r\n this.processConfiguration.myPdfBindings.push(this.selectedPdf);\r\n this.selectedPdf.processConfiguration_id = this.processConfigurationId;\r\n this.selectedPdf.documents = [];\r\n }\r\n\r\n public configurePdf(pdfBind: models.PdfBinding) {\r\n this.selectedPdf = pdfBind;\r\n this.showConfigureBindings = true;\r\n this.isEditing = true;\r\n this.configureBindings();\r\n }\r\n\r\n public delete(pdfBind: models.PdfBinding) {\r\n\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"PdfBinding\",\r\n pdfBind.id,\r\n \"Successfully deleted PDF Binding\",\r\n undefined,\r\n \"Could not delete PDF Binding\");\r\n }\r\n\r\n public onDrop($event, boundItem: models.BoundItem) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n\r\n boundItem.treeItem = treeItem; \r\n boundItem.treeItem_id = treeItem.id;\r\n\r\n this.treeService.clearDragValue();\r\n modelSelf.saveChanges();\r\n }\r\n\r\n private pageAnnotations: Array;\r\n private page: any;\r\n private viewPort : any;\r\n\r\n public fixAnnotations(boundItem,rect) {\r\n var view = modelSelf.page.view;\r\n rect = (PDFJS).Util.normalizeRect([\r\n rect[0],\r\n view[3] - rect[1] + view[1],\r\n rect[2],\r\n view[3] - rect[3] + view[1]]);\r\n\r\n boundItem.left = rect[0] + 15 + 'px';\r\n boundItem.top = rect[1] + 'px';\r\n boundItem.width = rect[2] - rect[0] + 'px';\r\n boundItem.height = rect[3] - rect[1] + 'px';\r\n boundItem.fontSize = rect[3] - rect[1] - 3 + 'px';\r\n \r\n var transform = modelSelf.viewPort.transform;\r\n\r\n var transformStr = 'matrix(' + transform.join(',') + ')';\r\n\r\n boundItem.transform = transformStr;\r\n\r\n var transformOriginStr = -rect[0] + 'px ' + -rect[1] + 'px';\r\n boundItem.transformOrigin = transformOriginStr;\r\n }\r\n\r\n private setupAnnotations(page, viewport, canvas, $annotationLayerDiv) {\r\n canvas = $('#thecanvas');\r\n $annotationLayerDiv.height(canvas.height());\r\n $annotationLayerDiv.width(canvas.width());\r\n $annotationLayerDiv.position({\r\n my: \"left top\",\r\n at: \"left top\",\r\n of: \"#thecanvas\"\r\n });\r\n\r\n var promise = page.getAnnotations().then(annotationsData => {\r\n modelSelf.pageAnnotations = annotationsData;\r\n\r\n viewport = viewport.clone({\r\n dontFlip: true\r\n });\r\n modelSelf.viewPort = viewport;\r\n\r\n for (var i = 0; i < annotationsData.length; i++) {\r\n var data = annotationsData[i];\r\n\r\n var boundItem = Enumerable.from(modelSelf.selectedPdf.currentPage.boundItems)\r\n .singleOrDefault(x => x.pdfInputFieldKey === data.fullName);\r\n \r\n if (!boundItem) {\r\n boundItem = modelSelf.boundItemService.createBoundItem();\r\n boundItem.pdfInputFieldKey = data.fullName;\r\n boundItem.pdfInputFieldDisplayName = data.alternativeText;\r\n\r\n modelSelf.selectedPdf.currentPage.boundItems.push(boundItem);\r\n }\r\n\r\n var rect = data.rect;\r\n modelSelf.fixAnnotations(boundItem,rect);\r\n }\r\n modelSelf.scope.$apply();\r\n modelSelf.saveChanges();\r\n });\r\n return promise;\r\n }\r\n\r\n public getTreeItemName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n return treeItem !== undefined && treeItem !== null\r\n ? this.treeService.getDisplayName(treeItem)\r\n : \"\";\r\n }\r\n\r\n public configureBindings() {\r\n if (modelSelf.selectedPdf.id) {\r\n modelSelf.selectedPdf.entityAspect.loadNavigationProperty(\"pages\").then(r => {\r\n setTimeout(r => {\r\n modelSelf.getPdf(modelSelf.selectedPdf.staticDocument_id);\r\n }, 1000);\r\n\r\n });\r\n } else {\r\n modelSelf.getPdf(this.selectedPdf.documents[0].id);\r\n }\r\n }\r\n\r\n public range(length: number) {\r\n return new Array(length);\r\n }\r\n\r\n private getPdf(documentId) {\r\n if (documentId === undefined || documentId <= 0) return;\r\n PDFJS.getDocument('./api/document/StaticDocument/' + documentId)\r\n .then(pdf => {\r\n modelSelf.selectedPdf.pdf = pdf;\r\n modelSelf.selectedPdf.numberOfPages = pdf.numPages;\r\n modelSelf.gotoPage(0);\r\n });\r\n }\r\n\r\n public reloadPage() {\r\n if (!modelSelf.selectedPdf || !modelSelf.selectedPdf.pages)\r\n return;\r\n\r\n this.gotoPage(this.activePageIndex);\r\n }\r\n\r\n public gotoPage(pageIndex: number) {\r\n modelSelf.activePageIndex = pageIndex;\r\n var pageNumber = pageIndex + 1;\r\n\r\n modelSelf.selectedPdf.pdf.getPage(pageNumber).then(page => {\r\n var binderPage = Enumerable.from(modelSelf.selectedPdf.pages).singleOrDefault(x => x.pageNumber === pageNumber);\r\n\r\n if (!binderPage) {\r\n binderPage = modelSelf.pdfBindingService.createPdfBindingPage();\r\n binderPage.pageNumber = pageNumber;\r\n binderPage.pdfBinding_id = this.selectedPdf.id;\r\n modelSelf.selectedPdf.pages.push(binderPage);\r\n modelSelf.loadPage(binderPage, page);\r\n\r\n } else {\r\n modelSelf.boundItemService.getBoundItemsWithTreeItems(binderPage.id).then(() => {\r\n modelSelf.loadPage(binderPage, page);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private loadPage(binderPage,page) {\r\n modelSelf.selectedPdf.currentPage = binderPage;\r\n modelSelf.page = page;\r\n\r\n var scale = 1.5;\r\n var canvas : any = $('#thecanvas');\r\n scale = canvas.width() / modelSelf.page.getViewport(1.0).width;\r\n var viewport = page.getViewport(scale);\r\n modelSelf.viewPort = viewport;\r\n\r\n var canvas = document.getElementById('thecanvas');\r\n\r\n canvas.height = viewport.height;\r\n canvas.width = viewport.width;\r\n var context = canvas.getContext('2d');\r\n var renderContext = {\r\n canvasContext: context,\r\n viewport: viewport\r\n };\r\n\r\n page.render(renderContext);\r\n this.setupAnnotations(page, viewport, canvas, $('#overlaypdf')); \r\n }\r\n\r\n public deleteBoundItem(boundItem: Wars.Domain.Model.BoundItem) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"BoundItem\",\r\n boundItem.id,\r\n \"PDF Binding\",\r\n () => {\r\n this.selectedPdf.currentPage.boundItems.remove(boundItem);\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ManageSystemCodeModel {\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n\r\n existingSystemCodes: Array;\r\n addingNewCodeGroup: boolean;\r\n showInactive: boolean;\r\n newGroup: Wars.Domain.Model.Codes.CodeGroup;\r\n editGroup: Wars.Domain.Model.Codes.CodeGroup;\r\n fieldType: number;\r\n\r\n constructor(\r\n public id: string,\r\n private manageSystemCodesService: services.ManageSystemCodesService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n private modalService: any)\r\n {\r\n this.modalService = modalService;\r\n\r\n this.addingNewCodeGroup = false;\r\n this.existingSystemCodes = [];\r\n this.loadAllSystemCodes();\r\n this.showInactive = true;\r\n this.editGroup = undefined;\r\n }\r\n\r\n private loadAllSystemCodes(): void {\r\n if (this.id) {\r\n this.manageSystemCodesService.getAllCodesForProcessConfiguration(this.id).then(\r\n (codeGroups) => {\r\n this.existingSystemCodes = codeGroups;\r\n this.showInactiveCodes(true);\r\n });\r\n } else {\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n (systemLevel) => {\r\n this.systemLevel = systemLevel;\r\n this.existingSystemCodes = systemLevel.myCodeGroups;\r\n this.showInactiveCodes(true);\r\n });\r\n }\r\n }\r\n\r\n private addNewCode(codeGroup: Wars.Domain.Model.Codes.CodeGroup): void {\r\n var isSystemLevel = !this.id;\r\n const newCode = this.manageSystemCodesService.createNewSystemCode(codeGroup, isSystemLevel);\r\n newCode.isActive = true;\r\n codeGroup.codes.push(newCode);\r\n newCode.myParentCodeGroup = codeGroup;\r\n }\r\n\r\n public addNewCodeGroup(): void {\r\n this.newGroup = this.manageSystemCodesService.createNewEntity(\"CodeGroup\");\r\n this.newGroup.isDocumentTypeCodeGroup = false;\r\n this.addingNewCodeGroup = true;\r\n \r\n this.addNewCode(this.newGroup);\r\n }\r\n\r\n public cancelNewCodeGroup(): void {\r\n this.newGroup = undefined;\r\n this.addingNewCodeGroup = false;\r\n }\r\n\r\n public addNewCodeToGroup(): void {\r\n this.addNewCode(this.newGroup);\r\n }\r\n\r\n public addNewCodeToEditGroup(): void {\r\n this.addNewCode(this.editGroup);\r\n this.editExistingCode(this.editGroup.codes[this.editGroup.codes.length - 1]);\r\n }\r\n\r\n public deleteNewCode(index: number): void {\r\n this.newGroup.codes.splice(index, 1);\r\n }\r\n \r\n public deleteCodeGroup() {\r\n var self = this;\r\n var successCallback = () => {\r\n self.existingSystemCodes = Enumerable.from(self.existingSystemCodes).where(i => i.id !== self.editGroup.id).toArray();\r\n }\r\n self.deleteService.deleteWithModalConfirmationIfNecessary(\"CodeGroup\", self.editGroup.id, \"Successfully deleted Code Group\", successCallback, \"Could not delete Code Group\"); \r\n }\r\n\r\n private saveSucceeded(): void {\r\n this.existingSystemCodes.push(this.newGroup);\r\n this.addingNewCodeGroup = false;\r\n this.newGroup = undefined;\r\n }\r\n\r\n public saveNewCodeGroup(): void {\r\n this.newGroup.systemLevel_id = this.systemLevel ? this.systemLevel.id : undefined;\r\n this.newGroup.mySystemLevel = this.systemLevel;\r\n this.newGroup.processConfiguration_id = this.id;\r\n this.manageSystemCodesService.saveAllChanges(() => { this.saveSucceeded(); });\r\n }\r\n\r\n public showInactiveCodes(showThem: boolean) {\r\n this.showInactive = showThem;\r\n }\r\n\r\n public editExistingCode(systemCode: Wars.Domain.Model.Codes.SystemCode) {\r\n this.showModal(systemCode);\r\n }\r\n\r\n public inactivateExistingCode(systemCode: Wars.Domain.Model.Codes.SystemCode) {\r\n systemCode.isActive = false;\r\n this.manageSystemCodesService.saveAllChanges();\r\n }\r\n\r\n public changeCodeActiveStatus(systemCode: Wars.Domain.Model.Codes.SystemCode) {\r\n var self = this;\r\n self.manageSystemCodesService.saveAllChanges();\r\n if (!systemCode.isActive) {\r\n self.systemLevelService.getSystemLevelClaims().then(\r\n (systemLevel) => {\r\n var claims = systemLevel.myClaims;\r\n for (var i = 0; i < claims.length; i++) {\r\n for (var j = 0; j < claims[i].claimGrantAuthorities.length; j++) {\r\n var grant = claims[i].claimGrantAuthorities[j];\r\n var k: number;\r\n for (k = 0; k < grant.claimGrantAuthorityValues.length; k++) {\r\n if (grant.claimGrantAuthorityValues[k].mySystemCode.id === systemCode.id) {\r\n grant.claimGrantAuthorityValues[k].granted = false;\r\n }\r\n }\r\n for (k = 0; k < grant.claimGrantRestrictionValues.length; k++) {\r\n if (grant.claimGrantRestrictionValues[k].mySystemCode.id === systemCode.id) {\r\n grant.claimGrantRestrictionValues[k].restricted = false;\r\n }\r\n }\r\n self.manageSystemCodesService.saveAllChanges();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private showModal(systemCode: Wars.Domain.Model.Codes.SystemCode) { // Just provide a template URL, a controller and call 'showModal'.\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/_systemCodeEditModal.html\",\r\n controller: \"editSystemCodeModalController\",\r\n inputs: {\r\n systemCode: systemCode\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n var self = this;\r\n self.manageSystemCodesService.saveAllChanges();\r\n self.systemLevelService.getSystemLevelClaims().then(\r\n (systemLevel) => {\r\n var claims = systemLevel.myClaims;\r\n for (var i = 0; i < claims.length; i++) {\r\n for (var j = 0; j < claims[i].claimGrantAuthorities.length; j++) {\r\n var grant = claims[i].claimGrantAuthorities[j];\r\n if (grant.myClaimDefinition.codeGroup_id === systemCode.myParentCodeGroup.id) {\r\n var r = self.manageSystemCodesService.createNewEntity(\"ClaimGrantRestrictionValue\");\r\n r.systemLevel_id = grant.systemLevel_id;\r\n r.claimGrantAuthority_id = grant.id;\r\n r.myClaimGrantAuthority = grant;\r\n r.systemCode_id = systemCode.id;\r\n r.restricted = false; \r\n }\r\n if (grant.myGrantClaimDefinition.codeGroup_id === systemCode.myParentCodeGroup.id) {\r\n var a = self.manageSystemCodesService.createNewEntity(\"ClaimGrantAuthorityValue\");\r\n a.systemLevel_id = grant.systemLevel_id;\r\n a.claimGrantAuthority_id = grant.id;\r\n a.myClaimGrantAuthority = grant;\r\n a.systemCode_id = systemCode.id;\r\n a.granted = false; \r\n }\r\n self.manageSystemCodesService.saveAllChanges();\r\n }\r\n }\r\n });\r\n } else {\r\n this.manageSystemCodesService.rejectChanges();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ManageUserModel {\r\n\r\n public searchCriteria: UserSearchCriteria;\r\n public users: Wars.Domain.Model.Dtos.UserDto[];\r\n public editUser: Wars.Domain.Model.Dtos.UserDto;\r\n public systemClaims: Wars.Domain.Model.ClaimDefinition[];\r\n public claimDefinitionSelected: Wars.Domain.Model.ClaimDefinition;\r\n public claimValue: string;\r\n \r\n constructor(\r\n private userService: services.UserService,\r\n private systemLevelService: services.SystemLevelService)\r\n {\r\n this.systemLevelService = systemLevelService;\r\n this.searchCriteria = new UserSearchCriteria();\r\n this.editUser = undefined;\r\n }\r\n\r\n public clearSearchCriteria() : void {\r\n this.searchCriteria = new UserSearchCriteria();\r\n }\r\n\r\n public search(): void {\r\n var self = this;\r\n //this.userService.search(this.searchCriteria).then(\r\n // (users: Wars.Domain.Model.Dtos.UserDto[]) => {\r\n // self.users = users;\r\n // });\r\n }\r\n\r\n public editSelectedUser(index: number) {\r\n var self = this;\r\n self.editUser = self.users[index];\r\n //self.systemLevelService.getSystemLevelClaimsWithGrantAuthorizations().then((systemLevel) => {\r\n //self.userService.getSystemClaimsForUser(self.editUser);\r\n //self.systemClaims = self.filterAlreadyAssignedClaims(systemLevel, self.editUser);\r\n //});\r\n }\r\n\r\n private filterAlreadyAssignedClaims(systemLevel: Wars.Domain.Model.SystemLevel, user: Wars.Domain.Model.Dtos.UserDto) {\r\n //var filteredClaims = [];\r\n //for (var i = 0; i < systemLevel.myClaims.length; i++) {\r\n // var pushClaim = true;\r\n // for (var ii = 0; ii < user.userClaims.length; ii++) {\r\n // if (systemLevel.myClaims[i].claimMapName != null && systemLevel.myClaims[i].claimMapName.trim() !== \"\") {\r\n // //mapped claim\r\n // pushClaim = false;\r\n // break;\r\n // }\r\n // if (systemLevel.myClaims[i].id === user.userClaims[ii].claimDefinition_id) {\r\n // pushClaim = false;\r\n // break;\r\n // }\r\n // }\r\n // if (pushClaim) {\r\n // filteredClaims.push(systemLevel.myClaims[i]);\r\n // }\r\n //}\r\n //return filteredClaims;\r\n }\r\n\r\n public toggleIsActive() {\r\n this.systemLevelService.saveAllChanges();\r\n }\r\n\r\n public userClaimFilter(userClaim: Wars.Domain.Model.Dtos.UserClaimDto) {\r\n //return userClaim.claimDefinition && userClaim.claimDefinition.processConfiguration_id == null;\r\n }\r\n\r\n public userSystemClaims(): Wars.Domain.Model.Dtos.UserClaimDto[] {\r\n //if (!this.editUser || !this.editUser.userClaims) return [];\r\n //return Enumerable.from(this.editUser.userClaims).where(i => this.userClaimFilter(i)).toArray();\r\n return undefined;\r\n }\r\n\r\n public addNewUserClaim() : void {\r\n //var self = this;\r\n //var newUserClaim = self.userService.createNewUserClaim(self.editUser);\r\n //newUserClaim.claimDefinition = self.claimDefinitionSelected;\r\n //newUserClaim.userAssignedValue = self.claimValue;\r\n //self.editUser.userClaims.push(newUserClaim);\r\n //self.userService.saveAllChanges(() => {\r\n // self.claimDefinitionSelected = undefined;\r\n // self.claimValue = undefined;\r\n // self.systemLevelService.getSystemLevelClaims().then((systemLevel) => {\r\n // self.systemClaims = self.filterAlreadyAssignedClaims(systemLevel, self.editUser);\r\n // });\r\n //});\r\n }\r\n\r\n public deleteClaim(index: number) {\r\n //var self = this;\r\n //var systemClaims = self.userSystemClaims();\r\n //systemClaims[index].entityAspect.setDeleted();\r\n //self.userService.saveAllChanges(() => {\r\n // self.systemLevelService.getSystemLevelClaims().then((systemLevel) => {\r\n // self.systemClaims = self.filterAlreadyAssignedClaims(systemLevel, self.editUser);\r\n // });\r\n //});\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n declare var notificationSubscriptionActionSelf: NotificationSubscriptionsModel;\r\n\r\n export class NotificationSubscriptionsModel {\r\n public emailConfigurations: Wars.Domain.Model.Dtos.EmailConfigurationDto[];\r\n public userNotifications: Wars.Domain.Model.Dtos.UserEmailNotificationDto[];\r\n public userMappedEmailConfigurations: any;\r\n public tinyMceOptions: any;\r\n\r\n constructor(\r\n private scope: angular.IScope,\r\n private growlService: angular.growl.IGrowlService,\r\n private userService: services.UserService,\r\n private emailService: services.EmailService)\r\n {\r\n notificationSubscriptionActionSelf = this;\r\n notificationSubscriptionActionSelf.userMappedEmailConfigurations = [];\r\n var currentUser = userService.getCurrentUser();\r\n emailService.getUserEmailNotifications()\r\n .then((notifications) => {\r\n notificationSubscriptionActionSelf.userNotifications = notifications;\r\n emailService.getAllEmailConfigurationApplicableForCurrentUser()\r\n .then((emailConfigs) => {\r\n notificationSubscriptionActionSelf.emailConfigurations = emailConfigs;\r\n notificationSubscriptionActionSelf.emailConfigurations.forEach(emailConfigurationDto => {\r\n var emailConfiguration = Enumerable.from(notificationSubscriptionActionSelf.userNotifications).firstOrDefault(userEmailNotificationDto => userEmailNotificationDto.uniqueIdentifier === emailConfigurationDto.uniqueIdentifier);\r\n var userMappedEmailConfiguration = {\r\n id: emailConfiguration !== null && emailConfiguration !== undefined ? emailConfiguration.id : null,\r\n userId: currentUser.userId,\r\n uniqueIdentifier: emailConfigurationDto.uniqueIdentifier,\r\n emailConfigurationId: emailConfigurationDto.id,\r\n recieveNotification: emailConfiguration === null || emailConfiguration === undefined,\r\n emailName: emailConfigurationDto.name,\r\n emailSubject: emailConfigurationDto.emailSubject.replace(/<(?:.|\\n)*?>/gm, ''),\r\n emailText: emailConfigurationDto.emailText//,\r\n //processName: i.myProcessConfiguration !== null ? i.myProcessConfiguration.myProcessType.name : ''\r\n };\r\n notificationSubscriptionActionSelf.userMappedEmailConfigurations.push(userMappedEmailConfiguration);\r\n });\r\n });\r\n });\r\n notificationSubscriptionActionSelf.tinyMceOptions = {\r\n format: 'raw',\r\n menubar: false,\r\n statusbar: false,\r\n toolbar: false,\r\n height: 100,\r\n plugins: \"noneditable\",\r\n readonly: 1,\r\n content_css: \"content/mce.css\"\r\n };\r\n }\r\n\r\n public updateNotificationSubscription(userMappedConfiguration: any) {\r\n if (userMappedConfiguration.id !== null) {\r\n var foundUserEmailNotification = Enumerable.from(notificationSubscriptionActionSelf.userNotifications).first(i => i.id === userMappedConfiguration.id);\r\n this.emailService.deleteUserEmailNotification(foundUserEmailNotification)\r\n .then(() => {\r\n notificationSubscriptionActionSelf.userNotifications = Enumerable.from(notificationSubscriptionActionSelf.userNotifications).where(i => i.id !== userMappedConfiguration.id).toArray();\r\n userMappedConfiguration.id = null;\r\n });\r\n } else {\r\n var userNotification = {\r\n uniqueIdentifier: userMappedConfiguration.uniqueIdentifier\r\n }\r\n this.emailService.createUserEmailNotification(userNotification)\r\n .then((userEmailNotification) => {\r\n userMappedConfiguration.id = userEmailNotification.id;\r\n notificationSubscriptionActionSelf.userNotifications.push(userEmailNotification);\r\n });\r\n }\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ObjectQueryFormModelApi {\r\n id: string;\r\n uniqueIdentifier: string;\r\n processConfigurationId: string;\r\n formId: string;\r\n queryId: string;\r\n alwaysShowListsExpanded: boolean;\r\n disableSort: boolean;\r\n disableFilter: boolean;\r\n objectQueryFormSchemaProperties: Array;\r\n objectQueryResultSets: any;\r\n }\r\n\r\n export class ObjectQueryFormSchemaProperty {\r\n id: string;\r\n name: string;\r\n querySchemaPropertyId: string;\r\n formSchemaPropertyId: string;\r\n schemaProperties: Array;\r\n }\r\n\r\n export class ObjectQueryGroupCondition {\r\n id: string;\r\n name: string;\r\n }\r\n\r\n export class ObjectQueryResultProperty {\r\n id: string;\r\n columnName: string;\r\n includeIf: boolean;\r\n conditionId: string;\r\n exportOnly: boolean;\r\n columnOrder: number;\r\n querySchemaPropertyId: string;\r\n conditions: Array;\r\n resultProperties: Array;\r\n }\r\n\r\n export class ObjectQueryFormModel {\r\n\r\n private currentTreeItem: models.TreeConfigurationItem;\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n private processConfigurationId: string;\r\n private newObjectQueryName = \"\";\r\n private existingObjectQueries: Array;\r\n private existingCodes: Array;\r\n private showOnTree: string;\r\n private displayTree: boolean;\r\n\r\n private objectQueryFormApiQueries: Array;\r\n private objectQueryFormApiForms: Array;\r\n private currentApi: ObjectQueryFormModelApi;\r\n\r\n public constructor(\r\n private scope: angular.IScope,\r\n private qService: angular.IQService,\r\n private growlService: angular.growl.IGrowlService,\r\n private $routeParams: angular.route.IRouteParamsService,\r\n private systemLevelService: services.SystemLevelService,\r\n private treeService: services.TreeService,\r\n private objectQueryService: services.ObjectQueryService) {\r\n var self = this;\r\n self.processConfigurationId = $routeParams[\"id\"];\r\n self.currentApi = new ObjectQueryFormModelApi();\r\n self.objectQueryService.getObjectQueryFormApiForms(self.processConfigurationId)\r\n .then((result) => {\r\n self.objectQueryFormApiForms = result;\r\n self.objectQueryService.getObjectQueryFormApiQueries(self.processConfigurationId)\r\n .then((result2) => {\r\n self.objectQueryFormApiQueries = result2;\r\n self.getCurrentApi();\r\n });\r\n });\r\n }\r\n\r\n getCurrentApi() {\r\n var self = this;\r\n self.objectQueryService.getQueryApi(self.processConfigurationId)\r\n .then((result) => {\r\n if (result != null) {\r\n self.currentApi = result;\r\n var currentMapping = self.currentApi.objectQueryFormSchemaProperties; \r\n self.currentApi.objectQueryFormSchemaProperties = self.getFormProperties();\r\n self.remap(currentMapping, self.currentApi.objectQueryFormSchemaProperties);\r\n }\r\n });\r\n }\r\n \r\n saveQueryApi() {\r\n var self = this;\r\n self.currentApi.processConfigurationId = self.processConfigurationId;\r\n self.objectQueryService.saveQueryApi(self.currentApi).then(() => {\r\n self.getCurrentApi();\r\n var currentMapping = self.currentApi.objectQueryFormSchemaProperties;\r\n self.currentApi.objectQueryFormSchemaProperties = self.getFormProperties();\r\n self.remap(currentMapping, self.currentApi.objectQueryFormSchemaProperties);\r\n });\r\n }\r\n\r\n remap(currentMapping: Array, binding: Array) {\r\n if (binding != null && binding.length != null) {\r\n for (var x = 0; x < binding.length; x++) {\r\n var c = Enumerable.from(currentMapping)\r\n .where(i => i.formSchemaPropertyId === binding[x].formSchemaPropertyId)\r\n .firstOrDefault();\r\n if (c != null) {\r\n binding[x].id = c.id;\r\n binding[x].querySchemaPropertyId = c.querySchemaPropertyId;\r\n }\r\n } \r\n }\r\n }\r\n\r\n removeQueryApi() {\r\n var self = this;\r\n self.objectQueryService.removeQueryApi(self.currentApi).then(() => {\r\n self.currentApi = new ObjectQueryFormModelApi();\r\n });\r\n }\r\n\r\n getFormProperties() {\r\n var self = this;\r\n var form = Enumerable.from(self.objectQueryFormApiForms)\r\n .where(i => i.id === self.currentApi.formId)\r\n .firstOrDefault();\r\n if (form == null) return null;\r\n var result = self.getSchemaProperties(form.schemaProperties);\r\n return result;\r\n }\r\n\r\n getSchemaProperties(schemaProperties: Array): Array {\r\n var self = this;\r\n var properties = new Array();\r\n for (var x = 0; x < schemaProperties.length; x++) {\r\n if (schemaProperties[x].variableType === Wars.Domain.Model.Codes.Enums.VariableType.Object) {\r\n var range = self.getSchemaProperties(schemaProperties[x].schemaProperties);\r\n if (range.length > 0) {\r\n properties.addRange(range); \r\n }\r\n } else {\r\n var property = new ObjectQueryFormSchemaProperty();\r\n property.name = schemaProperties[x].name;\r\n property.formSchemaPropertyId = schemaProperties[x].id;\r\n var q = Enumerable.from(self.objectQueryFormApiQueries)\r\n .where(i => i.id === self.currentApi.queryId)\r\n .firstOrDefault();\r\n if (q != null) { \r\n if (schemaProperties[x].variableType === Wars.Domain.Model.Codes.Enums.VariableType.Boolean) {\r\n property.schemaProperties = Enumerable.from(q.schemaProperties).where(i => i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Boolean || i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.User).toArray();\r\n } else if (schemaProperties[x].variableType === Wars.Domain.Model.Codes.Enums.VariableType.MultiSelectStatus) {\r\n property.schemaProperties = Enumerable.from(q.schemaProperties).where(i => i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Object || i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Status).toArray();\r\n } else if (schemaProperties[x].variableType === Wars.Domain.Model.Codes.Enums.VariableType.MultiSelectState) {\r\n property.schemaProperties = Enumerable.from(q.schemaProperties).where(i => i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Object || i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.State).toArray();\r\n } else if (schemaProperties[x].variableType === Wars.Domain.Model.Codes.Enums.VariableType.Date || schemaProperties[x].variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime) {\r\n property.schemaProperties = Enumerable.from(q.schemaProperties).where(i => i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Date || i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime).toArray();\r\n } else if (schemaProperties[x].variableType === Wars.Domain.Model.Codes.Enums.VariableType.String) {\r\n property.schemaProperties = Enumerable.from(q.schemaProperties).where(i => i.variableType === schemaProperties[x].variableType\r\n || i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.ReviewConfiguration\r\n || i.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Claim).toArray();\r\n } else {\r\n property.schemaProperties = Enumerable.from(q.schemaProperties).where(i => i.variableType === schemaProperties[x].variableType).toArray();\r\n }\r\n \r\n properties.push(property);\r\n }\r\n }\r\n }\r\n return properties;\r\n }\r\n\r\n addResultMapping(mapSet: any) {\r\n var self = this;\r\n self.objectQueryService.addQueryResultMapping(self.currentApi, mapSet).then((result) => {\r\n if (mapSet.resultMappings == null) {\r\n mapSet.resultMappings = new Array();\r\n }\r\n mapSet.resultMappings.push(result);\r\n });\r\n }\r\n\r\n removeResultMapping(mapping: ObjectQueryResultProperty, mapSet: any) {\r\n var self = this;\r\n self.objectQueryService.removeResultMapping(mapping, mapSet).then((result) => {\r\n self.currentApi.objectQueryResultSets = result;\r\n });\r\n }\r\n\r\n saveResultMapping(mapping: ObjectQueryResultProperty) {\r\n var self = this;\r\n self.objectQueryService.saveResultMapping(mapping).then(() => {\r\n\r\n });\r\n }\r\n\r\n changeResultMappingOrder(mapping: ObjectQueryResultProperty, ascending: boolean, mapSet: any) {\r\n var self = this;\r\n self.objectQueryService.reorderResultMapping(mapping, ascending, mapSet).then((result) => {\r\n self.currentApi.objectQueryResultSets = result;\r\n });\r\n }\r\n\r\n saveMapSet(mapSet: any) {\r\n var self = this;\r\n self.objectQueryService.saveMapSet(mapSet).then(() => {\r\n \r\n });\r\n }\r\n\r\n updateMapSetOrder(mapSet: any, ascending: boolean) {\r\n var self = this;\r\n self.objectQueryService.updateMapSetOrder(mapSet, ascending).then((result) => {\r\n self.currentApi.objectQueryResultSets = result;\r\n });\r\n }\r\n\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ObjectQueryModel {\r\n\r\n private currentTreeItem: models.TreeConfigurationItem;\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n private processConfigurationId: string;\r\n private newObjectQueryName = \"\";\r\n private existingObjectQueries: Array;\r\n private existingCodes: Array;\r\n private showOnTree: string;\r\n private displayTree: boolean;\r\n\r\n public constructor(\r\n private scope: angular.IScope,\r\n private qService: angular.IQService,\r\n private growlService: angular.growl.IGrowlService,\r\n private $routeParams: angular.route.IRouteParamsService,\r\n private systemLevelService: services.SystemLevelService,\r\n private treeService: services.TreeService,\r\n private objectQueryService: services.ObjectQueryService) {\r\n var self = this;\r\n self.existingObjectQueries = [];\r\n self.processConfigurationId = $routeParams[\"id\"];\r\n objectQueryService.loadConfig(self.processConfigurationId).then(() => {\r\n self.loadAllObjectQueries();\r\n });\r\n (scope).getSelectedNode = (data: models.TreeConfigurationItem) => {\r\n console.info(data);\r\n self.currentTreeItem = data;\r\n }\r\n if (self.processConfigurationId) {\r\n self.showOnTree = \"Process System.Constants System.Calculations\"; //.Reporting\r\n } else {\r\n self.showOnTree = \"System\";\r\n }\r\n self.displayTree = true;\r\n }\r\n \r\n addNewObjectQuery() {\r\n var self = this;\r\n var newObjectQuery = self.objectQueryService.createNewObjectQuery();\r\n self.objectQueryService.getCustomTransformers()\r\n .then((result) => {\r\n (newObjectQuery).customTransformers = result;\r\n });\r\n newObjectQuery.name = self.newObjectQueryName;\r\n if (self.processConfigurationId) {\r\n newObjectQuery.processConfiguration_id = self.processConfigurationId;\r\n self.saveNewObjectQuery(newObjectQuery);\r\n } else {\r\n if (self.systemLevel == null) {\r\n self.systemLevelService.getSystemLevel().then((systemLevel) => {\r\n self.systemLevel = systemLevel;\r\n newObjectQuery.systemLevel_id = self.systemLevel.id;\r\n self.saveNewObjectQuery(newObjectQuery);\r\n }); \r\n }\r\n }\r\n }\r\n\r\n addNewProjection(objectQuery: Wars.Domain.Model.ObjectQuery) {\r\n var self = this;\r\n self.objectQueryService.createNewObjectQueryProjection(objectQuery, self.processConfigurationId != null);\r\n }\r\n\r\n getTreeItemName(treeItem: Wars.Domain.Model.TreeItem) {\r\n var self = this;\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.TimeTracker) {\r\n return `[${self.treeService.getDisplayName(treeItem) }]`;\r\n }\r\n return `[${self.treeService.getParentDisplayName(treeItem)}] [${self.treeService.getDisplayName(treeItem)}]`;\r\n }\r\n \r\n onDragOverProjection($event: angular.IAngularEvent, projection: models.ObjectQueryProjection) {\r\n //TODO - Remove if not needed\r\n }\r\n\r\n onDropProjection($event: angular.IAngularEvent, projection: models.ObjectQueryProjection) {\r\n var self = this;\r\n var droppedTreeItem = self.treeService.getTreeConfigurationItem();\r\n //allow report (indexed form fields and variables) and calculations as projections\r\n if (droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField\r\n && droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable\r\n && droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.Calculation\r\n && droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.TimeTracker) {\r\n self.growlService.error(\"Only a form field, system variable, or calculation can be dropped here.\");\r\n return;\r\n }\r\n var treeItem = self.treeService.createTreeItemFromItemDropped();\r\n if (droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.TimeTracker) {\r\n if (treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Document ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Feature ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.List ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.MultiSelectState ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.MultiSelectStatus ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.None ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Object ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.ScheduledResource ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.State ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Status ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.TimeDuration ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.TimeSpan ||\r\n treeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.User) {\r\n self.growlService.error(\"This variable type is not supported in Object Queries.\");\r\n self.objectQueryService.rejectChanges();\r\n return;\r\n } \r\n }\r\n projection.reportDataTreeItem = treeItem;\r\n self.objectQueryService.onObjectQueryModified(projection.myObjectQuery);\r\n projection.alias = \"\";\r\n if (self.objectQueryService.isAggregateQuery(projection.myObjectQuery)) {\r\n projection.projectionType = Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group;\r\n }\r\n self.filterValidProjectionTypes(projection.myObjectQuery);\r\n self.save(null);\r\n }\r\n\r\n propertyTypeChange(projection: models.ObjectQueryProjection) {\r\n var self = this;\r\n if (projection.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n projection.reportDataTreeItem = null;\r\n projection.reportDataTreeItem_id = null;\r\n }\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment ||\r\n projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation ||\r\n projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory ||\r\n projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n if (!self.extensionPropertyIsValid(projection)) {\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment) {\r\n projection.reportDataSubTableColumnName = \"ClaimDefinitionUniqueIdentifier\";\r\n projection.reportDataSubTableSystemColumnName = \"SystemClaimGroupId\";\r\n }\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n projection.reportDataSubTableColumnName = \"ReviewConfigurationUniqueId\";\r\n projection.reportDataSubTableSystemColumnName = \"SystemReviewGroupId\";\r\n }\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory) {\r\n projection.reportDataSubTableColumnName = \"ProcessLevelStatusUniqueIdentifier\";\r\n projection.reportDataSubTableSystemColumnName = \"SystemLevelStatusUniqueIdentifier\";\r\n }\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n projection.reportDataSubTableColumnName = \"ReviewConfigurationUniqueId\";\r\n projection.reportDataSubTableSystemColumnName = \"SystemReviewGroupId\";\r\n }\r\n }\r\n } else {\r\n projection.reportDataSubTableSystemColumnName = null;\r\n projection.reportDataSubTableColumnName = null;\r\n }\r\n self.save(() => {\r\n self.filterValidPropertyTypes(projection.myObjectQuery);\r\n self.filterValidProjectionTypes(projection.myObjectQuery);\r\n });\r\n }\r\n\r\n private extensionPropertyIsValid(projection: models.ObjectQueryProjection): boolean {\r\n if (projection.reportDataSubTableColumnName == null) {\r\n return false;\r\n } else {\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment) {\r\n return Enumerable.from(projection.assignmentQueryMap.columns).any(i => i.column === projection.reportDataSubTableColumnName);\r\n }\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n return Enumerable.from(projection.reviewInformationQueryMap.columns).any(i => i.column === projection.reportDataSubTableColumnName);\r\n }\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory) {\r\n return Enumerable.from(projection.statusHistoryQueryMap.columns).any(i => i.column === projection.reportDataSubTableColumnName);\r\n }\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n return Enumerable.from(projection.commentInformationQueryMap.columns).any(i => i.column === projection.reportDataSubTableColumnName);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n projectionTypeChange(projection: models.ObjectQueryProjection) {\r\n var self = this;\r\n var objectQuery = projection.myObjectQuery;\r\n self.filterValidProjectionTypes(objectQuery);\r\n self.save(null);\r\n }\r\n\r\n private getValidAliasNameFromString(name: string): string {\r\n name = name.trim();\r\n if (!isNaN(parseInt(name.charAt(0), 10))) {\r\n name = \"_\" + name;\r\n } else {\r\n name = name.charAt(0).toLowerCase() + name.slice(1); \r\n }\r\n return name.replace(/[^A-Za-z0-9\\_]/g, \"\");\r\n }\r\n\r\n setDefaultAliasName(projection: models.ObjectQueryProjection, autoSave: boolean) {\r\n var self = this;\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId) {\r\n projection.alias = \"_Id\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId) {\r\n projection.alias = \"_ProcessId\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType) {\r\n projection.alias = \"_ProcessType\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType) {\r\n projection.alias = \"_ProcessSubType\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State) {\r\n projection.alias = \"_State\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy) {\r\n projection.alias = \"_StateUpdatedBy\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate) {\r\n projection.alias = \"_StateUpdatedDate\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status) {\r\n projection.alias = \"_Status\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy) {\r\n projection.alias = \"_StatusUpdatedBy\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate) {\r\n projection.alias = \"_StatusUpdatedDate\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessInitiator) {\r\n projection.alias = \"_ProcessInitiator\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.LastUpdateDate) {\r\n projection.alias = \"_LastUpdateDate\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.LastUpdateUser) {\r\n projection.alias = \"_LastUpdateUser\";\r\n } else if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment\r\n || projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation\r\n || projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory\r\n || projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n var column = projection.getExtendedQueryColumn();\r\n projection.alias = self.getValidAliasNameFromString(column.displayName);\r\n } else {\r\n projection.alias = self.getValidAliasNameFromString(self.treeService.getDisplayName(projection.reportDataTreeItem));\r\n }\r\n switch (projection.projectionType) {\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property:\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group:\r\n projection.alias += \"Group\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Count:\r\n projection.alias += \"Count\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Max:\r\n projection.alias += \"Max\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Min:\r\n projection.alias += \"Min\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Sum:\r\n projection.alias += \"Sum\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Avg:\r\n projection.alias += \"Average\";\r\n break;\r\n }\r\n if (autoSave) {\r\n self.save(null);\r\n }\r\n }\r\n\r\n save(callback: any) {\r\n var self = this;\r\n self.objectQueryService.saveAllChanges(() => {\r\n if (callback != null) {\r\n callback(); \r\n }\r\n });\r\n }\r\n\r\n deleteProjection(projection: models.ObjectQueryProjection) {\r\n var self = this;\r\n var objectQuery = projection.myObjectQuery;\r\n projection.entityAspect.setDeleted();\r\n self.save(() => {\r\n self.filterValidPropertyTypes(objectQuery);\r\n self.filterValidProjectionTypes(objectQuery);\r\n self.reorder(objectQuery);\r\n });\r\n }\r\n\r\n saveExtendedColumn(projection: models.ObjectQueryProjection) {\r\n var self = this;\r\n var column = projection.getExtendedQueryColumn();\r\n projection.reportDataSubTableColumnName = column.column;\r\n projection.reportDataSubTableSystemColumnName = column.systemColumn;\r\n self.save(null);\r\n }\r\n\r\n setCustomTransformer(objectQuery: Wars.Domain.Model.ObjectQuery) {\r\n var self = this;\r\n self.save(null);\r\n }\r\n \r\n changeOrder(projection: models.ObjectQueryProjection, promote: boolean) {\r\n var self = this;\r\n var next = Enumerable\r\n .from(projection.myObjectQuery.projections)\r\n .where(i => promote ? i.orderNumerator < projection.orderNumerator : i.orderNumerator > projection.orderNumerator)\r\n .toArray();\r\n if (next.length === 0) return;\r\n if (promote) {\r\n next = Enumerable\r\n .from(next)\r\n .orderByDescending(i => i.orderNumerator)\r\n .toArray();\r\n } else {\r\n next = Enumerable\r\n .from(next)\r\n .orderBy(i => i.orderNumerator)\r\n .toArray();\r\n }\r\n var flip = next[0].orderNumerator;\r\n next[0].orderNumerator = projection.orderNumerator;\r\n projection.orderNumerator = flip;\r\n self.reorder(projection.myObjectQuery);\r\n }\r\n\r\n private loadSubQueries(): void {\r\n var self = this;\r\n var subqueries = new Array();\r\n var processIdSubqueries = new Array();\r\n var i: number;\r\n for (i = 0; i < self.existingObjectQueries.length; i++) {\r\n if (!self.existingObjectQueries[i].isExecutable) continue;\r\n if (self.existingObjectQueries[i].projections.length !== 1) continue;\r\n if (self.existingObjectQueries[i].projections[0].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId) {\r\n //we have a valid object query sub-query candidate\r\n subqueries.push(self.existingObjectQueries[i]); \r\n }\r\n if (self.existingObjectQueries[i].projections[0].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId) {\r\n //we have a valid object query sub-query candidate\r\n processIdSubqueries.push(self.existingObjectQueries[i]);\r\n }\r\n }\r\n self.objectQueryService.subQueries = subqueries;\r\n self.objectQueryService.processIdSubQueries = processIdSubqueries;\r\n }\r\n \r\n private reorder(objectQuery: Wars.Domain.Model.ObjectQuery) {\r\n var self = this;\r\n var l = Enumerable\r\n .from(objectQuery.projections)\r\n .orderBy(i => i.orderNumerator)\r\n .toArray();\r\n for (var x = 0; x < l.length; x++) {\r\n l[x].orderNumerator = x + 1;\r\n }\r\n self.save(null);\r\n }\r\n \r\n private loadAllObjectQueries(): void {\r\n var self = this;\r\n if (self.processConfigurationId) {\r\n self.objectQueryService.getAllObjectQueriesForProcessConfiguration(self.processConfigurationId).then(\r\n (objectQueries) => {\r\n self.existingObjectQueries = objectQueries;\r\n self.loadSubQueries();\r\n for (var i = 0; i < self.existingObjectQueries.length; i++) {\r\n self.filterValidPropertyTypes(self.existingObjectQueries[i]);\r\n self.filterValidProjectionTypes(self.existingObjectQueries[i]);\r\n self.watchObjectQueryExecutionStatus(self.existingObjectQueries[i]);\r\n }\r\n self.setTransformers();\r\n });\r\n } else {\r\n self.objectQueryService.getAllObjectQueriesForSystemLevel().then(\r\n (objectQueries) => {\r\n self.existingObjectQueries = objectQueries;\r\n self.loadSubQueries();\r\n for (var i = 0; i < self.existingObjectQueries.length; i++) {\r\n self.filterValidPropertyTypes(self.existingObjectQueries[i]);\r\n self.filterValidProjectionTypes(self.existingObjectQueries[i]);\r\n self.watchObjectQueryExecutionStatus(self.existingObjectQueries[i]);\r\n }\r\n self.setTransformers();\r\n });\r\n }\r\n }\r\n\r\n private setTransformers() {\r\n var self = this;\r\n self.objectQueryService.getCustomTransformers()\r\n .then((result) => {\r\n for (var i = 0; i < self.existingObjectQueries.length; i++) {\r\n (self.existingObjectQueries[i]).customTransformers = result;\r\n }\r\n });\r\n }\r\n\r\n private watchObjectQueryExecutionStatus(objectQuery: Wars.Domain.Model.ObjectQuery) {\r\n var self = this;\r\n self.scope.$watch(() => { return objectQuery.isExecutable },\r\n (nv, ov) => {\r\n if (ov && nv === false) {\r\n for (var i = 0; i < self.existingObjectQueries.length; i++) {\r\n for (var j = 0; j < self.existingObjectQueries[i].restrictions.length; j++) {\r\n if (self.existingObjectQueries[i].restrictions[j].restrictionType !== \"P\") continue;\r\n var predicate = self.existingObjectQueries[i].restrictions[j];\r\n if (predicate.subObjectQuery === null) continue; \r\n if (predicate.subObjectQuery.id !== objectQuery.id) continue;\r\n self.objectQueryService.removeSubQuery(objectQuery.id);\r\n self.objectQueryService.removeProcessIdSubQuery(objectQuery.id);\r\n predicate.subObjectQuery = null;\r\n predicate.subObjectQuery_id = null;\r\n self.existingObjectQueries[i].isExecutable = false;\r\n }\r\n }\r\n }\r\n self.save(null);\r\n });\r\n }\r\n \r\n private filterValidProjectionTypes(objectQuery: Wars.Domain.Model.ObjectQuery) {\r\n var self = this;\r\n var hasAggregaate = Enumerable.from(objectQuery.projections).any(x => x.projectionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group);\r\n for (var i = 0; i < objectQuery.projections.length; i++) {\r\n var projection = (objectQuery.projections[i]);\r\n projection.projectionTypeContext.removeSpecifiedOptions = [];\r\n if (self.objectQueryService.isAggregateQuery(objectQuery)) {\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property);\r\n if (hasAggregaate) {\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group) {\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Count);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Max);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Min);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Sum);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Avg);\r\n }\r\n } \r\n if (projection.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Max);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Min);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Sum);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Avg);\r\n } else {\r\n if (projection.reportDataTreeItem != null) {\r\n //group and count only\r\n if (projection.reportDataTreeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.String ||\r\n projection.reportDataTreeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Boolean ||\r\n projection.reportDataTreeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Code) {\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Max);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Min);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Sum);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Avg);\r\n }\r\n //group, count, min, and max only\r\n if (projection.reportDataTreeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Date ||\r\n projection.reportDataTreeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime ||\r\n projection.reportDataTreeItem.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Time) {\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Sum);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Avg);\r\n } \r\n }\r\n }\r\n } else {\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Count);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Max);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Min);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Sum);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Avg);\r\n } \r\n }\r\n }\r\n\r\n private filterExtensionProperties(projection: models.ObjectQueryProjection) {\r\n var self = this;\r\n var states = self.objectQueryService.getStates();\r\n var statuses = self.objectQueryService.getStatuses();\r\n var processTypes = self.objectQueryService.getProcessTypes();\r\n var processSubTypes = self.objectQueryService.getProcessSubTypes();\r\n var reviewConfigurations = self.objectQueryService.getReviewConfigurations();\r\n var assignmentClaims = self.objectQueryService.getClaims();\r\n if (statuses == null || statuses.length === 0) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory);\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status);\r\n }\r\n if (states == null || states.length === 0) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State);\r\n }\r\n var isAggregateQuery = self.objectQueryService.isAggregateQuery(projection.myObjectQuery);\r\n if (processTypes == null || processTypes.length === 0 || !isAggregateQuery) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType);\r\n }\r\n if (processSubTypes == null || processSubTypes.length === 0) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType);\r\n }\r\n if (reviewConfigurations == null || reviewConfigurations.length === 0) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation);\r\n }\r\n if (assignmentClaims == null || assignmentClaims.length === 0) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment);\r\n }\r\n }\r\n\r\n private filterValidPropertyTypes(objectQuery: Wars.Domain.Model.ObjectQuery) {\r\n var self = this;\r\n var i: number;\r\n var projection: models.ObjectQueryProjection;\r\n if (self.objectQueryService.isAggregateQuery(objectQuery)) {\r\n for (i = 0; i < objectQuery.projections.length; i++) {\r\n projection = (objectQuery.projections[i]);\r\n projection.propertyTypeContext.removeSpecifiedOptions = [];\r\n if (self.processConfigurationId != null) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType);\r\n } \r\n self.filterExtensionProperties(projection); \r\n }\r\n (objectQuery).canAddProjection = true;\r\n return;\r\n }\r\n var hasRowId = Enumerable.from(objectQuery.projections).any(x => x.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId);\r\n var hasProcessId = Enumerable.from(objectQuery.projections).any(x => x.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId);\r\n if (objectQuery.projections.length === 0) {\r\n (objectQuery).canAddProjection = true;\r\n return;\r\n }\r\n for (i = 0; i < objectQuery.projections.length; i++) {\r\n projection = (objectQuery.projections[i]);\r\n (objectQuery).canAddProjection = projection.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId && projection.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId;\r\n projection.propertyTypeContext.removeSpecifiedOptions = [];\r\n if (self.processConfigurationId != null) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType); \r\n }\r\n if (self.objectQueryService.getStates().length === 0) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status);\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State);\r\n }\r\n }\r\n if (objectQuery.projections.length > 1) {\r\n for (i = 0; i < objectQuery.projections.length; i++) {\r\n projection = (objectQuery.projections[i]);\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId);\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId);\r\n } \r\n }\r\n for (i = 0; i < objectQuery.projections.length; i++) {\r\n projection = (objectQuery.projections[i]);\r\n if (hasRowId && objectQuery.projections[i].propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId);\r\n }\r\n if (hasProcessId && objectQuery.projections[i].propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId);\r\n }\r\n self.filterExtensionProperties(projection);\r\n }\r\n }\r\n\r\n private saveNewObjectQuery(newObjectQuery: Wars.Domain.Model.ObjectQuery): void {\r\n var self = this;\r\n self.save(() => {\r\n self.existingObjectQueries.push(newObjectQuery);\r\n self.newObjectQueryName = \"\";\r\n });\r\n }\r\n\r\n deleteObjectQuery(objectQuery: Wars.Domain.Model.ObjectQuery) {\r\n var self = this;\r\n self.objectQueryService.deleteObjectQuery(objectQuery)\r\n .then(() => {\r\n self.existingObjectQueries = Enumerable.from(self.existingObjectQueries)\r\n .where(i => i.id !== objectQuery.id)\r\n .toArray();\r\n self.growlService.info(`Object Query [${objectQuery.name}] was deleted`);\r\n },\r\n (result: Wars.Domain.Model.Dtos.Delete.DeleteResult) => {\r\n for (var x = 0; x < result.conflictInfo.conflictMessages.length; x++) {\r\n self.growlService.error(result.conflictInfo.conflictMessages[x]);\r\n }\r\n });\r\n }\r\n\r\n testExecution(objectQuery: Wars.Domain.Model.ObjectQuery) {\r\n var self = this;\r\n self.objectQueryService.testExecution(objectQuery)\r\n .then((result) => {\r\n if (!objectQuery.compressResult) {\r\n (objectQuery).results = JSON.stringify(JSON.parse(result), null, \"\\t\");\r\n return;\r\n } \r\n // Decode base64 (convert ascii to binary)\r\n var strData = atob(result);\r\n // Convert binary string to character-number array\r\n var charData = strData.split(\"\").map((x) => { return x.charCodeAt(0); });\r\n // Turn number array into byte-array\r\n var binData = new Uint8Array(charData);\r\n // Pako magic\r\n var data = pako.inflate(binData);\r\n // convert to unsigned 16 bit\r\n var arr = new Uint16Array(data);\r\n // Convert gunzipped byteArray back to ascii string:\r\n var json = [];\r\n var objectEndFound = false;\r\n var objectDeserialized = 0;\r\n //process in reverse to remove the variable byte order markers at the front of the byte array\r\n for (var i = arr.length - 1; i > 0; i--) {\r\n var char = String.fromCharCode(arr[i]);\r\n if (char === \"]\") {\r\n objectDeserialized += 1;\r\n } \r\n if (char === \"[\") {\r\n objectDeserialized -= 1;\r\n }\r\n if (objectDeserialized === 0 && !objectEndFound) continue;\r\n json.push(char);\r\n objectEndFound = true;\r\n if (objectDeserialized === 0) break;\r\n }\r\n //reverse the array and parse the object\r\n json = json.reverse();\r\n (objectQuery).results = JSON.stringify(JSON.parse(json.join(\"\")), null, \"\\t\");\r\n });\r\n }\r\n \r\n compile(objectQuery: Wars.Domain.Model.ObjectQuery) {\r\n var self = this;\r\n (objectQuery).results = null;\r\n self.objectQueryService.onObjectQueryModified(objectQuery);\r\n var i: number;\r\n //set defaults for any missing projection alias names\r\n for (i = 0; i < objectQuery.projections.length; i++) {\r\n if (objectQuery.projections[i].alias == null || objectQuery.projections[i].alias.trim() === \"\") {\r\n self.setDefaultAliasName(objectQuery.projections[i], false);\r\n }\r\n }\r\n //set defaults for any missing parameter names\r\n var parameters = new Array();\r\n var restrictions = objectQuery.restrictions;\r\n if (restrictions && restrictions.length > 0) {\r\n for (i = 0; i < restrictions.length; i++) {\r\n if (restrictions[i].restrictionType === \"P\"\r\n && ((restrictions[i]).rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n || (restrictions[i]).rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList)) {\r\n //process initiator is not an input parameter\r\n //if ((restrictions[i]).propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessInitiator) {\r\n parameters.push((restrictions[i]));\r\n //}\r\n\r\n if ((restrictions[i]).parameterName === null || (restrictions[i]).parameterName.trim() === \"\") {\r\n self.setDefaultParameterName((restrictions[i]));\r\n } \r\n }\r\n } \r\n }\r\n var projections = new Array();\r\n for (i = 0; i < objectQuery.projections.length; i++) {\r\n projections.push(objectQuery.projections[i]);\r\n }\r\n self.save(() => {\r\n //validate query\r\n self.validateObjectQuery(objectQuery).then((messages) => {\r\n if (messages != null && messages.length > 0) {\r\n self.growlService.error(Enumerable.from(messages).aggregate((p, c) => `${p}

${c}`));\r\n return;\r\n }\r\n //build input object schema\r\n var genOutputSchema = (objectQuery).genOutputSchema ? true : false;\r\n var genInputSchema = (objectQuery).genInputSchema ? true : false;\r\n var genSchemas = objectQuery.myProjectionObjectSchema == null || genInputSchema || genOutputSchema;\r\n \r\n if (!genSchemas) {\r\n objectQuery.isExecutable = true;\r\n self.save(() => {});\r\n return;\r\n }\r\n\r\n self.genInputSchema(objectQuery, parameters, genInputSchema).then(() => {\r\n self.genOutputSchema(objectQuery, projections, genOutputSchema).then(() => {\r\n objectQuery.isExecutable = true;\r\n self.save(() => {\r\n self.loadSubQueries();\r\n (objectQuery).genOutputSchema = false;\r\n (objectQuery).genInputSchema = false;\r\n });\r\n });\r\n });\r\n\r\n \r\n //var oldInputSchema = objectQuery.myInputObjectSchema;\r\n //var oldOutputSchema = objectQuery.myProjectionObjectSchema;\r\n //self.setInputObjectSchema(parameters).then((inputSchema) => {\r\n // //build projection object schema\r\n // self.setProjectionObjectSchema(projections).then((projectionSchema) => {\r\n // objectQuery.isExecutable = true;\r\n // //mark query as executable and save\r\n // if (inputSchema != null) {\r\n // objectQuery.inputObjectSchema_id = inputSchema.id;\r\n // objectQuery.myInputObjectSchema = inputSchema;\r\n // }\r\n // if (projectionSchema != null) {\r\n // objectQuery.projectionObjectSchema_id = projectionSchema.id;\r\n // objectQuery.myProjectionObjectSchema = projectionSchema;\r\n // }\r\n // self.save(() => {\r\n // if (oldOutputSchema != null) {\r\n // self.objectQueryService.deleteObjectSchema(oldOutputSchema).then(() => {\r\n // if (oldInputSchema != null) {\r\n // self.objectQueryService.deleteObjectSchema(oldInputSchema);\r\n // }\r\n // });\r\n // }\r\n // self.loadSubQueries();\r\n // });\r\n // });\r\n //}); \r\n\r\n });\r\n });\r\n }\r\n\r\n \r\n private genOutputSchema(objectQuery: Wars.Domain.Model.ObjectQuery, projections: ObjectQueryProjection[], gen: boolean): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n if (gen) {\r\n var oldOutputSchema = objectQuery.myProjectionObjectSchema;\r\n self.setProjectionObjectSchema(projections).then((projectionSchema) => {\r\n if (projectionSchema != null) {\r\n objectQuery.projectionObjectSchema_id = projectionSchema.id;\r\n objectQuery.myProjectionObjectSchema = projectionSchema;\r\n }\r\n self.save(() => {\r\n if (oldOutputSchema != null) {\r\n self.objectQueryService.deleteObjectSchema(oldOutputSchema).then(() => {\r\n d.resolve();\r\n });\r\n } else {\r\n d.resolve();\r\n }\r\n });\r\n });\r\n } else {\r\n d.resolve();\r\n }\r\n return d.promise;\r\n }\r\n\r\n private genInputSchema(objectQuery: Wars.Domain.Model.ObjectQuery, parameters: ObjectQueryPredicate[], gen: boolean): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n if (gen) {\r\n var oldInputSchema = objectQuery.myInputObjectSchema;\r\n self.setInputObjectSchema(parameters).then((inputSchema) => {\r\n if (inputSchema != null) {\r\n objectQuery.inputObjectSchema_id = inputSchema.id;\r\n objectQuery.myInputObjectSchema = inputSchema;\r\n }\r\n self.save(() => {\r\n if (oldInputSchema != null) {\r\n self.objectQueryService.deleteObjectSchema(oldInputSchema).then(() => {\r\n d.resolve();\r\n });\r\n } else {\r\n d.resolve();\r\n }\r\n });\r\n });\r\n } else {\r\n d.resolve();\r\n }\r\n return d.promise;\r\n }\r\n \r\n\r\n private setDefaultParameterName(restriction: models.ObjectQueryPredicate) {\r\n //var self = this;\r\n //if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n // restriction.parameterName = self.getTreeItemName(restriction.leftReportDataTreeItem);\r\n //} else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State) {\r\n // restriction.parameterName = \"[Current State]\";\r\n //} else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status) {\r\n // restriction.parameterName = \"[Current Status]\";\r\n //} else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType) {\r\n // restriction.parameterName = \"[Process Type]\";\r\n //} else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType) {\r\n // restriction.parameterName = \"[Process Sub-Type]\";\r\n //}\r\n //self.save(null);\r\n var self = this;\r\n var column: ExtendedQueryColumn;\r\n if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n restriction.parameterName = self.getTreeItemName(restriction.leftReportDataTreeItem);\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State) {\r\n restriction.parameterName = \"[Current State]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy) {\r\n restriction.parameterName = \"[Current State Updated By]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate) {\r\n restriction.parameterName = \"[Current State Updated Date]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status) {\r\n restriction.parameterName = \"[Current Status]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy) {\r\n restriction.parameterName = \"[Current Status Updated By]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate) {\r\n restriction.parameterName = \"[Current Status Updated Date]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType) {\r\n restriction.parameterName = \"[Process Type]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType) {\r\n restriction.parameterName = \"[Process Sub-Type]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = `[Assignmnet] [${column.displayName}]`;\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = `[Review Information] [${column.displayName}]`;\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = `[Status History] [${column.displayName}]`;\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = `[Comment Information] [${column.displayName}]`;\r\n }\r\n self.save(null);\r\n }\r\n\r\n private validateObjectQuery(objectQuery: Wars.Domain.Model.ObjectQuery): angular.IPromise> {\r\n var self = this;\r\n var d = self.qService.defer();\r\n var messages = new Array();\r\n var projections = objectQuery.projections;\r\n if (projections.length === 0) {\r\n messages.push(\"At least one projection is required in an object query.\");\r\n }\r\n var i: number;\r\n for (i = 0; i < projections.length; i++) {\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property\r\n && projections[i].reportDataTreeItem_id === null) {\r\n messages.push(\"All projections must specify a property.\");\r\n break;\r\n }\r\n }\r\n for (i = 0; i < projections.length; i++) {\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n var c = Enumerable.from(objectQuery.projections)\r\n .where(x => x.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property)\r\n .where(x => x.alias.toLowerCase() === projections[i].alias.toLowerCase())\r\n .count();\r\n if (c > 1) {\r\n messages.push(\"All projection alias names must be unique - case insensitive.\");\r\n break; \r\n }\r\n }\r\n }\r\n var restrictions = objectQuery.restrictions;\r\n if (restrictions.length === 0) {\r\n messages.push(\"At least one restriction is required in an object query.\");\r\n }\r\n var hasSubGroupMessage = false;\r\n var hasLeftPredicateRequiredMessage = false;\r\n var hasRightPredicateRequiredMessage = false;\r\n var hasSubQueryPredicateRequiredMessage = false;\r\n for (i = 0; i < restrictions.length; i++) {\r\n if (restrictions[i].restrictionType !== \"P\") {\r\n var children = Enumerable.from(restrictions).where(x => x.myParentRestriction !== null && x.myParentRestriction.id === restrictions[i].id).count();\r\n if (children < 2) {\r\n if (!hasSubGroupMessage) {\r\n messages.push(\"All And and Or junctions must contain at least 2 predicates.\");\r\n hasSubGroupMessage = true;\r\n }\r\n }\r\n } else {\r\n if ((restrictions[i]).propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property\r\n && (restrictions[i]).leftReportDataTreeItem === null) {\r\n if (!hasLeftPredicateRequiredMessage) {\r\n messages.push(\"All predicates must specify a left-side property.\");\r\n hasLeftPredicateRequiredMessage = true;\r\n }\r\n }\r\n if (((restrictions[i]).rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Constant\r\n || (restrictions[i]).rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.PlaceHolder\r\n || (restrictions[i]).rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Calculation\r\n || (restrictions[i]).rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Property)\r\n && (restrictions[i]).rightParameterTreeItem === null) {\r\n if (!hasRightPredicateRequiredMessage) {\r\n messages.push(\"All constant, placeholder, and property predicate types must be specified.\");\r\n hasRightPredicateRequiredMessage = true;\r\n }\r\n }\r\n if ((restrictions[i]).rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery\r\n && ((restrictions[i]).propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId || (restrictions[i]).propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId)\r\n && (restrictions[i]).subObjectQuery_id === null) {\r\n if (!hasSubQueryPredicateRequiredMessage) {\r\n messages.push(\"All sub-query predicates must specify a valid sub-query.\");\r\n hasSubQueryPredicateRequiredMessage = true;\r\n }\r\n }\r\n }\r\n }\r\n d.resolve(messages);\r\n return d.promise;\r\n }\r\n\r\n private setInputObjectSchema(parameters: Array): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n if (parameters.length === 0) {\r\n d.resolve(null);\r\n return d.promise;\r\n }\r\n var objectQuery = parameters[0].myObjectQuery;\r\n var schema = self.objectQueryService.createNewInputSchema(objectQuery);\r\n var listSchemas = new Array();\r\n var listSchemaParentProperties = new Array();\r\n var i: number;\r\n for (i = 0; i < parameters.length; i++) {\r\n var property = self.objectQueryService.createNewSchemaProperty(schema);\r\n self.setInputSchemaPropertyBaseValues(parameters[i], property);\r\n if (parameters[i].rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n var listSchema = self.objectQueryService.createNewInputListSchema(objectQuery, schema, property.name);\r\n property.typeSchema = listSchema;\r\n property.type_id = listSchema.id;\r\n listSchemas.push(listSchema);\r\n listSchemaParentProperties.push(property);\r\n var listProperty = self.objectQueryService.createNewSchemaProperty(listSchema);\r\n self.setInputSchemaPropertyBaseValues(parameters[i], listProperty);\r\n self.setInputSchemaPropertyType(parameters[i], listProperty);\r\n self.setSchemaPropertyCodeGroup(parameters[i], listProperty); \r\n } else {\r\n self.setInputSchemaPropertyType(parameters[i], property);\r\n self.setSchemaPropertyCodeGroup(parameters[i], property);\r\n }\r\n }\r\n self.save(() => {\r\n //relate list object schema parent properties after the initial save - Breeze can only save a double-sided many-to-many unidirectionally in a single save\r\n for (i = 0; i < listSchemas.length; i++) {\r\n listSchemas[i].parentProperty = listSchemaParentProperties[i];\r\n listSchemas[i].schemaProperty_id = listSchemaParentProperties[i].id;\r\n }\r\n d.resolve(schema); \r\n });\r\n return d.promise;\r\n }\r\n\r\n private setInputSchemaPropertyBaseValues(predicate: ObjectQueryPredicate, property: Wars.Domain.Model.SchemaProperty) {\r\n var self = this;\r\n property.name = predicate.parameterName;\r\n predicate.parameterSchemaPropertyUniqueId = property.uniqueIdentifier;\r\n property.isIndexed = false;\r\n property.required = true;\r\n property.isSystemLevel = self.processConfigurationId == null;\r\n }\r\n\r\n private setProjectionSchemaPropertyBaseValues(projection: ObjectQueryProjection, property: Wars.Domain.Model.SchemaProperty) {\r\n var self = this;\r\n property.name = projection.alias;\r\n property.isIndexed = false;\r\n property.required = false;\r\n property.isSystemLevel = self.processConfigurationId == null;\r\n }\r\n\r\n private setSchemaPropertyCodeGroup(predicate: ObjectQueryPredicate, property: Wars.Domain.Model.SchemaProperty) {\r\n if (predicate.leftReportDataTreeItem == null) return;\r\n if (predicate.leftReportDataTreeItem.schemaProperty == null) return;\r\n if (predicate.leftReportDataTreeItem.schemaProperty.codeGroup_id == null) return;\r\n property.codeGroup = predicate.leftReportDataTreeItem.schemaProperty.codeGroup;\r\n property.codeGroup_id = predicate.leftReportDataTreeItem.schemaProperty.codeGroup_id;\r\n }\r\n\r\n private setInputSchemaPropertyType(predicate: ObjectQueryPredicate, property: Wars.Domain.Model.SchemaProperty) {\r\n switch (predicate.propertyType) {\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property:\r\n property.propertyType = predicate.leftReportDataTreeItem.variableType;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.State;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.User;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Status;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.User;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Identifier;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.ProcessId;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.ProcessType;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.SubType;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessInitiator:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.User;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment:\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation:\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory:\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation:\r\n var column = predicate.getExtendedQueryColumn();\r\n switch (column.dataType) {\r\n case ExtendedQueryColumnDataType.State:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.State;\r\n break;\r\n case ExtendedQueryColumnDataType.User:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.User;\r\n break;\r\n case ExtendedQueryColumnDataType.UserEmail:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.UserEmail;\r\n break;\r\n case ExtendedQueryColumnDataType.Boolean:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Boolean;\r\n break;\r\n case ExtendedQueryColumnDataType.Claim:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Claim;\r\n break;\r\n case ExtendedQueryColumnDataType.Date:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Date;\r\n break;\r\n case ExtendedQueryColumnDataType.Number:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n break;\r\n case ExtendedQueryColumnDataType.ReviewConfiguration:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.ReviewConfiguration;\r\n break;\r\n case ExtendedQueryColumnDataType.ReviewType:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.ReviewType;\r\n break;\r\n case ExtendedQueryColumnDataType.Status:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Status;\r\n break;\r\n case ExtendedQueryColumnDataType.String:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private setProjectionSchemaPropertyType(projection: ObjectQueryProjection, property: Wars.Domain.Model.SchemaProperty) {\r\n switch (projection.propertyType) {\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property:\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation:\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment:\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory:\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessInitiator:\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation:\r\n var variableType: Wars.Domain.Model.Codes.Enums.VariableType;\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n variableType = projection.reportDataTreeItem.variableType; \r\n }\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessInitiator) {\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.User;\r\n }\r\n if (projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment\r\n || projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation\r\n || projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory\r\n || projection.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n var column = projection.getExtendedQueryColumn();\r\n switch (column.dataType) {\r\n case ExtendedQueryColumnDataType.State:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.State;\r\n break;\r\n case ExtendedQueryColumnDataType.User:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.User;\r\n break;\r\n case ExtendedQueryColumnDataType.UserEmail:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.UserEmail;\r\n break;\r\n case ExtendedQueryColumnDataType.Boolean:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.Boolean;\r\n break;\r\n case ExtendedQueryColumnDataType.Claim:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.Claim;\r\n break;\r\n case ExtendedQueryColumnDataType.Date:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.Date;\r\n break;\r\n case ExtendedQueryColumnDataType.Number:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n break;\r\n case ExtendedQueryColumnDataType.ReviewConfiguration:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.ReviewConfiguration;\r\n break;\r\n case ExtendedQueryColumnDataType.ReviewType:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.ReviewType;\r\n break;\r\n case ExtendedQueryColumnDataType.Status:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.Status;\r\n break;\r\n case ExtendedQueryColumnDataType.String:\r\n variableType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n }\r\n }\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n switch (variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Boolean:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Boolean;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Code:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Date:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Date;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.DateTime:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.String:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Time:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Time;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.User:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.UserEmail:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Claim:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.State:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Status:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.ReviewType:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.ReviewConfiguration:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.ProcessId:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.TimeTracker:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.TimeTracker;\r\n break;\r\n }\r\n } else if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Avg) {\r\n switch (variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n break;\r\n }\r\n\r\n } else if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Sum) {\r\n switch (variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n break;\r\n }\r\n } else if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Max\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Min) {\r\n switch (variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Date:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Date;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.DateTime:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Time:\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Time;\r\n break;\r\n }\r\n }\r\n else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Identifier;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.ProcessId;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType:\r\n if (projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group\r\n || projection.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property) {\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n } else {\r\n //count\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private setProjectionObjectSchema(projections: Array): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n if (projections.length === 0) {\r\n d.resolve(null);\r\n return d.promise;\r\n }\r\n var objectQuery = projections[0].myObjectQuery;\r\n var schema = self.objectQueryService.createProjectionSchema(objectQuery);\r\n var isAggregateQuery = self.objectQueryService.isAggregateQuery(objectQuery);\r\n var isRowIdQuery = projections.length === 1 && projections[0].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId;\r\n var isProcessIdQuery = projections.length === 1 && projections[0].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId;\r\n var listSchemas = new Array();\r\n var listSchemaParentProperties = new Array();\r\n var listName: string;\r\n var n: string;\r\n var property: Wars.Domain.Model.SchemaProperty;\r\n var i: number;\r\n if (!isAggregateQuery && !isRowIdQuery && !isProcessIdQuery) {\r\n var impliedProperty: Wars.Domain.Model.SchemaProperty;\r\n //add any list object schemas\r\n for (i = 0; i < projections.length; i++) {\r\n var listSchema: Wars.Domain.Model.ObjectSchema = null;\r\n var exists: boolean = false;\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n if (projections[i].reportDataTreeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.TimeTracker) continue;\r\n if (projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema == null || !projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema.isList) continue;\r\n //TODO: Randy - temp fix to handle null name on list schema property's parent object schema \r\n //listName = self.getValidAliasNameFromString(projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema.name);\r\n n = projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema.name;\r\n if (n == null) {\r\n n = projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema.parentProperty.name;\r\n }\r\n listName = self.getValidAliasNameFromString(n);\r\n //end\r\n exists = Enumerable.from(listSchemas).any(x => x.name === listName);\r\n if (exists) continue;\r\n listSchema = self.objectQueryService.createNewProjectionListSchema(objectQuery, schema, listName);\r\n listSchemas.push(listSchema); \r\n }\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment) {\r\n listName = projections[i].assignmentQueryMap.listName;\r\n }\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n listName = projections[i].reviewInformationQueryMap.listName;\r\n }\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory) {\r\n listName = projections[i].statusHistoryQueryMap.listName;\r\n }\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n listName = projections[i].commentInformationQueryMap.listName;\r\n }\r\n exists = Enumerable.from(listSchemas).any(x => x.name === listName);\r\n if (exists) continue;\r\n listSchema = self.objectQueryService.createNewProjectionListSchema(objectQuery, schema, listName);\r\n listSchemas.push(listSchema);\r\n }\r\n if (listSchema == null) continue;\r\n property = self.objectQueryService.createNewSchemaProperty(schema);\r\n property.name = listName;\r\n property.isIndexed = false;\r\n property.required = false;\r\n property.isSystemLevel = self.processConfigurationId == null;\r\n property.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n property.typeSchema = listSchema;\r\n property.type_id = listSchema.id;\r\n listSchemaParentProperties.push(property);\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n //add _Id property for each list projection\r\n impliedProperty = self.objectQueryService.createNewSchemaProperty(listSchema);\r\n impliedProperty.name = \"_Id\";\r\n impliedProperty.isIndexed = false;\r\n impliedProperty.required = false;\r\n impliedProperty.isSystemLevel = self.processConfigurationId == null;\r\n impliedProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Identifier; \r\n }\r\n } \r\n //add implied properties for non-aggrgate queries\r\n //_Id\r\n impliedProperty = self.objectQueryService.createNewSchemaProperty(schema);\r\n impliedProperty.name = \"_Id\";\r\n impliedProperty.isIndexed = false;\r\n impliedProperty.required = false;\r\n impliedProperty.isSystemLevel = self.processConfigurationId == null;\r\n impliedProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Identifier;\r\n //_ProcessId\r\n impliedProperty = self.objectQueryService.createNewSchemaProperty(schema);\r\n impliedProperty.name = \"_ProcessId\";\r\n impliedProperty.isIndexed = false;\r\n impliedProperty.required = false;\r\n impliedProperty.isSystemLevel = self.processConfigurationId == null;\r\n impliedProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.ProcessId;\r\n //_ProcessType\r\n impliedProperty = self.objectQueryService.createNewSchemaProperty(schema);\r\n impliedProperty.name = \"_ProcessType\";\r\n impliedProperty.isIndexed = false;\r\n impliedProperty.required = false;\r\n impliedProperty.isSystemLevel = self.processConfigurationId == null;\r\n impliedProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n //_ProcessTypeId\r\n impliedProperty = self.objectQueryService.createNewSchemaProperty(schema);\r\n impliedProperty.name = \"_ProcessTypeId\";\r\n impliedProperty.isIndexed = false;\r\n impliedProperty.required = false;\r\n impliedProperty.isSystemLevel = self.processConfigurationId == null;\r\n impliedProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.ProcessType;\r\n //_LastUpdateDate\r\n impliedProperty = self.objectQueryService.createNewSchemaProperty(schema);\r\n impliedProperty.name = \"_LastUpdateDate\";\r\n impliedProperty.isIndexed = false;\r\n impliedProperty.required = false;\r\n impliedProperty.isSystemLevel = self.processConfigurationId == null;\r\n impliedProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n //_LastUpdateUser\r\n impliedProperty = self.objectQueryService.createNewSchemaProperty(schema);\r\n impliedProperty.name = \"_LastUpdateUser\";\r\n impliedProperty.isIndexed = false;\r\n impliedProperty.required = false;\r\n impliedProperty.isSystemLevel = self.processConfigurationId == null;\r\n impliedProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.User;\r\n }\r\n for (i = 0; i < projections.length; i++) {\r\n var addRootSchemaProperty = false;\r\n if (isAggregateQuery) {\r\n addRootSchemaProperty = true;\r\n } else {\r\n var listProperty: Wars.Domain.Model.SchemaProperty = null;\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n if (projections[i].reportDataTreeItem.itemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.TimeTracker &&\r\n projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema != null &&\r\n projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema.isList) {\r\n //TODO: Randy - temp fix to handle null name on list schema property's parent object schema \r\n //listName = self.getValidAliasNameFromString(projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema.name);\r\n n = projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema.name;\r\n if (n == null) {\r\n n = projections[i].reportDataTreeItem.schemaProperty.parentObjectSchema.parentProperty.name;\r\n }\r\n listName = self.getValidAliasNameFromString(n);\r\n //end\r\n listProperty = self.objectQueryService.createNewSchemaProperty(Enumerable.from(listSchemas).first(x => x.name === listName));\r\n self.setProjectionSchemaPropertyBaseValues(projections[i], listProperty);\r\n self.setProjectionSchemaPropertyType(projections[i], listProperty);\r\n } else {\r\n addRootSchemaProperty = true;\r\n }\r\n } else if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory\r\n || projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n \r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment) {\r\n listName = projections[i].assignmentQueryMap.listName;\r\n }\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n listName = projections[i].reviewInformationQueryMap.listName;\r\n }\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory) {\r\n listName = projections[i].statusHistoryQueryMap.listName;\r\n }\r\n if (projections[i].propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n listName = projections[i].commentInformationQueryMap.listName;\r\n }\r\n listProperty = self.objectQueryService.createNewSchemaProperty(Enumerable.from(listSchemas).first(x => x.name === listName));\r\n self.setProjectionSchemaPropertyBaseValues(projections[i], listProperty);\r\n self.setProjectionSchemaPropertyType(projections[i], listProperty);\r\n } else {\r\n addRootSchemaProperty = true;\r\n }\r\n }\r\n if (addRootSchemaProperty) {\r\n property = self.objectQueryService.createNewSchemaProperty(schema);\r\n self.setProjectionSchemaPropertyBaseValues(projections[i], property);\r\n self.setProjectionSchemaPropertyType(projections[i], property);\r\n }\r\n }\r\n self.save(() => {\r\n //relate list object schema parent properties after the initial save - Breeze can only save a double-sided many-to-many unidirectionally in a single save \r\n if (!isAggregateQuery && !isRowIdQuery && !isProcessIdQuery) {\r\n for (i = 0; i < listSchemas.length; i++) {\r\n listSchemas[i].parentProperty = listSchemaParentProperties[i];\r\n listSchemas[i].schemaProperty_id = listSchemaParentProperties[i].id;\r\n } \r\n }\r\n d.resolve(schema);\r\n });\r\n return d.promise;\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ObjectQueryPredicateStateChange;\r\n (function (ObjectQueryPredicateStateChange) {\r\n ObjectQueryPredicateStateChange[ObjectQueryPredicateStateChange[\"LeftPredicate\"] = 0] = \"LeftPredicate\";\r\n ObjectQueryPredicateStateChange[ObjectQueryPredicateStateChange[\"Operator\"] = 1] = \"Operator\";\r\n ObjectQueryPredicateStateChange[ObjectQueryPredicateStateChange[\"RightRistrictionType\"] = 2] = \"RightRistrictionType\";\r\n })(ObjectQueryPredicateStateChange = models.ObjectQueryPredicateStateChange || (models.ObjectQueryPredicateStateChange = {}));\r\n var ExtendedQueryColumnDataType;\r\n (function (ExtendedQueryColumnDataType) {\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"String\"] = 0] = \"String\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"Date\"] = 1] = \"Date\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"Number\"] = 2] = \"Number\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"Boolean\"] = 3] = \"Boolean\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"ReviewType\"] = 4] = \"ReviewType\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"State\"] = 5] = \"State\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"Status\"] = 6] = \"Status\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"User\"] = 7] = \"User\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"Claim\"] = 8] = \"Claim\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"ReviewConfiguration\"] = 9] = \"ReviewConfiguration\";\r\n ExtendedQueryColumnDataType[ExtendedQueryColumnDataType[\"UserEmail\"] = 10] = \"UserEmail\";\r\n })(ExtendedQueryColumnDataType = models.ExtendedQueryColumnDataType || (models.ExtendedQueryColumnDataType = {}));\r\n var ExtendedQueryColumn = /** @class */ (function () {\r\n function ExtendedQueryColumn(column, systemColumn, dataType, displayName, aliasName) {\r\n this.column = column;\r\n this.systemColumn = systemColumn;\r\n this.dataType = dataType;\r\n this.displayName = displayName;\r\n this.aliasName = aliasName;\r\n }\r\n return ExtendedQueryColumn;\r\n }());\r\n models.ExtendedQueryColumn = ExtendedQueryColumn;\r\n var CommentInformationQueryMap = /** @class */ (function () {\r\n function CommentInformationQueryMap() {\r\n this.listName = \"_CommentInfos\";\r\n this.columns = [\r\n new ExtendedQueryColumn(\"ReviewConfigurationUniqueId\", \"SystemReviewGroupId\", ExtendedQueryColumnDataType.ReviewConfiguration, \"Review Configuration\", \"_ReviewConfiguration\"),\r\n new ExtendedQueryColumn(\"CommentType\", \"CommentType\", ExtendedQueryColumnDataType.String, \"Comment Type\", \"_CommentType\"),\r\n new ExtendedQueryColumn(\"CommentStatus\", \"CommentStatus\", ExtendedQueryColumnDataType.String, \"Comment Status\", \"_CommentStatus\"),\r\n new ExtendedQueryColumn(\"CommentingUserId\", \"CommentingUserId\", ExtendedQueryColumnDataType.User, \"Commenting User\", \"_CommentingUser\"),\r\n new ExtendedQueryColumn(\"Comment\", \"Comment\", ExtendedQueryColumnDataType.String, \"Comment\", \"_Comment\"),\r\n new ExtendedQueryColumn(\"CommentDateTime\", \"CommentDateTime\", ExtendedQueryColumnDataType.Date, \"Comment Date-Time\", \"_CommentDateTime\")\r\n ];\r\n }\r\n return CommentInformationQueryMap;\r\n }());\r\n models.CommentInformationQueryMap = CommentInformationQueryMap;\r\n var StatusHistoryQueryMap = /** @class */ (function () {\r\n function StatusHistoryQueryMap() {\r\n this.listName = \"_StatusHistories\";\r\n this.columns = [\r\n new ExtendedQueryColumn(\"ProcessLevelStatusUniqueIdentifier\", \"SystemLevelStatusUniqueIdentifier\", ExtendedQueryColumnDataType.Status, \"Status\", \"_Status\"),\r\n new ExtendedQueryColumn(\"StatusEffectiveDate\", \"StatusEffectiveDate\", ExtendedQueryColumnDataType.Date, \"Status Effective Date\", \"_StatusEffectiveDate\"),\r\n new ExtendedQueryColumn(\"ProcessLevelStateUniqueIdentifier\", \"SystemLevelStateUniqueIdentifier\", ExtendedQueryColumnDataType.State, \"State\", \"_State\"),\r\n new ExtendedQueryColumn(\"StateEffectiveDate\", \"StateEffectiveDate\", ExtendedQueryColumnDataType.Date, \"State Effective Date\", \"_StateEffectiveDate\"),\r\n new ExtendedQueryColumn(\"OccurrenceIndex\", \"OccurrenceIndex\", ExtendedQueryColumnDataType.Number, \"Order\", \"_Order\")\r\n ];\r\n }\r\n return StatusHistoryQueryMap;\r\n }());\r\n models.StatusHistoryQueryMap = StatusHistoryQueryMap;\r\n var AssignmentQueryMap = /** @class */ (function () {\r\n function AssignmentQueryMap() {\r\n this.listName = \"_AssignmentInfos\";\r\n this.columns = [\r\n new ExtendedQueryColumn(\"ClaimDefinitionUniqueIdentifier\", \"SystemClaimGroupId\", ExtendedQueryColumnDataType.Claim, \"Claim\", \"_Claim\"),\r\n new ExtendedQueryColumn(\"AssignedUserId\", \"AssignedUserId\", ExtendedQueryColumnDataType.User, \"Assigned To User\", \"_AssignedToUser\"),\r\n new ExtendedQueryColumn(\"AssignorUserId\", \"AssignorUserId\", ExtendedQueryColumnDataType.User, \"Assigned By User\", \"_AssignedByUser\"),\r\n new ExtendedQueryColumn(\"AssignedUserId_EMAIL\", \"AssignedUserId_EMAIL\", ExtendedQueryColumnDataType.UserEmail, \"Assigned To User Email\", \"_AssignedToUserEmail\"),\r\n new ExtendedQueryColumn(\"AssignorUserId_EMAIL\", \"AssignorUserId_EMAIL\", ExtendedQueryColumnDataType.UserEmail, \"Assigned By User Email\", \"_AssignedByUserEmail\")\r\n ];\r\n }\r\n return AssignmentQueryMap;\r\n }());\r\n models.AssignmentQueryMap = AssignmentQueryMap;\r\n var ReviewInformationQueryMap = /** @class */ (function () {\r\n function ReviewInformationQueryMap() {\r\n this.listName = \"_ReviewInfos\";\r\n this.columns = [\r\n new ExtendedQueryColumn(\"ReviewConfigurationUniqueId\", \"SystemReviewGroupId\", ExtendedQueryColumnDataType.ReviewConfiguration, \"Review Configuration\", \"_ReviewConfiguration\"),\r\n new ExtendedQueryColumn(\"ReviewTypeSystemCodeUniqueId\", \"ReviewTypeSystemCodeUniqueId\", ExtendedQueryColumnDataType.ReviewType, \"Review Type\", \"_ReviewType\"),\r\n new ExtendedQueryColumn(\"AssignedDate\", \"AssignedDate\", ExtendedQueryColumnDataType.Date, \"Assigned Date\", \"_AssignedDate\"),\r\n new ExtendedQueryColumn(\"DueDate\", \"DueDate\", ExtendedQueryColumnDataType.Date, \"Due Date\", \"_DueDate\"),\r\n new ExtendedQueryColumn(\"ClosedDate\", \"ClosedDate\", ExtendedQueryColumnDataType.Date, \"Closed Date\", \"_ClosedDate\"),\r\n new ExtendedQueryColumn(\"IsComplete\", \"IsComplete\", ExtendedQueryColumnDataType.Boolean, \"Review Complete\", \"_ReviewComplete\"),\r\n new ExtendedQueryColumn(\"IsReviewSetComplete\", \"IsReviewSetComplete\", ExtendedQueryColumnDataType.Boolean, \"Review Set Complete\", \"_ReviewSetComplete\"),\r\n new ExtendedQueryColumn(\"AssignedUserId\", \"AssignedUserId\", ExtendedQueryColumnDataType.User, \"Assigned To User\", \"_AssignedToUser\"),\r\n new ExtendedQueryColumn(\"AssignorUserId\", \"AssignorUserId\", ExtendedQueryColumnDataType.User, \"Assigned By User\", \"_AssignedByUser\"),\r\n new ExtendedQueryColumn(\"AssignedUserId_EMAIL\", \"AssignedUserId_EMAIL\", ExtendedQueryColumnDataType.UserEmail, \"Assigned To User Email\", \"_AssignedToUserEmail\"),\r\n new ExtendedQueryColumn(\"AssignorUserId_EMAIL\", \"AssignorUserId_EMAIL\", ExtendedQueryColumnDataType.UserEmail, \"Assigned By User Email\", \"_AssignedByUserEmail\"),\r\n new ExtendedQueryColumn(\"Comment\", \"Comment\", ExtendedQueryColumnDataType.String, \"Comment\", \"_Comment\")\r\n ];\r\n }\r\n return ReviewInformationQueryMap;\r\n }());\r\n models.ReviewInformationQueryMap = ReviewInformationQueryMap;\r\n var ObjectQueryPredicate = /** @class */ (function (_super) {\r\n __extends(ObjectQueryPredicate, _super);\r\n function ObjectQueryPredicate() {\r\n var _this = _super.call(this) || this;\r\n _this.showValueTarget = false;\r\n _this.showParameterName = false;\r\n _this.showParameterTarget = false;\r\n _this.statusHistoryQueryMap = new StatusHistoryQueryMap();\r\n _this.assignmentQueryMap = new AssignmentQueryMap();\r\n _this.reviewInformationQueryMap = new ReviewInformationQueryMap();\r\n _this.commentInformationQueryMap = new CommentInformationQueryMap();\r\n _this.propertyTypeContext = new models.EnumDropDownContext();\r\n _this.operatorTypeContext = new models.EnumDropDownContext();\r\n _this.rightRestrictionTypeContext = new models.EnumDropDownContext();\r\n _this.stateChange = ObjectQueryPredicateStateChange.LeftPredicate;\r\n return _this;\r\n }\r\n ObjectQueryPredicate.prototype.getExtendedQueryColumn = function () {\r\n var self = this;\r\n if (self.propertyType === 8 /* Assignment */) {\r\n return Enumerable.from(self.assignmentQueryMap.columns)\r\n .where(function (i) { return i.column === self.reportDataSubTableColumnName; })\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === 9 /* ReviewInformation */) {\r\n return Enumerable.from(self.reviewInformationQueryMap.columns)\r\n .where(function (i) { return i.column === self.reportDataSubTableColumnName; })\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === 6 /* StatusHistory */) {\r\n return Enumerable.from(self.statusHistoryQueryMap.columns)\r\n .where(function (i) { return i.column === self.reportDataSubTableColumnName; })\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === 12 /* CommentInformation */) {\r\n return Enumerable.from(self.commentInformationQueryMap.columns)\r\n .where(function (i) { return i.column === self.reportDataSubTableColumnName; })\r\n .singleOrDefault();\r\n }\r\n return null;\r\n };\r\n ObjectQueryPredicate.prototype.setValidValues = function (isProcessLevel) {\r\n var self = this;\r\n self.operatorTypeContext.removeSpecifiedOptions = [];\r\n self.rightRestrictionTypeContext.removeSpecifiedOptions = [];\r\n self.propertyTypeContext.removeSpecifiedOptions = [];\r\n //self.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId);\r\n if (isProcessLevel || self.processTypes.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(4 /* ProcessType */);\r\n }\r\n if (self.states == null || self.states.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(1 /* State */);\r\n }\r\n if (self.statuses == null || self.statuses.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(2 /* Status */);\r\n self.propertyTypeContext.removeSpecifiedOptions.push(6 /* StatusHistory */);\r\n }\r\n if (self.reviewConfigurations == null || self.reviewConfigurations.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(9 /* ReviewInformation */);\r\n }\r\n if (self.assignmentClaims == null || self.assignmentClaims.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(8 /* Assignment */);\r\n }\r\n //row id\r\n if (self.propertyType === 3 /* RowId */\r\n || self.propertyType === 10 /* ProcessId */\r\n || (self.propertyType === 0 /* Property */\r\n && self.leftReportDataTreeItem != null\r\n && self.leftReportDataTreeItem.variableType === 31 /* ProcessId */)) {\r\n self.removeAllRightRestrictionsExcept([\r\n 7 /* SubQuery */,\r\n 1 /* InputParameterValue */\r\n ]);\r\n self.removeAllOperatorsExcept([\r\n 11 /* In */,\r\n 12 /* NotIn */,\r\n 0 /* Equals */\r\n ]);\r\n }\r\n if (self.propertyType === 5 /* ProcessInitiator */) {\r\n self.removeAllRightRestrictionsExcept([\r\n 6 /* Value */,\r\n 1 /* InputParameterValue */\r\n ]);\r\n self.removeAllOperatorsExcept([0 /* Equals */]);\r\n }\r\n if (self.rightRestrictionType === 9 /* Claim */) {\r\n self.removeAllOperatorsExcept([\r\n 11 /* In */,\r\n 12 /* NotIn */\r\n ]);\r\n }\r\n //state, status, or process type\r\n if (self.propertyType !== 18 /* StateLastUpdatedDate */ &&\r\n self.propertyType !== 16 /* StatusLastUpdatedDate */) {\r\n if (self.propertyType === 1 /* State */\r\n || self.propertyType === 2 /* Status */\r\n || self.propertyType === 17 /* StateLastUpdatedBy */\r\n || self.propertyType === 15 /* StatusLastUpdatedBy */\r\n || self.propertyType === 4 /* ProcessType */\r\n || self.propertyType === 11 /* ProcessSubType */) {\r\n if (self.operatorType === 0 /* Equals */\r\n || self.operatorType === 1 /* NotEqual */) {\r\n self.removeAllOperatorsExcept([\r\n 0 /* Equals */,\r\n 1 /* NotEqual */\r\n ]);\r\n }\r\n else {\r\n self.removeAllOperatorsExcept([\r\n 11 /* In */,\r\n 12 /* NotIn */\r\n ]);\r\n }\r\n if (self.propertyType === 17 /* StateLastUpdatedBy */ ||\r\n self.propertyType === 15 /* StatusLastUpdatedBy */) {\r\n self.removeAllRightRestrictionsExcept([\r\n 1 /* InputParameterValue */,\r\n 5 /* PlaceHolder */,\r\n 2 /* InputParameterList */\r\n ]);\r\n }\r\n else {\r\n self.removeAllRightRestrictionsExcept([\r\n 1 /* InputParameterValue */,\r\n 6 /* Value */,\r\n 2 /* InputParameterList */\r\n ]);\r\n }\r\n }\r\n }\r\n //extended predicates\r\n var column;\r\n if (self.propertyType === 8 /* Assignment */\r\n || self.propertyType === 9 /* ReviewInformation */\r\n || self.propertyType === 6 /* StatusHistory */\r\n || self.propertyType === 12 /* CommentInformation */) {\r\n column = self.getExtendedQueryColumn();\r\n if (column.dataType === ExtendedQueryColumnDataType.Claim ||\r\n column.dataType === ExtendedQueryColumnDataType.ReviewType ||\r\n column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration ||\r\n column.dataType === ExtendedQueryColumnDataType.State ||\r\n column.dataType === ExtendedQueryColumnDataType.Status) {\r\n if (self.operatorType === 0 /* Equals */\r\n || self.operatorType === 1 /* NotEqual */\r\n || self.operatorType === 9 /* IsNull */\r\n || self.operatorType === 10 /* IsNotNull */) {\r\n self.removeAllOperatorsExcept([\r\n 0 /* Equals */,\r\n 1 /* NotEqual */,\r\n 9 /* IsNull */,\r\n 10 /* IsNotNull */\r\n ]);\r\n }\r\n else {\r\n self.removeAllOperatorsExcept([\r\n 11 /* In */,\r\n 12 /* NotIn */\r\n ]);\r\n }\r\n self.removeAllRightRestrictionsExcept([\r\n 1 /* InputParameterValue */,\r\n 6 /* Value */,\r\n 2 /* InputParameterList */\r\n ]);\r\n }\r\n }\r\n else if (self.leftReportDataTreeItem == null) {\r\n self.booleanValue = null;\r\n self.transientBooleanValue = \"\";\r\n return;\r\n }\r\n //boolean value\r\n if ((column != null && column.dataType === ExtendedQueryColumnDataType.Boolean)\r\n || self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.variableType === 6 /* Boolean */) {\r\n if (self.booleanValue === null || self.booleanValue === false) {\r\n self.transientBooleanValue = \"\";\r\n }\r\n else {\r\n self.transientBooleanValue = \"1\";\r\n }\r\n }\r\n else {\r\n self.transientBooleanValue = \"\";\r\n self.booleanValue = null;\r\n }\r\n //operator is = null\r\n if (self.operatorType === 9 /* IsNull */\r\n || self.operatorType === 10 /* IsNotNull */) {\r\n self.removeAllRightRestrictionsExcept([0 /* None */]);\r\n }\r\n else {\r\n self.rightRestrictionTypeContext.removeSpecifiedOptions.push(0 /* None */);\r\n }\r\n //a list type predicate\r\n if (self.rightRestrictionType === 2 /* InputParameterList */\r\n || self.rightRestrictionType === 7 /* SubQuery */) {\r\n self.removeAllOperatorsExcept([\r\n 11 /* In */,\r\n 12 /* NotIn */,\r\n 9 /* IsNull */,\r\n 10 /* IsNotNull */\r\n ]);\r\n }\r\n else {\r\n if (self.rightRestrictionType !== 9 /* Claim */) {\r\n self.operatorTypeContext.removeSpecifiedOptions.push(11 /* In */);\r\n self.operatorTypeContext.removeSpecifiedOptions.push(12 /* NotIn */);\r\n }\r\n }\r\n //left predicate is not a code\r\n if ((column != null && column.dataType !== ExtendedQueryColumnDataType.State\r\n && column.dataType !== ExtendedQueryColumnDataType.Status\r\n && column.dataType !== ExtendedQueryColumnDataType.ReviewConfiguration\r\n && column.dataType !== ExtendedQueryColumnDataType.ReviewType\r\n && column.dataType !== ExtendedQueryColumnDataType.Claim\r\n && column.dataType !== ExtendedQueryColumnDataType.Boolean)\r\n || (self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.schemaProperty.codeGroup_id === null && self.leftReportDataTreeItem.variableType !== 6 /* Boolean */)) {\r\n self.rightRestrictionTypeContext.removeSpecifiedOptions.push(6 /* Value */);\r\n }\r\n //not a string type predicate\r\n if ((column != null && column.dataType !== ExtendedQueryColumnDataType.String)\r\n || (self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.variableType !== 0 /* String */)) {\r\n self.operatorTypeContext.removeSpecifiedOptions.push(8 /* LikeAnywhere */);\r\n self.operatorTypeContext.removeSpecifiedOptions.push(7 /* LikeEnd */);\r\n self.operatorTypeContext.removeSpecifiedOptions.push(6 /* LikeStart */);\r\n }\r\n };\r\n ObjectQueryPredicate.prototype.onLeftPredicateChange = function (isProcessLevel) {\r\n var self = this;\r\n self.stateChange = ObjectQueryPredicateStateChange.LeftPredicate;\r\n if (self.operatorType !== 0 /* Equals */) {\r\n self.operatorType = 0 /* Equals */;\r\n if (self.stateChange < ObjectQueryPredicateStateChange.RightRistrictionType) {\r\n self.stateChange = ObjectQueryPredicateStateChange.Operator;\r\n }\r\n }\r\n if (self.rightRestrictionType !== 1 /* InputParameterValue */) {\r\n self.rightRestrictionType = 1 /* InputParameterValue */;\r\n self.stateChange = ObjectQueryPredicateStateChange.RightRistrictionType;\r\n }\r\n self.setValidValues(isProcessLevel);\r\n };\r\n ObjectQueryPredicate.prototype.onOperatorChange = function (isProcessLevel) {\r\n var self = this;\r\n if (self.stateChange < ObjectQueryPredicateStateChange.RightRistrictionType) {\r\n self.stateChange = ObjectQueryPredicateStateChange.Operator;\r\n }\r\n //operator is = null, so set right restriction to none and remove other options\r\n if (self.operatorType === 9 /* IsNull */\r\n || self.operatorType === 10 /* IsNotNull */) {\r\n self.rightRestrictionType = 0 /* None */;\r\n self.stateChange = ObjectQueryPredicateStateChange.RightRistrictionType;\r\n }\r\n else if (self.rightRestrictionType === 0 /* None */) {\r\n //changed from a null predicate, so set restriction type to input parameter\r\n self.rightRestrictionType = 1 /* InputParameterValue */;\r\n self.stateChange = ObjectQueryPredicateStateChange.RightRistrictionType;\r\n }\r\n self.setValidValues(isProcessLevel);\r\n };\r\n ObjectQueryPredicate.prototype.onRightRestrictionTypeChange = function (isProcessLevel) {\r\n var self = this;\r\n var column;\r\n if (self.propertyType === 8 /* Assignment */ ||\r\n self.propertyType === 9 /* ReviewInformation */ ||\r\n self.propertyType === 6 /* StatusHistory */ ||\r\n self.propertyType === 12 /* CommentInformation */) {\r\n column = self.getExtendedQueryColumn();\r\n }\r\n //non-field or row ID property type \r\n if (self.propertyType !== 0 /* Property */\r\n && self.propertyType !== 3 /* RowId */\r\n && (column == null || (column != null && (column.dataType === ExtendedQueryColumnDataType.State || column.dataType === ExtendedQueryColumnDataType.Status)))) {\r\n if (self.rightRestrictionType === 1 /* InputParameterValue */\r\n || self.rightRestrictionType === 6 /* Value */) {\r\n self.operatorTypeContext.removeSpecifiedOptions = [];\r\n if (self.propertyType !== 18 /* StateLastUpdatedDate */\r\n && self.propertyType !== 16 /* StatusLastUpdatedDate */) {\r\n self.removeAllOperatorsExcept([\r\n 0 /* Equals */,\r\n 1 /* NotEqual */\r\n ]);\r\n if (self.operatorType !== 0 /* Equals */\r\n && self.operatorType !== 1 /* NotEqual */) {\r\n self.operatorType = 0 /* Equals */;\r\n }\r\n }\r\n }\r\n if (self.rightRestrictionType === 2 /* InputParameterList */\r\n || self.rightRestrictionType === 7 /* SubQuery */) {\r\n self.operatorTypeContext.removeSpecifiedOptions = [];\r\n self.removeAllOperatorsExcept([\r\n 11 /* In */,\r\n 12 /* NotIn */\r\n ]);\r\n if (self.operatorType !== 11 /* In */\r\n && self.operatorType !== 12 /* NotIn */) {\r\n self.operatorType = 11 /* In */;\r\n }\r\n }\r\n if (self.propertyType === 4 /* ProcessType */) {\r\n self.stateUniqueIdentifier = null;\r\n self.statusUniqueIdentifier = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n self.processSubType_id = null;\r\n }\r\n if (self.propertyType === 11 /* ProcessSubType */) {\r\n self.stateUniqueIdentifier = null;\r\n self.statusUniqueIdentifier = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n }\r\n if (self.propertyType === 1 /* State */\r\n || (column != null && column.dataType === ExtendedQueryColumnDataType.State)) {\r\n self.statusUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n if (self.propertyType === 2 /* Status */\r\n || (column != null && column.dataType === ExtendedQueryColumnDataType.Status)) {\r\n self.stateUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.Claim) {\r\n self.statusUniqueIdentifier = null;\r\n self.stateUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration) {\r\n self.statusUniqueIdentifier = null;\r\n self.stateUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewType) {\r\n self.statusUniqueIdentifier = null;\r\n self.stateUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n }\r\n self.showParameterName = false;\r\n if (self.rightRestrictionType === 1 /* InputParameterValue */\r\n || self.rightRestrictionType === 2 /* InputParameterList */) {\r\n self.showParameterName = true;\r\n }\r\n else {\r\n self.parameterName = null;\r\n self.parameterSchemaPropertyUniqueId = null;\r\n }\r\n self.showValueTarget = false;\r\n if (self.rightRestrictionType === 6 /* Value */) {\r\n self.showValueTarget = true;\r\n if ((self.propertyType === 1 /* State */ || (column != null && column.dataType === ExtendedQueryColumnDataType.State))\r\n && self.stateUniqueIdentifier == null) {\r\n self.stateUniqueIdentifier = self.states[0].value;\r\n }\r\n if ((self.propertyType === 2 /* Status */ || (column != null && column.dataType === ExtendedQueryColumnDataType.Status))\r\n && self.statusUniqueIdentifier == null) {\r\n self.statusUniqueIdentifier = self.statuses[0].value;\r\n }\r\n if (self.propertyType === 4 /* ProcessType */\r\n && self.processType_id == null) {\r\n self.processType_id = self.processTypes[0].value;\r\n }\r\n if (self.propertyType === 11 /* ProcessSubType */\r\n && self.processSubType_id == null) {\r\n self.processSubType_id = self.processSubTypes[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.Claim && self.assignmentClaimIdentifier == null) {\r\n self.assignmentClaimIdentifier = self.assignmentClaims[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration && self.reviewConfigurationIdentifier == null) {\r\n self.reviewConfigurationIdentifier = self.reviewConfigurations[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewType && self.reviewTypeIdentifier == null) {\r\n self.reviewTypeIdentifier = self.reviewTypes[0].value;\r\n }\r\n }\r\n else {\r\n self.stateUniqueIdentifier = null;\r\n self.statusUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n self.showParameterTarget = false;\r\n if (self.propertyType === 17 /* StateLastUpdatedBy */ ||\r\n self.propertyType === 15 /* StatusLastUpdatedBy */ ||\r\n self.propertyType === 16 /* StatusLastUpdatedDate */ ||\r\n self.propertyType === 18 /* StateLastUpdatedDate */) {\r\n if (self.rightRestrictionType !== 0 /* None */\r\n && self.rightRestrictionType !== 6 /* Value */\r\n && self.rightRestrictionType !== 1 /* InputParameterValue */\r\n && self.rightRestrictionType !== 2 /* InputParameterList */\r\n && self.rightRestrictionType !== 7 /* SubQuery */) {\r\n self.showParameterTarget = true;\r\n }\r\n }\r\n return;\r\n }\r\n self.stateChange = ObjectQueryPredicateStateChange.RightRistrictionType;\r\n //right restriction changed to list input so remove all operators but in\r\n if (self.rightRestrictionType === 2 /* InputParameterList */\r\n || self.rightRestrictionType === 7 /* SubQuery */\r\n || self.rightRestrictionType === 9 /* Claim */) {\r\n if (self.operatorType !== 11 /* In */\r\n && self.operatorType !== 12 /* NotIn */) {\r\n self.operatorType = 11 /* In */;\r\n }\r\n }\r\n else if (self.operatorType === 11 /* In */\r\n || self.operatorType === 12 /* NotIn */) {\r\n //changed from a list type, so set operator to equals\r\n self.operatorType = 0 /* Equals */;\r\n }\r\n if (self.rightRestrictionType === 1 /* InputParameterValue */\r\n || self.rightRestrictionType === 2 /* InputParameterList */) {\r\n self.rightParameterTreeItem = null;\r\n self.codeValueUniqueIdentifier = null;\r\n }\r\n else if (self.rightRestrictionType === 0 /* None */) {\r\n self.rightParameterTreeItem = null;\r\n self.codeValueUniqueIdentifier = null;\r\n self.parameterName = null;\r\n self.parameterSchemaPropertyUniqueId = null;\r\n }\r\n else if (self.rightRestrictionType === 6 /* Value */) {\r\n self.rightParameterTreeItem = null;\r\n self.parameterName = null;\r\n self.parameterSchemaPropertyUniqueId = null;\r\n }\r\n else {\r\n self.codeValueUniqueIdentifier = null;\r\n self.parameterName = null;\r\n self.parameterSchemaPropertyUniqueId = null;\r\n }\r\n self.showParameterTarget = false;\r\n if (self.leftReportDataTreeItem != null || (column != null && (column.dataType !== ExtendedQueryColumnDataType.State && column.dataType !== ExtendedQueryColumnDataType.Status))) {\r\n if (self.rightRestrictionType !== 0 /* None */\r\n && self.rightRestrictionType !== 6 /* Value */\r\n && self.rightRestrictionType !== 1 /* InputParameterValue */\r\n && self.rightRestrictionType !== 2 /* InputParameterList */\r\n && self.rightRestrictionType !== 7 /* SubQuery */) {\r\n self.showParameterTarget = true;\r\n }\r\n }\r\n self.showParameterName = false;\r\n if (self.leftReportDataTreeItem != null || column != null) {\r\n if (self.rightRestrictionType === 1 /* InputParameterValue */\r\n || self.rightRestrictionType === 2 /* InputParameterList */) {\r\n self.showParameterName = true;\r\n }\r\n }\r\n self.showValueTarget = false;\r\n if (self.leftReportDataTreeItem != null || column != null) {\r\n if (self.rightRestrictionType === 6 /* Value */) {\r\n if ((self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.schemaProperty.codeGroup_id != null)\r\n || (column != null\r\n && (column.dataType === ExtendedQueryColumnDataType.State\r\n || column.dataType === ExtendedQueryColumnDataType.Status\r\n || column.dataType === ExtendedQueryColumnDataType.Claim\r\n || column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration\r\n || column.dataType === ExtendedQueryColumnDataType.ReviewType))) {\r\n self.showValueTarget = true;\r\n }\r\n else if ((self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.variableType === 6 /* Boolean */)\r\n || (column != null && column.dataType === ExtendedQueryColumnDataType.Boolean)) {\r\n self.showValueTarget = true;\r\n }\r\n }\r\n }\r\n self.setValidValues(isProcessLevel);\r\n };\r\n ObjectQueryPredicate.prototype.removeAllRightRestrictionsExcept = function (members) {\r\n var self = this;\r\n var all = [\r\n 0 /* None */,\r\n 4 /* Constant */,\r\n 2 /* InputParameterList */,\r\n 1 /* InputParameterValue */,\r\n 5 /* PlaceHolder */,\r\n 8 /* Calculation */,\r\n 3 /* Property */,\r\n 7 /* SubQuery */,\r\n 6 /* Value */\r\n ];\r\n var remove = Enumerable.from(all).except(members).toArray();\r\n for (var i = 0; i < remove.length; i++) {\r\n self.rightRestrictionTypeContext.removeSpecifiedOptions.push(remove[i]);\r\n }\r\n };\r\n ObjectQueryPredicate.prototype.removeAllOperatorsExcept = function (members) {\r\n var self = this;\r\n var all = [\r\n 0 /* Equals */,\r\n 3 /* GreaterThan */,\r\n 9 /* IsNull */,\r\n 10 /* IsNotNull */,\r\n 2 /* GreaterThanOrEqual */,\r\n 11 /* In */,\r\n 12 /* NotIn */,\r\n 5 /* LessThan */,\r\n 4 /* LessThanOrEqual */,\r\n 8 /* LikeAnywhere */,\r\n 7 /* LikeEnd */,\r\n 6 /* LikeStart */,\r\n 1 /* NotEqual */\r\n ];\r\n var remove = Enumerable.from(all).except(members).toArray();\r\n for (var i = 0; i < remove.length; i++) {\r\n self.operatorTypeContext.removeSpecifiedOptions.push(remove[i]);\r\n }\r\n };\r\n return ObjectQueryPredicate;\r\n }(BaseEntity));\r\n models.ObjectQueryPredicate = ObjectQueryPredicate;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n\r\n import ObjectQueryRestrictionOperatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType;\r\n import ObjectQueryRightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType;\r\n\r\n export enum ObjectQueryPredicateStateChange {\r\n LeftPredicate = 0,\r\n Operator = 1,\r\n RightRistrictionType = 2\r\n }\r\n\r\n export enum ExtendedQueryColumnDataType {\r\n String = 0,\r\n Date = 1,\r\n Number = 2,\r\n Boolean = 3,\r\n ReviewType = 4,\r\n State = 5,\r\n Status = 6,\r\n User = 7,\r\n Claim = 8,\r\n ReviewConfiguration = 9,\r\n UserEmail = 10\r\n }\r\n\r\n export class ExtendedQueryColumn {\r\n column: string;\r\n systemColumn: string;\r\n dataType: ExtendedQueryColumnDataType;\r\n displayName: string;\r\n aliasName: string;\r\n\r\n constructor(column: string, systemColumn: string, dataType: ExtendedQueryColumnDataType, displayName: string, aliasName: string) {\r\n this.column = column;\r\n this.systemColumn = systemColumn;\r\n this.dataType = dataType;\r\n this.displayName = displayName;\r\n this.aliasName = aliasName;\r\n }\r\n }\r\n\r\n export class CommentInformationQueryMap {\r\n listName = \"_CommentInfos\";\r\n columns = [\r\n new ExtendedQueryColumn(\"ReviewConfigurationUniqueId\", \"SystemReviewGroupId\", ExtendedQueryColumnDataType.ReviewConfiguration, \"Review Configuration\", \"_ReviewConfiguration\"),\r\n new ExtendedQueryColumn(\"CommentType\", \"CommentType\", ExtendedQueryColumnDataType.String, \"Comment Type\", \"_CommentType\"),\r\n new ExtendedQueryColumn(\"CommentStatus\", \"CommentStatus\", ExtendedQueryColumnDataType.String, \"Comment Status\", \"_CommentStatus\"),\r\n new ExtendedQueryColumn(\"CommentingUserId\", \"CommentingUserId\", ExtendedQueryColumnDataType.User, \"Commenting User\", \"_CommentingUser\"),\r\n new ExtendedQueryColumn(\"Comment\", \"Comment\", ExtendedQueryColumnDataType.String, \"Comment\", \"_Comment\"),\r\n new ExtendedQueryColumn(\"CommentDateTime\", \"CommentDateTime\", ExtendedQueryColumnDataType.Date, \"Comment Date-Time\", \"_CommentDateTime\")\r\n ];\r\n }\r\n \r\n export class StatusHistoryQueryMap {\r\n listName = \"_StatusHistories\";\r\n columns = [\r\n new ExtendedQueryColumn(\"ProcessLevelStatusUniqueIdentifier\", \"SystemLevelStatusUniqueIdentifier\", ExtendedQueryColumnDataType.Status, \"Status\", \"_Status\"),\r\n new ExtendedQueryColumn(\"StatusEffectiveDate\", \"StatusEffectiveDate\", ExtendedQueryColumnDataType.Date, \"Status Effective Date\", \"_StatusEffectiveDate\"),\r\n new ExtendedQueryColumn(\"ProcessLevelStateUniqueIdentifier\", \"SystemLevelStateUniqueIdentifier\", ExtendedQueryColumnDataType.State, \"State\", \"_State\"),\r\n new ExtendedQueryColumn(\"StateEffectiveDate\", \"StateEffectiveDate\", ExtendedQueryColumnDataType.Date, \"State Effective Date\", \"_StateEffectiveDate\"),\r\n new ExtendedQueryColumn(\"OccurrenceIndex\", \"OccurrenceIndex\", ExtendedQueryColumnDataType.Number, \"Order\", \"_Order\")\r\n ];\r\n }\r\n\r\n export class AssignmentQueryMap {\r\n listName = \"_AssignmentInfos\";\r\n columns = [\r\n new ExtendedQueryColumn(\"ClaimDefinitionUniqueIdentifier\", \"SystemClaimGroupId\", ExtendedQueryColumnDataType.Claim, \"Claim\", \"_Claim\"),\r\n new ExtendedQueryColumn(\"AssignedUserId\", \"AssignedUserId\", ExtendedQueryColumnDataType.User, \"Assigned To User\", \"_AssignedToUser\"),\r\n new ExtendedQueryColumn(\"AssignorUserId\", \"AssignorUserId\", ExtendedQueryColumnDataType.User, \"Assigned By User\", \"_AssignedByUser\"),\r\n new ExtendedQueryColumn(\"AssignedUserId_EMAIL\", \"AssignedUserId_EMAIL\", ExtendedQueryColumnDataType.UserEmail, \"Assigned To User Email\", \"_AssignedToUserEmail\"),\r\n new ExtendedQueryColumn(\"AssignorUserId_EMAIL\", \"AssignorUserId_EMAIL\", ExtendedQueryColumnDataType.UserEmail, \"Assigned By User Email\", \"_AssignedByUserEmail\")\r\n ];\r\n }\r\n\r\n export class ReviewInformationQueryMap {\r\n listName = \"_ReviewInfos\";\r\n columns = [\r\n new ExtendedQueryColumn(\"ReviewConfigurationUniqueId\", \"SystemReviewGroupId\", ExtendedQueryColumnDataType.ReviewConfiguration, \"Review Configuration\", \"_ReviewConfiguration\"),\r\n new ExtendedQueryColumn(\"ReviewTypeSystemCodeUniqueId\", \"ReviewTypeSystemCodeUniqueId\", ExtendedQueryColumnDataType.ReviewType, \"Review Type\", \"_ReviewType\"),\r\n new ExtendedQueryColumn(\"AssignedDate\", \"AssignedDate\", ExtendedQueryColumnDataType.Date, \"Assigned Date\", \"_AssignedDate\"),\r\n new ExtendedQueryColumn(\"DueDate\", \"DueDate\", ExtendedQueryColumnDataType.Date, \"Due Date\", \"_DueDate\"),\r\n new ExtendedQueryColumn(\"ClosedDate\", \"ClosedDate\", ExtendedQueryColumnDataType.Date, \"Closed Date\", \"_ClosedDate\"),\r\n new ExtendedQueryColumn(\"IsComplete\", \"IsComplete\", ExtendedQueryColumnDataType.Boolean, \"Review Complete\", \"_ReviewComplete\"),\r\n new ExtendedQueryColumn(\"IsReviewSetComplete\", \"IsReviewSetComplete\", ExtendedQueryColumnDataType.Boolean, \"Review Set Complete\", \"_ReviewSetComplete\"),\r\n new ExtendedQueryColumn(\"AssignedUserId\", \"AssignedUserId\", ExtendedQueryColumnDataType.User, \"Assigned To User\", \"_AssignedToUser\"),\r\n new ExtendedQueryColumn(\"AssignorUserId\", \"AssignorUserId\", ExtendedQueryColumnDataType.User, \"Assigned By User\", \"_AssignedByUser\"),\r\n new ExtendedQueryColumn(\"AssignedUserId_EMAIL\", \"AssignedUserId_EMAIL\", ExtendedQueryColumnDataType.UserEmail, \"Assigned To User Email\", \"_AssignedToUserEmail\"),\r\n new ExtendedQueryColumn(\"AssignorUserId_EMAIL\", \"AssignorUserId_EMAIL\", ExtendedQueryColumnDataType.UserEmail, \"Assigned By User Email\", \"_AssignedByUserEmail\"),\r\n new ExtendedQueryColumn(\"Comment\", \"Comment\", ExtendedQueryColumnDataType.String, \"Comment\", \"_Comment\")\r\n ];\r\n }\r\n\r\n export class ObjectQueryPredicate extends BaseEntity implements Wars.Domain.Model.ObjectQueryPredicate {\r\n\r\n operatorType: ObjectQueryRestrictionOperatorType;\r\n rightRestrictionType: ObjectQueryRightRestrictionType;\r\n leftReportDataTreeItem: Wars.Domain.Model.TreeItem;\r\n rightParameterTreeItem: Wars.Domain.Model.TreeItem;\r\n booleanValue: boolean;\r\n codeValueUniqueIdentifier: string;\r\n myObjectQuery: Wars.Domain.Model.ObjectQuery;\r\n objectQuery_id: string;\r\n myParentRestriction: Wars.Domain.Model.ObjectQueryRestriction;\r\n restrictionType: string;\r\n parameterName: string;\r\n propertyType: Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType;\r\n processType_id: string;\r\n processType: Wars.Domain.Model.ProcessType;\r\n processSubType_id: string;\r\n statusUniqueIdentifier: string;\r\n stateUniqueIdentifier: string;\r\n subObjectQuery: Wars.Domain.Model.ObjectQuery;\r\n subObjectQuery_id: string;\r\n reportDataSubTableColumnName: string;\r\n reportDataSubTableSystemColumnName: string;\r\n reviewConfigurationIdentifier: string;\r\n reviewTypeIdentifier: string;\r\n assignmentClaimIdentifier: string;\r\n parameterSchemaPropertyUniqueId: string;\r\n apiAction_id: string;\r\n apiActionProcessType_id: string;\r\n \r\n showValueTarget = false;\r\n showParameterName = false;\r\n showParameterTarget = false;\r\n transientBooleanValue: string;\r\n\r\n statusHistoryQueryMap = new StatusHistoryQueryMap();\r\n assignmentQueryMap = new AssignmentQueryMap();\r\n reviewInformationQueryMap = new ReviewInformationQueryMap();\r\n commentInformationQueryMap = new CommentInformationQueryMap();\r\n\r\n propertyTypeContext = new models.EnumDropDownContext();\r\n operatorTypeContext = new models.EnumDropDownContext();\r\n rightRestrictionTypeContext = new models.EnumDropDownContext();\r\n\r\n codes: Array;\r\n statuses: Array;\r\n states: Array;\r\n processTypes: Array;\r\n processSubTypes: Array;\r\n reviewConfigurations: Array;\r\n reviewTypes: Array;\r\n assignmentClaims: Array;\r\n\r\n stateChange = ObjectQueryPredicateStateChange.LeftPredicate;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n getExtendedQueryColumn(): ExtendedQueryColumn {\r\n var self = this;\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment) {\r\n return Enumerable.from(self.assignmentQueryMap.columns)\r\n .where(i => i.column === self.reportDataSubTableColumnName)\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n return Enumerable.from(self.reviewInformationQueryMap.columns)\r\n .where(i => i.column === self.reportDataSubTableColumnName)\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory) {\r\n return Enumerable.from(self.statusHistoryQueryMap.columns)\r\n .where(i => i.column === self.reportDataSubTableColumnName)\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n return Enumerable.from(self.commentInformationQueryMap.columns)\r\n .where(i => i.column === self.reportDataSubTableColumnName)\r\n .singleOrDefault();\r\n }\r\n return null;\r\n }\r\n\r\n setValidValues(isProcessLevel: boolean) {\r\n var self = this;\r\n self.operatorTypeContext.removeSpecifiedOptions = [];\r\n self.rightRestrictionTypeContext.removeSpecifiedOptions = [];\r\n self.propertyTypeContext.removeSpecifiedOptions = [];\r\n //self.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId);\r\n if (isProcessLevel || self.processTypes.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType);\r\n }\r\n if (self.states == null || self.states.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State);\r\n }\r\n if (self.statuses == null || self.statuses.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status);\r\n self.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory);\r\n }\r\n if (self.reviewConfigurations == null || self.reviewConfigurations.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation);\r\n }\r\n if (self.assignmentClaims == null || self.assignmentClaims.length === 0) {\r\n self.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment);\r\n }\r\n //row id\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId\r\n || self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId\r\n || (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property\r\n && self.leftReportDataTreeItem != null\r\n && self.leftReportDataTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.ProcessId)) {\r\n self.removeAllRightRestrictionsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n ]);\r\n self.removeAllOperatorsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals\r\n ]);\r\n }\r\n\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessInitiator) {\r\n self.removeAllRightRestrictionsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n ]);\r\n self.removeAllOperatorsExcept([Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals]);\r\n }\r\n\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Claim) {\r\n self.removeAllOperatorsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn\r\n ]);\r\n }\r\n //state, status, or process type\r\n if (self.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate &&\r\n self.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate) {\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State\r\n || self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status\r\n || self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy\r\n || self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy\r\n || self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType\r\n || self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType) {\r\n if (self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals\r\n || self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotEqual) {\r\n self.removeAllOperatorsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotEqual\r\n ]);\r\n } else {\r\n self.removeAllOperatorsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn\r\n ]);\r\n }\r\n\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy ||\r\n self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy) {\r\n self.removeAllRightRestrictionsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList\r\n ]);\r\n } else {\r\n self.removeAllRightRestrictionsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList\r\n ]);\r\n }\r\n } \r\n }\r\n //extended predicates\r\n var column: ExtendedQueryColumn;\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment\r\n || self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation\r\n || self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory\r\n || self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n column = self.getExtendedQueryColumn();\r\n if (column.dataType === ExtendedQueryColumnDataType.Claim ||\r\n column.dataType === ExtendedQueryColumnDataType.ReviewType ||\r\n column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration ||\r\n column.dataType === ExtendedQueryColumnDataType.State ||\r\n column.dataType === ExtendedQueryColumnDataType.Status) {\r\n if (self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals\r\n || self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotEqual\r\n || self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNull\r\n || self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNotNull) {\r\n self.removeAllOperatorsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotEqual,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNull,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNotNull\r\n ]);\r\n } else {\r\n self.removeAllOperatorsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn\r\n ]);\r\n }\r\n self.removeAllRightRestrictionsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList\r\n ]); \r\n }\r\n }\r\n else if (self.leftReportDataTreeItem == null) {\r\n self.booleanValue = null;\r\n self.transientBooleanValue = \"\";\r\n return;\r\n }\r\n //boolean value\r\n if ((column != null && column.dataType === ExtendedQueryColumnDataType.Boolean)\r\n || self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Boolean) {\r\n if (self.booleanValue === null || self.booleanValue === false) {\r\n self.transientBooleanValue = \"\";\r\n } else {\r\n self.transientBooleanValue = \"1\";\r\n }\r\n } else {\r\n self.transientBooleanValue = \"\";\r\n self.booleanValue = null;\r\n }\r\n //operator is = null\r\n if (self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNull\r\n || self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNotNull) {\r\n self.removeAllRightRestrictionsExcept([Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.None]);\r\n } else {\r\n self.rightRestrictionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.None);\r\n }\r\n //a list type predicate\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList\r\n || self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery) {\r\n self.removeAllOperatorsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNull,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNotNull\r\n ]);\r\n } else {\r\n if (self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Claim) {\r\n self.operatorTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In);\r\n self.operatorTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn); \r\n }\r\n }\r\n //left predicate is not a code\r\n if ((column != null && column.dataType !== ExtendedQueryColumnDataType.State\r\n && column.dataType !== ExtendedQueryColumnDataType.Status\r\n && column.dataType !== ExtendedQueryColumnDataType.ReviewConfiguration\r\n && column.dataType !== ExtendedQueryColumnDataType.ReviewType\r\n && column.dataType !== ExtendedQueryColumnDataType.Claim\r\n && column.dataType !== ExtendedQueryColumnDataType.Boolean)\r\n || (self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.schemaProperty.codeGroup_id === null && self.leftReportDataTreeItem.variableType !== Wars.Domain.Model.Codes.Enums.VariableType.Boolean)) {\r\n self.rightRestrictionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value);\r\n }\r\n //not a string type predicate\r\n if ((column != null && column.dataType !== ExtendedQueryColumnDataType.String)\r\n || (self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.variableType !== Wars.Domain.Model.Codes.Enums.VariableType.String)) {\r\n self.operatorTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.LikeAnywhere);\r\n self.operatorTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.LikeEnd);\r\n self.operatorTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.LikeStart);\r\n }\r\n }\r\n \r\n onLeftPredicateChange(isProcessLevel: boolean) {\r\n var self = this;\r\n self.stateChange = ObjectQueryPredicateStateChange.LeftPredicate;\r\n if (self.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals) {\r\n self.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals;\r\n if (self.stateChange < ObjectQueryPredicateStateChange.RightRistrictionType) {\r\n self.stateChange = ObjectQueryPredicateStateChange.Operator;\r\n }\r\n }\r\n if (self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue) {\r\n self.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue;\r\n self.stateChange = ObjectQueryPredicateStateChange.RightRistrictionType;\r\n }\r\n self.setValidValues(isProcessLevel);\r\n }\r\n \r\n onOperatorChange(isProcessLevel: boolean) {\r\n var self = this;\r\n if (self.stateChange < ObjectQueryPredicateStateChange.RightRistrictionType) {\r\n self.stateChange = ObjectQueryPredicateStateChange.Operator;\r\n }\r\n //operator is = null, so set right restriction to none and remove other options\r\n if (self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNull\r\n || self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNotNull) {\r\n self.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.None;\r\n self.stateChange = ObjectQueryPredicateStateChange.RightRistrictionType;\r\n } else if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.None) {\r\n //changed from a null predicate, so set restriction type to input parameter\r\n self.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue;\r\n self.stateChange = ObjectQueryPredicateStateChange.RightRistrictionType;\r\n }\r\n self.setValidValues(isProcessLevel);\r\n }\r\n\r\n onRightRestrictionTypeChange(isProcessLevel: boolean) {\r\n var self = this;\r\n var column: ExtendedQueryColumn;\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment ||\r\n self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation ||\r\n self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory ||\r\n self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n column = self.getExtendedQueryColumn();\r\n }\r\n //non-field or row ID property type \r\n if (self.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property\r\n && self.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId\r\n \r\n && (column == null || (column != null && (column.dataType === ExtendedQueryColumnDataType.State || column.dataType === ExtendedQueryColumnDataType.Status)))) {\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n || self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value) {\r\n self.operatorTypeContext.removeSpecifiedOptions = [];\r\n\r\n if (self.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate\r\n && self.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate) {\r\n self.removeAllOperatorsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotEqual\r\n ]);\r\n if (self.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals\r\n && self.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotEqual) {\r\n self.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals;\r\n } \r\n }\r\n\r\n \r\n \r\n }\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList\r\n || self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery) {\r\n self.operatorTypeContext.removeSpecifiedOptions = [];\r\n self.removeAllOperatorsExcept(\r\n [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn\r\n ]);\r\n if (self.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In\r\n && self.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn) {\r\n self.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In;\r\n }\r\n } \r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType) {\r\n self.stateUniqueIdentifier = null;\r\n self.statusUniqueIdentifier = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n self.processSubType_id = null;\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType) {\r\n self.stateUniqueIdentifier = null;\r\n self.statusUniqueIdentifier = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State\r\n || (column != null && column.dataType === ExtendedQueryColumnDataType.State)) {\r\n self.statusUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status\r\n || (column != null && column.dataType === ExtendedQueryColumnDataType.Status)) {\r\n self.stateUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.Claim) {\r\n self.statusUniqueIdentifier = null;\r\n self.stateUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration) {\r\n self.statusUniqueIdentifier = null;\r\n self.stateUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewType) {\r\n self.statusUniqueIdentifier = null;\r\n self.stateUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n }\r\n self.showParameterName = false;\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n || self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList) {\r\n self.showParameterName = true;\r\n } else {\r\n self.parameterName = null;\r\n self.parameterSchemaPropertyUniqueId = null;\r\n }\r\n self.showValueTarget = false;\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value) {\r\n self.showValueTarget = true;\r\n if ((self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State || (column != null && column.dataType === ExtendedQueryColumnDataType.State))\r\n && self.stateUniqueIdentifier == null) {\r\n self.stateUniqueIdentifier = self.states[0].value;\r\n }\r\n if ((self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status || (column != null && column.dataType === ExtendedQueryColumnDataType.Status))\r\n && self.statusUniqueIdentifier == null) {\r\n self.statusUniqueIdentifier = self.statuses[0].value;\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType\r\n && self.processType_id == null) {\r\n self.processType_id = self.processTypes[0].value;\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType\r\n && self.processSubType_id == null) {\r\n self.processSubType_id = self.processSubTypes[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.Claim && self.assignmentClaimIdentifier == null) {\r\n self.assignmentClaimIdentifier = self.assignmentClaims[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration && self.reviewConfigurationIdentifier == null) {\r\n self.reviewConfigurationIdentifier = self.reviewConfigurations[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewType && self.reviewTypeIdentifier == null) {\r\n self.reviewTypeIdentifier = self.reviewTypes[0].value;\r\n }\r\n } else {\r\n self.stateUniqueIdentifier = null;\r\n self.statusUniqueIdentifier = null;\r\n self.processType = null;\r\n self.processType_id = null;\r\n self.processSubType_id = null;\r\n self.assignmentClaimIdentifier = null;\r\n self.reviewConfigurationIdentifier = null;\r\n self.reviewTypeIdentifier = null;\r\n }\r\n self.showParameterTarget = false;\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy ||\r\n self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy ||\r\n self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate ||\r\n self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate) {\r\n if (self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.None\r\n && self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value\r\n && self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n && self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList\r\n && self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery) {\r\n self.showParameterTarget = true;\r\n }\r\n }\r\n return; \r\n }\r\n self.stateChange = ObjectQueryPredicateStateChange.RightRistrictionType;\r\n //right restriction changed to list input so remove all operators but in\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList\r\n || self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery\r\n || self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Claim) {\r\n if (self.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In\r\n && self.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn) {\r\n self.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In; \r\n }\r\n } else if (self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In\r\n || self.operatorType === Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn) {\r\n //changed from a list type, so set operator to equals\r\n self.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals;\r\n }\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n || self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList) {\r\n self.rightParameterTreeItem = null;\r\n self.codeValueUniqueIdentifier = null;\r\n } else if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.None) {\r\n self.rightParameterTreeItem = null;\r\n self.codeValueUniqueIdentifier = null;\r\n self.parameterName = null;\r\n self.parameterSchemaPropertyUniqueId = null;\r\n } else if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value) {\r\n self.rightParameterTreeItem = null;\r\n self.parameterName = null;\r\n self.parameterSchemaPropertyUniqueId = null;\r\n } else {\r\n self.codeValueUniqueIdentifier = null;\r\n self.parameterName = null;\r\n self.parameterSchemaPropertyUniqueId = null;\r\n }\r\n self.showParameterTarget = false;\r\n if (self.leftReportDataTreeItem != null || (column != null && (column.dataType !== ExtendedQueryColumnDataType.State && column.dataType !== ExtendedQueryColumnDataType.Status))) {\r\n if (self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.None\r\n && self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value\r\n && self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n && self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList\r\n && self.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery) {\r\n self.showParameterTarget = true;\r\n } \r\n }\r\n self.showParameterName = false;\r\n if (self.leftReportDataTreeItem != null || column != null) {\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n || self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList) {\r\n self.showParameterName = true;\r\n } \r\n }\r\n self.showValueTarget = false;\r\n if (self.leftReportDataTreeItem != null || column != null) {\r\n if (self.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value) {\r\n if ((self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.schemaProperty.codeGroup_id != null)\r\n || (column != null\r\n && (column.dataType === ExtendedQueryColumnDataType.State\r\n || column.dataType === ExtendedQueryColumnDataType.Status\r\n || column.dataType === ExtendedQueryColumnDataType.Claim\r\n || column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration\r\n || column.dataType === ExtendedQueryColumnDataType.ReviewType))) {\r\n self.showValueTarget = true;\r\n } else if ((self.leftReportDataTreeItem != null && self.leftReportDataTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Boolean)\r\n || (column != null && column.dataType === ExtendedQueryColumnDataType.Boolean)) {\r\n self.showValueTarget = true;\r\n }\r\n } \r\n }\r\n self.setValidValues(isProcessLevel);\r\n }\r\n \r\n private removeAllRightRestrictionsExcept(members: Array) {\r\n var self = this;\r\n var all = [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.None,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Constant,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Calculation,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Property,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value\r\n ];\r\n var remove = Enumerable.from(all).except(members).toArray();\r\n for (var i = 0; i < remove.length; i++) {\r\n self.rightRestrictionTypeContext.removeSpecifiedOptions.push(remove[i]);\r\n }\r\n }\r\n\r\n private removeAllOperatorsExcept(members: Array) {\r\n var self = this;\r\n var all = [\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.GreaterThan,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNull,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.IsNotNull,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.GreaterThanOrEqual,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.LessThan,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.LessThanOrEqual,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.LikeAnywhere,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.LikeEnd,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.LikeStart,\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotEqual\r\n ];\r\n var remove = Enumerable.from(all).except(members).toArray();\r\n for (var i = 0; i < remove.length; i++) {\r\n self.operatorTypeContext.removeSpecifiedOptions.push(remove[i]);\r\n }\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ObjectQueryProjection = /** @class */ (function (_super) {\r\n __extends(ObjectQueryProjection, _super);\r\n function ObjectQueryProjection() {\r\n var _this = _super.call(this) || this;\r\n _this.statusHistoryQueryMap = new models.StatusHistoryQueryMap();\r\n _this.assignmentQueryMap = new models.AssignmentQueryMap();\r\n _this.reviewInformationQueryMap = new models.ReviewInformationQueryMap();\r\n _this.commentInformationQueryMap = new models.CommentInformationQueryMap();\r\n _this.projectionTypeContext = new models.EnumDropDownContext();\r\n _this.propertyTypeContext = new models.EnumDropDownContext();\r\n return _this;\r\n }\r\n ObjectQueryProjection.prototype.getExtendedQueryColumn = function () {\r\n var self = this;\r\n if (self.propertyType === 8 /* Assignment */) {\r\n return Enumerable.from(self.assignmentQueryMap.columns)\r\n .where(function (i) { return i.column === self.reportDataSubTableColumnName; })\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === 9 /* ReviewInformation */) {\r\n return Enumerable.from(self.reviewInformationQueryMap.columns)\r\n .where(function (i) { return i.column === self.reportDataSubTableColumnName; })\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === 6 /* StatusHistory */) {\r\n return Enumerable.from(self.statusHistoryQueryMap.columns)\r\n .where(function (i) { return i.column === self.reportDataSubTableColumnName; })\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === 12 /* CommentInformation */) {\r\n return Enumerable.from(self.commentInformationQueryMap.columns)\r\n .where(function (i) { return i.column === self.reportDataSubTableColumnName; })\r\n .singleOrDefault();\r\n }\r\n return null;\r\n };\r\n return ObjectQueryProjection;\r\n }(BaseEntity));\r\n models.ObjectQueryProjection = ObjectQueryProjection;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n \r\n export class ObjectQueryProjection extends BaseEntity implements Wars.Domain.Model.ObjectQueryProjection {\r\n\r\n myObjectQuery: Wars.Domain.Model.ObjectQuery;\r\n objectQuery_id: string;\r\n reportDataTreeItem: Wars.Domain.Model.TreeItem;\r\n reportDataTreeItem_id: string;\r\n propertyType: Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType;\r\n projectionType: Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType;\r\n orderNumerator: number;\r\n descending: boolean;\r\n transientReportMapping: Wars.Domain.Model.ReportMapping;\r\n transientAliasKey: string;\r\n alias: string;\r\n reportDataSubTableSystemColumnName: string;\r\n reportDataSubTableColumnName: string;\r\n\r\n statusHistoryQueryMap = new StatusHistoryQueryMap();\r\n assignmentQueryMap = new AssignmentQueryMap();\r\n reviewInformationQueryMap = new ReviewInformationQueryMap();\r\n commentInformationQueryMap = new CommentInformationQueryMap();\r\n \r\n projectionTypeContext = new models.EnumDropDownContext();\r\n propertyTypeContext = new models.EnumDropDownContext();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n getExtendedQueryColumn(): ExtendedQueryColumn {\r\n var self = this;\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment) {\r\n return Enumerable.from(self.assignmentQueryMap.columns)\r\n .where(i => i.column === self.reportDataSubTableColumnName)\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n return Enumerable.from(self.reviewInformationQueryMap.columns)\r\n .where(i => i.column === self.reportDataSubTableColumnName)\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory) {\r\n return Enumerable.from(self.statusHistoryQueryMap.columns)\r\n .where(i => i.column === self.reportDataSubTableColumnName)\r\n .singleOrDefault();\r\n }\r\n if (self.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n return Enumerable.from(self.commentInformationQueryMap.columns)\r\n .where(i => i.column === self.reportDataSubTableColumnName)\r\n .singleOrDefault();\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class ObjectQueryRestrictionsModel {\r\n \r\n private currentTreeItem: models.TreeConfigurationItem;\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n private processConfigurationId: string;\r\n private objectQuery: Wars.Domain.Model.ObjectQuery;\r\n private restrictions: Array;\r\n private codeGroups:Array;\r\n private parentRestriction: Wars.Domain.Model.ObjectQueryRestriction;\r\n private topLevel: boolean;\r\n private isAndGroup = true;\r\n private showPredicateHeader = false;\r\n private statuses: Array;\r\n private states: Array;\r\n private processTypes: Array;\r\n private processSubTypes: Array;\r\n private reviewConfigurations: Array;\r\n private reviewTypes: Array;\r\n private assignmentClaims: Array;\r\n \r\n constructor(private scope: directives.IObjectQueryRestrictionsScope,\r\n private growlService: angular.growl.IGrowlService,\r\n private systemLevelService: services.SystemLevelService,\r\n private applicationCodeService: services.ApplicationCodeService,\r\n private treeService: services.TreeService,\r\n private objectQueryService: services.ObjectQueryService) {\r\n var self = this;\r\n self.processConfigurationId = self.scope.processConfigurationId;\r\n self.objectQuery = self.scope.objectQuery;\r\n self.parentRestriction = self.scope.parentRestriction;\r\n self.topLevel = self.scope.topLevel;\r\n self.statuses = objectQueryService.getStatuses();\r\n self.states = objectQueryService.getStates();\r\n self.processTypes = objectQueryService.getProcessTypes();\r\n self.processSubTypes = objectQueryService.getProcessSubTypes();\r\n self.reviewConfigurations = objectQueryService.getReviewConfigurations();\r\n self.reviewTypes = objectQueryService.getReviewTypes();\r\n self.assignmentClaims = objectQueryService.getClaims();\r\n self.restrictions = self.getChildRestrictions(null);\r\n if (self.parentRestriction != null && self.parentRestriction.restrictionType === \"D\") {\r\n self.isAndGroup = false;\r\n }\r\n }\r\n\r\n\r\n getChildRestrictions(restriction: Wars.Domain.Model.ObjectQueryRestriction) {\r\n var self = this;\r\n self.showPredicateHeader = false;\r\n if (restriction == null) {\r\n restriction = self.parentRestriction;\r\n }\r\n var l: Array;\r\n if (restriction != null) {\r\n l = Enumerable\r\n .from(self.objectQuery.restrictions)\r\n .where(i => i.parentRestriction_id === restriction.id)\r\n .toArray();\r\n } else {\r\n l = Enumerable\r\n .from(self.objectQuery.restrictions)\r\n .where(i => i.myParentRestriction == null)\r\n .toArray(); \r\n }\r\n for (var x = 0; x < l.length; x++) {\r\n if (l[x].restrictionType === \"P\") {\r\n self.showPredicateHeader = true;\r\n self.loadCodes(l[x]);\r\n (l[x]).states = self.objectQueryService.getStates();\r\n (l[x]).statuses = self.objectQueryService.getStatuses();\r\n (l[x]).processTypes = self.objectQueryService.getProcessTypes();\r\n (l[x]).processSubTypes = self.objectQueryService.getProcessSubTypes();\r\n (l[x]).reviewConfigurations = self.objectQueryService.getReviewConfigurations();\r\n (l[x]).reviewTypes = self.objectQueryService.getReviewTypes();\r\n (l[x]).assignmentClaims = self.objectQueryService.getClaims();\r\n (l[x]).setValidValues(self.processConfigurationId != null);\r\n }\r\n }\r\n return l;\r\n }\r\n\r\n addNewPredicate() {\r\n var self = this;\r\n self.objectQueryService.createNewPredicate(self.objectQuery, self.parentRestriction);\r\n self.restrictions = self.getChildRestrictions(null);\r\n self.save(null);\r\n }\r\n\r\n addNewAndGroup() {\r\n var self = this;\r\n self.objectQueryService.createNewAndGroup(self.objectQuery, self.parentRestriction);\r\n self.restrictions = self.getChildRestrictions(null);\r\n self.save(null);\r\n }\r\n\r\n addNewOrGroup() {\r\n var self = this;\r\n self.objectQueryService.createNewOrGroup(self.objectQuery, self.parentRestriction);\r\n self.restrictions = self.getChildRestrictions(null);\r\n self.save(null);\r\n }\r\n\r\n save(callback: any) {\r\n var self = this;\r\n self.objectQueryService.saveAllChanges(() => {\r\n if (callback != null) {\r\n callback();\r\n }\r\n });\r\n }\r\n \r\n propertyTypeChange(predicate: models.ObjectQueryPredicate) {\r\n var self = this;\r\n var column: ExtendedQueryColumn;\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment ||\r\n predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation ||\r\n predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory ||\r\n predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n //initializers\r\n column = predicate.getExtendedQueryColumn();\r\n if (column == null) {\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment) {\r\n predicate.reportDataSubTableColumnName = \"ClaimDefinitionUniqueIdentifier\";\r\n predicate.reportDataSubTableSystemColumnName = \"SystemClaimGroupId\";\r\n }\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n predicate.reportDataSubTableColumnName = \"ReviewConfigurationUniqueId\";\r\n predicate.reportDataSubTableSystemColumnName = \"SystemReviewGroupId\";\r\n }\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory) {\r\n predicate.reportDataSubTableColumnName = \"ProcessLevelStatusUniqueIdentifier\";\r\n predicate.reportDataSubTableSystemColumnName = \"SystemLevelStatusUniqueIdentifier\";\r\n }\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n predicate.reportDataSubTableColumnName = \"ReviewConfigurationUniqueId\";\r\n predicate.reportDataSubTableSystemColumnName = \"SystemReviewGroupId\";\r\n }\r\n self.queryMapColumnChange(predicate);\r\n }\r\n } else {\r\n predicate.reportDataSubTableColumnName = null;\r\n predicate.reportDataSubTableSystemColumnName = null;\r\n }\r\n if (predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n predicate.leftReportDataTreeItem = null;\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment\r\n || predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation\r\n || predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory\r\n || predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n column = predicate.getExtendedQueryColumn();\r\n if (column.dataType !== ExtendedQueryColumnDataType.User\r\n && column.dataType !== ExtendedQueryColumnDataType.UserEmail\r\n && column.dataType !== ExtendedQueryColumnDataType.Date) {\r\n predicate.rightParameterTreeItem = null;\r\n }\r\n } else\r\n {\r\n if (predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy &&\r\n predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy &&\r\n predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate &&\r\n predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate) {\r\n predicate.rightParameterTreeItem = null;\r\n } else {\r\n if (predicate.rightRestrictionType !==\r\n Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.PlaceHolder) {\r\n if (predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate &&\r\n predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate) {\r\n predicate.rightParameterTreeItem = null; \r\n }\r\n } \r\n }\r\n }\r\n predicate.codeValueUniqueIdentifier = null;\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.RowId || predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessId) {\r\n if (predicate.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In\r\n && predicate.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn) {\r\n predicate.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In;\r\n }\r\n predicate.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery;\r\n } else {\r\n if (predicate.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In\r\n && predicate.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotIn\r\n && predicate.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals\r\n && predicate.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotEqual) {\r\n if (predicate.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Calculation) {\r\n if (predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate &&\r\n predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate) {\r\n var reset = true;\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n column = predicate.getExtendedQueryColumn();\r\n if (column.dataType === ExtendedQueryColumnDataType.String) {\r\n reset = false;\r\n }\r\n }\r\n if (reset) {\r\n predicate.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals;\r\n predicate.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue; \r\n }\r\n }\r\n }\r\n }\r\n if (predicate.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue\r\n && predicate.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterList\r\n && predicate.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value\r\n && predicate.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery) {\r\n\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation ||\r\n predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment ||\r\n predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory ||\r\n predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n if (column.dataType !== ExtendedQueryColumnDataType.User\r\n && column.dataType !== ExtendedQueryColumnDataType.UserEmail\r\n && column.dataType !== ExtendedQueryColumnDataType.Date) {\r\n predicate.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals;\r\n predicate.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue;\r\n }\r\n } else {\r\n\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy ||\r\n predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy) {\r\n if (predicate.rightRestrictionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.PlaceHolder ||\r\n (predicate.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals &&\r\n predicate.operatorType !== Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.NotEqual)) {\r\n predicate.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals;\r\n predicate.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue;\r\n }\r\n } else if (predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate &&\r\n predicate.propertyType !== Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate) {\r\n predicate.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals;\r\n predicate.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue; \r\n }\r\n\r\n \r\n }\r\n }\r\n }\r\n if (predicate.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value) {\r\n if ((predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State || (column != null && column.dataType === ExtendedQueryColumnDataType.State))\r\n && predicate.stateUniqueIdentifier == null) {\r\n predicate.stateUniqueIdentifier = self.states[0].value;\r\n }\r\n if ((predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status || (column != null && column.dataType === ExtendedQueryColumnDataType.Status))\r\n && predicate.statusUniqueIdentifier == null) {\r\n predicate.statusUniqueIdentifier = self.statuses[0].value;\r\n }\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType && predicate.processType_id == null) {\r\n predicate.processType_id = self.processTypes[0].value;\r\n }\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType && predicate.processSubType_id == null) {\r\n predicate.processSubType_id = self.processSubTypes[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration && predicate.reviewConfigurationIdentifier == null) {\r\n predicate.reviewConfigurationIdentifier = self.reviewConfigurations[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewType && predicate.reviewTypeIdentifier == null) {\r\n predicate.reviewTypeIdentifier = self.reviewTypes[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.Claim && predicate.assignmentClaimIdentifier == null) {\r\n predicate.assignmentClaimIdentifier = self.assignmentClaims[0].value;\r\n } \r\n }\r\n predicate.setValidValues(self.processConfigurationId != null);\r\n } else {\r\n predicate.showValueTarget = false;\r\n predicate.showParameterName = false;\r\n predicate.showParameterTarget = false;\r\n }\r\n self.save(null);\r\n }\r\n\r\n booleanValueChange(predicate: models.ObjectQueryPredicate) {\r\n var self = this;\r\n if (predicate.transientBooleanValue === \"1\") {\r\n predicate.booleanValue = true;\r\n } else {\r\n predicate.booleanValue = false;\r\n }\r\n self.save(null);\r\n }\r\n\r\n queryMapColumnChange(predicate: models.ObjectQueryPredicate) {\r\n var self = this;\r\n self.objectQueryService.onObjectQueryModified(predicate.myObjectQuery);\r\n var column = predicate.getExtendedQueryColumn();\r\n predicate.reportDataSubTableSystemColumnName = column.systemColumn;\r\n predicate.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals;\r\n predicate.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue;\r\n predicate.onLeftPredicateChange(self.processConfigurationId != null);\r\n if (predicate.stateChange === ObjectQueryPredicateStateChange.LeftPredicate) {\r\n self.save(null);\r\n predicate.stateChange = ObjectQueryPredicateStateChange.LeftPredicate;\r\n }\r\n }\r\n\r\n operatorChange(predicate: models.ObjectQueryPredicate) {\r\n var self = this;\r\n predicate.onOperatorChange(self.processConfigurationId != null);\r\n if (predicate.stateChange === ObjectQueryPredicateStateChange.Operator) {\r\n self.save(null);\r\n predicate.stateChange = ObjectQueryPredicateStateChange.LeftPredicate;\r\n }\r\n }\r\n\r\n restrictionTypeChange(predicate: models.ObjectQueryPredicate) {\r\n var self = this;\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment\r\n || predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation\r\n || predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n var column = predicate.getExtendedQueryColumn();\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewConfiguration && predicate.reviewConfigurationIdentifier == null) {\r\n predicate.reviewConfigurationIdentifier = self.reviewConfigurations[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.ReviewType && predicate.reviewTypeIdentifier == null) {\r\n predicate.reviewTypeIdentifier = self.reviewTypes[0].value;\r\n }\r\n if (column != null && column.dataType === ExtendedQueryColumnDataType.Claim && predicate.assignmentClaimIdentifier == null) {\r\n predicate.assignmentClaimIdentifier = self.assignmentClaims[0].value;\r\n } \r\n }\r\n if (predicate.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n predicate.onRightRestrictionTypeChange(self.processConfigurationId != null);\r\n if (predicate.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Value) {\r\n if (predicate.codeValueUniqueIdentifier == null) {\r\n if (predicate.codes != null && predicate.codes.length > 0) {\r\n predicate.codeValueUniqueIdentifier = predicate.codes[0].uniqueIdentifier;\r\n }\r\n }\r\n }\r\n if (predicate.stateChange === ObjectQueryPredicateStateChange.RightRistrictionType) {\r\n self.save(null);\r\n predicate.stateChange = ObjectQueryPredicateStateChange.LeftPredicate;\r\n }\r\n } else {\r\n predicate.onRightRestrictionTypeChange(self.processConfigurationId != null);\r\n self.save(null);\r\n }\r\n }\r\n\r\n deleteRestriction(restriction: Wars.Domain.Model.ObjectQueryRestriction) {\r\n var self = this;\r\n self.cascadeDeleteRestriction(restriction);\r\n self.save(() => {\r\n self.restrictions = self.getChildRestrictions(null);\r\n });\r\n }\r\n\r\n onDragOverRestrictionProperty($event: angular.IAngularEvent, restriction: models.ObjectQueryPredicate) {\r\n //TODO - Remove if not needed\r\n }\r\n\r\n onDropRestrictionProperty($event: angular.IAngularEvent, restriction: models.ObjectQueryPredicate) {\r\n var self = this;\r\n var droppedTreeItem = self.treeService.getTreeConfigurationItem();\r\n //only report source (indexed form feilds and variables) are valid for left side restrictions\r\n if (droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField\r\n && droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable) {\r\n self.growlService.error(\"Only a form field or system variable can be dropped here.\");\r\n return;\r\n }\r\n //if (droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.ProcessId) {\r\n // var apis = self.getApiActions(restriction);\r\n // if (apis == null || apis.length === 0) {\r\n // self.growlService.error(\"A process ID field requires a valid API object query configuration.\");\r\n // return;\r\n // } \r\n //}\r\n var treeItem = self.treeService.createTreeItemFromItemDropped();\r\n restriction.leftReportDataTreeItem = treeItem;\r\n self.objectQueryService.onObjectQueryModified(restriction.myObjectQuery);\r\n self.loadCodes(restriction);\r\n if (droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.ProcessId) {\r\n restriction.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery;\r\n restriction.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.In;\r\n var api = self.getApiActions(restriction)[0];\r\n restriction.apiAction_id = api.id;\r\n restriction.apiActionProcessType_id = api.processTypeId;\r\n } else {\r\n restriction.apiAction_id = null;\r\n restriction.apiActionProcessType_id = null;\r\n restriction.onLeftPredicateChange(self.processConfigurationId != null);\r\n }\r\n if (restriction.stateChange === ObjectQueryPredicateStateChange.LeftPredicate) {\r\n self.save(null); \r\n restriction.stateChange = ObjectQueryPredicateStateChange.LeftPredicate;\r\n }\r\n }\r\n\r\n loadCodes(restriction: models.ObjectQueryPredicate) {\r\n var self = this;\r\n if (restriction.leftReportDataTreeItem === null) return;\r\n if (restriction.leftReportDataTreeItem.schemaProperty === null) return;\r\n if (restriction.leftReportDataTreeItem.schemaProperty.codeGroup_id === null) return;\r\n\r\n var codeGroupId = restriction.leftReportDataTreeItem.schemaProperty.codeGroup_id;\r\n self.applicationCodeService.getApplicationCodesForConfiguration(codeGroupId, false).then((codes) => {\r\n restriction.codes = codes;\r\n });\r\n }\r\n \r\n setDefaultParameterName(restriction: models.ObjectQueryPredicate) {\r\n var self = this;\r\n var column: ExtendedQueryColumn;\r\n if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n restriction.parameterName = self.getTreeItemName(restriction.leftReportDataTreeItem);\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessInitiator) {\r\n restriction.parameterName = \"[Process Initiator]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State) {\r\n restriction.parameterName = \"[Current State]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedBy) {\r\n restriction.parameterName = \"[Current State Updated By]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StateLastUpdatedDate) {\r\n restriction.parameterName = \"[Current State Updated Date]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status) {\r\n restriction.parameterName = \"[Current Status]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedBy) {\r\n restriction.parameterName = \"[Current Status Updated By]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusLastUpdatedDate) {\r\n restriction.parameterName = \"[Current Status Updated Date]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType) {\r\n restriction.parameterName = \"[Process Type]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessSubType) {\r\n restriction.parameterName = \"[Process Sub-Type]\";\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = `[Assignmnet] [${column.displayName}]`;\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = `[Review Information] [${column.displayName}]`;\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.StatusHistory) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = `[Status History] [${column.displayName}]`;\r\n } else if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.CommentInformation) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = `[Comment Information] [${column.displayName}]`;\r\n }\r\n self.save(null);\r\n }\r\n\r\n getSubQueries(restriction: models.ObjectQueryPredicate): Array {\r\n var self = this;\r\n return Enumerable.from(self.objectQueryService.subQueries).where(i => i.id !== restriction.myObjectQuery.id).orderBy(i => i.name).toArray();\r\n }\r\n\r\n getProcessIdSubQueries(restriction: models.ObjectQueryPredicate): Array {\r\n var self = this;\r\n return Enumerable.from(self.objectQueryService.processIdSubQueries).where(i => i.id !== restriction.myObjectQuery.id).orderBy(i => i.name).toArray();\r\n }\r\n\r\n getApiActions(restriction: models.ObjectQueryPredicate): Array {\r\n var self = this;\r\n return self.objectQueryService.apiActions;\r\n }\r\n\r\n setApiAction(restriction: models.ObjectQueryPredicate) {\r\n var self = this;\r\n var apis = self.objectQueryService.apiActions;\r\n for (var i = 0; i < apis.length; i++) {\r\n if (apis[i].id === restriction.apiAction_id) {\r\n restriction.apiActionProcessType_id = apis[i].processTypeId;\r\n break;\r\n }\r\n }\r\n self.save(null);\r\n }\r\n\r\n onDragOverRestrictionParameter($event: angular.IAngularEvent, restriction: models.ObjectQueryPredicate) {\r\n //TODO - Remove if not needed\r\n }\r\n\r\n onDropRestrictionParameter($event: angular.IAngularEvent, restriction: models.ObjectQueryPredicate) {\r\n var self = this;\r\n var droppedTreeItem = self.treeService.getTreeConfigurationItem();\r\n if (restriction.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Property) {\r\n //form or system variable\r\n if (droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField\r\n && droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable) {\r\n self.growlService.error(\"Only a form field or system variable can be dropped here.\");\r\n return;\r\n }\r\n }\r\n if (restriction.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Constant) {\r\n //constant\r\n if (droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.Constant) {\r\n self.growlService.error(\"Only a constant can be dropped here.\");\r\n return;\r\n }\r\n }\r\n if (restriction.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.PlaceHolder) {\r\n //place holder\r\n if (droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder) {\r\n self.growlService.error(\"Only a place holder can be dropped here.\");\r\n return;\r\n }\r\n }\r\n if (restriction.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.Calculation) {\r\n //place holder\r\n if (droppedTreeItem.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.Calculation) {\r\n self.growlService.error(\"Only a Calculation can be dropped here.\");\r\n return;\r\n }\r\n }\r\n if (restriction.rightRestrictionType === Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.SubQuery) {\r\n //sub query\r\n self.growlService.error(\"Only a object query can be dropped here.\");\r\n return;\r\n }\r\n var treeItem = self.treeService.createTreeItemFromItemDropped();\r\n\r\n if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property &&\r\n treeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Claim) {\r\n\r\n } else {\r\n if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property) {\r\n if (!((restriction.leftReportDataTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Date ||\r\n restriction.leftReportDataTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime) &&\r\n (treeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Date ||\r\n treeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime))) {\r\n if (restriction.leftReportDataTreeItem.variableType !== treeItem.variableType) {\r\n self.growlService.error(\"The left and right side variable types are not the same.\");\r\n return;\r\n }\r\n }\r\n //else if (restriction.leftReportDataTreeItem.variableType !== treeItem.variableType) {\r\n // self.growlService.error(\"The left and right side variable types are not the same.\");\r\n // return;\r\n //} \r\n } \r\n }\r\n\r\n \r\n if (restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Assignment ||\r\n restriction.propertyType === Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ReviewInformation) {\r\n var column = restriction.getExtendedQueryColumn();\r\n if (column.dataType === ExtendedQueryColumnDataType.User) {\r\n if (treeItem.variableType !== Wars.Domain.Model.Codes.Enums.VariableType.User) {\r\n self.growlService.error(\"The only valid placeholders are those with a variable type User.\");\r\n return;\r\n } \r\n }\r\n }\r\n restriction.rightParameterTreeItem = treeItem;\r\n self.objectQueryService.onObjectQueryModified(restriction.myObjectQuery);\r\n restriction.codeValueUniqueIdentifier = null;\r\n restriction.parameterName = null;\r\n restriction.parameterSchemaPropertyUniqueId = null;\r\n restriction.apiAction_id = null;\r\n restriction.apiActionProcessType_id = null;\r\n self.save(null);\r\n }\r\n \r\n getTreeItemName(treeItem: Wars.Domain.Model.TreeItem) {\r\n var self = this;\r\n var parentName = self.treeService.getParentDisplayName(treeItem);\r\n return parentName == null\r\n ? `[${self.treeService.getDisplayName(treeItem)}]`\r\n : `[${parentName}] [${self.treeService.getDisplayName(treeItem)}]`;\r\n }\r\n\r\n private cascadeDeleteRestriction(restriction: Wars.Domain.Model.ObjectQueryRestriction) {\r\n var self = this;\r\n restriction.entityAspect.setDeleted();\r\n var childRestrictions = self.getChildRestrictions(restriction);\r\n if (childRestrictions.length > 0) {\r\n for (var i = 0; i < childRestrictions.length; i++) {\r\n self.cascadeDeleteRestriction(childRestrictions[i]);\r\n }\r\n }\r\n }\r\n }\r\n}","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ObjectQueryRestrictionsModel = /** @class */ (function () {\r\n function ObjectQueryRestrictionsModel(scope, growlService, systemLevelService, applicationCodeService, treeService, objectQueryService) {\r\n this.scope = scope;\r\n this.growlService = growlService;\r\n this.systemLevelService = systemLevelService;\r\n this.applicationCodeService = applicationCodeService;\r\n this.treeService = treeService;\r\n this.objectQueryService = objectQueryService;\r\n this.isAndGroup = true;\r\n this.showPredicateHeader = false;\r\n var self = this;\r\n self.processConfigurationId = self.scope.processConfigurationId;\r\n self.objectQuery = self.scope.objectQuery;\r\n self.parentRestriction = self.scope.parentRestriction;\r\n self.topLevel = self.scope.topLevel;\r\n self.statuses = objectQueryService.getStatuses();\r\n self.states = objectQueryService.getStates();\r\n self.processTypes = objectQueryService.getProcessTypes();\r\n self.processSubTypes = objectQueryService.getProcessSubTypes();\r\n self.reviewConfigurations = objectQueryService.getReviewConfigurations();\r\n self.reviewTypes = objectQueryService.getReviewTypes();\r\n self.assignmentClaims = objectQueryService.getClaims();\r\n self.restrictions = self.getChildRestrictions(null);\r\n if (self.parentRestriction != null && self.parentRestriction.restrictionType === \"D\") {\r\n self.isAndGroup = false;\r\n }\r\n }\r\n ObjectQueryRestrictionsModel.prototype.getChildRestrictions = function (restriction) {\r\n var self = this;\r\n self.showPredicateHeader = false;\r\n if (restriction == null) {\r\n restriction = self.parentRestriction;\r\n }\r\n var l;\r\n if (restriction != null) {\r\n l = Enumerable\r\n .from(self.objectQuery.restrictions)\r\n .where(function (i) { return i.parentRestriction_id === restriction.id; })\r\n .toArray();\r\n }\r\n else {\r\n l = Enumerable\r\n .from(self.objectQuery.restrictions)\r\n .where(function (i) { return i.myParentRestriction == null; })\r\n .toArray();\r\n }\r\n for (var x = 0; x < l.length; x++) {\r\n if (l[x].restrictionType === \"P\") {\r\n self.showPredicateHeader = true;\r\n self.loadCodes(l[x]);\r\n l[x].states = self.objectQueryService.getStates();\r\n l[x].statuses = self.objectQueryService.getStatuses();\r\n l[x].processTypes = self.objectQueryService.getProcessTypes();\r\n l[x].processSubTypes = self.objectQueryService.getProcessSubTypes();\r\n l[x].reviewConfigurations = self.objectQueryService.getReviewConfigurations();\r\n l[x].reviewTypes = self.objectQueryService.getReviewTypes();\r\n l[x].assignmentClaims = self.objectQueryService.getClaims();\r\n l[x].setValidValues(self.processConfigurationId != null);\r\n }\r\n }\r\n return l;\r\n };\r\n ObjectQueryRestrictionsModel.prototype.addNewPredicate = function () {\r\n var self = this;\r\n self.objectQueryService.createNewPredicate(self.objectQuery, self.parentRestriction);\r\n self.restrictions = self.getChildRestrictions(null);\r\n self.save(null);\r\n };\r\n ObjectQueryRestrictionsModel.prototype.addNewAndGroup = function () {\r\n var self = this;\r\n self.objectQueryService.createNewAndGroup(self.objectQuery, self.parentRestriction);\r\n self.restrictions = self.getChildRestrictions(null);\r\n self.save(null);\r\n };\r\n ObjectQueryRestrictionsModel.prototype.addNewOrGroup = function () {\r\n var self = this;\r\n self.objectQueryService.createNewOrGroup(self.objectQuery, self.parentRestriction);\r\n self.restrictions = self.getChildRestrictions(null);\r\n self.save(null);\r\n };\r\n ObjectQueryRestrictionsModel.prototype.save = function (callback) {\r\n var self = this;\r\n self.objectQueryService.saveAllChanges(function () {\r\n if (callback != null) {\r\n callback();\r\n }\r\n });\r\n };\r\n ObjectQueryRestrictionsModel.prototype.propertyTypeChange = function (predicate) {\r\n var self = this;\r\n var column;\r\n if (predicate.propertyType === 8 /* Assignment */ ||\r\n predicate.propertyType === 9 /* ReviewInformation */ ||\r\n predicate.propertyType === 6 /* StatusHistory */ ||\r\n predicate.propertyType === 12 /* CommentInformation */) {\r\n //initializers\r\n column = predicate.getExtendedQueryColumn();\r\n if (column == null) {\r\n if (predicate.propertyType === 8 /* Assignment */) {\r\n predicate.reportDataSubTableColumnName = \"ClaimDefinitionUniqueIdentifier\";\r\n predicate.reportDataSubTableSystemColumnName = \"SystemClaimGroupId\";\r\n }\r\n if (predicate.propertyType === 9 /* ReviewInformation */) {\r\n predicate.reportDataSubTableColumnName = \"ReviewConfigurationUniqueId\";\r\n predicate.reportDataSubTableSystemColumnName = \"SystemReviewGroupId\";\r\n }\r\n if (predicate.propertyType === 6 /* StatusHistory */) {\r\n predicate.reportDataSubTableColumnName = \"ProcessLevelStatusUniqueIdentifier\";\r\n predicate.reportDataSubTableSystemColumnName = \"SystemLevelStatusUniqueIdentifier\";\r\n }\r\n if (predicate.propertyType === 12 /* CommentInformation */) {\r\n predicate.reportDataSubTableColumnName = \"ReviewConfigurationUniqueId\";\r\n predicate.reportDataSubTableSystemColumnName = \"SystemReviewGroupId\";\r\n }\r\n self.queryMapColumnChange(predicate);\r\n }\r\n }\r\n else {\r\n predicate.reportDataSubTableColumnName = null;\r\n predicate.reportDataSubTableSystemColumnName = null;\r\n }\r\n if (predicate.propertyType !== 0 /* Property */) {\r\n predicate.leftReportDataTreeItem = null;\r\n if (predicate.propertyType === 8 /* Assignment */\r\n || predicate.propertyType === 9 /* ReviewInformation */\r\n || predicate.propertyType === 6 /* StatusHistory */\r\n || predicate.propertyType === 12 /* CommentInformation */) {\r\n column = predicate.getExtendedQueryColumn();\r\n if (column.dataType !== models.ExtendedQueryColumnDataType.User\r\n && column.dataType !== models.ExtendedQueryColumnDataType.UserEmail\r\n && column.dataType !== models.ExtendedQueryColumnDataType.Date) {\r\n predicate.rightParameterTreeItem = null;\r\n }\r\n }\r\n else {\r\n if (predicate.propertyType !== 17 /* StateLastUpdatedBy */ &&\r\n predicate.propertyType !== 15 /* StatusLastUpdatedBy */ &&\r\n predicate.propertyType !== 18 /* StateLastUpdatedDate */ &&\r\n predicate.propertyType !== 16 /* StatusLastUpdatedDate */) {\r\n predicate.rightParameterTreeItem = null;\r\n }\r\n else {\r\n if (predicate.rightRestrictionType !==\r\n 5 /* PlaceHolder */) {\r\n if (predicate.propertyType !== 18 /* StateLastUpdatedDate */ &&\r\n predicate.propertyType !== 16 /* StatusLastUpdatedDate */) {\r\n predicate.rightParameterTreeItem = null;\r\n }\r\n }\r\n }\r\n }\r\n predicate.codeValueUniqueIdentifier = null;\r\n if (predicate.propertyType === 3 /* RowId */ || predicate.propertyType === 10 /* ProcessId */) {\r\n if (predicate.operatorType !== 11 /* In */\r\n && predicate.operatorType !== 12 /* NotIn */) {\r\n predicate.operatorType = 11 /* In */;\r\n }\r\n predicate.rightRestrictionType = 7 /* SubQuery */;\r\n }\r\n else {\r\n if (predicate.operatorType !== 11 /* In */\r\n && predicate.operatorType !== 12 /* NotIn */\r\n && predicate.operatorType !== 0 /* Equals */\r\n && predicate.operatorType !== 1 /* NotEqual */) {\r\n if (predicate.rightRestrictionType !== 8 /* Calculation */) {\r\n if (predicate.propertyType !== 18 /* StateLastUpdatedDate */ &&\r\n predicate.propertyType !== 16 /* StatusLastUpdatedDate */) {\r\n var reset = true;\r\n if (predicate.propertyType === 12 /* CommentInformation */) {\r\n column = predicate.getExtendedQueryColumn();\r\n if (column.dataType === models.ExtendedQueryColumnDataType.String) {\r\n reset = false;\r\n }\r\n }\r\n if (reset) {\r\n predicate.operatorType = 0 /* Equals */;\r\n predicate.rightRestrictionType = 1 /* InputParameterValue */;\r\n }\r\n }\r\n }\r\n }\r\n if (predicate.rightRestrictionType !== 1 /* InputParameterValue */\r\n && predicate.rightRestrictionType !== 2 /* InputParameterList */\r\n && predicate.rightRestrictionType !== 6 /* Value */\r\n && predicate.rightRestrictionType !== 7 /* SubQuery */) {\r\n if (predicate.propertyType === 9 /* ReviewInformation */ ||\r\n predicate.propertyType === 8 /* Assignment */ ||\r\n predicate.propertyType === 6 /* StatusHistory */ ||\r\n predicate.propertyType === 12 /* CommentInformation */) {\r\n if (column.dataType !== models.ExtendedQueryColumnDataType.User\r\n && column.dataType !== models.ExtendedQueryColumnDataType.UserEmail\r\n && column.dataType !== models.ExtendedQueryColumnDataType.Date) {\r\n predicate.operatorType = 0 /* Equals */;\r\n predicate.rightRestrictionType = 1 /* InputParameterValue */;\r\n }\r\n }\r\n else {\r\n if (predicate.propertyType === 17 /* StateLastUpdatedBy */ ||\r\n predicate.propertyType === 15 /* StatusLastUpdatedBy */) {\r\n if (predicate.rightRestrictionType !== 5 /* PlaceHolder */ ||\r\n (predicate.operatorType !== 0 /* Equals */ &&\r\n predicate.operatorType !== 1 /* NotEqual */)) {\r\n predicate.operatorType = 0 /* Equals */;\r\n predicate.rightRestrictionType = 1 /* InputParameterValue */;\r\n }\r\n }\r\n else if (predicate.propertyType !== 18 /* StateLastUpdatedDate */ &&\r\n predicate.propertyType !== 16 /* StatusLastUpdatedDate */) {\r\n predicate.operatorType = 0 /* Equals */;\r\n predicate.rightRestrictionType = 1 /* InputParameterValue */;\r\n }\r\n }\r\n }\r\n }\r\n if (predicate.rightRestrictionType === 6 /* Value */) {\r\n if ((predicate.propertyType === 1 /* State */ || (column != null && column.dataType === models.ExtendedQueryColumnDataType.State))\r\n && predicate.stateUniqueIdentifier == null) {\r\n predicate.stateUniqueIdentifier = self.states[0].value;\r\n }\r\n if ((predicate.propertyType === 2 /* Status */ || (column != null && column.dataType === models.ExtendedQueryColumnDataType.Status))\r\n && predicate.statusUniqueIdentifier == null) {\r\n predicate.statusUniqueIdentifier = self.statuses[0].value;\r\n }\r\n if (predicate.propertyType === 4 /* ProcessType */ && predicate.processType_id == null) {\r\n predicate.processType_id = self.processTypes[0].value;\r\n }\r\n if (predicate.propertyType === 11 /* ProcessSubType */ && predicate.processSubType_id == null) {\r\n predicate.processSubType_id = self.processSubTypes[0].value;\r\n }\r\n if (column != null && column.dataType === models.ExtendedQueryColumnDataType.ReviewConfiguration && predicate.reviewConfigurationIdentifier == null) {\r\n predicate.reviewConfigurationIdentifier = self.reviewConfigurations[0].value;\r\n }\r\n if (column != null && column.dataType === models.ExtendedQueryColumnDataType.ReviewType && predicate.reviewTypeIdentifier == null) {\r\n predicate.reviewTypeIdentifier = self.reviewTypes[0].value;\r\n }\r\n if (column != null && column.dataType === models.ExtendedQueryColumnDataType.Claim && predicate.assignmentClaimIdentifier == null) {\r\n predicate.assignmentClaimIdentifier = self.assignmentClaims[0].value;\r\n }\r\n }\r\n predicate.setValidValues(self.processConfigurationId != null);\r\n }\r\n else {\r\n predicate.showValueTarget = false;\r\n predicate.showParameterName = false;\r\n predicate.showParameterTarget = false;\r\n }\r\n self.save(null);\r\n };\r\n ObjectQueryRestrictionsModel.prototype.booleanValueChange = function (predicate) {\r\n var self = this;\r\n if (predicate.transientBooleanValue === \"1\") {\r\n predicate.booleanValue = true;\r\n }\r\n else {\r\n predicate.booleanValue = false;\r\n }\r\n self.save(null);\r\n };\r\n ObjectQueryRestrictionsModel.prototype.queryMapColumnChange = function (predicate) {\r\n var self = this;\r\n self.objectQueryService.onObjectQueryModified(predicate.myObjectQuery);\r\n var column = predicate.getExtendedQueryColumn();\r\n predicate.reportDataSubTableSystemColumnName = column.systemColumn;\r\n predicate.operatorType = 0 /* Equals */;\r\n predicate.rightRestrictionType = 1 /* InputParameterValue */;\r\n predicate.onLeftPredicateChange(self.processConfigurationId != null);\r\n if (predicate.stateChange === models.ObjectQueryPredicateStateChange.LeftPredicate) {\r\n self.save(null);\r\n predicate.stateChange = models.ObjectQueryPredicateStateChange.LeftPredicate;\r\n }\r\n };\r\n ObjectQueryRestrictionsModel.prototype.operatorChange = function (predicate) {\r\n var self = this;\r\n predicate.onOperatorChange(self.processConfigurationId != null);\r\n if (predicate.stateChange === models.ObjectQueryPredicateStateChange.Operator) {\r\n self.save(null);\r\n predicate.stateChange = models.ObjectQueryPredicateStateChange.LeftPredicate;\r\n }\r\n };\r\n ObjectQueryRestrictionsModel.prototype.restrictionTypeChange = function (predicate) {\r\n var self = this;\r\n if (predicate.propertyType === 8 /* Assignment */\r\n || predicate.propertyType === 9 /* ReviewInformation */\r\n || predicate.propertyType === 12 /* CommentInformation */) {\r\n var column = predicate.getExtendedQueryColumn();\r\n if (column != null && column.dataType === models.ExtendedQueryColumnDataType.ReviewConfiguration && predicate.reviewConfigurationIdentifier == null) {\r\n predicate.reviewConfigurationIdentifier = self.reviewConfigurations[0].value;\r\n }\r\n if (column != null && column.dataType === models.ExtendedQueryColumnDataType.ReviewType && predicate.reviewTypeIdentifier == null) {\r\n predicate.reviewTypeIdentifier = self.reviewTypes[0].value;\r\n }\r\n if (column != null && column.dataType === models.ExtendedQueryColumnDataType.Claim && predicate.assignmentClaimIdentifier == null) {\r\n predicate.assignmentClaimIdentifier = self.assignmentClaims[0].value;\r\n }\r\n }\r\n if (predicate.propertyType === 0 /* Property */) {\r\n predicate.onRightRestrictionTypeChange(self.processConfigurationId != null);\r\n if (predicate.rightRestrictionType === 6 /* Value */) {\r\n if (predicate.codeValueUniqueIdentifier == null) {\r\n if (predicate.codes != null && predicate.codes.length > 0) {\r\n predicate.codeValueUniqueIdentifier = predicate.codes[0].uniqueIdentifier;\r\n }\r\n }\r\n }\r\n if (predicate.stateChange === models.ObjectQueryPredicateStateChange.RightRistrictionType) {\r\n self.save(null);\r\n predicate.stateChange = models.ObjectQueryPredicateStateChange.LeftPredicate;\r\n }\r\n }\r\n else {\r\n predicate.onRightRestrictionTypeChange(self.processConfigurationId != null);\r\n self.save(null);\r\n }\r\n };\r\n ObjectQueryRestrictionsModel.prototype.deleteRestriction = function (restriction) {\r\n var self = this;\r\n self.cascadeDeleteRestriction(restriction);\r\n self.save(function () {\r\n self.restrictions = self.getChildRestrictions(null);\r\n });\r\n };\r\n ObjectQueryRestrictionsModel.prototype.onDragOverRestrictionProperty = function ($event, restriction) {\r\n //TODO - Remove if not needed\r\n };\r\n ObjectQueryRestrictionsModel.prototype.onDropRestrictionProperty = function ($event, restriction) {\r\n var self = this;\r\n var droppedTreeItem = self.treeService.getTreeConfigurationItem();\r\n //only report source (indexed form feilds and variables) are valid for left side restrictions\r\n if (droppedTreeItem.treeItemSource !== 6 /* FormField */\r\n && droppedTreeItem.treeItemSource !== 10 /* Variable */) {\r\n self.growlService.error(\"Only a form field or system variable can be dropped here.\");\r\n return;\r\n }\r\n //if (droppedTreeItem.variableType === Wars.Domain.Model.Codes.Enums.VariableType.ProcessId) {\r\n // var apis = self.getApiActions(restriction);\r\n // if (apis == null || apis.length === 0) {\r\n // self.growlService.error(\"A process ID field requires a valid API object query configuration.\");\r\n // return;\r\n // } \r\n //}\r\n var treeItem = self.treeService.createTreeItemFromItemDropped();\r\n restriction.leftReportDataTreeItem = treeItem;\r\n self.objectQueryService.onObjectQueryModified(restriction.myObjectQuery);\r\n self.loadCodes(restriction);\r\n if (droppedTreeItem.variableType === 31 /* ProcessId */) {\r\n restriction.rightRestrictionType = 7 /* SubQuery */;\r\n restriction.operatorType = 11 /* In */;\r\n var api = self.getApiActions(restriction)[0];\r\n restriction.apiAction_id = api.id;\r\n restriction.apiActionProcessType_id = api.processTypeId;\r\n }\r\n else {\r\n restriction.apiAction_id = null;\r\n restriction.apiActionProcessType_id = null;\r\n restriction.onLeftPredicateChange(self.processConfigurationId != null);\r\n }\r\n if (restriction.stateChange === models.ObjectQueryPredicateStateChange.LeftPredicate) {\r\n self.save(null);\r\n restriction.stateChange = models.ObjectQueryPredicateStateChange.LeftPredicate;\r\n }\r\n };\r\n ObjectQueryRestrictionsModel.prototype.loadCodes = function (restriction) {\r\n var self = this;\r\n if (restriction.leftReportDataTreeItem === null)\r\n return;\r\n if (restriction.leftReportDataTreeItem.schemaProperty === null)\r\n return;\r\n if (restriction.leftReportDataTreeItem.schemaProperty.codeGroup_id === null)\r\n return;\r\n var codeGroupId = restriction.leftReportDataTreeItem.schemaProperty.codeGroup_id;\r\n self.applicationCodeService.getApplicationCodesForConfiguration(codeGroupId, false).then(function (codes) {\r\n restriction.codes = codes;\r\n });\r\n };\r\n ObjectQueryRestrictionsModel.prototype.setDefaultParameterName = function (restriction) {\r\n var self = this;\r\n var column;\r\n if (restriction.propertyType === 0 /* Property */) {\r\n restriction.parameterName = self.getTreeItemName(restriction.leftReportDataTreeItem);\r\n }\r\n else if (restriction.propertyType === 5 /* ProcessInitiator */) {\r\n restriction.parameterName = \"[Process Initiator]\";\r\n }\r\n else if (restriction.propertyType === 1 /* State */) {\r\n restriction.parameterName = \"[Current State]\";\r\n }\r\n else if (restriction.propertyType === 17 /* StateLastUpdatedBy */) {\r\n restriction.parameterName = \"[Current State Updated By]\";\r\n }\r\n else if (restriction.propertyType === 18 /* StateLastUpdatedDate */) {\r\n restriction.parameterName = \"[Current State Updated Date]\";\r\n }\r\n else if (restriction.propertyType === 2 /* Status */) {\r\n restriction.parameterName = \"[Current Status]\";\r\n }\r\n else if (restriction.propertyType === 15 /* StatusLastUpdatedBy */) {\r\n restriction.parameterName = \"[Current Status Updated By]\";\r\n }\r\n else if (restriction.propertyType === 16 /* StatusLastUpdatedDate */) {\r\n restriction.parameterName = \"[Current Status Updated Date]\";\r\n }\r\n else if (restriction.propertyType === 4 /* ProcessType */) {\r\n restriction.parameterName = \"[Process Type]\";\r\n }\r\n else if (restriction.propertyType === 11 /* ProcessSubType */) {\r\n restriction.parameterName = \"[Process Sub-Type]\";\r\n }\r\n else if (restriction.propertyType === 8 /* Assignment */) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = \"[Assignmnet] [\" + column.displayName + \"]\";\r\n }\r\n else if (restriction.propertyType === 9 /* ReviewInformation */) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = \"[Review Information] [\" + column.displayName + \"]\";\r\n }\r\n else if (restriction.propertyType === 6 /* StatusHistory */) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = \"[Status History] [\" + column.displayName + \"]\";\r\n }\r\n else if (restriction.propertyType === 12 /* CommentInformation */) {\r\n column = restriction.getExtendedQueryColumn();\r\n restriction.parameterName = \"[Comment Information] [\" + column.displayName + \"]\";\r\n }\r\n self.save(null);\r\n };\r\n ObjectQueryRestrictionsModel.prototype.getSubQueries = function (restriction) {\r\n var self = this;\r\n return Enumerable.from(self.objectQueryService.subQueries).where(function (i) { return i.id !== restriction.myObjectQuery.id; }).orderBy(function (i) { return i.name; }).toArray();\r\n };\r\n ObjectQueryRestrictionsModel.prototype.getProcessIdSubQueries = function (restriction) {\r\n var self = this;\r\n return Enumerable.from(self.objectQueryService.processIdSubQueries).where(function (i) { return i.id !== restriction.myObjectQuery.id; }).orderBy(function (i) { return i.name; }).toArray();\r\n };\r\n ObjectQueryRestrictionsModel.prototype.getApiActions = function (restriction) {\r\n var self = this;\r\n return self.objectQueryService.apiActions;\r\n };\r\n ObjectQueryRestrictionsModel.prototype.setApiAction = function (restriction) {\r\n var self = this;\r\n var apis = self.objectQueryService.apiActions;\r\n for (var i = 0; i < apis.length; i++) {\r\n if (apis[i].id === restriction.apiAction_id) {\r\n restriction.apiActionProcessType_id = apis[i].processTypeId;\r\n break;\r\n }\r\n }\r\n self.save(null);\r\n };\r\n ObjectQueryRestrictionsModel.prototype.onDragOverRestrictionParameter = function ($event, restriction) {\r\n //TODO - Remove if not needed\r\n };\r\n ObjectQueryRestrictionsModel.prototype.onDropRestrictionParameter = function ($event, restriction) {\r\n var self = this;\r\n var droppedTreeItem = self.treeService.getTreeConfigurationItem();\r\n if (restriction.rightRestrictionType === 3 /* Property */) {\r\n //form or system variable\r\n if (droppedTreeItem.treeItemSource !== 6 /* FormField */\r\n && droppedTreeItem.treeItemSource !== 10 /* Variable */) {\r\n self.growlService.error(\"Only a form field or system variable can be dropped here.\");\r\n return;\r\n }\r\n }\r\n if (restriction.rightRestrictionType === 4 /* Constant */) {\r\n //constant\r\n if (droppedTreeItem.treeItemSource !== 3 /* Constant */) {\r\n self.growlService.error(\"Only a constant can be dropped here.\");\r\n return;\r\n }\r\n }\r\n if (restriction.rightRestrictionType === 5 /* PlaceHolder */) {\r\n //place holder\r\n if (droppedTreeItem.treeItemSource !== 11 /* PlaceHolder */) {\r\n self.growlService.error(\"Only a place holder can be dropped here.\");\r\n return;\r\n }\r\n }\r\n if (restriction.rightRestrictionType === 8 /* Calculation */) {\r\n //place holder\r\n if (droppedTreeItem.treeItemSource !== 0 /* Calculation */) {\r\n self.growlService.error(\"Only a Calculation can be dropped here.\");\r\n return;\r\n }\r\n }\r\n if (restriction.rightRestrictionType === 7 /* SubQuery */) {\r\n //sub query\r\n self.growlService.error(\"Only a object query can be dropped here.\");\r\n return;\r\n }\r\n var treeItem = self.treeService.createTreeItemFromItemDropped();\r\n if (restriction.propertyType === 0 /* Property */ &&\r\n treeItem.variableType === 27 /* Claim */) {\r\n }\r\n else {\r\n if (restriction.propertyType === 0 /* Property */) {\r\n if (!((restriction.leftReportDataTreeItem.variableType === 4 /* Date */ ||\r\n restriction.leftReportDataTreeItem.variableType === 3 /* DateTime */) &&\r\n (treeItem.variableType === 4 /* Date */ ||\r\n treeItem.variableType === 3 /* DateTime */))) {\r\n if (restriction.leftReportDataTreeItem.variableType !== treeItem.variableType) {\r\n self.growlService.error(\"The left and right side variable types are not the same.\");\r\n return;\r\n }\r\n }\r\n //else if (restriction.leftReportDataTreeItem.variableType !== treeItem.variableType) {\r\n // self.growlService.error(\"The left and right side variable types are not the same.\");\r\n // return;\r\n //} \r\n }\r\n }\r\n if (restriction.propertyType === 8 /* Assignment */ ||\r\n restriction.propertyType === 9 /* ReviewInformation */) {\r\n var column = restriction.getExtendedQueryColumn();\r\n if (column.dataType === models.ExtendedQueryColumnDataType.User) {\r\n if (treeItem.variableType !== 10 /* User */) {\r\n self.growlService.error(\"The only valid placeholders are those with a variable type User.\");\r\n return;\r\n }\r\n }\r\n }\r\n restriction.rightParameterTreeItem = treeItem;\r\n self.objectQueryService.onObjectQueryModified(restriction.myObjectQuery);\r\n restriction.codeValueUniqueIdentifier = null;\r\n restriction.parameterName = null;\r\n restriction.parameterSchemaPropertyUniqueId = null;\r\n restriction.apiAction_id = null;\r\n restriction.apiActionProcessType_id = null;\r\n self.save(null);\r\n };\r\n ObjectQueryRestrictionsModel.prototype.getTreeItemName = function (treeItem) {\r\n var self = this;\r\n var parentName = self.treeService.getParentDisplayName(treeItem);\r\n return parentName == null\r\n ? \"[\" + self.treeService.getDisplayName(treeItem) + \"]\"\r\n : \"[\" + parentName + \"] [\" + self.treeService.getDisplayName(treeItem) + \"]\";\r\n };\r\n ObjectQueryRestrictionsModel.prototype.cascadeDeleteRestriction = function (restriction) {\r\n var self = this;\r\n restriction.entityAspect.setDeleted();\r\n var childRestrictions = self.getChildRestrictions(restriction);\r\n if (childRestrictions.length > 0) {\r\n for (var i = 0; i < childRestrictions.length; i++) {\r\n self.cascadeDeleteRestriction(childRestrictions[i]);\r\n }\r\n }\r\n };\r\n return ObjectQueryRestrictionsModel;\r\n }());\r\n models.ObjectQueryRestrictionsModel = ObjectQueryRestrictionsModel;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class ObjectSchema implements Wars.Domain.Model.ObjectSchema {\r\n constructor() {\r\n\r\n }\r\n\r\n myDataSource: Wars.Domain.Model.DataSource;\r\n dataSource_id: string;\r\n formUniqueId: string;\r\n schemaProperty_id: string;\r\n name: string;\r\n properties: warsApp.models.SchemaProperty[];\r\n parentProperty: Wars.Domain.Model.SchemaProperty;\r\n uniqueIdentifier: string;\r\n isList: boolean;\r\n mySystemLevel: Wars.Domain.Model.SystemLevel;\r\n id: string;\r\n lastUpdateUserName: string;\r\n entityAspect: breeze.EntityAspect;\r\n entityType: breeze.EntityType;\r\n clonedFromId: string;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class PagingModel {\r\n private itemsArray: Array;\r\n private items: Array;\r\n\r\n public itemsPerPage: number;\r\n public currentPage: number;\r\n \r\n\r\n constructor(itemsArray: Array, itemsPerPage: number, currentPage?: number) {\r\n this.itemsArray = itemsArray;\r\n this.itemsPerPage = itemsPerPage;\r\n this.currentPage = currentPage ? currentPage : 1;\r\n this.updateItems();\r\n }\r\n\r\n public updateItems() : void {\r\n var beginIndex = ((this.currentPage - 1) * this.itemsPerPage) - 1;\r\n var endIndex = beginIndex + this.itemsPerPage + 1;\r\n this.items = this.itemsArray.slice(beginIndex, endIndex);\r\n }\r\n\r\n // This is a function to ensure the correct count is returned in case the items array is modified after the constructor call\r\n public getTotalItems(): number {\r\n return this.itemsArray ? this.itemsArray.length : 0;\r\n }\r\n\r\n // This is a function to ensure the correct items are returned in case the items array is modified after the constructor call\r\n public getCurrentPage(): Array {\r\n this.updateItems();\r\n return this.items;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class PaymentWindowModel {\r\n constructor(\r\n private $window: ng.IWindowService,\r\n private paymentService: services.PaymentService,\r\n private processId: string,\r\n private paymentConfigId: string)\r\n {\r\n this.getPaymentDetails();\r\n }\r\n\r\n private getPaymentDetails(): void {\r\n this.paymentService.getPaymentRequestDetails(this.processId, this.paymentConfigId).then(\r\n (result: Wars.Domain.Model.Dtos.Payments.PaymentRequestDto) => {\r\n this.$window.location.href = result.formActionUrl;\r\n });\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var PdfBinding = /** @class */ (function (_super) {\r\n __extends(PdfBinding, _super);\r\n function PdfBinding() {\r\n var _this = _super.call(this) || this;\r\n _this.documents = [];\r\n return _this;\r\n }\r\n return PdfBinding;\r\n }(BaseEntity));\r\n models.PdfBinding = PdfBinding;\r\n var BoundItem = /** @class */ (function (_super) {\r\n __extends(BoundItem, _super);\r\n function BoundItem() {\r\n return _super.call(this) || this;\r\n }\r\n return BoundItem;\r\n }(BaseEntity));\r\n models.BoundItem = BoundItem;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models\r\n{\r\n export class PdfBinding extends BaseEntity implements Wars.Domain.Model.PdfBinding {\r\n constructor() {\r\n super();\r\n this.documents = [];\r\n }\r\n\r\n public documents: Array;\r\n myProcessConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n name: string;\r\n boundItems: Wars.Domain.Model.BoundItem[];\r\n staticDocument_id: string;\r\n staticDocument: Wars.Domain.Model.StaticDocument;\r\n pages: Wars.Domain.Model.PdfBindingPage[];\r\n numberOfPages: number;\r\n currentPage: Wars.Domain.Model.PdfBindingPage;\r\n pdf: PDFDocumentProxy;\r\n processConfiguration_id: string;\r\n }\r\n\r\n export class BoundItem extends BaseEntity implements Wars.Domain.Model.BoundItem{\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n myPdfBindingPage: Wars.Domain.Model.PdfBindingPage;\r\n pdfBindingPage_id: string;\r\n pdfInputFieldDisplayName: string;\r\n pdfInputFieldKey: string;\r\n treeItem: Wars.Domain.Model.TreeItem;\r\n treeItem_id: string;\r\n\r\n left: string;\r\n top: string;\r\n width: string;\r\n height: string;\r\n fontSize:string;\r\n transform: string;\r\n transformOrigin:string;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class FormModel {\r\n\r\n public processType: Wars.Domain.Model.ProcessType = null;\r\n public formConfiguration: Wars.Domain.Model.Form= null;\r\n public currentStep: Wars.Domain.Model.FormStep = null;\r\n public process = {};\r\n public fields: Wars.Domain.Model.Field[];\r\n public manageProcess = undefined;\r\n\r\n private previousSaveJson: string;\r\n public currentStepIndex: number;\r\n public processErrors;\r\n public isReadOnly: boolean = false;\r\n private customStepFunctions: any;\r\n\r\n private scope: ng.IScope;\r\n\r\n constructor(\r\n private processTypeId: string,\r\n private processTypeService: services.ProcessTypeService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private httpService: angular.IHttpService,\r\n private locationService: angular.ILocationService,\r\n public processId: string,\r\n private processValidationService: services.ProcessValidationService,\r\n private growl: angular.growl.IGrowlService,\r\n private modalService: any,\r\n private angularLoader: services.AngularLoadService,\r\n scope: ng.IScope,\r\n private formSectionService: services.FormSectionService) {\r\n var self = this;\r\n this.scope = scope;\r\n\r\n this.customStepFunctions = [];\r\n this.process = {};\r\n this.loadCustomStepJavascript();\r\n }\r\n\r\n private loadCustomStepJavascript() {\r\n this.formConfiguration.urlDependencies.forEach(url => {\r\n if (url.type == Wars.Domain.Model.Codes.Enums.UrlDependencyType.Javascript) {\r\n this.angularLoader.loadScript(url.url);\r\n } else {\r\n this.angularLoader.loadCSS(url.url);\r\n }\r\n });\r\n\r\n /* if (!this.customStepFunctions[this.currentStep.id]) {\r\n //var functionStr = \"(\" + this.currentStep.javascript + \")\";\r\n //this.customStepFunctions[this.currentStep.id] = eval(functionStr)();\r\n }\r\n //TODO: This is a hack fix after the demo\r\n setTimeout(() => this.customStepFunctions[this.currentStep.id].stepLoaded(this.process, () => { }, this.isReadOnly), 1599);*/\r\n }\r\n\r\n public selectStep(position: number) {\r\n var index = 0;\r\n if (position > 0) {\r\n index = Enumerable.from(this.formConfiguration.mySteps).indexOf(s => s.position == position);\r\n }\r\n this.currentStep = this.formConfiguration.mySteps[index];\r\n\r\n this.currentStepIndex = position\r\n\r\n if (this.customStepFunctions && this.customStepFunctions.length>0) {\r\n this.process = this.customStepFunctions[this.currentStep.id].stepUnload(this.isReadOnly);\r\n this.save();\r\n }\r\n\r\n var step = Enumerable.from(this.formConfiguration.mySteps).single(s => s.position === position);\r\n this.currentStep = step;\r\n\r\n this.currentStep.formSections.forEach(g => {\r\n this.formSectionService.splitFields(g);\r\n });\r\n\r\n\r\n this.loadFieldsConditions();\r\n\r\n //this.runStepConditions();\r\n this.runStepFieldCondtions();\r\n this.runFormSectionConditions();\r\n }\r\n\r\n public loadFieldsConditions() {\r\n this.fields = [];\r\n if (this.currentStep.formSections) {\r\n for (var i = 0; i < this.currentStep.formSections.length; i++) {\r\n var formSection = this.currentStep.formSections[i];\r\n\r\n if (formSection.objectSchema.isList && !this.processId) {\r\n this.process[formSection.objectSchema.name] = [];\r\n }\r\n\r\n if (formSection.fields) {\r\n for (var x = 0; x < formSection.fields.length; x++) {\r\n if (formSection.fields[x].condition_id == null)\r\n continue;\r\n\r\n this.fields.push(formSection.fields[x]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private runFormSectionConditions() {\r\n this.currentStep.formSections.forEach(g => {\r\n //this.executeGroupCondition(g);\r\n });\r\n }\r\n\r\n private runStepFieldCondtions() {\r\n for (let i = 0; i < this.fields.length; i++) {\r\n //this.executeCondition(this.fields[i]);\r\n }\r\n }\r\n\r\n public processChanged() {\r\n //this.runStepConditions();\r\n this.runStepFieldCondtions();\r\n this.runFormSectionConditions();\r\n }\r\n\r\n\r\n public fieldBlurred() {\r\n //TODO:Fix this\r\n //_formModelSelf.save();\r\n //_formModelSelf.processChanged();\r\n }\r\n\r\n public goto(errorObj: any) {\r\n var step = Enumerable.from(this.formConfiguration.mySteps).single(x => x.id == errorObj.stepId);\r\n this.selectStep(step.position);\r\n //this.currentStep = step;\r\n //this.currentStepIndex = step.position;\r\n if (errorObj.rowId) {\r\n setTimeout(() => {\r\n $('#' + errorObj.rowId).click();\r\n setTimeout(() => { $('#' + errorObj.fieldId).focus(); }, 100);\r\n }, 100);\r\n\r\n } else {\r\n setTimeout(() => { $('#' + errorObj.fieldId).focus(); }, 100);\r\n }\r\n\r\n }\r\n\r\n public save(callback?:any) {\r\n var currentJson = JSON.stringify(this.process);\r\n if (currentJson == this.previousSaveJson) {\r\n return;\r\n } else {\r\n this.previousSaveJson = currentJson;\r\n }\r\n var body = this.process;\r\n this.httpService.post('./api/Process/' + this.processId, body).then(result => { \r\n if(callback){\r\n callback();\r\n }\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessDto implements Wars.Domain.Model.Dtos.ProcessDto {\r\n rowMetadata: Collections.Dictionary;\r\n featureToRows: Collections.Dictionary;\r\n features: Wars.Domain.Model.Dtos.FeatureDto[];\r\n metadata: Collections.Dictionary;\r\n commentThreads: Collections.Dictionary;\r\n assignmentSections: Collections.Dictionary;\r\n formJson: Collections.Dictionary>;\r\n processData: Collections.Dictionary;\r\n containersVisibilities: Collections.Dictionary;\r\n formsVisibilities: Collections.Dictionary;\r\n userActions: Wars.Domain.Model.Dtos.Workflow.UserActionDto[];\r\n processConfigurationId: string;\r\n id: string;\r\n stateCodeUniqueId: string;\r\n formDatas: Wars.Domain.Model.Dtos.FormDataDto[];\r\n reviewSets: Wars.Domain.Model.Dtos.ReviewSetDto[];\r\n statusHistories: Wars.Domain.Model.Dtos.StatusHistoryDto[];\r\n effectiveDateErrorMessage: string;\r\n showTimeForInvalidEffective: boolean;\r\n successMessages: string[];\r\n infoMessages: string[];\r\n warnMessages: string[];\r\n errorMessages: string[];\r\n documentsToDownload: string[];\r\n conditionStates: Collections.Dictionary;\r\n propertyConditionDependencies: Collections.Dictionary;\r\n processAssignments: Wars.Domain.Model.Dtos.ProcessAssignmentDto[];\r\n processHeaders: string[];\r\n documents: Wars.Domain.Model.Dtos.DocumentDto[];\r\n documentSections: Collections.Dictionary;\r\n customStepFunctions: Collections.Dictionary;\r\n clockValues: Wars.Domain.Model.Clocks.ClockValue[];\r\n canDownloadSecureDocument: Collections.Dictionary;\r\n canSecureDocment: Collections.Dictionary;\r\n canReplyToManageStatusSectionCommentThreads: Collections.Dictionary;\r\n processNames: Collections.Dictionary;\r\n processEvents: Wars.Domain.Model.Dtos.ProcessEventDto[];\r\n processEventActions: Wars.Domain.Model.Dtos.ProcessEventActionDto[];\r\n flatStatusHistories: Wars.Domain.Model.Dtos.FlatStatusHistoryDto[];\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessModel {\r\n private logType: string = \"ProcessModel\";\r\n\r\n public process: models.ProcessDto;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public containerVisibleForms: Wars.Domain.Model.Form[];\r\n public visibleContainers:Wars.Domain.Model.FormContainer[];\r\n public visibleForms:any={};\r\n //public currentForm: Wars.Domain.Model.Form;\r\n public currentContainer: Wars.Domain.Model.FormContainer;\r\n //public formData: any;\r\n //public currentFormDataId: string;\r\n public formDataDict:any = {};\r\n public parentForm: Wars.Domain.Model.Form;\r\n public processErrors: any;\r\n public showUserActionConfirmation: boolean;\r\n public userActionDto: Wars.Domain.Model.Dtos.Workflow.UserActionDto;\r\n\r\n constructor(\r\n private $location: angular.ILocationService,\r\n public processTypeId: string,\r\n public processId: string,\r\n private processTypeService: services.ProcessTypeService,\r\n private processService: services.ProcessService,\r\n private cacheConfigurationService: services.ConfigurationCacheService,\r\n private modalService: any,\r\n private formDataService: services.FormDataService,\r\n private signalRService: services.SignalrService,\r\n private growl: angular.growl.IGrowlService,\r\n private conditionService: services.ConditionService,\r\n private userService: services.UserService,\r\n private scope: angular.IScope,\r\n private apiActionService: services.ApiActionService,\r\n private processValidationService: services.ProcessValidationService,\r\n private $window: angular.IWindowService,\r\n private formContainerUniqueId?: string,\r\n private formDataId?: string,\r\n public parentFormId?: string,\r\n public parentFormDataId?: string,\r\n public parentFormName?: string) {\r\n\r\n \r\n var cb = scope.$on('userActionInitated',\r\n (e, args) => {\r\n //console.log(args);\r\n this.userActionInitiated(args);\r\n });\r\n //destroy the listener on scope destroy to avoid memory leak\r\n scope.$on(\"$destroy\",\r\n () => {\r\n cb();\r\n });\r\n\r\n cb = scope.$on('ProcessChanged',\r\n (e, args) => {\r\n this.process = args;\r\n this.processService.displayDocumentsAndDownloads(this.process);\r\n this.setVisibleForms();\r\n });\r\n //destroy the listener on scope destroy to avoid memory leak\r\n scope.$on(\"$destroy\",\r\n () => {\r\n cb();\r\n });\r\n\r\n if (this.processId) {\r\n var self = this;\r\n\r\n this.processService.getProcessDto(this.processId)\r\n .then(process => {\r\n this.process = process;\r\n\r\n this.cacheConfigurationService\r\n .getVersionedProcessConfiguration(this.process.processConfigurationId)\r\n .then(config => {\r\n self.processConfiguration = config;\r\n this.setVisibleForms();\r\n });\r\n });\r\n\r\n this.signalRService.broadcast(scope)\r\n .then((broadcaster) => {\r\n //console.log(\"broadcast\");\r\n broadcaster.enterProcess(self.processId, true);\r\n })\r\n .catch(r => {\r\n services.WarsLogger.logError(r, \"ProcessModel\");\r\n });\r\n\r\n let currentUser = this.userService.getCurrentUser();\r\n this.signalRService.listen(scope)\r\n .then((listener) => {\r\n let config: angular.growl.IGrowlMessageConfig = {\r\n ttl: 5000\r\n };\r\n\r\n listener.onSignalGroupOfProcessDataUpdate((user, result) => {\r\n //console.log(result);\r\n if (result.type === \"FieldUpdate\") {\r\n if (currentUser.userName !== user) {\r\n this.processService.processFormUpdateResults(this.process, result.updatedFields, this.conditionService);\r\n }\r\n \r\n\r\n //if (this.formDataDict[form.id] === result.formDataId && currentUser.userName !== user) {\r\n // growl.info('Form has been updated by ' + user, config);\r\n //}\r\n } else if (result.type === \"UserActionExecuted\") {\r\n if (currentUser.userName !== user) {\r\n this.processService.getProcessDto(this.processId)\r\n .then(process => {\r\n this.process = process;\r\n this.setVisibleForms();\r\n growl.info('An update has been made by another user: ' +\r\n user +\r\n ' and the page has been refreshed.',\r\n config);\r\n });\r\n }\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n this.processTypeService.getExecutionProcessType(processTypeId).then(processType => {\r\n if (processType.isTransient) {\r\n this.cacheConfigurationService\r\n .getVersionedProcessConfiguration(processType.processConfigurationId)\r\n .then(config => {\r\n this.process = {\r\n formsVisibilities: { },\r\n containersVisibilities:{}\r\n };\r\n this.processConfiguration = config;\r\n\r\n this.processConfiguration.myForms.forEach(f => {\r\n this.process.formsVisibilities[f.uniqueIdentifier] = { formVisiblility: 2 };\r\n });\r\n this.processConfiguration.myFormContainers.forEach(f => {\r\n this.process.containersVisibilities[f.uniqueIdentifier] = true;\r\n });\r\n\r\n this.setVisibleForms();\r\n });\r\n return;\r\n }\r\n\r\n\r\n this.processService.createNewProcess(processTypeId).then(\r\n (createProcessDto: Wars.Domain.Model.Dtos.CreateProcessDto) =>\r\n {\r\n if (createProcessDto.processCreated)\r\n {\r\n this.redirectAfterProcessCreation(processTypeId, createProcessDto.processId);\r\n }\r\n else if (createProcessDto.redirectRequired)\r\n {\r\n this.redirectInsteadOfCreateNewProcess(createProcessDto.redirectProcessTypeId, createProcessDto.redirectMessage);\r\n }\r\n else\r\n {\r\n this.processService.showProcessSubTypeModal(createProcessDto,\r\n (subTypeSystemCodeUniqueId: string) =>\r\n {\r\n this.processSubTypeSuccessCallback(processTypeId, subTypeSystemCodeUniqueId);\r\n },\r\n () => this.processSubTypeFailureCallback());\r\n }\r\n \r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n private processSubTypeFailureCallback(): void {\r\n this.growl.error(\"Sub Type not selected\");\r\n }\r\n\r\n private processSubTypeSuccessCallback(processTypeId: string, subTypeSystemCodeUniqueId: string): void {\r\n this.processService.createNewProcessWithSubType(processTypeId, subTypeSystemCodeUniqueId).then(\r\n (result: Wars.Domain.Model.Dtos.CreateProcessDto) => {\r\n if (result.redirectRequired) {\r\n this.redirectInsteadOfCreateNewProcess(result.redirectProcessTypeId, result.redirectMessage);\r\n } else {\r\n this.redirectAfterProcessCreation(processTypeId, result.processId);\r\n }\r\n });\r\n }\r\n\r\n public goto(errorObj: any) {\r\n var container = Enumerable.from(this.visibleContainers).first(c => Enumerable.from(c.containerItems).any(ci => ci.form.uniqueIdentifier === errorObj.formId));\r\n\r\n this.currentContainer = container;\r\n //this.currentForm = form;\r\n setTimeout(() =>\r\n {\r\n this.scope.$broadcast('stepChanged', errorObj.stepId);\r\n if (errorObj.rowId) {\r\n setTimeout(() => {\r\n $('#' + errorObj.rowId).click();\r\n setTimeout(() => { $('#' + errorObj.fieldId).focus(); }, 100);\r\n }, 100);\r\n \r\n } else {\r\n setTimeout(() => { $('#' + errorObj.fieldId).focus(); }, 100);\r\n }\r\n }, 200);\r\n }\r\n\r\n private redirectAfterProcessCreation(processTypeId: string, processId: string): void {\r\n this.processId = processId;\r\n var path = '/ProcessType/' + processTypeId + '/Process/' + this.processId;\r\n services.WarsLogger.logDebug(\"Create new process path: \" + path, this.logType);\r\n this.$location.path(path);\r\n }\r\n\r\n private redirectInsteadOfCreateNewProcess(processTypeId: string, message: string): void {\r\n if (message) {\r\n this.growl.error(message);\r\n }\r\n var path = '/ProcessType/' + processTypeId + \"/Process\";\r\n this.$location.path(path);\r\n }\r\n\r\n private setCurrentFormDataId(formContainer: Wars.Domain.Model.FormContainer) {\r\n\r\n if (!this.process.formJson) {\r\n this.process.formJson = {};\r\n }\r\n\r\n formContainer.containerItems.forEach(item => {\r\n let form = item.form;\r\n // added undefined check becuase form was deleted but not removed from the container (This will be added as a validation eventually)\r\n if (form === undefined || form.formType === Wars.Domain.Model.Codes.Enums.FormType.Manage) {\r\n return;\r\n }\r\n\r\n if (!this.process.formsVisibilities[form.uniqueIdentifier]) {\r\n return;\r\n }\r\n\r\n //TODO: make this work with multi-instance forms\r\n if (this.process.formJson[form.uniqueIdentifier] &&\r\n Enumerable.from(this.processConfiguration.myForms).any(f => f.maxInstances === 1 &&\r\n f.uniqueIdentifier === form.uniqueIdentifier)) {\r\n this.formDataDict[form.id] = Object.keys(this.process.formJson[form.uniqueIdentifier])[0];\r\n } else if (this.process.formJson[form.uniqueIdentifier]) {\r\n this.formDataDict[form.id] = Object.keys(this.process.formJson[form.uniqueIdentifier])[0];\r\n } else if (this.process.id) {\r\n services.WarsLogger.logError(\"Creating new form\", \"ProcessModel\");\r\n this.formDataDict[form.id] = null;\r\n this.formDataService.createFormData(this.process.id, form.uniqueIdentifier)\r\n .then(formDataId => {\r\n\r\n this.processService.getProcessDto(this.processId).then((process) => {\r\n this.process = process;\r\n this.setCurrentFormDataId(formContainer);\r\n });\r\n\r\n this.formDataDict[form.id] = formDataId;\r\n if (form.apiActionProcessType_id) {\r\n this.apiActionService.runApiAction(form.apiActionProcessType_id, form.defaultFormValueApiActionUniqueId)\r\n .then(defaults => {\r\n if (defaults.length > 0) {\r\n form.mySteps.forEach(s => {\r\n s.formSections.forEach(fs => {\r\n fs.fields.forEach(field => {\r\n if (field.defaultSchemaPropertyUniqueId) {\r\n this.process.formJson[form.uniqueIdentifier][this\r\n .formDataDict[form.id]][field.schemaProperty\r\n .uniqueIdentifier] = defaults[0][field\r\n .defaultSchemaPropertyUniqueId];\r\n this.formDataService.setFormField(\r\n this.process.id,\r\n form.uniqueIdentifier,\r\n this.formDataDict[form.id],\r\n field.schemaProperty.uniqueIdentifier,\r\n defaults[0][field.defaultSchemaPropertyUniqueId]);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public changeContainer(container: Wars.Domain.Model.FormContainer) {\r\n this.currentContainer = container;\r\n this.setCurrentFormDataId(container);\r\n }\r\n\r\n private setVisibleForms() {\r\n //console.log('Test');\r\n let visibleForms = Enumerable.from(this.processConfiguration.myForms)\r\n .where(form => this.process.formsVisibilities[form.uniqueIdentifier] &&\r\n !this.process.formsVisibilities[form.uniqueIdentifier].onlyVisibleAsChild)\r\n .toArray();\r\n\r\n var containersVisible = Enumerable.from(this.processConfiguration.myFormContainers)\r\n .where(i => this.process.containersVisibilities[i.uniqueIdentifier]).toArray();\r\n\r\n var containersWithFormsVisible = Enumerable.from(this.processConfiguration.myFormContainers)\r\n .where(c => Enumerable.from(c.containerItems).any(item => Enumerable.from(visibleForms).any(f => f.id == item.form_id)))\r\n .toArray();\r\n\r\n this.visibleContainers = Enumerable.from(containersVisible)\r\n .where(visibleContainers => Enumerable.from(containersWithFormsVisible)\r\n .any(containerWithFormVisible => containerWithFormVisible.uniqueIdentifier == visibleContainers.uniqueIdentifier))\r\n .toArray();\r\n\r\n this.visibleForms = [];\r\n\r\n visibleForms.forEach(f => {\r\n this.visibleForms[f.id] = true;\r\n });\r\n\r\n if (this.visibleContainers.length > 0) {\r\n if (this.formContainerUniqueId) {\r\n this.currentContainer = Enumerable.from(this.visibleContainers)\r\n .singleOrDefault(visibleContainers => visibleContainers.uniqueIdentifier === this.formContainerUniqueId);\r\n }\r\n\r\n var currentContainerVisible = this.currentContainer !== undefined &&\r\n Enumerable.from(this.visibleContainers).any(i => i.uniqueIdentifier === this.currentContainer.uniqueIdentifier);\r\n\r\n if (!currentContainerVisible) {\r\n this.currentContainer = Enumerable.from(this.visibleContainers).orderBy(i => i.displayOrder).toArray()[0];\r\n }\r\n this.setCurrentFormDataId(this.currentContainer);\r\n }\r\n }\r\n\r\n public userActionInitiated(userActionDto: Wars.Domain.Model.Dtos.Workflow.UserActionDto) {\r\n if (userActionDto.myFormValidations) {\r\n let forms = Enumerable.from(this.processConfiguration.myForms)\r\n .where(f => Enumerable.from(userActionDto.myFormValidations).any(fv => fv.formId == f.id))\r\n .toArray();\r\n\r\n this.processErrors = this.processValidationService.validate(this.process, forms, this.processConfiguration);\r\n }\r\n\r\n if (!this.processErrors || this.processErrors.length == 0) {\r\n if (userActionDto.showConfirmation) {\r\n this.showUserActionConfirmation = true;\r\n this.userActionDto = userActionDto;\r\n } else {\r\n this.executeUserAction(userActionDto);\r\n }\r\n } else {\r\n this.$window.scrollTo(0,0);\r\n }\r\n }\r\n\r\n public executeUserAction(userActionDto: Wars.Domain.Model.Dtos.Workflow.UserActionDto) {\r\n if (userActionDto.attachmentAllowed ||\r\n userActionDto.commentAllowed ||\r\n userActionDto.authorizedToEnterPastEffectiveDate ||\r\n userActionDto.authorizedToEnterFutureEffectiveDate) {\r\n this.showUserActionModal(userActionDto);\r\n } else {\r\n this.processService.executeUserAction(this.processId, userActionDto.id, userActionDto.processActionWorkflowBlockId)\r\n .then((processDto) => {\r\n this.process = processDto;\r\n this.setVisibleForms();\r\n });\r\n }\r\n }\r\n\r\n private showUserActionModal(pendingUserAction: Wars.Domain.Model.Dtos.Workflow.UserActionDto): void {\r\n var self = this;\r\n var model = new models.UserActionModalModel();\r\n model.processActionWorkflowBlockId = pendingUserAction.processActionWorkflowBlockId;\r\n\r\n var userAction = Enumerable\r\n .from(this.processConfiguration.myStatusCodeGroup.myStatuses)\r\n .selectMany(i => i.myWorkflowBlocks)\r\n .singleOrDefault(i => i.id === pendingUserAction.id);\r\n\r\n if (userAction == null) {\r\n userAction = Enumerable\r\n .from(this.processConfiguration.myProcessActions)\r\n .selectMany(i => i.myWorkflowBlocks)\r\n .single(i => i.id === pendingUserAction.id);\r\n }\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/_userActionModal.html\",\r\n controller: \"userActionModalController\",\r\n inputs: {\r\n userActionDto: pendingUserAction,\r\n model: model,\r\n process: this.process,\r\n userActionInfoUniqueId: userAction.myUserActionInfo.uniqueIdentifier,\r\n documentConfiguration: userAction.myUserActionInfo.documentConfiguration,\r\n systemDocumentConfiguration: this.processConfiguration.mySystemDocumentConfiguration\r\n }\r\n })\r\n .then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to.\r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.processService.executeUserActionWithModel(self.processId, pendingUserAction.id, model)\r\n .then((processDto) => {\r\n this.process = processDto;\r\n this.setVisibleForms();\r\n });\r\n } else {\r\n //Randy - transient user action data preservation for validation error\r\n this.processService.userActionService.clearTransientUserActionData();\r\n //Randy - end transient user action data preservation for validation error\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ReportProcessModel {\r\n private logType: string = \"ReportProcessModel\";\r\n\r\n public process: warsApp.models.ProcessDto;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public visibleForms: Wars.Domain.Model.Form[];\r\n public currentForm: Wars.Domain.Model.Form;\r\n public formData: any;\r\n public currentFormDataId: string;\r\n public parentForm: Wars.Domain.Model.Form;\r\n\r\n public showUserActionConfirmation: boolean;\r\n public userActionDto: Wars.Domain.Model.Dtos.Workflow.UserActionDto;\r\n\r\n constructor(\r\n private $location: angular.ILocationService,\r\n private $rootScope: angular.IRootScopeService,\r\n private $filter: angular.IFilterService,\r\n private localStorageService: any,\r\n public processTypeId: string,\r\n public processId: string,\r\n private processTypeService: services.ProcessTypeService,\r\n private processService: services.ProcessService,\r\n private cacheConfigurationService: services.ConfigurationCacheService,\r\n private modalService: any,\r\n private formDataService: services.FormDataService,\r\n private signalRService: services.SignalrService,\r\n private growl: angular.growl.IGrowlService,\r\n private conditionService: services.ConditionService,\r\n private userService: services.UserService,\r\n private objectQueryService: services.ObjectQueryService,\r\n private scope: any,\r\n private formId?: string,\r\n private formDataId?: string,\r\n public parentFormId?: string,\r\n public parentFormDataId?: string,\r\n public parentFormName?: string) {\r\n\r\n if (this.processId) {\r\n var self = this;\r\n\r\n this.processService.getProcessDto(this.processId)\r\n .then(process => {\r\n this.process = process;\r\n\r\n this.cacheConfigurationService\r\n .getVersionedProcessConfiguration(this.process.processConfigurationId)\r\n .then(config => {\r\n self.processConfiguration = config;\r\n\r\n if (self.formId) {\r\n self.visibleForms = Enumerable.from(config.myForms)\r\n .where(form => form.id === self.formId)\r\n .toArray();\r\n } else {\r\n self.visibleForms = Enumerable.from(config.myForms)\r\n .where(form => process.formsVisibilities[form.uniqueIdentifier] &&\r\n !process.formsVisibilities[form.uniqueIdentifier].onlyVisibleAsChild)\r\n .toArray();\r\n }\r\n\r\n if (self.visibleForms.length > 0) {\r\n if (formDataId) {\r\n this.currentFormDataId = formDataId;\r\n } else {\r\n self.setCurrentFormDataId(self.visibleForms[0]);\r\n }\r\n self.currentForm = self.visibleForms[0];\r\n\r\n if ((self).groupSettings == null) {\r\n self.objectQueryService.getGroupSettings(self.process.processConfigurationId, self.currentForm.uniqueIdentifier)\r\n .then((results) => {\r\n if (results != null) {\r\n (self).groupSettings = results;\r\n }\r\n }); \r\n }\r\n\r\n \r\n\r\n }\r\n });\r\n });\r\n\r\n let currentUser = this.userService.getCurrentUser();\r\n this.signalRService.listen(scope).then((listener) => {\r\n listener.onSignalGroupOfProcessDataUpdate((user, result) => {\r\n //console.log(result);\r\n if (result.type === \"FieldUpdate\") {\r\n if (currentUser.userName !== user) {\r\n this.processService.processFormUpdateResults(this.process, result.updatedFields, this.conditionService);\r\n }\r\n }\r\n });\r\n });\r\n } else {\r\n this.processService.createNewProcess(processTypeId).then(\r\n (createProcessDto: Wars.Domain.Model.Dtos.CreateProcessDto) => {\r\n this.redirectAfterProcessCreation(processTypeId, createProcessDto.processId);\r\n });\r\n }\r\n\r\n //re-constitute previous results for the report if they exist \r\n //var groupSettings = localStorage.getItem(`reportGroupSettings-${this.processId}`);\r\n //if (groupSettings != null) {\r\n // (this).groupSettings = JSON.parse(groupSettings); \r\n //}\r\n //var results = localStorage.getItem('reportResults');\r\n //if (results != null) {\r\n // var parsed = JSON.parse(results);\r\n // if (parsed.reportProcessId === this.processId) {\r\n // var now = new Date();\r\n // var expire = new Date(parsed.date);\r\n // expire.setHours(expire.getHours() + 1);\r\n // if (expire.getTime() > now.getTime()) {\r\n // (this).objectQueryResults = JSON.parse(parsed.data);\r\n // if ((this).objectQueryResults.isGrouped) {\r\n // localStorage.removeItem('reportResultsSort');\r\n // } else {\r\n // if ((this).objectQueryResults.rows != undefined && (this).objectQueryResults.rows.length > 0) {\r\n // var sorted = localStorage.getItem('reportResultsSort');\r\n // if (sorted != null) {\r\n // this.sorted = JSON.parse(sorted);\r\n // this.sort(this.sorted.value, true);\r\n // } else {\r\n // this.sorted.value = (this).objectQueryResults.sortId;\r\n // }\r\n // var currentPage = localStorage.getItem('reportResultsPage');\r\n // if (currentPage != null) {\r\n // var p = parseInt(currentPage); \r\n // if (p !== NaN && p <= this.getTotalPages()) {\r\n // this.paging.currentPage = p;\r\n // }\r\n // }\r\n // }\r\n // } \r\n // }\r\n // }\r\n //}\r\n //\r\n }\r\n\r\n private redirectAfterProcessCreation(processTypeId: string, processId: string): void {\r\n this.processId = processId;\r\n var path = '/ProcessType/' + processTypeId + '/ReportProcess/' + this.processId;\r\n services.WarsLogger.logDebug(\"Create new process path: \" + path, this.logType);\r\n this.$location.path(path);\r\n }\r\n\r\n private setCurrentFormDataId(form: Wars.Domain.Model.Form) {\r\n if (!this.process.formJson) {\r\n this.process.formJson = {};\r\n }\r\n\r\n \r\n\r\n //TODO: make this work with multi-instance forms\r\n if (this.process.formJson[form.uniqueIdentifier] && Enumerable.from(this.processConfiguration.myForms).any(f => f.maxInstances === 1 && f.uniqueIdentifier === form.uniqueIdentifier)) {\r\n this.currentFormDataId = Object.keys(this.process.formJson[form.uniqueIdentifier])[0];\r\n }\r\n else if (this.process.formJson[form.uniqueIdentifier]) {\r\n this.currentFormDataId = Object.keys(this.process.formJson[form.uniqueIdentifier])[0];\r\n }\r\n else {\r\n this.currentFormDataId = null;\r\n this.formDataService.createFormData(this.process.id, form.uniqueIdentifier)\r\n .then(formDataId => {\r\n this.currentFormDataId = formDataId;\r\n });\r\n }\r\n }\r\n\r\n reorderGroup(setting: services.ObjectQueryGroupSetting, up: boolean) {\r\n var self = this;\r\n var settings = (self).groupSettings;\r\n if (setting.order === 1 && up) return;\r\n if (setting.order === settings.length && !up) return;\r\n if (up) {\r\n var sd = Enumerable.from(settings).first(i => (i).order === setting.order - 1);\r\n setting.order -= 1;\r\n (sd).order += 1;\r\n }\r\n if (!up) {\r\n var su = Enumerable.from(settings).first(i => (i).order === setting.order + 1);\r\n setting.order += 1;\r\n (su).order -= 1;\r\n }\r\n //preserve group settings so results can be grouped based on last usage \r\n //localStorage.setItem(`reportGroupSettings-${self.processId}`, JSON.stringify((self).groupSettings, null, \"\\t\"));\r\n }\r\n sorted = {\r\n value: \"\",\r\n ascending: true\r\n }\r\n\r\n sort(val, override: boolean) {\r\n var self = this;\r\n if (self.sorted.value === val) {\r\n if (!override) {\r\n self.sorted.ascending = !self.sorted.ascending; \r\n }\r\n } else {\r\n self.sorted.value = val;\r\n self.sorted.ascending = true;\r\n }\r\n if ((self).objectQueryResults.rows != undefined && (self).objectQueryResults.rows.length > 0) {\r\n if ((self).objectQueryResults.rows[0].sortId !== val) {\r\n (self).objectQueryResults.sortId = val;\r\n for (var i = 0; i < (self).objectQueryResults.rows.length; i++) {\r\n var m = Enumerable.from((self).objectQueryResults.rows[i].cells).where(x => (x).id === val).firstOrDefault();\r\n if (m != null) {\r\n (self).objectQueryResults.rows[i].sortKey = m.value; \r\n }\r\n }\r\n }\r\n }\r\n //preserve sort so results can be re-sorted after location change \r\n //localStorage.setItem('reportResultsSort', JSON.stringify(self.sorted, null, \"\\t\"));\r\n }\r\n\r\n filter() {\r\n var self = this;\r\n var columns = Enumerable.from((self).objectQueryResults.columns).where(x => (x).ngFilter !== undefined && (x).ngFilter.trim() !== \"\").toArray();\r\n (self).objectQueryResults.rows = (self).allRows;\r\n for (var i = 0; i < columns.length; i++) {\r\n \r\n (self).objectQueryResults.rows = self.$filter('filter')((self).objectQueryResults.rows, (r) => {\r\n var columnIndex = (columns[i]).order - 1;\r\n var filterVal = (columns[i]).ngFilter.toUpperCase();\r\n return r.cells[columnIndex].value && r.cells[columnIndex].value.toString().toUpperCase().indexOf(filterVal) !== -1;\r\n }); \r\n }\r\n }\r\n\r\n expandAll() {\r\n var self = this;\r\n if ((self).objectQueryResults.rows != undefined && (self).objectQueryResults.rows.length > 0) {\r\n var rows = (self).objectQueryResults.rows;\r\n for (var i = 0; i < rows.length; i++) {\r\n rows[i].expanded = true;\r\n }\r\n }\r\n }\r\n\r\n collapseAll() {\r\n var self = this;\r\n if ((self).objectQueryResults.rows != undefined && (self).objectQueryResults.rows.length > 0) {\r\n var rows = (self).objectQueryResults.rows;\r\n for (var i = 0; i < rows.length; i++) {\r\n rows[i].expanded = undefined;\r\n }\r\n }\r\n }\r\n\r\n paging = {\r\n currentPage: 1,\r\n pageSize: 100,\r\n goToPage: 1\r\n }\r\n\r\n getTotalPages() {\r\n var self = this;\r\n if ((self).objectQueryResults == null) return 0;\r\n var rows = (self).objectQueryResults.rows;\r\n if (rows == null) return 0;\r\n return rows.length > 0 ? Math.ceil(rows.length / self.paging.pageSize) : 1;\r\n }\r\n\r\n setCurrentPage() {\r\n var self = this;\r\n if (self.paging.goToPage > 0 && self.paging.goToPage <= self.getTotalPages()) {\r\n self.paging.currentPage = self.paging.goToPage;\r\n }\r\n //localStorage.setItem('reportResultsPage', self.paging.currentPage.toString());\r\n }\r\n\r\n setGoToPage() {\r\n var self = this;\r\n self.paging.goToPage = self.paging.currentPage;\r\n //localStorage.setItem('reportResultsPage', self.paging.currentPage.toString());\r\n }\r\n\r\n public submit() {\r\n var self = this;\r\n //localStorage.removeItem('reportResultsSort');\r\n //localStorage.removeItem('reportResultsPage');\r\n //localStorage.removeItem('reportResults');\r\n self.sorted.ascending = true;\r\n (this).objectQueryResults = null;\r\n self.objectQueryService.executeForm(self.processTypeId,\r\n self.currentForm.uniqueIdentifier,\r\n self.processId,\r\n (self).groupSettings)\r\n .then((results) => {\r\n if (results != null) {\r\n var resultsCompressed = results.isCompressed;\r\n var exceedsMaxResults = results.exceedsMaxAllowedResults;\r\n results = results.payload;\r\n var parsed: any;\r\n if (resultsCompressed) {\r\n // Decode base64 (convert ascii to binary)\r\n var strData = atob(results);\r\n // Convert binary string to character-number array\r\n var charData = strData.split(\"\").map((x) => { return x.charCodeAt(0); });\r\n // Turn number array into byte-array\r\n var binData = new Uint8Array(charData);\r\n // Pako magic\r\n var data = pako.inflate(binData);\r\n // convert to unsigned 16 bit\r\n var arr = new Uint16Array(data);\r\n // Convert gunzipped byteArray back to ascii string:\r\n var json = [];\r\n var objectEndFound = false;\r\n var objectDeserialized = 0;\r\n //process in reverse to remove the variable byte order markers at the front of the byte array\r\n for (var i = arr.length - 1; i > 0; i--) {\r\n var char = String.fromCharCode(arr[i]);\r\n if (char === \"}\") {\r\n objectDeserialized += 1;\r\n }\r\n if (char === \"{\") {\r\n objectDeserialized -= 1;\r\n }\r\n if (objectDeserialized === 0 && !objectEndFound) continue;\r\n json.push(char);\r\n objectEndFound = true;\r\n if (objectDeserialized === 0) break;\r\n }\r\n //reverse the array and parse the object\r\n json = json.reverse();\r\n parsed = JSON.parse(json.join(\"\"));\r\n } else {\r\n parsed = JSON.parse(results);\r\n }\r\n var now = new Date();\r\n var runtime = now;\r\n //var runtime = (now.getMonth() + 1) +\r\n // \"/\" +\r\n // now.getDate() +\r\n // \"/\" +\r\n // now.getFullYear() +\r\n // \" @ \" +\r\n // ((now.getHours() < 10) ? \"0\" : \"\") +\r\n // ((now.getHours() > 12) ? (now.getHours() - 12) : now.getHours()) +\r\n // \":\" +\r\n // ((now.getMinutes() < 10) ? \"0\" : \"\") +\r\n // now.getMinutes() +\r\n // \":\" +\r\n // ((now.getSeconds() < 10) ? \"0\" : \"\") +\r\n // now.getSeconds() +\r\n // ((now.getHours() > 12) ? (\"PM\") : \"AM\");\r\n\r\n parsed.runtime = runtime;\r\n //preserve results so they can be re-constituted after location change \r\n var reportResults = {\r\n data: JSON.stringify(parsed, null, \"\\t\"),\r\n reportProcessId: self.processId,\r\n date: new Date()\r\n }\r\n if (exceedsMaxResults) {\r\n self.growl.info(\"The query result limit was exceeded so the results below are partial.\");\r\n }\r\n //cache results\r\n //try {\r\n // localStorage.setItem('reportResults', JSON.stringify(reportResults, null, \"\\t\"));\r\n //} catch (e) {\r\n // self.growl.info(\"Results cannot be cached based on the number of records returned.\");\r\n //}\r\n //if (reportResults.data.length > 20000) {\r\n // self.growl.info(\"Results cannot be cached based on the number of records returned.\");\r\n //} else {\r\n // localStorage.setItem('reportResults', JSON.stringify(reportResults, null, \"\\t\")); \r\n //}\r\n //\r\n (self).objectQueryResults = parsed;\r\n if ((self).objectQueryResults.rows != undefined &&\r\n (self).objectQueryResults.rows.length > 0) {\r\n self.sorted.value = (self).objectQueryResults.sortId;\r\n }\r\n\r\n (self).allRows = Enumerable.from((self).objectQueryResults.rows).toArray();\r\n }\r\n });\r\n }\r\n\r\n public clear() {\r\n var self = this;\r\n self.formDataService.clearFormData(self.processId, self.currentForm.uniqueIdentifier, self.currentFormDataId).then(r => {\r\n for (let propName in self.process.formJson[self.currentForm.uniqueIdentifier][self.currentFormDataId]) {\r\n self.process.formJson[self.currentForm.uniqueIdentifier][self.currentFormDataId][propName] = null;\r\n }\r\n //added the reload of the process DTO to resync the form state in case an unmapped field is used\r\n //to control field displays via display conditions - for example: \"show advanced options\"\r\n self.processService.getProcessDto(self.processId)\r\n .then((process) => {\r\n self.process = process;\r\n });\r\n });\r\n //localStorage.removeItem('reportResultsSort');\r\n //localStorage.removeItem(`reportGroupSettings-${this.processId}`);\r\n //localStorage.removeItem('reportResultsPage');\r\n //localStorage.removeItem('reportResults');\r\n (self).objectQueryResults = null;\r\n self.$rootScope.$broadcast('userPickerCleared');\r\n }\r\n\r\n public changeForm(form: Wars.Domain.Model.Form) {\r\n this.currentForm = form;\r\n this.setCurrentFormDataId(form);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessActionsModel {\r\n\r\n private systemActions: Wars.Domain.Model.SystemAction[];\r\n private processActions: Wars.Domain.Model.ProcessAction[];\r\n private currentProcessAction: Wars.Domain.Model.ProcessAction;\r\n private processSchemaProperties: Wars.Domain.Model.SchemaProperty[];\r\n public search: any;\r\n\r\n constructor(\r\n private processConfigId: string,\r\n private processActionService: services.ProcessActionService,\r\n private deleteService: services.DeleteService,\r\n private systemLevelService: services.SystemLevelService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private newProcessActionSelectedCallback: (processActionGroup: models.ProcessActionGroup) => void,\r\n private processActionId: string)\r\n {\r\n this.processActionService.getAllProcessActions(this.processConfigId).then(\r\n (processActions) => {\r\n this.processActions = processActions;\r\n if (processActionId) {\r\n this.currentProcessAction = Enumerable.from(this.processActions).singleOrDefault(i => i.id === processActionId);\r\n this.loadProcessActionInfo();\r\n }\r\n });\r\n\r\n this.processConfigurationService.getProcessSchemaProperties(this.processConfigId).then(\r\n (schemaProperties) => {\r\n this.processSchemaProperties = schemaProperties;\r\n });\r\n\r\n this.systemLevelService.getSystemLevelSystemActions().then(\r\n (systemLevel) => {\r\n this.systemActions = systemLevel.mySystemActions;\r\n });\r\n\r\n this.search = {\r\n name: ''\r\n }\r\n }\r\n\r\n public addNewProcessAction(): void {\r\n this.currentProcessAction = this.processActionService.createNewProcessAction(this.processConfigId);\r\n this.processActionService.saveAllChanges(() => {\r\n this.processActions.push(this.currentProcessAction);\r\n this.loadProcessActionInfo();\r\n });\r\n }\r\n\r\n public save() {\r\n this.processActionService.saveAllChanges();\r\n }\r\n\r\n public deleteProcessAction() {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ProcessAction\",\r\n this.currentProcessAction.id,\r\n \"Process Action\",\r\n () => {\r\n this.processActions.remove(this.currentProcessAction);\r\n this.currentProcessAction = undefined;\r\n this.loadProcessActionInfo();\r\n });\r\n }\r\n\r\n public loadProcessActionInfo(): void {\r\n if (this.currentProcessAction) {\r\n this.processActionService.getProcessActionGroup(this.currentProcessAction.id).then(\r\n (processActionGroup: models.ProcessActionGroup) => {\r\n this.newProcessActionSelectedCallback(processActionGroup);\r\n });\r\n } else {\r\n this.newProcessActionSelectedCallback(undefined);\r\n }\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessTypeModel {\r\n service: services.ProcessTypeService;\r\n processTypes: Wars.Domain.Model.ProcessType[] = [];\r\n childProcessTypes: Wars.Domain.Model.ProcessType[];\r\n hasChanges = false;\r\n showRemoveConfirmation = false;\r\n selectedIndex = undefined;\r\n public search: any;\r\n\r\n public processTypeContext: models.EnumDropDownContext = new EnumDropDownContext();\r\n\r\n constructor(\r\n processTypeService: services.ProcessTypeService,\r\n private locationService: angular.ILocationService,\r\n private dataSourceService: services.DataSourceService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private deleteService: services.DeleteService,\r\n public processConfigurationId?: string) {\r\n\r\n var self = this;\r\n\r\n this.search = {\r\n name: ''\r\n }\r\n\r\n var stringValueInLocalStorage = localStorage.getItem(\"processTypeFilter\");\r\n if (stringValueInLocalStorage) {\r\n this.search.name = stringValueInLocalStorage;\r\n }\r\n\r\n this.service = processTypeService;\r\n this.service.subscribeHasChanges(e => {\r\n this.hasChanges = e.hasChanges;\r\n });\r\n\r\n if (processConfigurationId) {\r\n this.service.getConfigurationChildProcesses(processConfigurationId)\r\n .then(data => {\r\n this.processTypes = data;\r\n });\r\n this.service.getChildProcessTypes()\r\n .then(data => {\r\n this.childProcessTypes = data;\r\n });\r\n } else {\r\n this.service.getAllProcessTypes()\r\n .then(data => {\r\n this.processTypes = data;\r\n });\r\n }\r\n\r\n this.processTypeContext.removeSpecifiedOptions = [];\r\n this.processTypeContext.removeSpecifiedOptions.push();\r\n }\r\n\r\n public saveFilterToLocalStorage() {\r\n localStorage.setItem(\"processTypeFilter\", this.search.name);\r\n }\r\n\r\n private isEntityDetached(entity: breeze.Entity): boolean {\r\n if (entity.entityAspect.entityState.isDetached()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private isEntityDeleted(entity: breeze.Entity): boolean {\r\n if (entity.entityAspect.entityState.isDeleted()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private removeDetachedEntities(entities): void {\r\n var entitiesToRemove = [];\r\n for (var i = 0; i < entities.length; i++) {\r\n if (this.isEntityDetached(entities[i])) {\r\n entitiesToRemove.push(entities[i]);\r\n }\r\n }\r\n\r\n for (var x = 0; x < entitiesToRemove.length; x++) {\r\n entities.pop(entitiesToRemove[x]);\r\n console.info(entitiesToRemove[x]);\r\n }\r\n }\r\n\r\n public addSingleInstanceNew() {\r\n this.addNewInternal(false, true, false);\r\n }\r\n\r\n public addReportNew() {\r\n this.addNewInternal(true, false, false);\r\n }\r\n\r\n public addNewTransient() {\r\n this.addNewInternal(false, false, true);\r\n }\r\n\r\n public addNew(processType?: Wars.Domain.Model.ProcessType): void {\r\n this.addNewInternal(false, false, false, processType);\r\n }\r\n\r\n\r\n private addNewInternal(isReport: boolean, isSingle: boolean,isTransient?:boolean, processType?: Wars.Domain.Model.ProcessType): void {\r\n let newProcessType: Wars.Domain.Model.ProcessType = null;\r\n if (!processType) {\r\n newProcessType = this.service.createProcessType();\r\n newProcessType.name = \"New Process\";\r\n newProcessType.isEmbedded = false;\r\n newProcessType.isReportProcess = isReport;\r\n newProcessType.isSingleInstanceProcess = isSingle;\r\n newProcessType.isTransient = isTransient;\r\n }\r\n\r\n if (this.processConfigurationId) {\r\n var newChildProcess = this.service.createChildProcess();\r\n\r\n newChildProcess.processConfiguration_id = this.processConfigurationId;\r\n\r\n if (!processType && newProcessType) {\r\n newProcessType.isEmbedded = true;\r\n newProcessType.isReportProcess = true;\r\n newChildProcess.processType_id = newProcessType.id;\r\n newChildProcess.processType = newProcessType;\r\n } else if (processType) {\r\n newChildProcess.processType_id = processType.id;\r\n newChildProcess.processType = processType;\r\n this.processTypes.push(processType);\r\n }\r\n }\r\n\r\n if (newProcessType) {\r\n let newProcessConfiguration = this.service.createProcessConfiguration(newProcessType);\r\n newProcessConfiguration.configurationStatus = Wars.Domain.Model.Codes.Enums.ConfigurationStatus.InWork;\r\n newProcessType.processConfigurations.push(newProcessConfiguration);\r\n this.processTypes.push(newProcessType);\r\n }\r\n this.save();\r\n }\r\n\r\n public deleteLinkClicked(index: number): void {\r\n this.selectedIndex = index;\r\n this.showRemoveConfirmation = true;\r\n }\r\n\r\n public copyProcessType(index: number): void {\r\n this.service.copyProcessType(this.processTypes[index].id).then(\r\n () => {\r\n this.service.getAllProcessTypes()\r\n .then(data => {\r\n this.processTypes = data;\r\n });\r\n });\r\n }\r\n\r\n public remove(): void {\r\n window.open(\"https://youtu.be/V_IFRPkTWGg\",\"_blank\");\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ProcessType\",\r\n this.processTypes[this.selectedIndex].id,\r\n \"Process Type\",\r\n () => {\r\n this.processTypes.splice(this.selectedIndex, 1);\r\n this.showRemoveConfirmation = false;\r\n this.selectedIndex = undefined;\r\n });\r\n }\r\n\r\n public save(): void {\r\n this.service.saveAllChanges();\r\n }\r\n\r\n public configure(processType: Wars.Domain.Model.ProcessType, configuration?: Wars.Domain.Model.ProcessConfiguration): void {\r\n var configurationId;\r\n if (configuration) {\r\n configurationId = configuration.id;\r\n } else {\r\n \r\n configurationId = Enumerable.from(processType.processConfigurations)\r\n .where(x => x.minorVersion === null)\r\n .single().id;\r\n }\r\n\r\n this.locationService.path('ProcessConfiguration/' + configurationId + '/Manage');\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class QueryConfigurationModel {\r\n private logType: string = \"QueryConfigurationModel\";\r\n\r\n private systemLevel: Wars.Domain.Model.SystemLevel;\r\n public queries: Wars.Domain.Model.QueryConfiguration[] = [];\r\n public currentQuery:Wars.Domain.Model.QueryConfiguration;\r\n public dataSources: Wars.Domain.Model.DataSource[];\r\n public selectedDataSource: Wars.Domain.Model.DataSource;\r\n public newTag:string;\r\n public tags: string[];\r\n\r\n constructor(\r\n private queryConfigurationService: services.QueryConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private treeService: services.TreeService,\r\n private tagService: services.TagService,\r\n private $q: angular.IQService,\r\n private processConfigurationId?: string)\r\n {\r\n var self = this;\r\n\r\n if(!processConfigurationId) {\r\n processConfigurationId = null;\r\n }\r\n\r\n if (processConfigurationId) {\r\n queryConfigurationService.getAllQueryConfigurations(processConfigurationId).then(r => {\r\n self.queries = r;\r\n if (!self.queries) {\r\n self.queries = [];\r\n }\r\n\r\n });\r\n } else {\r\n systemLevelService.getSystemLevelQueryConfigurations().then(\r\n (systemLevel) => {\r\n self.systemLevel = systemLevel;\r\n self.queries = systemLevel.myQueryConfigurations;\r\n });\r\n }\r\n\r\n queryConfigurationService.getDataSources(processConfigurationId).then(d => {\r\n self.dataSources = d; \r\n if (processConfigurationId) {\r\n queryConfigurationService.getDataSources().then(results => {\r\n results.forEach(r => {\r\n self.dataSources.push(r);\r\n });\r\n });\r\n }\r\n });\r\n\r\n tagService.getTagsLike(Wars.Domain.Model.Codes.Enums.TagType.Query)\r\n .then(result => {\r\n self.tags = Enumerable.from(result).select(i => i.tagName).distinct().toArray();\r\n services.WarsLogger.logDebug(\"Matching Tags\", this.logType, self.tags);\r\n if(self.tags.length === 0){\r\n self.tags.push('test');\r\n }\r\n });\r\n }\r\n\r\n public selectQuery(query:Wars.Domain.Model.QueryConfiguration){\r\n this.selectedDataSource = query.myDataOperation.myDataSource;\r\n this.currentQuery = query;\r\n }\r\n\r\n public addQuery() {\r\n var newQuery = this.queryConfigurationService.createNewQueryConfiguration();\r\n this.queries.push(newQuery);\r\n this.currentQuery = newQuery;\r\n this.currentQuery.processConfiguration_id = this.processConfigurationId;\r\n services.WarsLogger.logInfo(\"New Query Object\", this.logType, this.currentQuery);\r\n //this.save();\r\n }\r\n\r\n public dataSourceChanged() {\r\n services.WarsLogger.logInfo(\"Data Source Selected\", this.logType, this.selectedDataSource);\r\n }\r\n\r\n public getTreeItemName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n return this.treeService.getDisplayName(treeItem);\r\n }\r\n \r\n public onDropTreeItem($event, queryParameter: Wars.Domain.Model.OperationParameter) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n\r\n queryParameter.treeItem = treeItem;\r\n queryParameter.treeItem_id = treeItem.id;\r\n }\r\n\r\n public save() {\r\n this.queryConfigurationService.saveAllChanges();\r\n }\r\n\r\n public addTag(tag) {\r\n var newTag = this.tagService.createTag();\r\n newTag.tagName = tag.text;\r\n newTag.tagType = Wars.Domain.Model.Codes.Enums.TagType.Query;\r\n newTag.condition_id = null;\r\n newTag.calculation_id = null;\r\n newTag.queryConfiguration_id = this.currentQuery.id;\r\n newTag.myQueryConfiguration= this.currentQuery;\r\n\r\n this.currentQuery.tags.push(newTag);\r\n }\r\n\r\n public removeTag(tag) {\r\n this.currentQuery.tags.forEach(t => {\r\n if (t.tagName === tag.text) {\r\n t.entityAspect.setDeleted();\r\n }\r\n });\r\n }\r\n\r\n public searchTags(query: string) {\r\n var queryLength = query.length;\r\n var defrred = this.$q.defer();\r\n var returnTags = Enumerable.from(this.tags)\r\n .where(i => i.substring(0, queryLength) === query)\r\n .toArray();\r\n defrred.resolve(returnTags);\r\n return defrred.promise;\r\n }\r\n\r\n public operationChanged() {\r\n var self = this;\r\n\r\n this.currentQuery.parameters.forEach(p => {\r\n p.entityAspect.setDeleted();\r\n });\r\n\r\n this.currentQuery.myDataOperation.parameters.forEach(p => {\r\n var queryParameter = self.queryConfigurationService.createNewQueryParameter();\r\n queryParameter.name = p.name;\r\n this.currentQuery.parameters.push(queryParameter);\r\n });\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n import VariableType = Wars.Domain.Model.Codes.Enums.VariableType;\r\n\r\n export class SchemaProperty implements Wars.Domain.Model.SchemaProperty {\r\n id: string;\r\n \r\n parentObjectSchema: Wars.Domain.Model.ObjectSchema;\r\n objectSchema_id: string;\r\n name: string;\r\n required: boolean;\r\n propertyType: Wars.Domain.Model.Codes.Enums.VariableType;\r\n codeGroup: Wars.Domain.Model.Codes.CodeGroup;\r\n codeGroup_id?: string;\r\n type_id?: string;\r\n typeSchema: Wars.Domain.Model.ObjectSchema;\r\n uniqueIdentifier: string;\r\n isIndexed: boolean;\r\n systemVariable_id?: string;\r\n systemVariable: Wars.Domain.Model.SchemaProperty;\r\n scheduledResourceConfiguration_id?: string;\r\n scheduledResourceConfiguration: Wars.Domain.Model.ScheduledResourceConfiguration;\r\n paymentConfiguration_id?: string;\r\n paymentConfiguration: Wars.Domain.Model.Payment.PaymentConfiguration;\r\n canDownloadSecureDocumentSecurityMatrix_id?: string;\r\n canDownloadSecureDocumentSecurityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n canSecureDocumentSecurityMatrix_id?: string;\r\n canSecureDocumentSecurityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration;\r\n documentConfiguration_id: string;\r\n isSystemLevel: boolean;\r\n entityAspect: breeze.EntityAspect;\r\n entityType: breeze.EntityType;\r\n lastUpdateUserName: string;\r\n\r\n clonedFromId:string;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class TreeConfigurationItem {\r\n public stepId: string;\r\n public claimId: string;\r\n public claimUniqueId: string;\r\n public relatedClaimProcessTypeId: string;\r\n public processDataId: string;\r\n public conditionId: string;\r\n public calculationId: string;\r\n public constantId: string;\r\n public queryId: string;\r\n public schemaPropertyId: string;\r\n public objectSchemaId: string;\r\n public staticDocumentId: string;\r\n public emailGroupId: string;\r\n public timeTrackerId: string;\r\n public systemCodeId: string;\r\n public claimGroupId: string;\r\n public interProcessApiId: string;\r\n\r\n public listSectionId: string;\r\n public listPropertyId: string;\r\n\r\n public isList: boolean;\r\n public isClaimWithValue: boolean;\r\n public isRequired: boolean;\r\n public text: string;\r\n public variableType: Wars.Domain.Model.Codes.Enums.VariableType;\r\n public treeItemSource: Wars.Domain.Model.Codes.Enums.TreeItemSource;\r\n public isSystemLevel: boolean;\r\n public placeholder: Wars.Domain.Model.Codes.Enums.Placeholder;\r\n public complexObjectProperty: Wars.Domain.Model.Codes.Enums.ComplexObjectProperty;\r\n public userClaimDefinitionId;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class TreeItemLookupModel {\r\n\r\n constructor(\r\n private treeItemLookupService: services.TreeItemLookupService,\r\n private treeService: services.TreeService,\r\n private lookupEntries: Wars.Domain.Model.TreeItemLookup[],\r\n private processConfigId: string,\r\n private includeTreeSections: string,\r\n private isReadonly: boolean) { }\r\n\r\n public addNewTreeItemLookupEntry(): void {\r\n var treeItemLookup = this.treeItemLookupService.createTreeItemLookupEntry();\r\n this.lookupEntries.push(treeItemLookup);\r\n this.saveChanges();\r\n }\r\n\r\n public saveChanges(): void {\r\n this.treeItemLookupService.saveAllChanges();\r\n }\r\n\r\n public getDisplayName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n return this.treeService.getDisplayName(treeItem);\r\n }\r\n\r\n public delete(index: number) {\r\n this.lookupEntries.splice(index, 1);\r\n this.saveChanges();\r\n }\r\n\r\n public onDragOver($event: any, $index: number): void {\r\n //var treeConfig = this.treeService.getTreeConfigurationItem();\r\n }\r\n\r\n public onDrop($event: any, $index: number): void {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n this.lookupEntries[$index].myTreeItem = treeItem;\r\n this.lookupEntries[$index].treeItem_id = treeItem.id;\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n this.treeItemLookupService.saveAllChanges();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class TreeItemOptions {\r\n public id: string;\r\n public text: string;\r\n public treeItemSource: Wars.Domain.Model.Codes.Enums.TreeItemSource;\r\n public variableType: Wars.Domain.Model.Codes.Enums.VariableType;\r\n public isSystemLevel: boolean;\r\n public complexObjectProperty?: Wars.Domain.Model.Codes.Enums.ComplexObjectProperty;\r\n public listSectionId?: string;\r\n public isClaimWithValue?: boolean;\r\n public queryConfigurationId?: string;\r\n public placeholder?: Wars.Domain.Model.Codes.Enums.Placeholder;\r\n public isRequired?: boolean;\r\n public isPlaceholderList?: boolean;\r\n public userClaimDefinitionId?: string;\r\n public interProcessApiId?: string;\r\n public claimUniqueId?: string;\r\n\r\n constructor(id: string,\r\n text: string,\r\n treeItemSource: Wars.Domain.Model.Codes.Enums.TreeItemSource,\r\n variableType: Wars.Domain.Model.Codes.Enums.VariableType,\r\n isSystemLevel: boolean)\r\n {\r\n this.id = id;\r\n this.text = text;\r\n this.treeItemSource = treeItemSource;\r\n this.variableType = variableType;\r\n this.isSystemLevel = isSystemLevel;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class TreeValue {\r\n public value: any;\r\n public type: Wars.Domain.Model.Codes.Enums.VariableType;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class User {\r\n public token: string;\r\n public userId: string;\r\n public userName: string;\r\n public emailAddress: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public imageUrl: string;\r\n public expires: Date; \r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class UserActionModalModel {\r\n public processActionWorkflowBlockId: string;\r\n public comment: string;\r\n public fileUploadProgress: number;\r\n public fileUploadErrorMessage: string;\r\n public effectiveDate: Date;\r\n public docIds: string[];\r\n public showEffectiveDate: boolean;\r\n\r\n constructor() {\r\n this.docIds = [];\r\n this.showEffectiveDate = false;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class UserProviderConfig {\r\n public tag: string;\r\n public selectedUser: any;\r\n }\r\n\r\n export class Grant {\r\n id: string;\r\n uniqueId: string;\r\n name: string;\r\n claimValues: GrantValue[];\r\n }\r\n\r\n export class GrantValue {\r\n id: string;\r\n uniqueId: string;\r\n name: string;\r\n }\r\n\r\n export class UserClaim {\r\n claimIndex: number;\r\n claimUniqueId: string;\r\n claimValueUniqueId: string;\r\n newClaimUniqueId: string;\r\n options: GrantValue[];\r\n }\r\n\r\n export class UserAdministrationModel{\r\n\r\n public systemLevel: Wars.Domain.Model.SystemLevel;\r\n public userProviders: UserProviderConfig[];\r\n public grants: Grant[];\r\n public userId: string;\r\n public users: any;\r\n public filteredUsers: any;\r\n public selectedUser: any;\r\n\r\n constructor(private userAdministrationService: services.UserAdministrationService, private userService: services.UserService, private filter: angular.IFilterService) {\r\n var self = this;\r\n self.userProviders = [];\r\n self.userAdministrationService.getUserGrantAuthorizations()\r\n .then((result) => {\r\n self.userId = result.userId;\r\n self.grants = result.options;\r\n self.userAdministrationService.getUserProviders()\r\n .then((result) => {\r\n if (result.length != undefined) {\r\n for (var i = 0; i < result.length; i++) {\r\n var upc = new UserProviderConfig();\r\n upc.tag = result[i].tag;\r\n self.userProviders.push(upc);\r\n }\r\n self.userProviders = Enumerable.from(self.userProviders).orderBy(x => x.tag).toArray();\r\n }\r\n self.userAdministrationService.getUsers(self.userProviders)\r\n .then((result) => {\r\n self.users = result;\r\n self.filteredUsers = self.users;\r\n });\r\n });\r\n });\r\n } \r\n\r\n public paging = {\r\n currentPage: 1,\r\n pageSize: 50,\r\n goToPage: 1\r\n }\r\n\r\n public filters = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n userId: \"\",\r\n email: \"\",\r\n claimName: \"\",\r\n claimValue: \"\"\r\n }\r\n\r\n public getTotalPages() {\r\n if (this.filteredUsers) return 0;\r\n return this.filteredUsers.length > 0 ? Math.ceil(this.filteredUsers.length / this.paging.pageSize) : 1;\r\n }\r\n\r\n public setCurrentPage() {\r\n if (this.paging.goToPage > 0 && this.paging.goToPage <= this.getTotalPages()) {\r\n this.paging.currentPage = this.paging.goToPage;\r\n }\r\n }\r\n\r\n public setGoToPage() {\r\n this.paging.goToPage = this.paging.currentPage;\r\n }\r\n\r\n public filterUsers() {\r\n this.paging.currentPage = 1;\r\n this.paging.goToPage = 1;\r\n this.filteredUsers = this.filter('filter')(this.users,\r\n {\r\n firstName: this.filters.firstName,\r\n lastName: this.filters.lastName,\r\n externalSystemUserName: this.filters.userId,\r\n email: this.filters.email,\r\n userClaims: {\r\n claimName: this.filters.claimName,\r\n claimValueName: this.filters.claimValue\r\n }\r\n }\r\n );\r\n }\r\n\r\n public userSelected(item: Wars.Domain.Model.Dtos.UserSearchDto, provider: UserProviderConfig) {\r\n var self = this;\r\n provider.selectedUser = item;\r\n if (!provider.selectedUser) return;\r\n self.selectedUser = Enumerable.from(self.users).where(i => (i).externalId === provider.selectedUser.id && (i).provider === provider.selectedUser.provider).firstOrDefault();\r\n }\r\n\r\n public addUserClaim(selectedUser) {\r\n if (selectedUser.userClaims == null) {\r\n selectedUser.userClaims = [];\r\n }\r\n var uc = new UserClaim();\r\n uc.claimIndex = selectedUser.userClaims.length;\r\n selectedUser.userClaims.push(uc);\r\n }\r\n\r\n public removeUserClaim(selectedUser, userClaim) {\r\n if (selectedUser.userClaims == null || selectedUser.userClaims.length === 0) return;\r\n selectedUser.userClaims = Enumerable.from(selectedUser.userClaims).where(i => i.claimIndex !== userClaim.claimIndex).toArray();\r\n }\r\n\r\n public setClaimOptions(userClaim: UserClaim) {\r\n var self = this;\r\n userClaim.options = [];\r\n if (userClaim.claimUniqueId != null) {\r\n userClaim.options = Enumerable.from(self.grants).first(i => i.uniqueId === userClaim.claimUniqueId).claimValues;\r\n } \r\n if (userClaim.newClaimUniqueId != null) {\r\n userClaim.options = Enumerable.from(self.grants).first(i => i.uniqueId === userClaim.newClaimUniqueId).claimValues;\r\n } \r\n if (userClaim && userClaim.options && userClaim.options.length && userClaim.options.length > 0) {\r\n userClaim.options = Enumerable.from(userClaim.options).distinct(x => x.uniqueId).toArray();\r\n }\r\n }\r\n\r\n public canSaveUser(selectedUser) {\r\n if (selectedUser.userClaims == null || selectedUser.userClaims.length === 0) return false;\r\n for (var i = 0; i < selectedUser.userClaims.length; i++) {\r\n var uc = selectedUser.userClaims[i];\r\n if (uc.claimUniqueId == null || uc.claimUniqueId.trim() === \"\") return false;\r\n if (uc.options != null && uc.options.length > 0) {\r\n if (uc.claimValueUniqueId == null || uc.claimValueUniqueId.trim() === \"\") return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public canAddUserClaim(user) {\r\n if (user.newClaimUniqueId == null || user.newClaimUniqueId.trim() === \"\") return false;\r\n if (user.options != null && user.options.length > 0) {\r\n if (user.newClaimValueUniqueId == null || user.newClaimValueUniqueId.trim() === \"\") return false;\r\n }\r\n return true;\r\n }\r\n\r\n public addUserNewClaim(user) {\r\n var self = this;\r\n self.userAdministrationService.addUserNewClaim(user)\r\n .then((result) => {\r\n if (result.length === 1) {\r\n user.userClaims = result[0].userClaims;\r\n user.newClaimUniqueId = null;\r\n user.newClaimValueUniqueId = null;\r\n user.options = null;\r\n }\r\n if (user.id === self.userId) {\r\n self.userAdministrationService.getUserGrantAuthorizations()\r\n .then((result) => {\r\n self.userId = result.userId;\r\n self.grants = result.options;\r\n });\r\n }\r\n });\r\n }\r\n\r\n public addUser(provider) {\r\n var self = this;\r\n self.userAdministrationService.addUser(provider.selectedUser)\r\n .then((result) => {\r\n provider.selectedUser = null;\r\n if (result.length === 1) {\r\n self.users.push(result[0]);\r\n }\r\n });\r\n }\r\n\r\n public removeClaim(user, claim) {\r\n var self = this;\r\n var removeUser = false;\r\n if (user.userClaims.length === 1) {\r\n removeUser = true;\r\n }\r\n self.userAdministrationService.removeClaim(claim.id)\r\n .then(() => {\r\n if (removeUser) {\r\n self.users = Enumerable.from(self.users).where(i => (i).id !== user.id).toArray();\r\n self.filterUsers();\r\n } else {\r\n user.userClaims = Enumerable.from(user.userClaims).where(i => (i).id !== claim.id).toArray();\r\n }\r\n });\r\n }\r\n\r\n private searchUsers(viewValue, provider: UserProviderConfig): any {\r\n if (viewValue.length == undefined || viewValue.length < 3) return null;\r\n var self = this;\r\n var searchCriteria = new models.UserSearchCriteria();\r\n searchCriteria.userRepository = provider.tag;\r\n searchCriteria.userName = viewValue;\r\n return self.userService.searchUsers(searchCriteria);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class UserSearchCriteria {\r\n public userName: string;\r\n public emailAddress: string;\r\n public userRepository:string;\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var ValueOperation = /** @class */ (function (_super) {\r\n __extends(ValueOperation, _super);\r\n function ValueOperation() {\r\n return _super.call(this) || this;\r\n }\r\n ValueOperation.prototype.getVariableTypeSymbol = function () {\r\n switch (this.variableType) {\r\n case 0 /* String */:\r\n return \"S\";\r\n case 1 /* Integer */:\r\n return \"I\";\r\n case 2 /* Decimal */:\r\n return \"Dc\";\r\n case 3 /* DateTime */:\r\n return \"Dt\";\r\n case 4 /* Date */:\r\n return \"D\";\r\n case 5 /* Time */:\r\n return \"T\";\r\n case 6 /* Boolean */:\r\n return \"B\";\r\n case 24 /* Code */:\r\n return \"C\";\r\n default:\r\n return \"?\";\r\n }\r\n };\r\n ValueOperation.prototype.getVariableTypeName = function () {\r\n switch (this.variableType) {\r\n case 0 /* String */:\r\n return \"String\";\r\n case 1 /* Integer */:\r\n return \"Integer\";\r\n case 2 /* Decimal */:\r\n return \"Decimal\";\r\n case 3 /* DateTime */:\r\n return \"Date/Time\";\r\n case 4 /* Date */:\r\n return \"Date\";\r\n case 5 /* Time */:\r\n return \"Time\";\r\n case 6 /* Boolean */:\r\n return \"Boolean\";\r\n case 24 /* Code */:\r\n return \"Code\";\r\n default:\r\n return \"Unknown\";\r\n }\r\n };\r\n return ValueOperation;\r\n }(BaseEntity));\r\n models.ValueOperation = ValueOperation;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n\r\n export class ValueOperation extends BaseEntity implements Wars.Domain.Model.Calculations.ValueOperation {\r\n constructor() {\r\n super();\r\n }\r\n\r\n operator: Wars.Domain.Model.Codes.Enums.ValueOperator;\r\n variableType: Wars.Domain.Model.Codes.Enums.VariableType;\r\n operands: Wars.Domain.Model.Calculations.Operand[];\r\n onlyAllowListOperands: boolean;\r\n\r\n public getVariableTypeSymbol(): string {\r\n switch (this.variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.String:\r\n return \"S\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n return \"I\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n return \"Dc\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.DateTime:\r\n return \"Dt\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Date:\r\n return \"D\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Time:\r\n return \"T\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Boolean:\r\n return \"B\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Code:\r\n return \"C\";\r\n default:\r\n return \"?\";\r\n }\r\n }\r\n\r\n public getVariableTypeName(): string {\r\n switch (this.variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.String:\r\n return \"String\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n return \"Integer\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n return \"Decimal\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.DateTime:\r\n return \"Date/Time\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Date:\r\n return \"Date\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Time:\r\n return \"Time\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Boolean:\r\n return \"Boolean\";\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Code:\r\n return \"Code\";\r\n default:\r\n return \"Unknown\";\r\n }\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class AddEditStatusModel {\r\n\r\n public processStatusGroup: ProcessStatusGroup;\r\n\r\n public existingStatus: boolean;\r\n public deleteStatusCode: boolean;\r\n\r\n \r\n constructor(processStatusGroup?: ProcessStatusGroup) {\r\n if (processStatusGroup) {\r\n this.processStatusGroup = processStatusGroup;\r\n this.existingStatus = true;\r\n this.deleteStatusCode = false;\r\n } else {\r\n this.existingStatus = false;\r\n this.processStatusGroup = new models.ProcessStatusGroup();\r\n }\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class Coordinate {\r\n public x: number;\r\n public y: number;\r\n\r\n constructor(x: number, y: number) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n\r\n public equals(coordinate: Coordinate) {\r\n if (!coordinate) return false;\r\n return this.x === coordinate.x && this.y === coordinate.y;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class GotoSettingsModel {\r\n\r\n public workflowBlock: models.GotoWorkflowBlock;\r\n public potentialToBlocks: models.IWorkflowBlock[];\r\n public toBlock: models.IWorkflowBlock;\r\n\r\n constructor(workflowBlock: models.GotoWorkflowBlock, potentialToBlocks: models.IWorkflowBlock[]) {\r\n this.workflowBlock = workflowBlock;\r\n this.potentialToBlocks = potentialToBlocks;\r\n this.toBlock = workflowBlock.toBlock;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class OutputOrderModel {\r\n\r\n public workflowBlock: IWorkflowBlock;\r\n public isReadonly: boolean;\r\n public dto: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockOutputOrderDto;\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class PendingWorkflowItem {\r\n\r\n public sourceWorkflowBlock: IWorkflowBlock;\r\n public pendingWorkflowBlock: IWorkflowBlock;\r\n\r\n constructor(sourceWorkflowBlock: IWorkflowBlock, pendingWorkflowBlock: IWorkflowBlock) {\r\n this.sourceWorkflowBlock = sourceWorkflowBlock;\r\n this.pendingWorkflowBlock = pendingWorkflowBlock;\r\n }\r\n\r\n public sourceIsMultipleOutputAndPendingIsNotFirstToBlock() : boolean {\r\n if (this.sourceWorkflowBlock.getOutputType() !== Wars.Domain.Model.Codes.Enums.BlockOutputType.Multiple) return false;\r\n return this.pendingWorkflowBlock.id !== this.sourceWorkflowBlock.toBlocks[0].id;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessActionGroup {\r\n\r\n public processActionGroupDto: Wars.Domain.Model.Dtos.Workflow.ProcessActionGroupDto; \r\n public workflowBlocks: IWorkflowBlock[];\r\n\r\n public constructor() {\r\n this.processActionGroupDto = {\r\n id: undefined,\r\n workflowBlocks: []\r\n }\r\n }\r\n\r\n public intitialize(processActionGroup: Wars.Domain.Model.Dtos.Workflow.ProcessActionGroupDto, workflowBlocks: IWorkflowBlock[]) : void {\r\n this.processActionGroupDto = processActionGroup;\r\n this.workflowBlocks = workflowBlocks;\r\n }\r\n\r\n public getInitialBlock(): IWorkflowBlock {\r\n if (!this.workflowBlocks || this.workflowBlocks.length === 0) return undefined;\r\n return Enumerable.from(this.workflowBlocks).singleOrDefault(i => i.isInitialBlock);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class ProcessStatusGroup {\r\n\r\n public processStatusGroupDto: Wars.Domain.Model.Dtos.Workflow.StatusDto; \r\n public workflowBlocks: IWorkflowBlock[];\r\n\r\n public constructor() {\r\n this.processStatusGroupDto = {\r\n id: undefined,\r\n isInitialStatus: false,\r\n statusName: \"\",\r\n statusDescription: \"\",\r\n workflowBlocks: []\r\n }\r\n }\r\n\r\n public intitialize(processStatusGroup: Wars.Domain.Model.Dtos.Workflow.StatusDto, workflowBlocks: IWorkflowBlock[]) : void {\r\n this.processStatusGroupDto = processStatusGroup;\r\n this.workflowBlocks = workflowBlocks;\r\n }\r\n\r\n public getInitialBlock(): IWorkflowBlock {\r\n if (!this.workflowBlocks || this.workflowBlocks.length === 0) return undefined;\r\n return Enumerable.from(this.workflowBlocks).singleOrDefault(i => i.isInitialBlock);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class StateGroup {\r\n\r\n public state: StateWorkflowBlock;\r\n public childWorkflowBlocks: IWorkflowBlock[];\r\n public potentialNextStates: string[]\r\n \r\n constructor(state: StateWorkflowBlock, workflowBlocks: IWorkflowBlock[]) {\r\n this.state = state;\r\n this.potentialNextStates = [];\r\n this.childWorkflowBlocks = this.getAllStateWorkflowBlocksInOrder(state, workflowBlocks);\r\n }\r\n\r\n private getAllByType(blockType: Wars.Domain.Model.Codes.Enums.BlockType) : IWorkflowBlock[] {\r\n if (blockType === undefined) return [];\r\n return Enumerable.from(this.childWorkflowBlocks).where(i => i.type === blockType).toArray();\r\n }\r\n\r\n public getUserActions(): IWorkflowBlock[] {\r\n return this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.UserAction);\r\n }\r\n\r\n public getMessages(): IWorkflowBlock[] {\r\n return this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.Message);\r\n }\r\n\r\n public getConditions(): IWorkflowBlock[] {\r\n return this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.Condition);\r\n }\r\n\r\n public getValidates(): IWorkflowBlock[] {\r\n return this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.Validate);\r\n }\r\n\r\n public getSendEmailActions(): IWorkflowBlock[] {\r\n return this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction);\r\n }\r\n\r\n public getCreatePdfActions(): IWorkflowBlock[] {\r\n return this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction);\r\n }\r\n\r\n public getCopies(): IWorkflowBlock[] {\r\n return this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.Copy);\r\n }\r\n\r\n public getSetDatas(): IWorkflowBlock[] {\r\n return this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.SetData);\r\n }\r\n\r\n public getAssignClaims(): IWorkflowBlock[] {\r\n return this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim);\r\n }\r\n\r\n public getStatusChanges(): string[] {\r\n var statusNames = [];\r\n var statusChanges = this.getAllByType(Wars.Domain.Model.Codes.Enums.BlockType.StatusChange);\r\n for (var index = 0, length = statusChanges.length; index < length; index++) {\r\n if (statusNames.indexOf(statusChanges[index].label) === -1) {\r\n statusNames.push(statusChanges[index].label)\r\n }\r\n }\r\n return statusNames;\r\n }\r\n\r\n private getAllStateWorkflowBlocksInOrder(stateWorkflowBlock: StateWorkflowBlock, workflowBlocks: IWorkflowBlock[]): IWorkflowBlock[] {\r\n \r\n var associatedWorkflowBlocks: IWorkflowBlock[] = [];\r\n\r\n if (!stateWorkflowBlock.toBlockIds || stateWorkflowBlock.toBlockIds.length == 0) return workflowBlocks;\r\n\r\n var currentBlockId = stateWorkflowBlock.toBlockIds[0];\r\n var currentBlock = Enumerable.from(workflowBlocks).single(i => i.id == currentBlockId);\r\n\r\n var processedBlockIds: string[] = [];\r\n var pendingBlockIds: string[] = [];\r\n\r\n for (var i = 1; i < stateWorkflowBlock.toBlockIds.length; i++) {\r\n pendingBlockIds.push(stateWorkflowBlock.toBlockIds[i]);\r\n }\r\n\r\n while (currentBlock !== undefined && currentBlock !== null) {\r\n var nextBlock = undefined;\r\n var nextBlockId = undefined;\r\n\r\n if (processedBlockIds.indexOf(currentBlock.id) === -1) {\r\n if (currentBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.State) {\r\n if (this.potentialNextStates.indexOf(currentBlock.label) === -1) {\r\n this.potentialNextStates.push(currentBlock.label);\r\n }\r\n } else {\r\n processedBlockIds.push(currentBlock.id);\r\n associatedWorkflowBlocks.push(currentBlock);\r\n\r\n // Set Next Block to Process\r\n if (currentBlock.toBlockIds && currentBlock.toBlockIds.length > 0) {\r\n nextBlockId = currentBlock.toBlockIds[0];\r\n nextBlock = Enumerable.from(workflowBlocks).singleOrDefault(i => i.id == nextBlockId);\r\n if (nextBlock) {\r\n for (var i = 1; i < currentBlock.toBlockIds.length; i++) {\r\n if (pendingBlockIds.indexOf(currentBlock.toBlockIds[i]) === -1) {\r\n pendingBlockIds.push(currentBlock.toBlockIds[i])\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (nextBlock === undefined && pendingBlockIds.length > 0) {\r\n nextBlockId = pendingBlockIds.shift();\r\n nextBlock = Enumerable.from(workflowBlocks).singleOrDefault(i => i.id == nextBlockId);\r\n }\r\n\r\n currentBlock = nextBlock;\r\n }\r\n\r\n return associatedWorkflowBlocks;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class StatusConnections {\r\n\r\n public statusCodeId: string;\r\n public toStatusGroupIds: Array;\r\n\r\n constructor(processStatusGroup: models.ProcessStatusGroup) {\r\n this.statusCodeId = processStatusGroup.processStatusGroupDto.id;\r\n this.toStatusGroupIds = StatusConnections.getToStatusGroupIds(processStatusGroup.workflowBlocks);\r\n }\r\n\r\n public static createStatusConnectionObjects(processStatusGroups: models.ProcessStatusGroup[]): StatusConnections[] {\r\n return Enumerable.from(processStatusGroups).select(i => new StatusConnections(i)).toArray();\r\n }\r\n\r\n public static getToStatusGroupIds(workflowBlocks: models.IWorkflowBlock[]) : Array {\r\n return Enumerable.from(workflowBlocks)\r\n .where(i => i.type === Wars.Domain.Model.Codes.Enums.BlockType.StatusChange && (i).toStatusGroupId != undefined)\r\n .select(i => (i).toStatusGroupId)\r\n .toArray();\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class StatusGroup {\r\n\r\n public statusName: string;\r\n public stateGroups: StateGroup[];\r\n \r\n constructor(processStatusGroup: ProcessStatusGroup) {\r\n this.statusName = processStatusGroup.processStatusGroupDto.statusName;\r\n this.stateGroups = [];\r\n\r\n var stateWorkflowBlocks: StateWorkflowBlock[] = this.getAllStatesInOrder(processStatusGroup.workflowBlocks);\r\n for (var i = 0; i < stateWorkflowBlocks.length; i++) {\r\n this.stateGroups.push(new StateGroup(stateWorkflowBlocks[i], processStatusGroup.workflowBlocks));\r\n }\r\n }\r\n\r\n private getAllStatesInOrder(workflowBlocks: IWorkflowBlock[]): StateWorkflowBlock[] {\r\n var initialBlock = Enumerable.from(workflowBlocks).single(i => i.isInitialBlock);\r\n var stateWorkflowBlocks: StateWorkflowBlock[] = [];\r\n\r\n var currentBlock = initialBlock;\r\n var processedBlockIds: string[] = [];\r\n var pendingBlockIds: string[] = [];\r\n\r\n while (currentBlock !== undefined && currentBlock != null) {\r\n var nextBlock = undefined;\r\n var nextBlockId = undefined;\r\n\r\n if (processedBlockIds.indexOf(currentBlock.id) === -1) {\r\n processedBlockIds.push(currentBlock.id);\r\n if (currentBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.State) {\r\n stateWorkflowBlocks.push(currentBlock);\r\n }\r\n\r\n\r\n // Set Next Block to Process\r\n if (currentBlock.toBlockIds && currentBlock.toBlockIds.length > 0) {\r\n nextBlockId = currentBlock.toBlockIds[0];\r\n nextBlock = Enumerable.from(workflowBlocks).singleOrDefault(i => i.id == nextBlockId);\r\n if (nextBlock) {\r\n for (var i = 1; i < currentBlock.toBlockIds.length; i++) {\r\n if (pendingBlockIds.indexOf(currentBlock.toBlockIds[i]) === -1) {\r\n pendingBlockIds.push(currentBlock.toBlockIds[i])\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (nextBlock === undefined && pendingBlockIds.length > 0) {\r\n nextBlockId = pendingBlockIds.shift();\r\n nextBlock = Enumerable.from(workflowBlocks).singleOrDefault(i => i.id == nextBlockId);\r\n }\r\n\r\n currentBlock = nextBlock;\r\n }\r\n return stateWorkflowBlocks;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class WorkflowBlockConnections {\r\n\r\n public connectionDto: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockAddContextDto;\r\n public fromWorkflowBlocks: IWorkflowBlock[];\r\n\r\n constructor(workflowBlock: IWorkflowBlock, blockLocations: WorkflowBlockLocation[]) {\r\n this.connectionDto = {\r\n fromBlockIds: [],\r\n yesBlockIds: [],\r\n noBlockIds: []\r\n };\r\n\r\n this.fromWorkflowBlocks = [];\r\n\r\n var allBlocks = Enumerable.from(blockLocations).select(i => i.workflowBlock).toArray();\r\n for (var i = 0; i < allBlocks.length; i++) {\r\n var currentBlock = allBlocks[i];\r\n\r\n var outputType = currentBlock.getOutputType();\r\n switch (outputType) {\r\n case Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo:\r\n var yesNo = currentBlock;\r\n if (yesNo.yesBlock && yesNo.yesBlock.id === workflowBlock.id) {\r\n this.connectionDto.yesBlockIds.push(currentBlock.id);\r\n this.fromWorkflowBlocks.push(currentBlock);\r\n }\r\n if (yesNo.noBlock && yesNo.noBlock.id === workflowBlock.id) {\r\n this.connectionDto.noBlockIds.push(currentBlock.id);\r\n this.fromWorkflowBlocks.push(currentBlock);\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockOutputType.Single:\r\n case Wars.Domain.Model.Codes.Enums.BlockOutputType.Multiple:\r\n var isAFromBlock = Enumerable.from(currentBlock.toBlocks).any(i => i.id === workflowBlock.id);\r\n if (isAFromBlock) {\r\n this.connectionDto.fromBlockIds.push(currentBlock.id);\r\n this.fromWorkflowBlocks.push(currentBlock);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class WorkflowBlockLocation {\r\n\r\n public workflowBlock: IWorkflowBlock;\r\n public coordinate: Coordinate;\r\n\r\n constructor(workflowBlock: IWorkflowBlock, coordinate: Coordinate) {\r\n this.workflowBlock = workflowBlock;\r\n this.coordinate = coordinate;\r\n }\r\n }\r\n}\r\n","/// \r\nmodule warsApp.models {\r\n export class WorkflowDrawingInstance {\r\n private logType: string = \"WorkflowDrawingInstance\";\r\n\r\n public paper: Snap.Paper;\r\n public lines: Snap.Element;\r\n public feedbackLines: Snap.Element;\r\n\r\n public blockLocations: Array;\r\n public lineLocations: Array;\r\n public inBetweenDropZones: Array;\r\n public settings: models.WorkflowDrawingSettings;\r\n public events: models.WorkflowEvents;\r\n public svgElementId: string;\r\n public isReadonly: boolean;\r\n\r\n private processConfigId: string;\r\n private processActionId: string;\r\n private service: services.WorkflowService;\r\n private drawingService: services.WorkflowDrawingService;\r\n private modalService: any;\r\n private statusFlowChangedCallback: (workflowBlocks: IWorkflowBlock[]) => void;\r\n private workflowUpdatedCallback: () => void;\r\n\r\n private typesComplete = [\r\n Wars.Domain.Model.Codes.Enums.BlockType.StatusChange,\r\n Wars.Domain.Model.Codes.Enums.BlockType.UserAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Message,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Goto,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Copy,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SetData,\r\n Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.State,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Condition,\r\n Wars.Domain.Model.Codes.Enums.BlockType.Validate,\r\n Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.BookResource,\r\n Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.SystemAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.StartProcessAction,\r\n Wars.Domain.Model.Codes.Enums.BlockType.ChangeState,\r\n Wars.Domain.Model.Codes.Enums.BlockType.GotoState\r\n ];\r\n \r\n\r\n constructor(\r\n svgElementId: string,\r\n service: services.WorkflowService,\r\n drawingService: services.WorkflowDrawingService,\r\n settings: models.WorkflowDrawingSettings,\r\n pageScope: ng.IScope,\r\n rootScope: angular.IRootScopeService,\r\n statusFlowChangedCallback: (workflowBlocks: IWorkflowBlock[]) => void,\r\n workflowUpdatedCallback: () => void,\r\n modalService: any)\r\n {\r\n this.service = service;\r\n this.drawingService = drawingService;\r\n this.statusFlowChangedCallback = statusFlowChangedCallback;\r\n this.workflowUpdatedCallback = workflowUpdatedCallback;\r\n this.modalService = modalService;\r\n this.svgElementId = svgElementId;\r\n this.paper = Snap('#' + svgElementId);\r\n if (this.paper === undefined || this.paper === null) {\r\n alert(\"What what!\");\r\n }\r\n this.settings = settings;\r\n this.blockLocations = [];\r\n this.events = new models.WorkflowEvents(this, pageScope, this.drawingService);\r\n\r\n var cb = rootScope.$on(\"re-draw-workflow\", (event) => {\r\n this.reDraw();\r\n });\r\n //destroy the listener on scope destroy to avoid memory leak\r\n pageScope.$on(\"$destroy\",\r\n () => {\r\n cb();\r\n });\r\n }\r\n\r\n public initializeData(processConfigId: string, isReadonly: boolean, processActionId?: string) {\r\n this.processConfigId = processConfigId;\r\n this.processActionId = processActionId;\r\n this.isReadonly = isReadonly;\r\n }\r\n\r\n public drawModel(initialBlock: models.IWorkflowBlock): models.Coordinate {\r\n this.removeAllDropZones();\r\n this.removeAllGotoBlocks();\r\n\r\n this.clear();\r\n this.paper.attr({ opacity: 0 });\r\n\r\n // All lines will be appended to this group so that they will appear first in the DOM and therefore be below the shapes and not interfere with the hover targets\r\n this.lines = this.paper.group();\r\n // Feedback lines need to appear on top of the lines but underneath the shapes.\r\n this.feedbackLines = this.paper.group();\r\n\r\n if (!this.isReadonly) this.addDropZones(initialBlock);\r\n return this.drawingService.drawModel(this, initialBlock);\r\n }\r\n\r\n public configureWorkflowBlock(workflowBlock: models.IWorkflowBlock): void {\r\n\r\n switch (workflowBlock.type) {\r\n case Wars.Domain.Model.Codes.Enums.BlockType.StatusChange:\r\n var statusChangeBlock = workflowBlock;\r\n this.service.getStatusChangeDto(statusChangeBlock.statusChangeId)\r\n .then((dto) => {\r\n statusChangeBlock.populateDto(dto);\r\n this.showStatusChangeModal(statusChangeBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.UserAction:\r\n var userActionBlock = workflowBlock;\r\n this.service.getUserActionDto(userActionBlock.id)\r\n .then((dto) => {\r\n userActionBlock.populateDto(dto);\r\n this.showUserActionModal(userActionBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Message:\r\n var messageWorkflowBlock = workflowBlock;\r\n this.service.getMessageDto(messageWorkflowBlock.id)\r\n .then((dto) => {\r\n messageWorkflowBlock.populateDto(dto);\r\n this.showMessageModal(messageWorkflowBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Goto:\r\n var gotoWorkflowBlock = workflowBlock;\r\n var validToTypes = WorkflowBlockManager.getValidToBlockTypes(Wars.Domain.Model.Codes.Enums.BlockType.Goto);\r\n var validToBlocks = Enumerable.from(this.blockLocations)\r\n .select(i => i.workflowBlock)\r\n .where(i => validToTypes.indexOf(i.type) !== -1)\r\n .toArray();\r\n this.showGotoModal(gotoWorkflowBlock, validToBlocks);\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction:\r\n var createPdfWorkflowBlock = workflowBlock;\r\n this.service.getCreatePdfDto(createPdfWorkflowBlock.id)\r\n .then((dto) => {\r\n createPdfWorkflowBlock.populateDto(dto);\r\n this.showCreatePdfModal(createPdfWorkflowBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Copy:\r\n var copyWorkflowBlock = workflowBlock;\r\n this.service.getCopyDto(copyWorkflowBlock.id)\r\n .then((dto) => {\r\n copyWorkflowBlock.populateDto(dto);\r\n this.showCopyModal(copyWorkflowBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SetData:\r\n var setDataWorkflowBlock = workflowBlock;\r\n this.service.getSetDataDto(setDataWorkflowBlock.id)\r\n .then((dto) => {\r\n setDataWorkflowBlock.populateDto(dto);\r\n this.showSetDataModal(setDataWorkflowBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim:\r\n var assignClaimWorkflowBlock = workflowBlock;\r\n this.service.getAssignClaimDto(assignClaimWorkflowBlock.id)\r\n .then((dto) => {\r\n assignClaimWorkflowBlock.populateDto(dto);\r\n this.showAssignClaimModal(assignClaimWorkflowBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction:\r\n var sendEmailWorkflowBlock = workflowBlock;\r\n this.service.getSendEmailDto(sendEmailWorkflowBlock.id)\r\n .then((dto) => {\r\n sendEmailWorkflowBlock.populateDto(dto);\r\n this.showSendEmailModal(sendEmailWorkflowBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.State:\r\n var stateWorkflowBlock = workflowBlock;\r\n this.service.getStateDto(stateWorkflowBlock.id)\r\n .then((dto) => {\r\n stateWorkflowBlock.populateDto(dto);\r\n this.showStateModal(stateWorkflowBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Condition:\r\n var conditionWorkflowBlock = workflowBlock;\r\n\r\n this.service.getConditionDto(conditionWorkflowBlock.id)\r\n .then((dto) => {\r\n conditionWorkflowBlock.populateDto(dto);\r\n this.showConditionModal(conditionWorkflowBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Validate:\r\n var validateBlock = workflowBlock;\r\n this.service.getValidateDto(validateBlock.id)\r\n .then((dto) => {\r\n validateBlock.populateDto(dto);\r\n this.showValidateModal(validateBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction:\r\n var calculateBlock = workflowBlock;\r\n this.service.getCalculateDto(calculateBlock.id)\r\n .then((dto) => {\r\n calculateBlock.populateDto(dto);\r\n this.showCalculateModal(calculateBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.BookResource:\r\n var bookResourceBlock = workflowBlock;\r\n this.service.getBookResourceDto(bookResourceBlock.id)\r\n .then((dto) => {\r\n bookResourceBlock.populateDto(dto);\r\n this.showBookResourceModal(bookResourceBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource:\r\n var removeResourceBlock = workflowBlock;\r\n this.service.getRemoveResourceDto(removeResourceBlock.id)\r\n .then((dto) => {\r\n removeResourceBlock.populateDto(dto);\r\n this.showRemoveResourceModal(removeResourceBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction:\r\n var returnFromProcessActionBlock = workflowBlock;\r\n this.service.getReturnFromProcessActionDto(returnFromProcessActionBlock.id)\r\n .then((dto) => {\r\n returnFromProcessActionBlock.populateDto(dto);\r\n this.showReturnFromProcessActionModal(returnFromProcessActionBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction:\r\n var processActionBlock = workflowBlock;\r\n this.service.getProcessActionDto(processActionBlock.id)\r\n .then((dto) => {\r\n processActionBlock.populateDto(dto);\r\n this.showProcessActionModal(processActionBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SystemAction:\r\n var systemActionBlock = workflowBlock;\r\n this.service.getSystemActionDto(systemActionBlock.id)\r\n .then((dto) => {\r\n systemActionBlock.populateDto(dto);\r\n this.showSystemActionModal(systemActionBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ChangeState:\r\n var changeStateBlock = workflowBlock;\r\n this.service.getChangeStateDto(changeStateBlock.id)\r\n .then((dto) => {\r\n changeStateBlock.populateDto(dto);\r\n this.showChangeStateActionModal(changeStateBlock);\r\n });\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.GotoState:\r\n var gotoStateBlock = workflowBlock;\r\n this.service.getGotoStateDto(gotoStateBlock.id)\r\n .then((dto) => {\r\n gotoStateBlock.populateDto(dto);\r\n this.showGotoStateActionModal(gotoStateBlock);\r\n });\r\n break;\r\n\r\n default:\r\n alert(\"In-Work\");\r\n }\r\n }\r\n\r\n public removeWorkflowBlockFromWorkflow(workflowBlock: models.IWorkflowBlock): void {\r\n var fromBlock = workflowBlock.getFromWorkflowBlocks()[0];\r\n var gotoBlockToBlockId = undefined;\r\n var isGotoBlock = workflowBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.Goto;\r\n if (isGotoBlock) {\r\n var gotoBlock = workflowBlock;\r\n if (gotoBlock.toBlock) gotoBlockToBlockId = gotoBlock.toBlock.id;\r\n }\r\n this.service.deleteWorkflowBlock(workflowBlock.id, fromBlock.id, isGotoBlock, gotoBlockToBlockId).then(\r\n () => this.removeWorkflowBlockFromDrawing(workflowBlock),\r\n () => alert(\"Delete was not successful\"));\r\n }\r\n\r\n public reDraw(): void {\r\n if (this.workflowUpdatedCallback) this.workflowUpdatedCallback();\r\n this.drawModel(this.blockLocations[0].workflowBlock);\r\n\r\n this.service.addOrRemoveFeedbackArrowLines();\r\n }\r\n\r\n public getWorkFlowBlockById(id: string): models.IWorkflowBlock {\r\n if (!id) return undefined;\r\n return Enumerable.from(this.blockLocations).singleOrDefault(i => i.workflowBlock.id === id).workflowBlock;\r\n }\r\n\r\n public droppedNewShapeOnDropZone(type: number, dropZoneWorkflowBlock: models.IWorkflowBlock): void {\r\n var self = this;\r\n var validChoice = this.canShapeBeDropped(type, dropZoneWorkflowBlock);\r\n if (!validChoice) {\r\n this.unHighlightAllDropZones();\r\n return;\r\n }\r\n\r\n if (dropZoneWorkflowBlock.type !== Wars.Domain.Model.Codes.Enums.BlockType.DropZone) {\r\n return;\r\n }\r\n var connections = new models.WorkflowBlockConnections(dropZoneWorkflowBlock, this.blockLocations);\r\n\r\n if (type === Wars.Domain.Model.Codes.Enums.BlockType.Goto) {\r\n var newId = models.WorkflowBlockManager.initialGotoId;\r\n\r\n var otherGotos = Enumerable.from(this.blockLocations)\r\n .where(i => i.workflowBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.Goto)\r\n .toArray();\r\n\r\n if (otherGotos.length > 0) {\r\n var currentMaxId = Enumerable.from(otherGotos)\r\n .select(i => i.workflowBlock.id)\r\n .max();\r\n\r\n newId = currentMaxId + 1;\r\n }\r\n\r\n var newGotoBlock = new models.GotoWorkflowBlock(newId.toString(), \"Go To\");\r\n this.addNewWorkflowBlockCallback(newGotoBlock, dropZoneWorkflowBlock);\r\n } else {\r\n this.service.createNewWorkflowBlock(\r\n type,\r\n this.blockLocations[0].workflowBlock.statusCodeId,\r\n this.blockLocations[0].workflowBlock.processActionId,\r\n connections.connectionDto).then(\r\n (newWorkflowBlock) => this.addNewWorkflowBlockCallback(newWorkflowBlock, dropZoneWorkflowBlock),\r\n () => {\r\n this.unHighlightAllDropZones();\r\n alert(\"Could not add this workflow block.\");\r\n });\r\n }\r\n }\r\n\r\n public droppedNewShapeOnInBetweenDropZone(type: number, fromWorkflowBlock: models.IWorkflowBlock, toWorkflowBlock: models.IWorkflowBlock): void {\r\n var validChoice = this.canShapeBeDroppedInBetween(type, fromWorkflowBlock, toWorkflowBlock);\r\n if (!validChoice) return;\r\n\r\n var addContext: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockAddInBetweenContextDto = {\r\n blockType: type,\r\n fromBlockId: fromWorkflowBlock.id,\r\n toBlockId: toWorkflowBlock.id,\r\n gotoToBlockId: undefined,\r\n statusCodeId: this.blockLocations[0].workflowBlock.statusCodeId,\r\n processActionId: this.blockLocations[0].workflowBlock.processActionId,\r\n outputIndex: 0\r\n };\r\n\r\n var newObjectForTest = WorkflowBlockManager.createWorkflowBlock(type, \"-13\", undefined);\r\n\r\n if (newObjectForTest.getOutputType() === Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo) {\r\n this.showYesNoOutputSelectionModal(addContext);\r\n }\r\n else \r\n {\r\n this.saveInBetweenWorkflowBlock(addContext);\r\n }\r\n }\r\n\r\n private saveInBetweenWorkflowBlock(addContext: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockAddInBetweenContextDto) {\r\n var toBlock = Enumerable.from(this.blockLocations)\r\n .select(i => i.workflowBlock)\r\n .singleOrDefault(i => i.id == addContext.toBlockId);\r\n\r\n if (toBlock && toBlock.type == Wars.Domain.Model.Codes.Enums.BlockType.Goto) {\r\n var newToBlock = toBlock.toBlocks[0];\r\n if (newToBlock) {\r\n addContext.gotoToBlockId = addContext.toBlockId;\r\n addContext.toBlockId = newToBlock.id;\r\n }\r\n }\r\n\r\n this.service.createNewWorkflowBlockInBetween(addContext).then(\r\n (newWorkflowBlock) => this.addNewWorkflowBlockInBetweenCallback(newWorkflowBlock, addContext),\r\n () => {\r\n this.unHighlightAllInBetweenDropZones();\r\n alert(\"Could not add this workflow block.\");\r\n });\r\n }\r\n\r\n public draggingNewShape(selectedWorkflowShape: number, hoverContext: models.WorkflowHoverContext) {\r\n\r\n this.unHighlightAllDropZones();\r\n this.unHighlightAllInBetweenDropZones();\r\n\r\n if (hoverContext.workflowBlock) {\r\n if (hoverContext.workflowBlock && hoverContext.workflowBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.DropZone) {\r\n var dropZone = (hoverContext.workflowBlock);\r\n var validChoice = this.canShapeBeDropped(selectedWorkflowShape, dropZone);\r\n\r\n if (validChoice)\r\n dropZone.highlightValidOption();\r\n else\r\n dropZone.highlightInvalidOption();\r\n }\r\n }\r\n else if (hoverContext.inBetweenDropZoneHovered) {\r\n var validChoice = this.canShapeBeDroppedInBetween(selectedWorkflowShape, hoverContext.inBetweenFromWorkflowBlock, hoverContext.inBetweenToWorkflowBlock);\r\n if (validChoice) this.inBetweenDropZones[hoverContext.inBetweenIndex].attr({ class: \"in-between-drop-zone hover-valid-option\", opacity: 1 });\r\n else this.inBetweenDropZones[hoverContext.inBetweenIndex].attr({ class: \"in-between-drop-zone hover-invalid-option\", opacity: 1 });\r\n }\r\n }\r\n\r\n drawFeedbackArrow(fromWorkflowBlock: models.IWorkflowBlock, toWorkflowBlock: models.IWorkflowBlock, toggleEnabled: boolean): Snap.Element {\r\n return this.drawingService.drawFeedbackArrow(this, fromWorkflowBlock, toWorkflowBlock, toggleEnabled);\r\n }\r\n\r\n // Private Helper Methods\r\n // ===================================================================================================================\r\n private removeWorkflowBlockFromDrawing(workflowBlock: models.IWorkflowBlock): void {\r\n //{ from } ----> [block to delete] ----> { to }\r\n //{ from } ----------------------------> { to }\r\n services.WarsLogger.logInfo(\"Attempting to delete a Workflow block of type: \" + workflowBlock.type, this.logType);\r\n\r\n var i;\r\n var fromBlock = workflowBlock.getFromWorkflowBlocks()[0];\r\n\r\n if (workflowBlock.type == Wars.Domain.Model.Codes.Enums.BlockType.Goto) {\r\n for (i = 0; i < fromBlock.toBlocks.length; i++) {\r\n if (fromBlock.toBlocks[i].id === workflowBlock.id) {\r\n fromBlock.toBlocks.splice(i, 1);\r\n }\r\n }\r\n } else {\r\n\r\n var allTos = Enumerable.from(workflowBlock.toBlocks).where(i => i.type !== Wars.Domain.Model.Codes.Enums.BlockType.DropZone).toArray();\r\n\r\n for (i = 0; i < fromBlock.toBlocks.length; i++) {\r\n if (fromBlock.toBlocks[i].id === workflowBlock.id) {\r\n if (fromBlock.getOutputType() === Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo) {\r\n if (allTos.length > 1) throw 'Not supposed to happen';\r\n fromBlock.toBlocks[i] = allTos[0];\r\n } else {\r\n fromBlock.toBlocks.splice(i, 1);\r\n var insertIndex = i;\r\n for (var toIndex = 0; toIndex < allTos.length; toIndex++) {\r\n var currentToBlock = allTos[toIndex];\r\n fromBlock.toBlocks[insertIndex++] = currentToBlock;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.reDraw();\r\n\r\n if (workflowBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.StatusChange) {\r\n if (this.statusFlowChangedCallback) {\r\n var workflowBlocks = Enumerable.from(this.blockLocations).select(i => i.workflowBlock).toArray();\r\n this.statusFlowChangedCallback(workflowBlocks);\r\n }\r\n }\r\n }\r\n\r\n private addNewWorkflowBlockCallback(newWorkflowBlock: models.IWorkflowBlock, dropZoneWorkflowBlock: models.IWorkflowBlock): void {\r\n newWorkflowBlock.setDrawingInstance(this);\r\n this.replaceDropZoneWithNewShape(newWorkflowBlock, dropZoneWorkflowBlock);\r\n this.reDraw();\r\n \r\n if (this.typesComplete.indexOf(newWorkflowBlock.type) !== -1) {\r\n this.configureWorkflowBlock(newWorkflowBlock);\r\n }\r\n }\r\n\r\n private replaceDropZoneWithNewShape(newWorkflowBlock: models.IWorkflowBlock, dropZoneWorkflowBlock: models.IWorkflowBlock): void {\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var currentWorkflowBlock = this.blockLocations[i].workflowBlock;\r\n\r\n for (var x = 0; x < currentWorkflowBlock.toBlocks.length; x++) {\r\n if (currentWorkflowBlock.toBlocks[x] && currentWorkflowBlock.toBlocks[x].id === dropZoneWorkflowBlock.id) {\r\n currentWorkflowBlock.toBlocks[x] = newWorkflowBlock;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private addNewWorkflowBlockInBetweenCallback(newWorkflowBlock: models.IWorkflowBlock, addContext: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockAddInBetweenContextDto): void {\r\n newWorkflowBlock.setDrawingInstance(this);\r\n var toBlockId = addContext.gotoToBlockId != undefined ? addContext.gotoToBlockId : addContext.toBlockId;\r\n this.insertNewShapeInBetweenWorkflowBlocks(newWorkflowBlock, addContext.fromBlockId, toBlockId, addContext.outputIndex);\r\n this.reDraw();\r\n\r\n if (this.typesComplete.indexOf(newWorkflowBlock.type) !== -1) {\r\n this.configureWorkflowBlock(newWorkflowBlock);\r\n }\r\n }\r\n\r\n private insertNewShapeInBetweenWorkflowBlocks(newWorkflowBlock: models.IWorkflowBlock, fromWorkflowBlockId: string, toWorkflowBlockId: string, outputIndex: number): void {\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var currentWorkflowBlock = this.blockLocations[i].workflowBlock;\r\n\r\n if (currentWorkflowBlock.id == fromWorkflowBlockId) {\r\n for (var x = 0; x < currentWorkflowBlock.toBlocks.length; x++) {\r\n if (currentWorkflowBlock.toBlocks[x] && currentWorkflowBlock.toBlocks[x].id == toWorkflowBlockId) {\r\n currentWorkflowBlock.toBlocks[x] = newWorkflowBlock;\r\n }\r\n }\r\n }\r\n }\r\n var blockLocationOfToBlock = Enumerable.from(this.blockLocations).single(i => i.workflowBlock.id == toWorkflowBlockId);\r\n newWorkflowBlock.toBlocks[outputIndex] = blockLocationOfToBlock.workflowBlock;\r\n\r\n // Add into block locations too without a coordinate. The drawing algorithm will redraw and update the block locations anyway. But this is \r\n // required becase some other methods depend on the workflow blocks being in the block locations.\r\n this.blockLocations.push(new models.WorkflowBlockLocation(newWorkflowBlock, new Coordinate(0, 0)));\r\n }\r\n\r\n private removeAllDropZones(): void {\r\n if (!this.blockLocations || this.blockLocations.length === 0) return;\r\n\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var currentWorkflowBlock = this.blockLocations[i].workflowBlock;\r\n if (currentWorkflowBlock.type == Wars.Domain.Model.Codes.Enums.BlockType.DropZone) {\r\n this.blockLocations.splice(i, 1);\r\n i--;\r\n continue;\r\n }\r\n\r\n for (var x = 0; x < currentWorkflowBlock.toBlocks.length; x++) {\r\n if (currentWorkflowBlock.toBlocks[x] && currentWorkflowBlock.toBlocks[x].type == Wars.Domain.Model.Codes.Enums.BlockType.DropZone) {\r\n if (currentWorkflowBlock.getOutputType() == Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo) {\r\n currentWorkflowBlock.toBlocks[x] = undefined;\r\n } else {\r\n currentWorkflowBlock.toBlocks.splice(x, 1);\r\n }\r\n x--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private removeAllGotoBlocks(): void {\r\n if (!this.blockLocations || this.blockLocations.length === 0) return;\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var currentWorkflowBlock = this.blockLocations[i].workflowBlock;\r\n if (currentWorkflowBlock.type == Wars.Domain.Model.Codes.Enums.BlockType.Goto) {\r\n var gotoBlock = currentWorkflowBlock;\r\n var fromBlock = gotoBlock.getFromWorkflowBlocks()[0];\r\n if (fromBlock) {\r\n for (var x = 0; x < fromBlock.toBlocks.length; x++) {\r\n if (fromBlock.toBlocks[x] && fromBlock.toBlocks[x].id == gotoBlock.id) {\r\n fromBlock.toBlocks[x] = gotoBlock.toBlock;\r\n }\r\n }\r\n }\r\n this.blockLocations.splice(i, 1);\r\n i--;\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n private addDropZones(initialBlock: models.IWorkflowBlock): void {\r\n var workflowBlocksToAnalyze: Array = [initialBlock];\r\n var workflowBlockIdsAlreadyAnalyzed: Array = [];\r\n var currentDropZoneId = models.WorkflowBlockManager.intialDropZoneId;\r\n \r\n while (workflowBlocksToAnalyze.length > 0) {\r\n var currentBlock = workflowBlocksToAnalyze.shift();\r\n\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(currentBlock.id) !== -1) {\r\n continue;\r\n }\r\n\r\n workflowBlockIdsAlreadyAnalyzed.push(currentBlock.id);\r\n\r\n if (currentBlock.getOutputType() == Wars.Domain.Model.Codes.Enums.BlockOutputType.None) {\r\n continue;\r\n } else if (currentBlock.getOutputType() == Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo) {\r\n var yesNoBlock = currentBlock;\r\n if (!yesNoBlock.yesBlock) {\r\n yesNoBlock.yesBlock = models.WorkflowBlockManager.createDropZone(((currentDropZoneId++).toString()).toString(), true, this);\r\n } else {\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(yesNoBlock.yesBlock.id) === -1) {\r\n workflowBlocksToAnalyze.push(yesNoBlock.yesBlock);\r\n }\r\n }\r\n\r\n if (!yesNoBlock.noBlock) {\r\n yesNoBlock.noBlock = models.WorkflowBlockManager.createDropZone(((currentDropZoneId++).toString()).toString(), true, this);\r\n } else {\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(yesNoBlock.noBlock.id) === -1) {\r\n workflowBlocksToAnalyze.push(yesNoBlock.noBlock);\r\n }\r\n }\r\n } else if (currentBlock.getOutputType() == Wars.Domain.Model.Codes.Enums.BlockOutputType.Multiple) {\r\n for (var i = 0; i < currentBlock.toBlocks.length; i++) {\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(currentBlock.toBlocks[i].id) === -1) {\r\n workflowBlocksToAnalyze.push(currentBlock.toBlocks[i]);\r\n }\r\n }\r\n\r\n var required = currentBlock.toBlocks.length == 0;\r\n currentBlock.toBlocks.push(models.WorkflowBlockManager.createDropZone((currentDropZoneId++).toString(), required, this));\r\n\r\n var onlyToBlockIsDropZone = currentBlock.toBlocks.length == 1 && currentBlock.toBlocks[0].type == Wars.Domain.Model.Codes.Enums.BlockType.DropZone;\r\n if (required && !onlyToBlockIsDropZone) {\r\n // Always adding an optional drop zone b/c states can have infinite to blocks\r\n currentBlock.toBlocks.push(models.WorkflowBlockManager.createDropZone((currentDropZoneId++).toString(), false, this));\r\n }\r\n } else if (currentBlock.getOutputType() == Wars.Domain.Model.Codes.Enums.BlockOutputType.Single) {\r\n if (currentBlock.type == Wars.Domain.Model.Codes.Enums.BlockType.Goto) continue;\r\n var singleOutputBlock = currentBlock;\r\n\r\n if (!singleOutputBlock.toBlock) {\r\n singleOutputBlock.toBlock = models.WorkflowBlockManager.createDropZone((currentDropZoneId++).toString(), true, this);\r\n } else {\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(singleOutputBlock.toBlock.id) === -1) {\r\n workflowBlocksToAnalyze.push(singleOutputBlock.toBlock);\r\n }\r\n }\r\n } else {\r\n throw 'Unknown Output Type: ' + currentBlock.getOutputType();\r\n }\r\n }\r\n }\r\n\r\n private canShapeBeDropped(type: number, dropZone: models.IWorkflowBlock): boolean {\r\n if (this.isReadonly) return false;\r\n var fromWorkflowBlocks = dropZone.getFromWorkflowBlocks();\r\n var invalidChoice = Enumerable.from(fromWorkflowBlocks).any(i => !i.canConnectToWorkflowBlockType(type));\r\n return !invalidChoice;\r\n }\r\n\r\n private canShapeBeDroppedInBetween(type: number, fromWorkflowBlock: models.IWorkflowBlock, toWorkflowBlock: models.IWorkflowBlock) : boolean {\r\n if (this.isReadonly) return false;\r\n var newObjectForTest = WorkflowBlockManager.createWorkflowBlock(type, \"-13\", undefined);\r\n var fromValid = fromWorkflowBlock.canConnectToWorkflowBlockType(type);\r\n var toValid = newObjectForTest.canConnectToWorkflowBlockType(toWorkflowBlock.type);\r\n return fromValid && toValid;\r\n }\r\n\r\n private unHighlightAllDropZones() {\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var block = this.blockLocations[i].workflowBlock;\r\n if (block.type == Wars.Domain.Model.Codes.Enums.BlockType.DropZone) {\r\n (block).unHighlight();\r\n }\r\n }\r\n }\r\n\r\n private unHighlightAllInBetweenDropZones() {\r\n if (this.inBetweenDropZones) {\r\n for (let i = 0; i < this.inBetweenDropZones.length; i++) {\r\n this.inBetweenDropZones[i].attr({ class: \"in-between-drop-zone\", opacity: 0 });\r\n }\r\n }\r\n }\r\n\r\n private clear() {\r\n this.paper.clear();\r\n }\r\n\r\n private showStatusChangeModal(workflowBlock: models.StatusChangeWorkflowBlock) : void { \r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.StatusChangeDto = angular.copy(workflowBlock.statusChangeDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_statusChangeSettingsModal.html\",\r\n controller: \"statusChangeSettingsModalController\",\r\n inputs: {\r\n processConfigId: this.processConfigId,\r\n workflowBlock: workflowBlock,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateStatusChange(workflowBlock).then(\r\n (workflowBlockDto: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockDto) => {\r\n workflowBlock.label = workflowBlockDto.name;\r\n workflowBlock.toStatusGroupId = workflowBlockDto.toStatusGroupId;\r\n self.reDraw();\r\n var blocks = Enumerable.from(self.blockLocations)\r\n .select(i => i.workflowBlock)\r\n .where(i => i.type !== Wars.Domain.Model.Codes.Enums.BlockType.DropZone)\r\n .toArray();\r\n if (self.statusFlowChangedCallback != undefined) {\r\n self.statusFlowChangedCallback(blocks);\r\n }\r\n },\r\n () => workflowBlock.statusChangeDto = revertDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showUserActionModal(workflowBlock: models.UserActionWorkflowBlock): void { \r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.UserActionDto = angular.copy(workflowBlock.userActionDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_userActionSettingsModal.html\",\r\n controller: \"userActionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n workflowBlock.userActionDto.documentConfigurationId = workflowBlock.userActionDto.documentConfiguration\r\n ? workflowBlock.userActionDto.documentConfiguration.id\r\n : undefined;\r\n self.service.updateUserAction(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.userActionDto = revertDto);\r\n } else {\r\n workflowBlock.userActionDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showMessageModal(workflowBlock: models.MessageWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.MessageDto = angular.copy(workflowBlock.messageDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_messageSettingsModal.html\",\r\n controller: \"messageSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateMessage(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.messageDto = revertDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showGotoModal(workflowBlock: models.GotoWorkflowBlock, validToBlocks: models.IWorkflowBlock[]): void {\r\n var self: WorkflowDrawingInstance = this;\r\n \r\n var blockBeforeGoto: models.IWorkflowBlock = workflowBlock.getFromWorkflowBlocks()[0];\r\n if (!blockBeforeGoto) throw 'Could not find the block before the goto block';\r\n\r\n var filteredValidToBlocks: models.IWorkflowBlock[];\r\n\r\n if (blockBeforeGoto.type === Wars.Domain.Model.Codes.Enums.BlockType.State) {\r\n filteredValidToBlocks = Enumerable.from(validToBlocks)\r\n .where(i => i.type === Wars.Domain.Model.Codes.Enums.BlockType.UserAction || i.type === Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction)\r\n .toArray();\r\n } else {\r\n filteredValidToBlocks = Enumerable.from(validToBlocks)\r\n .where(i => i.type !== Wars.Domain.Model.Codes.Enums.BlockType.UserAction)\r\n .toArray();\r\n }\r\n\r\n var multiOutputIndex;\r\n for (multiOutputIndex = 0; multiOutputIndex < blockBeforeGoto.toBlocks.length; multiOutputIndex++)\r\n {\r\n if (blockBeforeGoto.toBlocks && blockBeforeGoto.toBlocks.length > multiOutputIndex && blockBeforeGoto.toBlocks[multiOutputIndex].id === workflowBlock.id) break;\r\n }\r\n\r\n var model = new models.GotoSettingsModel(workflowBlock, filteredValidToBlocks);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_gotoSettingsModal.html\",\r\n controller: \"gotoSettingsModalController\",\r\n inputs: {\r\n model: model,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n model.workflowBlock.toBlock = model.toBlock;\r\n\r\n var isTo = false;\r\n var isYes = false;\r\n var isNo = false;\r\n\r\n if (blockBeforeGoto.getOutputType() === Wars.Domain.Model.Codes.Enums.BlockOutputType.Single) {\r\n isTo = true;\r\n }\r\n else if (blockBeforeGoto.getOutputType() === Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo) {\r\n var yesNoBeforeBlock = blockBeforeGoto;\r\n isYes = yesNoBeforeBlock.yesBlock && yesNoBeforeBlock.yesBlock.id === workflowBlock.id;\r\n isNo = yesNoBeforeBlock.noBlock && yesNoBeforeBlock.noBlock.id === workflowBlock.id;\r\n } \r\n \r\n self.service.updateGotoBlock(blockBeforeGoto, model.toBlock, isTo, isYes, isNo, multiOutputIndex).then(\r\n () => {\r\n self.reDraw();\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showCreatePdfModal(workflowBlock: models.CreatePdfWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.CreatePdfDto = angular.copy(workflowBlock.createPdfDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_createPdfSettingsModal.html\",\r\n controller: \"createPdfSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateCreatePdf(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.createPdfDto = revertDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showCopyModal(workflowBlock: models.CopyWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.CopyDto = angular.copy(workflowBlock.copyDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_copySettingsModal.html\",\r\n controller: \"copySettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateCopy(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.copyDto = revertDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showSetDataModal(workflowBlock: models.SetDataWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.SetDataDto = angular.copy(workflowBlock.setDataDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_setDataSettingsModal.html\",\r\n controller: \"setDataSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateSetData(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.setDataDto = revertDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showAssignClaimModal(workflowBlock: models.AssignClaimWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.AssignClaimDto = angular.copy(workflowBlock.assignClaimDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_assignClaimSettingsModal.html\",\r\n controller: \"assignClaimSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateAssignClaim(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.assignClaimDto = revertDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showSendEmailModal(workflowBlock: models.SendEmailWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.SendEmailDto = angular.copy(workflowBlock.sendEmailDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_sendEmailSettingsModal.html\",\r\n controller: \"sendEmailSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateSendEmail(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.sendEmailDto = revertDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showStateModal(workflowBlock: models.StateWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.StateDto = angular.copy(workflowBlock.stateDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_stateSettingsModal.html\",\r\n controller: \"stateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateState(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.stateDto = revertDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showConditionModal(workflowBlock: models.ConditionWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.ConditionDto = angular.copy(workflowBlock.conditionDto);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_conditionSettingsModal.html\",\r\n controller: \"conditionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateCondition(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.conditionDto = revertDto);\r\n } else {\r\n workflowBlock.conditionDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showValidateModal(workflowBlock: models.ValidateWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.ValidateDto = angular.copy(workflowBlock.validateDto);\r\n \r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_validateSettingsModal.html\",\r\n controller: \"validateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateValidate(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.validateDto = revertDto);\r\n } else {\r\n workflowBlock.validateDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showCalculateModal(workflowBlock: models.CalculateWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.CalculateDto = angular.copy(workflowBlock.calculateDto);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_calculateSettingsModal.html\",\r\n controller: \"calculateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateCalculate(workflowBlock).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.calculateDto = revertDto);\r\n } else {\r\n workflowBlock.calculateDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showBookResourceModal(workflowBlock: models.BookResourceWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.ScheduledResourceDto = angular.copy(workflowBlock.scheduledResourceDto);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_bookResourceSettingsModal.html\",\r\n controller: \"bookResourceSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateScheduledResource(workflowBlock.id, workflowBlock.scheduledResourceDto).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.scheduledResourceDto = revertDto);\r\n } else {\r\n workflowBlock.scheduledResourceDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showRemoveResourceModal(workflowBlock: models.RemoveResourceWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.ScheduledResourceDto = angular.copy(workflowBlock.scheduledResourceDto);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_removeResourceSettingsModal.html\",\r\n controller: \"removeResourceSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateScheduledResource(workflowBlock.id, workflowBlock.scheduledResourceDto).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.scheduledResourceDto = revertDto);\r\n } else {\r\n workflowBlock.scheduledResourceDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showReturnFromProcessActionModal(workflowBlock: models.ReturnFromProcessActionWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.ReturnFromProcessActionDto = angular.copy(workflowBlock.returnFromProcessActionDto);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_returnFromProcessActionSettingsModal.html\",\r\n controller: \"returnFromProcessActionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateReturnFromProcessAction(workflowBlock.id, workflowBlock.returnFromProcessActionDto).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.returnFromProcessActionDto = revertDto);\r\n } else {\r\n workflowBlock.returnFromProcessActionDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showProcessActionModal(workflowBlock: models.ProcessActionWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.ProcessActionDto = angular.copy(workflowBlock.processActionDto);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_processActionSettingsModal.html\",\r\n controller: \"processActionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n processActionId: this.processActionId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateProcessAction(workflowBlock.id, workflowBlock.processActionDto).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.processActionDto = revertDto);\r\n } else {\r\n workflowBlock.processActionDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showSystemActionModal(workflowBlock: models.SystemActionWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.SystemActionDto = angular.copy(workflowBlock.systemActionDto);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_systemActionSettingsModal.html\",\r\n controller: \"systemActionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n processActionId: this.processActionId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateSystemAction(workflowBlock.id, workflowBlock.systemActionDto).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.systemActionDto = revertDto);\r\n } else {\r\n workflowBlock.systemActionDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showChangeStateActionModal(workflowBlock: models.ChangeStateWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.ChangeStateDto = angular.copy(workflowBlock.changeStateDto);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_changeStateSettingsModal.html\",\r\n controller: \"changeStateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateChangeState(workflowBlock.id, workflowBlock.changeStateDto).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.changeStateDto = revertDto);\r\n } else {\r\n workflowBlock.changeStateDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showGotoStateActionModal(workflowBlock: models.GotoStateWorkflowBlock): void {\r\n var self: WorkflowDrawingInstance = this;\r\n var revertDto: Wars.Domain.Model.Dtos.Workflow.GotoStateDto = angular.copy(workflowBlock.gotoStateDto);\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_gotoStateSettingsModal.html\",\r\n controller: \"gotoStateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.service.updateGotoState(workflowBlock.id, workflowBlock.gotoStateDto).then(\r\n (name: string) => {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n },\r\n () => workflowBlock.gotoStateDto = revertDto);\r\n } else {\r\n workflowBlock.gotoStateDto = revertDto;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showYesNoOutputSelectionModal(addContext: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockAddInBetweenContextDto): void {\r\n var self: WorkflowDrawingInstance = this;\r\n \r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_yesNoOutputSelectionModal.html\",\r\n controller: \"yesNoOutputSelectionModalController\",\r\n inputs: {\r\n addContext: addContext\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n self.saveInBetweenWorkflowBlock(addContext);\r\n } else {\r\n self.unHighlightAllInBetweenDropZones();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var models;\r\n (function (models) {\r\n var WorkflowDrawingInstance = /** @class */ (function () {\r\n function WorkflowDrawingInstance(svgElementId, service, drawingService, settings, pageScope, rootScope, statusFlowChangedCallback, workflowUpdatedCallback, modalService) {\r\n var _this = this;\r\n this.logType = \"WorkflowDrawingInstance\";\r\n this.typesComplete = [\r\n 4 /* StatusChange */,\r\n 1 /* UserAction */,\r\n 3 /* Message */,\r\n 98 /* Goto */,\r\n 7 /* CreatePdfAction */,\r\n 19 /* Copy */,\r\n 20 /* SetData */,\r\n 21 /* AssignClaim */,\r\n 8 /* SendEmailAction */,\r\n 0 /* State */,\r\n 2 /* Condition */,\r\n 6 /* Validate */,\r\n 9 /* CalculateAction */,\r\n 11 /* BookResource */,\r\n 12 /* RemoveResource */,\r\n 13 /* ProcessAction */,\r\n 17 /* SystemAction */,\r\n 16 /* ReturnFromProcessAction */,\r\n 15 /* StartProcessAction */,\r\n 14 /* ChangeState */,\r\n 18 /* GotoState */\r\n ];\r\n this.service = service;\r\n this.drawingService = drawingService;\r\n this.statusFlowChangedCallback = statusFlowChangedCallback;\r\n this.workflowUpdatedCallback = workflowUpdatedCallback;\r\n this.modalService = modalService;\r\n this.svgElementId = svgElementId;\r\n this.paper = Snap('#' + svgElementId);\r\n if (this.paper === undefined || this.paper === null) {\r\n alert(\"What what!\");\r\n }\r\n this.settings = settings;\r\n this.blockLocations = [];\r\n this.events = new models.WorkflowEvents(this, pageScope, this.drawingService);\r\n var cb = rootScope.$on(\"re-draw-workflow\", function (event) {\r\n _this.reDraw();\r\n });\r\n //destroy the listener on scope destroy to avoid memory leak\r\n pageScope.$on(\"$destroy\", function () {\r\n cb();\r\n });\r\n }\r\n WorkflowDrawingInstance.prototype.initializeData = function (processConfigId, isReadonly, processActionId) {\r\n this.processConfigId = processConfigId;\r\n this.processActionId = processActionId;\r\n this.isReadonly = isReadonly;\r\n };\r\n WorkflowDrawingInstance.prototype.drawModel = function (initialBlock) {\r\n this.removeAllDropZones();\r\n this.removeAllGotoBlocks();\r\n this.clear();\r\n this.paper.attr({ opacity: 0 });\r\n // All lines will be appended to this group so that they will appear first in the DOM and therefore be below the shapes and not interfere with the hover targets\r\n this.lines = this.paper.group();\r\n // Feedback lines need to appear on top of the lines but underneath the shapes.\r\n this.feedbackLines = this.paper.group();\r\n if (!this.isReadonly)\r\n this.addDropZones(initialBlock);\r\n return this.drawingService.drawModel(this, initialBlock);\r\n };\r\n WorkflowDrawingInstance.prototype.configureWorkflowBlock = function (workflowBlock) {\r\n var _this = this;\r\n switch (workflowBlock.type) {\r\n case 4 /* StatusChange */:\r\n var statusChangeBlock = workflowBlock;\r\n this.service.getStatusChangeDto(statusChangeBlock.statusChangeId)\r\n .then(function (dto) {\r\n statusChangeBlock.populateDto(dto);\r\n _this.showStatusChangeModal(statusChangeBlock);\r\n });\r\n break;\r\n case 1 /* UserAction */:\r\n var userActionBlock = workflowBlock;\r\n this.service.getUserActionDto(userActionBlock.id)\r\n .then(function (dto) {\r\n userActionBlock.populateDto(dto);\r\n _this.showUserActionModal(userActionBlock);\r\n });\r\n break;\r\n case 3 /* Message */:\r\n var messageWorkflowBlock = workflowBlock;\r\n this.service.getMessageDto(messageWorkflowBlock.id)\r\n .then(function (dto) {\r\n messageWorkflowBlock.populateDto(dto);\r\n _this.showMessageModal(messageWorkflowBlock);\r\n });\r\n break;\r\n case 98 /* Goto */:\r\n var gotoWorkflowBlock = workflowBlock;\r\n var validToTypes = models.WorkflowBlockManager.getValidToBlockTypes(98 /* Goto */);\r\n var validToBlocks = Enumerable.from(this.blockLocations)\r\n .select(function (i) { return i.workflowBlock; })\r\n .where(function (i) { return validToTypes.indexOf(i.type) !== -1; })\r\n .toArray();\r\n this.showGotoModal(gotoWorkflowBlock, validToBlocks);\r\n break;\r\n case 7 /* CreatePdfAction */:\r\n var createPdfWorkflowBlock = workflowBlock;\r\n this.service.getCreatePdfDto(createPdfWorkflowBlock.id)\r\n .then(function (dto) {\r\n createPdfWorkflowBlock.populateDto(dto);\r\n _this.showCreatePdfModal(createPdfWorkflowBlock);\r\n });\r\n break;\r\n case 19 /* Copy */:\r\n var copyWorkflowBlock = workflowBlock;\r\n this.service.getCopyDto(copyWorkflowBlock.id)\r\n .then(function (dto) {\r\n copyWorkflowBlock.populateDto(dto);\r\n _this.showCopyModal(copyWorkflowBlock);\r\n });\r\n break;\r\n case 20 /* SetData */:\r\n var setDataWorkflowBlock = workflowBlock;\r\n this.service.getSetDataDto(setDataWorkflowBlock.id)\r\n .then(function (dto) {\r\n setDataWorkflowBlock.populateDto(dto);\r\n _this.showSetDataModal(setDataWorkflowBlock);\r\n });\r\n break;\r\n case 21 /* AssignClaim */:\r\n var assignClaimWorkflowBlock = workflowBlock;\r\n this.service.getAssignClaimDto(assignClaimWorkflowBlock.id)\r\n .then(function (dto) {\r\n assignClaimWorkflowBlock.populateDto(dto);\r\n _this.showAssignClaimModal(assignClaimWorkflowBlock);\r\n });\r\n break;\r\n case 8 /* SendEmailAction */:\r\n var sendEmailWorkflowBlock = workflowBlock;\r\n this.service.getSendEmailDto(sendEmailWorkflowBlock.id)\r\n .then(function (dto) {\r\n sendEmailWorkflowBlock.populateDto(dto);\r\n _this.showSendEmailModal(sendEmailWorkflowBlock);\r\n });\r\n break;\r\n case 0 /* State */:\r\n var stateWorkflowBlock = workflowBlock;\r\n this.service.getStateDto(stateWorkflowBlock.id)\r\n .then(function (dto) {\r\n stateWorkflowBlock.populateDto(dto);\r\n _this.showStateModal(stateWorkflowBlock);\r\n });\r\n break;\r\n case 2 /* Condition */:\r\n var conditionWorkflowBlock = workflowBlock;\r\n this.service.getConditionDto(conditionWorkflowBlock.id)\r\n .then(function (dto) {\r\n conditionWorkflowBlock.populateDto(dto);\r\n _this.showConditionModal(conditionWorkflowBlock);\r\n });\r\n break;\r\n case 6 /* Validate */:\r\n var validateBlock = workflowBlock;\r\n this.service.getValidateDto(validateBlock.id)\r\n .then(function (dto) {\r\n validateBlock.populateDto(dto);\r\n _this.showValidateModal(validateBlock);\r\n });\r\n break;\r\n case 9 /* CalculateAction */:\r\n var calculateBlock = workflowBlock;\r\n this.service.getCalculateDto(calculateBlock.id)\r\n .then(function (dto) {\r\n calculateBlock.populateDto(dto);\r\n _this.showCalculateModal(calculateBlock);\r\n });\r\n break;\r\n case 11 /* BookResource */:\r\n var bookResourceBlock = workflowBlock;\r\n this.service.getBookResourceDto(bookResourceBlock.id)\r\n .then(function (dto) {\r\n bookResourceBlock.populateDto(dto);\r\n _this.showBookResourceModal(bookResourceBlock);\r\n });\r\n break;\r\n case 12 /* RemoveResource */:\r\n var removeResourceBlock = workflowBlock;\r\n this.service.getRemoveResourceDto(removeResourceBlock.id)\r\n .then(function (dto) {\r\n removeResourceBlock.populateDto(dto);\r\n _this.showRemoveResourceModal(removeResourceBlock);\r\n });\r\n break;\r\n case 16 /* ReturnFromProcessAction */:\r\n var returnFromProcessActionBlock = workflowBlock;\r\n this.service.getReturnFromProcessActionDto(returnFromProcessActionBlock.id)\r\n .then(function (dto) {\r\n returnFromProcessActionBlock.populateDto(dto);\r\n _this.showReturnFromProcessActionModal(returnFromProcessActionBlock);\r\n });\r\n break;\r\n case 13 /* ProcessAction */:\r\n var processActionBlock = workflowBlock;\r\n this.service.getProcessActionDto(processActionBlock.id)\r\n .then(function (dto) {\r\n processActionBlock.populateDto(dto);\r\n _this.showProcessActionModal(processActionBlock);\r\n });\r\n break;\r\n case 17 /* SystemAction */:\r\n var systemActionBlock = workflowBlock;\r\n this.service.getSystemActionDto(systemActionBlock.id)\r\n .then(function (dto) {\r\n systemActionBlock.populateDto(dto);\r\n _this.showSystemActionModal(systemActionBlock);\r\n });\r\n break;\r\n case 14 /* ChangeState */:\r\n var changeStateBlock = workflowBlock;\r\n this.service.getChangeStateDto(changeStateBlock.id)\r\n .then(function (dto) {\r\n changeStateBlock.populateDto(dto);\r\n _this.showChangeStateActionModal(changeStateBlock);\r\n });\r\n break;\r\n case 18 /* GotoState */:\r\n var gotoStateBlock = workflowBlock;\r\n this.service.getGotoStateDto(gotoStateBlock.id)\r\n .then(function (dto) {\r\n gotoStateBlock.populateDto(dto);\r\n _this.showGotoStateActionModal(gotoStateBlock);\r\n });\r\n break;\r\n default:\r\n alert(\"In-Work\");\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.removeWorkflowBlockFromWorkflow = function (workflowBlock) {\r\n var _this = this;\r\n var fromBlock = workflowBlock.getFromWorkflowBlocks()[0];\r\n var gotoBlockToBlockId = undefined;\r\n var isGotoBlock = workflowBlock.type === 98 /* Goto */;\r\n if (isGotoBlock) {\r\n var gotoBlock = workflowBlock;\r\n if (gotoBlock.toBlock)\r\n gotoBlockToBlockId = gotoBlock.toBlock.id;\r\n }\r\n this.service.deleteWorkflowBlock(workflowBlock.id, fromBlock.id, isGotoBlock, gotoBlockToBlockId).then(function () { return _this.removeWorkflowBlockFromDrawing(workflowBlock); }, function () { return alert(\"Delete was not successful\"); });\r\n };\r\n WorkflowDrawingInstance.prototype.reDraw = function () {\r\n if (this.workflowUpdatedCallback)\r\n this.workflowUpdatedCallback();\r\n this.drawModel(this.blockLocations[0].workflowBlock);\r\n this.service.addOrRemoveFeedbackArrowLines();\r\n };\r\n WorkflowDrawingInstance.prototype.getWorkFlowBlockById = function (id) {\r\n if (!id)\r\n return undefined;\r\n return Enumerable.from(this.blockLocations).singleOrDefault(function (i) { return i.workflowBlock.id === id; }).workflowBlock;\r\n };\r\n WorkflowDrawingInstance.prototype.droppedNewShapeOnDropZone = function (type, dropZoneWorkflowBlock) {\r\n var _this = this;\r\n var self = this;\r\n var validChoice = this.canShapeBeDropped(type, dropZoneWorkflowBlock);\r\n if (!validChoice) {\r\n this.unHighlightAllDropZones();\r\n return;\r\n }\r\n if (dropZoneWorkflowBlock.type !== 99 /* DropZone */) {\r\n return;\r\n }\r\n var connections = new models.WorkflowBlockConnections(dropZoneWorkflowBlock, this.blockLocations);\r\n if (type === 98 /* Goto */) {\r\n var newId = models.WorkflowBlockManager.initialGotoId;\r\n var otherGotos = Enumerable.from(this.blockLocations)\r\n .where(function (i) { return i.workflowBlock.type === 98 /* Goto */; })\r\n .toArray();\r\n if (otherGotos.length > 0) {\r\n var currentMaxId = Enumerable.from(otherGotos)\r\n .select(function (i) { return i.workflowBlock.id; })\r\n .max();\r\n newId = currentMaxId + 1;\r\n }\r\n var newGotoBlock = new models.GotoWorkflowBlock(newId.toString(), \"Go To\");\r\n this.addNewWorkflowBlockCallback(newGotoBlock, dropZoneWorkflowBlock);\r\n }\r\n else {\r\n this.service.createNewWorkflowBlock(type, this.blockLocations[0].workflowBlock.statusCodeId, this.blockLocations[0].workflowBlock.processActionId, connections.connectionDto).then(function (newWorkflowBlock) { return _this.addNewWorkflowBlockCallback(newWorkflowBlock, dropZoneWorkflowBlock); }, function () {\r\n _this.unHighlightAllDropZones();\r\n alert(\"Could not add this workflow block.\");\r\n });\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.droppedNewShapeOnInBetweenDropZone = function (type, fromWorkflowBlock, toWorkflowBlock) {\r\n var validChoice = this.canShapeBeDroppedInBetween(type, fromWorkflowBlock, toWorkflowBlock);\r\n if (!validChoice)\r\n return;\r\n var addContext = {\r\n blockType: type,\r\n fromBlockId: fromWorkflowBlock.id,\r\n toBlockId: toWorkflowBlock.id,\r\n gotoToBlockId: undefined,\r\n statusCodeId: this.blockLocations[0].workflowBlock.statusCodeId,\r\n processActionId: this.blockLocations[0].workflowBlock.processActionId,\r\n outputIndex: 0\r\n };\r\n var newObjectForTest = models.WorkflowBlockManager.createWorkflowBlock(type, \"-13\", undefined);\r\n if (newObjectForTest.getOutputType() === 2 /* YesNo */) {\r\n this.showYesNoOutputSelectionModal(addContext);\r\n }\r\n else {\r\n this.saveInBetweenWorkflowBlock(addContext);\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.saveInBetweenWorkflowBlock = function (addContext) {\r\n var _this = this;\r\n var toBlock = Enumerable.from(this.blockLocations)\r\n .select(function (i) { return i.workflowBlock; })\r\n .singleOrDefault(function (i) { return i.id == addContext.toBlockId; });\r\n if (toBlock && toBlock.type == 98 /* Goto */) {\r\n var newToBlock = toBlock.toBlocks[0];\r\n if (newToBlock) {\r\n addContext.gotoToBlockId = addContext.toBlockId;\r\n addContext.toBlockId = newToBlock.id;\r\n }\r\n }\r\n this.service.createNewWorkflowBlockInBetween(addContext).then(function (newWorkflowBlock) { return _this.addNewWorkflowBlockInBetweenCallback(newWorkflowBlock, addContext); }, function () {\r\n _this.unHighlightAllInBetweenDropZones();\r\n alert(\"Could not add this workflow block.\");\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.draggingNewShape = function (selectedWorkflowShape, hoverContext) {\r\n this.unHighlightAllDropZones();\r\n this.unHighlightAllInBetweenDropZones();\r\n if (hoverContext.workflowBlock) {\r\n if (hoverContext.workflowBlock && hoverContext.workflowBlock.type === 99 /* DropZone */) {\r\n var dropZone = hoverContext.workflowBlock;\r\n var validChoice = this.canShapeBeDropped(selectedWorkflowShape, dropZone);\r\n if (validChoice)\r\n dropZone.highlightValidOption();\r\n else\r\n dropZone.highlightInvalidOption();\r\n }\r\n }\r\n else if (hoverContext.inBetweenDropZoneHovered) {\r\n var validChoice = this.canShapeBeDroppedInBetween(selectedWorkflowShape, hoverContext.inBetweenFromWorkflowBlock, hoverContext.inBetweenToWorkflowBlock);\r\n if (validChoice)\r\n this.inBetweenDropZones[hoverContext.inBetweenIndex].attr({ class: \"in-between-drop-zone hover-valid-option\", opacity: 1 });\r\n else\r\n this.inBetweenDropZones[hoverContext.inBetweenIndex].attr({ class: \"in-between-drop-zone hover-invalid-option\", opacity: 1 });\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.drawFeedbackArrow = function (fromWorkflowBlock, toWorkflowBlock, toggleEnabled) {\r\n return this.drawingService.drawFeedbackArrow(this, fromWorkflowBlock, toWorkflowBlock, toggleEnabled);\r\n };\r\n // Private Helper Methods\r\n // ===================================================================================================================\r\n WorkflowDrawingInstance.prototype.removeWorkflowBlockFromDrawing = function (workflowBlock) {\r\n //{ from } ----> [block to delete] ----> { to }\r\n //{ from } ----------------------------> { to }\r\n warsApp.services.WarsLogger.logInfo(\"Attempting to delete a Workflow block of type: \" + workflowBlock.type, this.logType);\r\n var i;\r\n var fromBlock = workflowBlock.getFromWorkflowBlocks()[0];\r\n if (workflowBlock.type == 98 /* Goto */) {\r\n for (i = 0; i < fromBlock.toBlocks.length; i++) {\r\n if (fromBlock.toBlocks[i].id === workflowBlock.id) {\r\n fromBlock.toBlocks.splice(i, 1);\r\n }\r\n }\r\n }\r\n else {\r\n var allTos = Enumerable.from(workflowBlock.toBlocks).where(function (i) { return i.type !== 99 /* DropZone */; }).toArray();\r\n for (i = 0; i < fromBlock.toBlocks.length; i++) {\r\n if (fromBlock.toBlocks[i].id === workflowBlock.id) {\r\n if (fromBlock.getOutputType() === 2 /* YesNo */) {\r\n if (allTos.length > 1)\r\n throw 'Not supposed to happen';\r\n fromBlock.toBlocks[i] = allTos[0];\r\n }\r\n else {\r\n fromBlock.toBlocks.splice(i, 1);\r\n var insertIndex = i;\r\n for (var toIndex = 0; toIndex < allTos.length; toIndex++) {\r\n var currentToBlock = allTos[toIndex];\r\n fromBlock.toBlocks[insertIndex++] = currentToBlock;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.reDraw();\r\n if (workflowBlock.type === 4 /* StatusChange */) {\r\n if (this.statusFlowChangedCallback) {\r\n var workflowBlocks = Enumerable.from(this.blockLocations).select(function (i) { return i.workflowBlock; }).toArray();\r\n this.statusFlowChangedCallback(workflowBlocks);\r\n }\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.addNewWorkflowBlockCallback = function (newWorkflowBlock, dropZoneWorkflowBlock) {\r\n newWorkflowBlock.setDrawingInstance(this);\r\n this.replaceDropZoneWithNewShape(newWorkflowBlock, dropZoneWorkflowBlock);\r\n this.reDraw();\r\n if (this.typesComplete.indexOf(newWorkflowBlock.type) !== -1) {\r\n this.configureWorkflowBlock(newWorkflowBlock);\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.replaceDropZoneWithNewShape = function (newWorkflowBlock, dropZoneWorkflowBlock) {\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var currentWorkflowBlock = this.blockLocations[i].workflowBlock;\r\n for (var x = 0; x < currentWorkflowBlock.toBlocks.length; x++) {\r\n if (currentWorkflowBlock.toBlocks[x] && currentWorkflowBlock.toBlocks[x].id === dropZoneWorkflowBlock.id) {\r\n currentWorkflowBlock.toBlocks[x] = newWorkflowBlock;\r\n }\r\n }\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.addNewWorkflowBlockInBetweenCallback = function (newWorkflowBlock, addContext) {\r\n newWorkflowBlock.setDrawingInstance(this);\r\n var toBlockId = addContext.gotoToBlockId != undefined ? addContext.gotoToBlockId : addContext.toBlockId;\r\n this.insertNewShapeInBetweenWorkflowBlocks(newWorkflowBlock, addContext.fromBlockId, toBlockId, addContext.outputIndex);\r\n this.reDraw();\r\n if (this.typesComplete.indexOf(newWorkflowBlock.type) !== -1) {\r\n this.configureWorkflowBlock(newWorkflowBlock);\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.insertNewShapeInBetweenWorkflowBlocks = function (newWorkflowBlock, fromWorkflowBlockId, toWorkflowBlockId, outputIndex) {\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var currentWorkflowBlock = this.blockLocations[i].workflowBlock;\r\n if (currentWorkflowBlock.id == fromWorkflowBlockId) {\r\n for (var x = 0; x < currentWorkflowBlock.toBlocks.length; x++) {\r\n if (currentWorkflowBlock.toBlocks[x] && currentWorkflowBlock.toBlocks[x].id == toWorkflowBlockId) {\r\n currentWorkflowBlock.toBlocks[x] = newWorkflowBlock;\r\n }\r\n }\r\n }\r\n }\r\n var blockLocationOfToBlock = Enumerable.from(this.blockLocations).single(function (i) { return i.workflowBlock.id == toWorkflowBlockId; });\r\n newWorkflowBlock.toBlocks[outputIndex] = blockLocationOfToBlock.workflowBlock;\r\n // Add into block locations too without a coordinate. The drawing algorithm will redraw and update the block locations anyway. But this is \r\n // required becase some other methods depend on the workflow blocks being in the block locations.\r\n this.blockLocations.push(new models.WorkflowBlockLocation(newWorkflowBlock, new models.Coordinate(0, 0)));\r\n };\r\n WorkflowDrawingInstance.prototype.removeAllDropZones = function () {\r\n if (!this.blockLocations || this.blockLocations.length === 0)\r\n return;\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var currentWorkflowBlock = this.blockLocations[i].workflowBlock;\r\n if (currentWorkflowBlock.type == 99 /* DropZone */) {\r\n this.blockLocations.splice(i, 1);\r\n i--;\r\n continue;\r\n }\r\n for (var x = 0; x < currentWorkflowBlock.toBlocks.length; x++) {\r\n if (currentWorkflowBlock.toBlocks[x] && currentWorkflowBlock.toBlocks[x].type == 99 /* DropZone */) {\r\n if (currentWorkflowBlock.getOutputType() == 2 /* YesNo */) {\r\n currentWorkflowBlock.toBlocks[x] = undefined;\r\n }\r\n else {\r\n currentWorkflowBlock.toBlocks.splice(x, 1);\r\n }\r\n x--;\r\n }\r\n }\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.removeAllGotoBlocks = function () {\r\n if (!this.blockLocations || this.blockLocations.length === 0)\r\n return;\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var currentWorkflowBlock = this.blockLocations[i].workflowBlock;\r\n if (currentWorkflowBlock.type == 98 /* Goto */) {\r\n var gotoBlock = currentWorkflowBlock;\r\n var fromBlock = gotoBlock.getFromWorkflowBlocks()[0];\r\n if (fromBlock) {\r\n for (var x = 0; x < fromBlock.toBlocks.length; x++) {\r\n if (fromBlock.toBlocks[x] && fromBlock.toBlocks[x].id == gotoBlock.id) {\r\n fromBlock.toBlocks[x] = gotoBlock.toBlock;\r\n }\r\n }\r\n }\r\n this.blockLocations.splice(i, 1);\r\n i--;\r\n continue;\r\n }\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.addDropZones = function (initialBlock) {\r\n var workflowBlocksToAnalyze = [initialBlock];\r\n var workflowBlockIdsAlreadyAnalyzed = [];\r\n var currentDropZoneId = models.WorkflowBlockManager.intialDropZoneId;\r\n while (workflowBlocksToAnalyze.length > 0) {\r\n var currentBlock = workflowBlocksToAnalyze.shift();\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(currentBlock.id) !== -1) {\r\n continue;\r\n }\r\n workflowBlockIdsAlreadyAnalyzed.push(currentBlock.id);\r\n if (currentBlock.getOutputType() == 3 /* None */) {\r\n continue;\r\n }\r\n else if (currentBlock.getOutputType() == 2 /* YesNo */) {\r\n var yesNoBlock = currentBlock;\r\n if (!yesNoBlock.yesBlock) {\r\n yesNoBlock.yesBlock = models.WorkflowBlockManager.createDropZone(((currentDropZoneId++).toString()).toString(), true, this);\r\n }\r\n else {\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(yesNoBlock.yesBlock.id) === -1) {\r\n workflowBlocksToAnalyze.push(yesNoBlock.yesBlock);\r\n }\r\n }\r\n if (!yesNoBlock.noBlock) {\r\n yesNoBlock.noBlock = models.WorkflowBlockManager.createDropZone(((currentDropZoneId++).toString()).toString(), true, this);\r\n }\r\n else {\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(yesNoBlock.noBlock.id) === -1) {\r\n workflowBlocksToAnalyze.push(yesNoBlock.noBlock);\r\n }\r\n }\r\n }\r\n else if (currentBlock.getOutputType() == 1 /* Multiple */) {\r\n for (var i = 0; i < currentBlock.toBlocks.length; i++) {\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(currentBlock.toBlocks[i].id) === -1) {\r\n workflowBlocksToAnalyze.push(currentBlock.toBlocks[i]);\r\n }\r\n }\r\n var required = currentBlock.toBlocks.length == 0;\r\n currentBlock.toBlocks.push(models.WorkflowBlockManager.createDropZone((currentDropZoneId++).toString(), required, this));\r\n var onlyToBlockIsDropZone = currentBlock.toBlocks.length == 1 && currentBlock.toBlocks[0].type == 99 /* DropZone */;\r\n if (required && !onlyToBlockIsDropZone) {\r\n // Always adding an optional drop zone b/c states can have infinite to blocks\r\n currentBlock.toBlocks.push(models.WorkflowBlockManager.createDropZone((currentDropZoneId++).toString(), false, this));\r\n }\r\n }\r\n else if (currentBlock.getOutputType() == 0 /* Single */) {\r\n if (currentBlock.type == 98 /* Goto */)\r\n continue;\r\n var singleOutputBlock = currentBlock;\r\n if (!singleOutputBlock.toBlock) {\r\n singleOutputBlock.toBlock = models.WorkflowBlockManager.createDropZone((currentDropZoneId++).toString(), true, this);\r\n }\r\n else {\r\n if (workflowBlockIdsAlreadyAnalyzed.indexOf(singleOutputBlock.toBlock.id) === -1) {\r\n workflowBlocksToAnalyze.push(singleOutputBlock.toBlock);\r\n }\r\n }\r\n }\r\n else {\r\n throw 'Unknown Output Type: ' + currentBlock.getOutputType();\r\n }\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.canShapeBeDropped = function (type, dropZone) {\r\n if (this.isReadonly)\r\n return false;\r\n var fromWorkflowBlocks = dropZone.getFromWorkflowBlocks();\r\n var invalidChoice = Enumerable.from(fromWorkflowBlocks).any(function (i) { return !i.canConnectToWorkflowBlockType(type); });\r\n return !invalidChoice;\r\n };\r\n WorkflowDrawingInstance.prototype.canShapeBeDroppedInBetween = function (type, fromWorkflowBlock, toWorkflowBlock) {\r\n if (this.isReadonly)\r\n return false;\r\n var newObjectForTest = models.WorkflowBlockManager.createWorkflowBlock(type, \"-13\", undefined);\r\n var fromValid = fromWorkflowBlock.canConnectToWorkflowBlockType(type);\r\n var toValid = newObjectForTest.canConnectToWorkflowBlockType(toWorkflowBlock.type);\r\n return fromValid && toValid;\r\n };\r\n WorkflowDrawingInstance.prototype.unHighlightAllDropZones = function () {\r\n for (var i = 0; i < this.blockLocations.length; i++) {\r\n var block = this.blockLocations[i].workflowBlock;\r\n if (block.type == 99 /* DropZone */) {\r\n block.unHighlight();\r\n }\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.unHighlightAllInBetweenDropZones = function () {\r\n if (this.inBetweenDropZones) {\r\n for (var i = 0; i < this.inBetweenDropZones.length; i++) {\r\n this.inBetweenDropZones[i].attr({ class: \"in-between-drop-zone\", opacity: 0 });\r\n }\r\n }\r\n };\r\n WorkflowDrawingInstance.prototype.clear = function () {\r\n this.paper.clear();\r\n };\r\n WorkflowDrawingInstance.prototype.showStatusChangeModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.statusChangeDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_statusChangeSettingsModal.html\",\r\n controller: \"statusChangeSettingsModalController\",\r\n inputs: {\r\n processConfigId: this.processConfigId,\r\n workflowBlock: workflowBlock,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateStatusChange(workflowBlock).then(function (workflowBlockDto) {\r\n workflowBlock.label = workflowBlockDto.name;\r\n workflowBlock.toStatusGroupId = workflowBlockDto.toStatusGroupId;\r\n self.reDraw();\r\n var blocks = Enumerable.from(self.blockLocations)\r\n .select(function (i) { return i.workflowBlock; })\r\n .where(function (i) { return i.type !== 99 /* DropZone */; })\r\n .toArray();\r\n if (self.statusFlowChangedCallback != undefined) {\r\n self.statusFlowChangedCallback(blocks);\r\n }\r\n }, function () { return workflowBlock.statusChangeDto = revertDto; });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showUserActionModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.userActionDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_userActionSettingsModal.html\",\r\n controller: \"userActionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n workflowBlock.userActionDto.documentConfigurationId = workflowBlock.userActionDto.documentConfiguration\r\n ? workflowBlock.userActionDto.documentConfiguration.id\r\n : undefined;\r\n self.service.updateUserAction(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.userActionDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.userActionDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showMessageModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.messageDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_messageSettingsModal.html\",\r\n controller: \"messageSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateMessage(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.messageDto = revertDto; });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showGotoModal = function (workflowBlock, validToBlocks) {\r\n var self = this;\r\n var blockBeforeGoto = workflowBlock.getFromWorkflowBlocks()[0];\r\n if (!blockBeforeGoto)\r\n throw 'Could not find the block before the goto block';\r\n var filteredValidToBlocks;\r\n if (blockBeforeGoto.type === 0 /* State */) {\r\n filteredValidToBlocks = Enumerable.from(validToBlocks)\r\n .where(function (i) { return i.type === 1 /* UserAction */ || i.type === 13 /* ProcessAction */; })\r\n .toArray();\r\n }\r\n else {\r\n filteredValidToBlocks = Enumerable.from(validToBlocks)\r\n .where(function (i) { return i.type !== 1 /* UserAction */; })\r\n .toArray();\r\n }\r\n var multiOutputIndex;\r\n for (multiOutputIndex = 0; multiOutputIndex < blockBeforeGoto.toBlocks.length; multiOutputIndex++) {\r\n if (blockBeforeGoto.toBlocks && blockBeforeGoto.toBlocks.length > multiOutputIndex && blockBeforeGoto.toBlocks[multiOutputIndex].id === workflowBlock.id)\r\n break;\r\n }\r\n var model = new models.GotoSettingsModel(workflowBlock, filteredValidToBlocks);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_gotoSettingsModal.html\",\r\n controller: \"gotoSettingsModalController\",\r\n inputs: {\r\n model: model,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n model.workflowBlock.toBlock = model.toBlock;\r\n var isTo = false;\r\n var isYes = false;\r\n var isNo = false;\r\n if (blockBeforeGoto.getOutputType() === 0 /* Single */) {\r\n isTo = true;\r\n }\r\n else if (blockBeforeGoto.getOutputType() === 2 /* YesNo */) {\r\n var yesNoBeforeBlock = blockBeforeGoto;\r\n isYes = yesNoBeforeBlock.yesBlock && yesNoBeforeBlock.yesBlock.id === workflowBlock.id;\r\n isNo = yesNoBeforeBlock.noBlock && yesNoBeforeBlock.noBlock.id === workflowBlock.id;\r\n }\r\n self.service.updateGotoBlock(blockBeforeGoto, model.toBlock, isTo, isYes, isNo, multiOutputIndex).then(function () {\r\n self.reDraw();\r\n });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showCreatePdfModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.createPdfDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_createPdfSettingsModal.html\",\r\n controller: \"createPdfSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateCreatePdf(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.createPdfDto = revertDto; });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showCopyModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.copyDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_copySettingsModal.html\",\r\n controller: \"copySettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateCopy(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.copyDto = revertDto; });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showSetDataModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.setDataDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_setDataSettingsModal.html\",\r\n controller: \"setDataSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateSetData(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.setDataDto = revertDto; });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showAssignClaimModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.assignClaimDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_assignClaimSettingsModal.html\",\r\n controller: \"assignClaimSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateAssignClaim(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.assignClaimDto = revertDto; });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showSendEmailModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.sendEmailDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_sendEmailSettingsModal.html\",\r\n controller: \"sendEmailSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateSendEmail(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.sendEmailDto = revertDto; });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showStateModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.stateDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_stateSettingsModal.html\",\r\n controller: \"stateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateState(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.stateDto = revertDto; });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showConditionModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.conditionDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_conditionSettingsModal.html\",\r\n controller: \"conditionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateCondition(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.conditionDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.conditionDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showValidateModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.validateDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_validateSettingsModal.html\",\r\n controller: \"validateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateValidate(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.validateDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.validateDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showCalculateModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.calculateDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_calculateSettingsModal.html\",\r\n controller: \"calculateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateCalculate(workflowBlock).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.calculateDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.calculateDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showBookResourceModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.scheduledResourceDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_bookResourceSettingsModal.html\",\r\n controller: \"bookResourceSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateScheduledResource(workflowBlock.id, workflowBlock.scheduledResourceDto).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.scheduledResourceDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.scheduledResourceDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showRemoveResourceModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.scheduledResourceDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_removeResourceSettingsModal.html\",\r\n controller: \"removeResourceSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateScheduledResource(workflowBlock.id, workflowBlock.scheduledResourceDto).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.scheduledResourceDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.scheduledResourceDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showReturnFromProcessActionModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.returnFromProcessActionDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_returnFromProcessActionSettingsModal.html\",\r\n controller: \"returnFromProcessActionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateReturnFromProcessAction(workflowBlock.id, workflowBlock.returnFromProcessActionDto).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.returnFromProcessActionDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.returnFromProcessActionDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showProcessActionModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.processActionDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_processActionSettingsModal.html\",\r\n controller: \"processActionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n processActionId: this.processActionId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateProcessAction(workflowBlock.id, workflowBlock.processActionDto).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.processActionDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.processActionDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showSystemActionModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.systemActionDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_systemActionSettingsModal.html\",\r\n controller: \"systemActionSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n processActionId: this.processActionId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateSystemAction(workflowBlock.id, workflowBlock.systemActionDto).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.systemActionDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.systemActionDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showChangeStateActionModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.changeStateDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_changeStateSettingsModal.html\",\r\n controller: \"changeStateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateChangeState(workflowBlock.id, workflowBlock.changeStateDto).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.changeStateDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.changeStateDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showGotoStateActionModal = function (workflowBlock) {\r\n var self = this;\r\n var revertDto = angular.copy(workflowBlock.gotoStateDto);\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_gotoStateSettingsModal.html\",\r\n controller: \"gotoStateSettingsModalController\",\r\n inputs: {\r\n workflowBlock: workflowBlock,\r\n processConfigId: this.processConfigId,\r\n isReadonly: this.isReadonly\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.service.updateGotoState(workflowBlock.id, workflowBlock.gotoStateDto).then(function (name) {\r\n workflowBlock.label = name;\r\n self.reDraw();\r\n }, function () { return workflowBlock.gotoStateDto = revertDto; });\r\n }\r\n else {\r\n workflowBlock.gotoStateDto = revertDto;\r\n }\r\n });\r\n });\r\n };\r\n WorkflowDrawingInstance.prototype.showYesNoOutputSelectionModal = function (addContext) {\r\n var self = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_yesNoOutputSelectionModal.html\",\r\n controller: \"yesNoOutputSelectionModalController\",\r\n inputs: {\r\n addContext: addContext\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.saveInBetweenWorkflowBlock(addContext);\r\n }\r\n else {\r\n self.unHighlightAllInBetweenDropZones();\r\n }\r\n });\r\n });\r\n };\r\n return WorkflowDrawingInstance;\r\n }());\r\n models.WorkflowDrawingInstance = WorkflowDrawingInstance;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.models {\r\n export class WorkflowDrawingSettings {\r\n public width: number;\r\n public height: number;\r\n\r\n public minZoomPercentage: number;\r\n public maxZoomPercentage: number;\r\n\r\n public zoomPercentage: number;\r\n public zoomStep: number;\r\n\r\n public horizontalStep: number;\r\n public horizontalMin: number;\r\n public horizontalMax: number;\r\n\r\n public verticalStep: number;\r\n public verticalMin: number;\r\n public verticalMax: number;\r\n\r\n public xOrigin: number;\r\n public yOrigin: number;\r\n\r\n public lineAttributes: any;\r\n\r\n public feedbackLineAttributes: any;\r\n public feedbackArrowAttributes: any;\r\n\r\n public toggleEnabledfeedbackLineAttributes: any;\r\n public toggleEnabledfeedbackArrowAttributes: any;\r\n\r\n public dashedLineAttributes: any;\r\n public arrowAttributes: any;\r\n \r\n constructor(width: number, height: number) {\r\n this.width = width;\r\n this.height = height;\r\n\r\n this.horizontalStep = 100;\r\n this.verticalStep = 100; \r\n\r\n this.minZoomPercentage = 5;\r\n this.maxZoomPercentage = 175;\r\n this.zoomStep = 5;\r\n\r\n // Start off at 150% zoom\r\n this.zoomPercentage = 150;\r\n\r\n this.horizontalMin = 0;\r\n this.horizontalMax = (this.width - this.horizontalStep) * 3;\r\n\r\n this.verticalMin = 0;\r\n this.verticalMax = (this.height - this.verticalStep) * 3;\r\n\r\n // Start with offset at 0,0\r\n this.xOrigin = 0;\r\n this.yOrigin = 0;\r\n\r\n this.lineAttributes = { class: \"arrow\" };\r\n this.dashedLineAttributes = { class: \"dashed-arrow\"};\r\n this.arrowAttributes = { class: \"arrow-tip\" };\r\n\r\n this.feedbackLineAttributes = { class: \"feedback-arrow\" };\r\n this.feedbackArrowAttributes = { class: \"feedback-arrow-tip\" };\r\n\r\n this.toggleEnabledfeedbackLineAttributes = { class: \"toggle-enabled-feedback-arrow\" };\r\n this.toggleEnabledfeedbackArrowAttributes = { class: \"toggle-enabled-feedback-arrow-tip\" };\r\n }\r\n\r\n public getZoomRatio(): number {\r\n return this.zoomPercentage / 100;\r\n }\r\n\r\n private getInverseRatio() {\r\n var ratio = this.getZoomRatio();\r\n var distanceFromNormalZoom = Math.abs(1 - ratio);\r\n return ratio > 1 ? 1 - distanceFromNormalZoom : 1 + distanceFromNormalZoom;\r\n }\r\n\r\n public getViewBoxWidth(): number {\r\n var viewBoxRatio = this.getInverseRatio();\r\n return viewBoxRatio * this.width;\r\n }\r\n\r\n public getViewBoxHeight(): number {\r\n var viewBoxRatio = this.getInverseRatio();\r\n return viewBoxRatio * this.height;\r\n }\r\n\r\n public getZoomPercentageFromViewBoxWidth(viewBoxWidth: number): number {\r\n var zoomPercentage = 100 * (2 - (viewBoxWidth / this.width));\r\n var boundedZoom = Math.min(Math.max(zoomPercentage, this.minZoomPercentage), this.maxZoomPercentage);\r\n return boundedZoom;\r\n }\r\n\r\n public getZoomPercentageFromViewBoxHeight(viewBoxHeight: number): number {\r\n var zoomPercentage = 100 * (2 - (viewBoxHeight / this.height));\r\n var boundedZoom = Math.min(Math.max(zoomPercentage, this.minZoomPercentage), this.maxZoomPercentage);\r\n return boundedZoom;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class WorkflowEvents {\r\n private logType: string = \"WorkflowEvents\";\r\n\r\n private drawingInstance: models.WorkflowDrawingInstance;\r\n private drawingScope: ng.IScope;\r\n private drawingService: services.WorkflowDrawingService;\r\n\r\n private currentlyDragging: boolean;\r\n private currentDragX: number;\r\n private currentDragY: number\r\n\r\n constructor(drawingInstance: models.WorkflowDrawingInstance, drawingScope: ng.IScope, drawingService: services.WorkflowDrawingService) {\r\n this.drawingInstance = drawingInstance;\r\n this.drawingScope = drawingScope;\r\n this.drawingService = drawingService;\r\n this.addEntireCanvasMouseMoveHandler();\r\n this.addMouseWheelHandler();\r\n this.setupDragAndPan();\r\n this.currentlyDragging = false;\r\n }\r\n\r\n public getWorkflowHoverContext(event: any): models.WorkflowHoverContext {\r\n var target = event.target;\r\n\r\n var workflowBlockSelected = false;\r\n var deleteOptionHovered = false;\r\n var settingsOptionHovered = false;\r\n\r\n var targetChanged = false;\r\n var originalLocalName;\r\n\r\n if (target && target.attributes['data-class'] && target.attributes['data-class'].value == 'in-between-drop-zone') {\r\n var fromWorkflowBlockId: string;\r\n var toWorkflowBlockId: string;\r\n\r\n var fromWorkflowBlock: models.IWorkflowBlock;\r\n var toWorkflowBlock: models.IWorkflowBlock;\r\n var inBetweenIndex: number;\r\n\r\n if (target.attributes['data-from-id']) {\r\n fromWorkflowBlockId = target.attributes['data-from-id'].value;\r\n fromWorkflowBlock = this.drawingInstance.getWorkFlowBlockById(fromWorkflowBlockId);\r\n }\r\n\r\n if (target.attributes['data-to-id']) {\r\n toWorkflowBlockId = target.attributes['data-to-id'].value;\r\n toWorkflowBlock = this.drawingInstance.getWorkFlowBlockById(toWorkflowBlockId);\r\n }\r\n\r\n if (target.attributes['data-index']) {\r\n inBetweenIndex = parseInt(target.attributes['data-index'].value);\r\n }\r\n\r\n return new models.WorkflowHoverContext(undefined, false, false, false, true, inBetweenIndex, fromWorkflowBlock, toWorkflowBlock);\r\n }\r\n\r\n // Reset target to actual workflow block if label or option is selected\r\n if (target.parentNode &&\r\n (target.localName == \"text\" || target.localName == \"image\" ||\r\n (target.localName == \"rect\" && (!target.attributes['data-class'] || target.attributes['data-class'].value != 'workflowBlock')))) {\r\n originalLocalName = target.localName;\r\n targetChanged = true;\r\n\r\n var siblings: Array = target.parentNode.childNodes;\r\n target = Enumerable.from(siblings).singleOrDefault(i => i.attributes['data-class'] && i.attributes['data-class'].value == 'workflowBlock')\r\n }\r\n\r\n if (target && target.localName == \"image\" && target.attributes['data-class'] && target.attributes['data-class'].value == 'optionsImage') {\r\n deleteOptionHovered = target.attributes['data-id'] && target.attributes['data-id'].value == 'delete';\r\n settingsOptionHovered = target.attributes['data-id'] && target.attributes['data-id'].value == 'settings';\r\n }\r\n\r\n var workflowBlock: models.IWorkflowBlock;\r\n\r\n if (target && target.attributes['data-class'] && target.attributes['data-class'].value == 'workflowBlock') {\r\n\r\n var workflowBlockId: string;\r\n\r\n var blockTypes = models.WorkflowBlockManager.getValidBlockTypes();\r\n\r\n if (target.attributes['data-id'] && target.attributes[\"id\"] && blockTypes.indexOf(target.attributes['data-id'].value) !== -1) {\r\n workflowBlockId = target.attributes[\"id\"].value;\r\n }\r\n\r\n if (workflowBlockId) {\r\n workflowBlock = this.drawingInstance.getWorkFlowBlockById(workflowBlockId);\r\n workflowBlockSelected = !targetChanged || originalLocalName == \"text\" || originalLocalName == \"image\";\r\n }\r\n }\r\n\r\n return new models.WorkflowHoverContext(workflowBlock, workflowBlockSelected, deleteOptionHovered, settingsOptionHovered);\r\n }\r\n\r\n private addEntireCanvasMouseMoveHandler(): void {\r\n var mainSnapElement = Snap.select('#' + this.drawingInstance.svgElementId);\r\n var self = this;\r\n mainSnapElement.mousemove((evt) => self.mousemoveHandler(evt));\r\n }\r\n\r\n private mousemoveHandler(event) {\r\n var hoverContext = this.getWorkflowHoverContext(event);\r\n this.hoverEnd(hoverContext.workflowBlock);\r\n\r\n if (!hoverContext.workflowBlock) return;\r\n if (hoverContext.workflowBlock.type != Wars.Domain.Model.Codes.Enums.BlockType.DropZone) {\r\n hoverContext.workflowBlock.hoverStart();\r\n }\r\n }\r\n\r\n private hoverEnd(currentWorkflowBlock: models.IWorkflowBlock): void {\r\n for (var i = 0; i < this.drawingInstance.blockLocations.length; i++) {\r\n var currentBlock = this.drawingInstance.blockLocations[i].workflowBlock;\r\n if (currentBlock.type != Wars.Domain.Model.Codes.Enums.BlockType.DropZone && (!currentWorkflowBlock || (currentBlock.id !== currentWorkflowBlock.id))) {\r\n currentBlock.hoverEnd();\r\n }\r\n }\r\n }\r\n\r\n private addMouseWheelHandler(): void {\r\n var svg = document.getElementById(this.drawingInstance.svgElementId);\r\n if (svg.addEventListener) {\r\n // IE9, Chrome, Safari, Opera\r\n svg.addEventListener(\"mousewheel\", (event) => this.mouseWheelHandler(event), false);\r\n // Firefox\r\n svg.addEventListener(\"DOMMouseScroll\", (event) => this.mouseWheelHandler(event), false);\r\n }\r\n // IE 6/7/8\r\n else (svg).attachEvent(\"onmousewheel\", (event) => this.mouseWheelHandler(event));\r\n }\r\n\r\n private mouseWheelHandler(event: any): boolean {\r\n // cross-browser wheel delta\r\n event = event.originalEvent || event;\r\n var mouseWheelDelta = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail)));\r\n var currentZoomPercentage = this.drawingInstance.settings.zoomPercentage;\r\n var delta = this.drawingInstance.settings.zoomStep * mouseWheelDelta;\r\n\r\n services.WarsLogger.logDebug(\"Mouse Wheel Delta: \" + delta, this.logType);\r\n\r\n if (this.drawingScope) {\r\n this.drawingScope.$apply(() => {\r\n if (delta > 0) {\r\n this.drawingInstance.settings.zoomPercentage = Math.min(this.drawingInstance.settings.maxZoomPercentage, this.drawingInstance.settings.zoomPercentage + delta);\r\n } else {\r\n this.drawingInstance.settings.zoomPercentage = Math.max(this.drawingInstance.settings.minZoomPercentage, this.drawingInstance.settings.zoomPercentage + delta);\r\n }\r\n });\r\n }\r\n\r\n this.changeViewBoxSizeAndOffset();\r\n\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n private setupDragAndPan(): void {\r\n this.addMouseDownForDragPanning();\r\n this.addMouseUpForDragPanning();\r\n this.addMouseMoveHandlerForDragPanning();\r\n }\r\n\r\n private addMouseDownForDragPanning(): void {\r\n var svg = document.getElementById(this.drawingInstance.svgElementId);\r\n if (svg.addEventListener) {\r\n svg.addEventListener(\"mousedown\", (event) => this.mouseDownHandler(event), false);\r\n }\r\n // IE 6/7/8\r\n else (svg).attachEvent(\"mousedown\", (event) => this.mouseDownHandler(event));\r\n }\r\n\r\n private mouseDownHandler(event: any) {\r\n var svgElement = document.getElementById(this.drawingInstance.svgElementId);\r\n\r\n var classAttr = svgElement.getAttribute('class');\r\n classAttr = classAttr.replace('not-dragging', 'dragging');\r\n svgElement.setAttribute('class', classAttr);\r\n\r\n this.currentlyDragging = true;\r\n this.currentDragX = event.screenX;\r\n this.currentDragY = event.screenY;\r\n }\r\n\r\n private addMouseUpForDragPanning(): void {\r\n var svg = document.getElementById(this.drawingInstance.svgElementId);\r\n if (svg.addEventListener) {\r\n svg.addEventListener(\"mouseup\", (event) => this.mouseUpHandler(event), false);\r\n }\r\n // IE 6/7/8\r\n else (svg).attachEvent(\"mouseup\", (event) => this.mouseUpHandler(event));\r\n }\r\n\r\n private mouseUpHandler(event: any) {\r\n var svgElement = document.getElementById(this.drawingInstance.svgElementId);\r\n\r\n var classAttr = svgElement.getAttribute('class');\r\n classAttr = classAttr.replace('dragging', 'not-dragging');\r\n svgElement.setAttribute('class', classAttr);\r\n\r\n this.currentlyDragging = false;\r\n }\r\n\r\n private addMouseMoveHandlerForDragPanning(): void {\r\n var svg = document.getElementById(this.drawingInstance.svgElementId);\r\n if (svg.addEventListener) {\r\n svg.addEventListener(\"mousemove\", (event) => this.mouseMoveHandler(event), false);\r\n }\r\n // IE 6/7/8\r\n else (svg).attachEvent(\"mousemove\", (event) => this.mouseMoveHandler(event));\r\n }\r\n\r\n private mouseMoveHandler(event: any) {\r\n // Only need to process the mouse move if currently dragging\r\n if (!this.currentlyDragging) return;\r\n\r\n var rateOfDrag = 1;\r\n\r\n var xDelta = (this.currentDragX - event.screenX) * rateOfDrag;\r\n var yDelta = (this.currentDragY - event.screenY) * rateOfDrag;\r\n\r\n var dragOffsetCoordinate = this.getDragOffset(xDelta, yDelta);\r\n\r\n // If mouse has not move enough no need to do anything\r\n if (dragOffsetCoordinate.x === this.drawingInstance.settings.xOrigin && dragOffsetCoordinate.y === this.drawingInstance.settings.yOrigin) return;\r\n\r\n this.currentDragX = event.screenX;\r\n this.currentDragY = event.screenY;\r\n\r\n if (this.drawingScope) {\r\n this.drawingScope.$apply(() => {\r\n this.drawingInstance.settings.xOrigin = dragOffsetCoordinate.x;\r\n this.drawingInstance.settings.yOrigin = dragOffsetCoordinate.y;\r\n this.changeViewBoxSizeAndOffset();\r\n });\r\n }\r\n }\r\n\r\n private getDragOffset(xDelta: number, yDelta: number): models.Coordinate {\r\n var xSteps = Math.floor(xDelta);\r\n var xOffset = this.drawingInstance.settings.xOrigin + xSteps;\r\n var xOrigin = Math.min(this.drawingInstance.settings.horizontalMax, Math.max(xOffset, this.drawingInstance.settings.horizontalMin));\r\n\r\n var ySteps = Math.floor(yDelta);\r\n var yOffset = this.drawingInstance.settings.yOrigin + ySteps;\r\n var yOrigin = Math.min(this.drawingInstance.settings.verticalMax, Math.max(yOffset, this.drawingInstance.settings.verticalMin));\r\n\r\n return new models.Coordinate(xOrigin, yOrigin);\r\n }\r\n\r\n private changeViewBoxSizeAndOffset(): void {\r\n this.drawingService.changeViewBoxSizeAndOffset(\r\n this.drawingInstance.paper,\r\n this.drawingInstance.settings.xOrigin,\r\n this.drawingInstance.settings.yOrigin,\r\n this.drawingInstance.settings.getViewBoxWidth(),\r\n this.drawingInstance.settings.getViewBoxHeight());\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class WorkflowHoverContext {\r\n\r\n public workflowBlock: IWorkflowBlock;\r\n public workflowBlockHovered: boolean;\r\n public deleteOptionHovered: boolean;\r\n public settingsOptionHovered: boolean;\r\n public inBetweenDropZoneHovered: boolean;\r\n public inBetweenIndex: number;\r\n public inBetweenFromWorkflowBlock: IWorkflowBlock;\r\n public inBetweenToWorkflowBlock: IWorkflowBlock;\r\n\r\n constructor(\r\n workflowBlock: IWorkflowBlock,\r\n workflowBlockHovered: boolean,\r\n deleteOptionHovered: boolean,\r\n settingsOptionHovered: boolean,\r\n inBetweenDropZoneHovered?: boolean,\r\n inBetweenIndex? : number,\r\n inBetweenFromWorkflowBlock?: IWorkflowBlock,\r\n inBetweenToWorkflowBlock?: IWorkflowBlock\r\n )\r\n {\r\n this.workflowBlock = workflowBlock;\r\n this.workflowBlockHovered = workflowBlockHovered;\r\n this.deleteOptionHovered = deleteOptionHovered;\r\n this.settingsOptionHovered = settingsOptionHovered;\r\n this.inBetweenDropZoneHovered = inBetweenDropZoneHovered;\r\n this.inBetweenIndex = inBetweenIndex;\r\n this.inBetweenFromWorkflowBlock = inBetweenFromWorkflowBlock;\r\n this.inBetweenToWorkflowBlock = inBetweenToWorkflowBlock;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n export class WorkflowItemAwaitingDrawing {\r\n\r\n public pendingWorkflowItem: PendingWorkflowItem;\r\n public coordinate: Coordinate;\r\n \r\n constructor(pendingWorkflowItem: PendingWorkflowItem, coordinate: Coordinate) {\r\n this.pendingWorkflowItem = pendingWorkflowItem;\r\n this.coordinate = coordinate;\r\n }\r\n\r\n \r\n }\r\n}","/// \r\nmodule warsApp.models {\r\n\r\n export class WorkflowWorkspaceModel {\r\n\r\n private service: services.WorkflowService;\r\n private drawingService: services.WorkflowDrawingService;\r\n private workflowDrawingInstance: WorkflowDrawingInstance;\r\n private statusFlowChangedCallback: (workflowBlocks: IWorkflowBlock[]) => void;\r\n private isReadonly: boolean;\r\n private modalService: any;\r\n private showZoomAndPan: boolean;\r\n private processStatusGroup: models.ProcessStatusGroup;\r\n private processActionGroup: models.ProcessActionGroup;\r\n private workflowMode: models.WorkflowMode;\r\n\r\n public alwaysShowGotoArrows: boolean;\r\n \r\n public scope: directives.IWorkflowWorkspaceScope;\r\n public rootScope: ng.IRootScopeService;\r\n public settings: models.WorkflowDrawingSettings;\r\n\r\n public validationIssues: Array;\r\n\r\n constructor(\r\n settings: models.WorkflowDrawingSettings,\r\n workflowMode: models.WorkflowMode,\r\n statusFlowChangedCallback: (workflowBlocks: IWorkflowBlock[]) => void)\r\n {\r\n this.settings = settings;\r\n this.statusFlowChangedCallback = statusFlowChangedCallback;\r\n this.showZoomAndPan = false;\r\n this.validationIssues = [];\r\n this.workflowMode = workflowMode;\r\n }\r\n\r\n private toggleAlwaysShotGotoArrows(): void {\r\n this.service.setAlwaysShowGotoArrowsSetting(this.alwaysShowGotoArrows);\r\n this.service.addOrRemoveFeedbackArrowLines();\r\n }\r\n\r\n public drawShapesForToolbox() : void {\r\n\r\n if (this.workflowMode === models.WorkflowMode.Workflow) {\r\n var statusChange = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.StatusChange, \"1\", this.workflowDrawingInstance);\r\n statusChange.drawForToolbar(Snap('#statusChangeWorkflowBlock'));\r\n\r\n var state = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.State, \"1\", this.workflowDrawingInstance);\r\n state.drawForToolbar(Snap('#stateWorkflowBlock'));\r\n\r\n var gotoState = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.GotoState, \"1\", this.workflowDrawingInstance);\r\n gotoState.drawForToolbar(Snap('#gotoStateWorkflowBlock'));\r\n }\r\n\r\n if (this.workflowMode === models.WorkflowMode.ProcessAction) {\r\n var returnFromProcessAction = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction, \"1\", this.workflowDrawingInstance);\r\n returnFromProcessAction.drawForToolbar(Snap('#returnFromProcessActionWorkflowBlock'));\r\n\r\n var changeState = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.ChangeState, \"1\", this.workflowDrawingInstance);\r\n changeState.drawForToolbar(Snap('#changeStateWorkflowBlock'));\r\n }\r\n\r\n var userAction = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.UserAction, \"1\", this.workflowDrawingInstance);\r\n userAction.drawForToolbar(Snap('#userActionWorkflowBlock'));\r\n\r\n var condition = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.Condition, \"1\", this.workflowDrawingInstance);\r\n condition.drawForToolbar(Snap('#conditionWorkflowBlock'));\r\n\r\n // Bring back when actually implemented. This is the MEF'ed action that can do whatever the extensible interface allows\r\n // var systemAction = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.CustomAction, \"1\", this.workflowDrawingInstance);\r\n // systemAction.drawShape(Snap('#systemActionWorkflowBlock'));\r\n\r\n var processAction = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction, \"1\", this.workflowDrawingInstance);\r\n processAction.drawForToolbar(Snap('#processActionWorkflowBlock'));\r\n\r\n var systemAction = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.SystemAction, \"1\", this.workflowDrawingInstance);\r\n systemAction.drawForToolbar(Snap('#systemActionWorkflowBlock'));\r\n\r\n var calculate = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction, \"1\", this.workflowDrawingInstance);\r\n calculate.drawForToolbar(Snap('#calculateActionWorkflowBlock'));\r\n\r\n var goto = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.Goto, \"1\", this.workflowDrawingInstance);\r\n goto.drawForToolbar(Snap('#gotoWorkflowBlock'));\r\n\r\n var message = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.Message, \"1\", this.workflowDrawingInstance);\r\n message.drawForToolbar(Snap('#messageWorkflowBlock'));\r\n\r\n var validate = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.Validate, \"1\", this.workflowDrawingInstance);\r\n validate.drawForToolbar(Snap('#validateWorkflowBlock'));\r\n\r\n var generatePdf = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction, \"1\", this.workflowDrawingInstance);\r\n generatePdf.drawForToolbar(Snap('#createPdfActionWorkflowBlock'));\r\n\r\n var copy = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.Copy, \"1\", this.workflowDrawingInstance);\r\n copy.drawForToolbar(Snap('#copyWorkflowBlock'));\r\n\r\n var setData = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.SetData, \"1\", this.workflowDrawingInstance);\r\n setData.drawForToolbar(Snap('#setDataWorkflowBlock'));\r\n\r\n var assignClaim = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim, \"1\", this.workflowDrawingInstance);\r\n assignClaim.drawForToolbar(Snap('#assignClaimWorkflowBlock'));\r\n\r\n var sendEmail = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction, \"1\", this.workflowDrawingInstance);\r\n sendEmail.drawForToolbar(Snap('#sendEmailActionWorkflowBlock'));\r\n\r\n var bookResource = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.BookResource, \"1\", this.workflowDrawingInstance);\r\n bookResource.drawForToolbar(Snap('#bookResourceWorkflowBlock'));\r\n\r\n var removeResource = models.WorkflowBlockManager.createWorkflowBlock(Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource, \"1\", this.workflowDrawingInstance);\r\n removeResource.drawForToolbar(Snap('#removeResourceWorkflowBlock'));\r\n }\r\n\r\n public injectDependencies(\r\n service: services.WorkflowService,\r\n drawingService: services.WorkflowDrawingService,\r\n modalService: any,\r\n scope: directives.IWorkflowWorkspaceScope,\r\n rootScope: ng.IRootScopeService)\r\n {\r\n this.service = service;\r\n this.drawingService = drawingService;\r\n this.modalService = modalService;\r\n this.scope = scope;\r\n this.rootScope = rootScope;\r\n }\r\n\r\n public initialize() {\r\n var svgId = 'mainWorkflowSvg';\r\n\r\n this.alwaysShowGotoArrows = this.service.getAlwaysShowGotoArrowsSetting();\r\n\r\n this.workflowDrawingInstance = new models.WorkflowDrawingInstance(\r\n svgId,\r\n this.service,\r\n this.drawingService,\r\n this.settings,\r\n this.scope,\r\n this.rootScope,\r\n this.statusFlowChangedCallback,\r\n () => this.workflowUpdatedCallback(),\r\n this.modalService);\r\n }\r\n\r\n public workflowUpdatedCallback(): void {\r\n if (!this.processStatusGroup) return;\r\n //this.service.validateStatusGroup(this.processStatusGroup.processStatusGroupDto.id).then((validationIssues) => this.validationIssues = validationIssues);\r\n }\r\n\r\n public setNewSelectedStatus(processConfigId: string, processStatusGroup: models.ProcessStatusGroup, isReadonly: boolean) {\r\n this.processStatusGroup = processStatusGroup;\r\n this.isReadonly = isReadonly;\r\n this.workflowUpdatedCallback();\r\n this.workflowDrawingInstance.initializeData(processConfigId, isReadonly);\r\n }\r\n\r\n public setNewSelectedProcessAction(processConfigId: string, processActionGroup: models.ProcessActionGroup) {\r\n this.processActionGroup = processActionGroup;\r\n var isReadonly = processActionGroup ? processActionGroup.processActionGroupDto.isReadonly : true;\r\n var processActionId = processActionGroup ? processActionGroup.processActionGroupDto.id : undefined;\r\n this.workflowDrawingInstance.initializeData(processConfigId, isReadonly, processActionId);\r\n this.drawProcessAction();\r\n }\r\n\r\n public getSelectedStatusGroup(): models.ProcessStatusGroup {\r\n return this.processStatusGroup;\r\n }\r\n\r\n public drawWorkflow() :void {\r\n if (!this.processStatusGroup.getInitialBlock()) {\r\n this.processStatusGroup.workflowBlocks.push(models.WorkflowBlockManager.createInitialWorkflowBlock(\"1\", this.workflowDrawingInstance));\r\n }\r\n this.attachDrawingInstanceToWorkflowBlocks();\r\n this.workflowDrawingInstance.drawModel(this.processStatusGroup.getInitialBlock());\r\n\r\n this.service.addOrRemoveFeedbackArrowLines();\r\n }\r\n\r\n public drawProcessAction(): void {\r\n if (this.processActionGroup) {\r\n this.attachDrawingInstanceToWorkflowBlocks();\r\n var initialBlock = this.processActionGroup.getInitialBlock();\r\n this.workflowDrawingInstance.drawModel(initialBlock);\r\n\r\n this.settings.xOrigin = 0;\r\n this.settings.yOrigin = 0;\r\n this.changeViewBoxSizeAndOffset();\r\n\r\n this.service.addOrRemoveFeedbackArrowLines();\r\n }\r\n }\r\n\r\n public changeViewBoxSizeAndOffset(): void {\r\n this.drawingService.changeViewBoxSizeAndOffset(this.workflowDrawingInstance.paper, this.settings.xOrigin, this.settings.yOrigin, this.settings.getViewBoxWidth(), this.settings.getViewBoxHeight());\r\n }\r\n\r\n public onDragOver(event: any) {\r\n var selectedWorkflowShapeType: number = parseInt(localStorage.getItem(\"workflowBlockSelected\"));\r\n if (selectedWorkflowShapeType !== 0 && !selectedWorkflowShapeType) return;\r\n\r\n var hoverContext = this.workflowDrawingInstance.events.getWorkflowHoverContext(event);\r\n\r\n this.workflowDrawingInstance.draggingNewShape(selectedWorkflowShapeType, hoverContext);\r\n }\r\n\r\n public onDrop(event: any) {\r\n var hoverContext = this.workflowDrawingInstance.events.getWorkflowHoverContext(event);\r\n var selectedWorkflowShapeType: number = parseInt(localStorage.getItem(\"workflowBlockSelected\"));\r\n if (hoverContext.workflowBlock && (selectedWorkflowShapeType === 0 || selectedWorkflowShapeType)) {\r\n this.workflowDrawingInstance.droppedNewShapeOnDropZone(selectedWorkflowShapeType, hoverContext.workflowBlock);\r\n }\r\n else if (hoverContext.inBetweenFromWorkflowBlock && hoverContext.inBetweenToWorkflowBlock) {\r\n this.workflowDrawingInstance.droppedNewShapeOnInBetweenDropZone(selectedWorkflowShapeType, hoverContext.inBetweenFromWorkflowBlock, hoverContext.inBetweenToWorkflowBlock);\r\n }\r\n }\r\n\r\n private attachDrawingInstanceToWorkflowBlocks(): void {\r\n var workflowBlocks = this.getWorkflowBlocks();\r\n for (var i = 0; i < workflowBlocks.length; i++) {\r\n workflowBlocks[i].setDrawingInstance(this.workflowDrawingInstance);\r\n }\r\n }\r\n\r\n private getWorkflowBlocks(): models.IWorkflowBlock[] {\r\n if (this.processStatusGroup) {\r\n return this.processStatusGroup.workflowBlocks;\r\n }\r\n if (this.processActionGroup) {\r\n return this.processActionGroup.workflowBlocks;\r\n }\r\n return [];\r\n }\r\n }\r\n}","/// \r\n/// \r\n/// \r\n\r\n\"use strict\";\r\n\r\n// Create and register modules\r\nvar modules = [\r\n \"warsApp.controllers\",\r\n \"warsApp.services\",\r\n \"warsApp.factories\",\r\n \"warsApp.filters\",\r\n \"warsApp.directives\"\r\n];\r\n\r\n\r\nmodules.forEach((currentModule) => angular.module(currentModule, []));\r\n\r\n// *** Push ngRoute or $routeProvider won't work ***\r\nmodules.push(\"ui.bootstrap\");\r\nmodules.push(\"ngRoute\");\r\nmodules.push(\"ngCookies\");\r\nmodules.push(\"angular-growl\");\r\nmodules.push(\"angular.filter\");\r\nmodules.push(\"ngResource\");\r\nmodules.push(\"ngSanitize\");\r\nmodules.push(\"blockUI\");\r\nmodules.push(\"breeze.angular\");\r\nmodules.push(\"toggle-switch\");\r\nmodules.push(\"angularModalService\");\r\nmodules.push(\"breeze.directives\");\r\nmodules.push(\"LocalStorageModule\");\r\nmodules.push(\"xeditable\");\r\nmodules.push(\"angular-sortable-view\");\r\nmodules.push(\"ui.ace\");\r\nmodules.push(\"ngJsTree\");\r\nmodules.push(\"ngDragDrop\");\r\nmodules.push(\"ngFileUpload\");\r\nmodules.push(\"ui.tinymce\");\r\nmodules.push(\"colorpicker.module\");\r\nmodules.push(\"ui.mask\");\r\n//modules.push(\"uiGmapgoogle-maps\");\r\nmodules.push(\"ui.bootstrap-slider\");\r\nmodules.push(\"jsonFormatter\");\r\nmodules.push(\"ngTagsInput\");\r\nmodules.push(\"ngAnimate\");\r\nmodules.push(\"frapontillo.gage\");\r\n\r\nvar app = angular.module('warsApp', modules);\r\n\r\n//TODO: do not delete - this needs to be done, but requires the implementation of a synchronous http request in field.ts fieldchangedinternal()\r\n//app.factory('beforeUnload', [\"$rootScope\", \"$window\", ($rootScope, $window) => {\r\n// // Events are broadcast outside the Scope Lifecycle\r\n// $window.onbeforeunload = e => {\r\n// $rootScope.$broadcast('onBeforeUnload');\r\n// };\r\n// return {};\r\n// }\r\n//]);\r\n//app.run(beforeUnload => {\r\n// // Must invoke the service at least once\r\n//});\r\n\r\napp.run([\"breeze\", breeze => { }]);\r\napp.run([\"editableOptions\", editableOptions => {\r\n editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'\r\n}]);\r\n\r\napp.config(['growlProvider', growlProvider => {\r\n growlProvider.globalPosition('top-center');\r\n}]);\r\n\r\napp.config(['localStorageServiceProvider', localStorageServiceProvider => {\r\n localStorageServiceProvider.setStorageType('sessionStorage');\r\n}]);\r\n\r\n//app.config([\"uiGmapGoogleMapApiProvider\", uiGmapGoogleMapApiProvider => {\r\n// uiGmapGoogleMapApiProvider.configure({\r\n// key: 'AIzaSyA4Wfku2a5uTM89QuwJHrvXAfAT1q56ApE',\r\n// v: '3.20', //defaults to latest 3.X anyhow\r\n// libraries: 'weather,geometry,visualization'\r\n// });\r\n//}]);\r\n\r\nvar serviceBase = window.location.protocol + \"//\" + window.location.host + window.location.pathname;\r\nvar length = serviceBase.length;\r\nif (serviceBase[length - 1] !== \"/\") serviceBase += \"/\";\r\n\r\nlocalStorage.setItem('baseUrl', serviceBase);\r\napp.constant('ngAuthSettings', {\r\n apiServiceBaseUri: serviceBase,\r\n clientId: '89740123880-t1le136djqfmeeu3o1ahu2qrh9jelggt.apps.googleusercontent.com'\r\n});\r\n\r\napp.config(['$httpProvider', function ($httpProvider) {\r\n $httpProvider.interceptors.push('authInterceptorService');\r\n}]);\r\n\r\n// Log out the user when application loads. Just doing this so regening the db doesn't cause issues.\r\n//app.run(['authService', authService => { authService.logOut(); }]);\r\n\r\nmodule warsApp {\r\n\r\n\r\n // *** Modules need to be populated to be correctly defined, otherwise they will give warnings. null fixes this ***/\r\n export module controllers {\r\n null;\r\n }\r\n\r\n export module directives {\r\n null;\r\n }\r\n\r\n export module factories {\r\n null;\r\n }\r\n\r\n export module filters {\r\n null;\r\n }\r\n\r\n export module services {\r\n null;\r\n }\r\n\r\n export module models{\r\n null;\r\n }\r\n\r\n export interface IController {\r\n }\r\n\r\n export interface IDirective {\r\n restrict: string;\r\n link($scope: ng.IScope, element: JQuery, attrs: ng.IAttributes, controller: IController): any;\r\n }\r\n\r\n export interface IFilter {\r\n filter(input: any, ...args: any[]): any;\r\n }\r\n\r\n export interface IService {\r\n }\r\n\r\n // Call constructor with arguments in args array split out\r\n function construct(constructorFunction, args) {\r\n function F(): void {\r\n constructorFunction.apply(this, args);\r\n }\r\n F.prototype = constructorFunction.prototype;\r\n return new F();\r\n }\r\n\r\n /**\r\n * Register new controller.\r\n *\r\n * @param className\r\n * @param services\r\n */\r\n export function registerController(className: string, services = []) {\r\n var controller = className[0].toLowerCase() + className.slice(1);\r\n services.push(warsApp.controllers[className]);\r\n angular.module(\"warsApp.controllers\").controller(controller, services);\r\n }\r\n\r\n /**\r\n * Register new filter.\r\n *\r\n * @param className\r\n * @param services\r\n */\r\n export function registerFilter(className: string, services = []) {\r\n var filterFunctionName = className[0].toLowerCase() + className.slice(1);\r\n services.push(\r\n (...filterDependencies: any[]) => {\r\n var realInstance = construct(warsApp.filters[className], filterDependencies);\r\n return (...filterArguments: string[]) => {\r\n return realInstance.filter.apply(realInstance, filterArguments);\r\n }\r\n });\r\n angular.module(\"warsApp.filters\").filter(filterFunctionName, services);\r\n }\r\n\r\n \r\n /**\r\n * Register new directive.\r\n *\r\n * @param className\r\n * @param services\r\n */\r\n export function registerDirective(className: string, services = []) {\r\n var directive = className[0].toLowerCase() + className.slice(1);\r\n services.push(function () { return construct(warsApp.directives[className], arguments); });\r\n angular.module(\"warsApp.directives\").directive(directive, services);\r\n }\r\n\r\n /**\r\n * Register new service.\r\n *\r\n * @param className\r\n * @param services\r\n */\r\n export function registerService(className: string, services = []) {\r\n var service = className[0].toLowerCase() + className.slice(1);\r\n services.push(function () { return construct(warsApp.services[className], arguments); });\r\n angular.module(\"warsApp.services\").factory(service, services);\r\n }\r\n}\r\nbreeze.NamingConvention.camelCase.setAsDefault();\r\n\r\nvar warsBreeze = {\r\n entityManager: new breeze.EntityManager(\"breeze/breeze\")\r\n};\r\n\r\nangular.element(document).ready(() => { angular.bootstrap(document, ['warsApp']); });\r\n\r\n(function () {\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"Condition\", warsApp.models.Condition);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"ObjectSchema\", warsApp.models.ObjectSchema);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"SchemaProperty\", warsApp.models.SchemaProperty);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"DataOperation\", warsApp.models.DataOperation);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"FormSection\", warsApp.models.FormSection);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"ValueOperation\", warsApp.models.ValueOperation);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"ObjectQueryPredicate\", warsApp.models.ObjectQueryPredicate);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"ObjectQueryProjection\", warsApp.models.ObjectQueryProjection);\r\n //warsBreeze.entityManager.metadataStore.fetchMetadata(\"breeze/Breeze\")\r\n //.then((rawMetadata) => {\r\n // angular.element(document).ready(() => {\r\n // angular.bootstrap(document, ['warsApp']);\r\n // });\r\n //},(failureReason) => {\r\n // alert(failureReason);\r\n //});\r\n\r\n})();","/// \r\n/// \r\n/// \r\n\"use strict\";\r\n// Create and register modules\r\nvar modules = [\r\n \"warsApp.controllers\",\r\n \"warsApp.services\",\r\n \"warsApp.factories\",\r\n \"warsApp.filters\",\r\n \"warsApp.directives\"\r\n];\r\nmodules.forEach(function (currentModule) { return angular.module(currentModule, []); });\r\n// *** Push ngRoute or $routeProvider won't work ***\r\nmodules.push(\"ui.bootstrap\");\r\nmodules.push(\"ngRoute\");\r\nmodules.push(\"ngCookies\");\r\nmodules.push(\"angular-growl\");\r\nmodules.push(\"angular.filter\");\r\nmodules.push(\"ngResource\");\r\nmodules.push(\"ngSanitize\");\r\nmodules.push(\"blockUI\");\r\nmodules.push(\"breeze.angular\");\r\nmodules.push(\"toggle-switch\");\r\nmodules.push(\"angularModalService\");\r\nmodules.push(\"breeze.directives\");\r\nmodules.push(\"LocalStorageModule\");\r\nmodules.push(\"xeditable\");\r\nmodules.push(\"angular-sortable-view\");\r\nmodules.push(\"ui.ace\");\r\nmodules.push(\"ngJsTree\");\r\nmodules.push(\"ngDragDrop\");\r\nmodules.push(\"ngFileUpload\");\r\nmodules.push(\"ui.tinymce\");\r\nmodules.push(\"colorpicker.module\");\r\nmodules.push(\"ui.mask\");\r\n//modules.push(\"uiGmapgoogle-maps\");\r\nmodules.push(\"ui.bootstrap-slider\");\r\nmodules.push(\"jsonFormatter\");\r\nmodules.push(\"ngTagsInput\");\r\nmodules.push(\"ngAnimate\");\r\nmodules.push(\"frapontillo.gage\");\r\nvar app = angular.module('warsApp', modules);\r\n//TODO: do not delete - this needs to be done, but requires the implementation of a synchronous http request in field.ts fieldchangedinternal()\r\n//app.factory('beforeUnload', [\"$rootScope\", \"$window\", ($rootScope, $window) => {\r\n// // Events are broadcast outside the Scope Lifecycle\r\n// $window.onbeforeunload = e => {\r\n// $rootScope.$broadcast('onBeforeUnload');\r\n// };\r\n// return {};\r\n// }\r\n//]);\r\n//app.run(beforeUnload => {\r\n// // Must invoke the service at least once\r\n//});\r\napp.run([\"breeze\", function (breeze) { }]);\r\napp.run([\"editableOptions\", function (editableOptions) {\r\n editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'\r\n }]);\r\napp.config(['growlProvider', function (growlProvider) {\r\n growlProvider.globalPosition('top-center');\r\n }]);\r\napp.config(['localStorageServiceProvider', function (localStorageServiceProvider) {\r\n localStorageServiceProvider.setStorageType('sessionStorage');\r\n }]);\r\n//app.config([\"uiGmapGoogleMapApiProvider\", uiGmapGoogleMapApiProvider => {\r\n// uiGmapGoogleMapApiProvider.configure({\r\n// key: 'AIzaSyA4Wfku2a5uTM89QuwJHrvXAfAT1q56ApE',\r\n// v: '3.20', //defaults to latest 3.X anyhow\r\n// libraries: 'weather,geometry,visualization'\r\n// });\r\n//}]);\r\nvar serviceBase = window.location.protocol + \"//\" + window.location.host + window.location.pathname;\r\nvar length = serviceBase.length;\r\nif (serviceBase[length - 1] !== \"/\")\r\n serviceBase += \"/\";\r\nlocalStorage.setItem('baseUrl', serviceBase);\r\napp.constant('ngAuthSettings', {\r\n apiServiceBaseUri: serviceBase,\r\n clientId: '89740123880-t1le136djqfmeeu3o1ahu2qrh9jelggt.apps.googleusercontent.com'\r\n});\r\napp.config(['$httpProvider', function ($httpProvider) {\r\n $httpProvider.interceptors.push('authInterceptorService');\r\n }]);\r\n// Log out the user when application loads. Just doing this so regening the db doesn't cause issues.\r\n//app.run(['authService', authService => { authService.logOut(); }]);\r\nvar warsApp;\r\n(function (warsApp) {\r\n // *** Modules need to be populated to be correctly defined, otherwise they will give warnings. null fixes this ***/\r\n var controllers;\r\n (function (controllers) {\r\n null;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n var directives;\r\n (function (directives) {\r\n null;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n var factories;\r\n (function (factories) {\r\n null;\r\n })(factories = warsApp.factories || (warsApp.factories = {}));\r\n var filters;\r\n (function (filters) {\r\n null;\r\n })(filters = warsApp.filters || (warsApp.filters = {}));\r\n var services;\r\n (function (services) {\r\n null;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n var models;\r\n (function (models) {\r\n null;\r\n })(models = warsApp.models || (warsApp.models = {}));\r\n // Call constructor with arguments in args array split out\r\n function construct(constructorFunction, args) {\r\n function F() {\r\n constructorFunction.apply(this, args);\r\n }\r\n F.prototype = constructorFunction.prototype;\r\n return new F();\r\n }\r\n /**\r\n * Register new controller.\r\n *\r\n * @param className\r\n * @param services\r\n */\r\n function registerController(className, services) {\r\n if (services === void 0) { services = []; }\r\n var controller = className[0].toLowerCase() + className.slice(1);\r\n services.push(warsApp.controllers[className]);\r\n angular.module(\"warsApp.controllers\").controller(controller, services);\r\n }\r\n warsApp.registerController = registerController;\r\n /**\r\n * Register new filter.\r\n *\r\n * @param className\r\n * @param services\r\n */\r\n function registerFilter(className, services) {\r\n if (services === void 0) { services = []; }\r\n var filterFunctionName = className[0].toLowerCase() + className.slice(1);\r\n services.push(function () {\r\n var filterDependencies = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n filterDependencies[_i] = arguments[_i];\r\n }\r\n var realInstance = construct(warsApp.filters[className], filterDependencies);\r\n return function () {\r\n var filterArguments = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n filterArguments[_i] = arguments[_i];\r\n }\r\n return realInstance.filter.apply(realInstance, filterArguments);\r\n };\r\n });\r\n angular.module(\"warsApp.filters\").filter(filterFunctionName, services);\r\n }\r\n warsApp.registerFilter = registerFilter;\r\n /**\r\n * Register new directive.\r\n *\r\n * @param className\r\n * @param services\r\n */\r\n function registerDirective(className, services) {\r\n if (services === void 0) { services = []; }\r\n var directive = className[0].toLowerCase() + className.slice(1);\r\n services.push(function () { return construct(warsApp.directives[className], arguments); });\r\n angular.module(\"warsApp.directives\").directive(directive, services);\r\n }\r\n warsApp.registerDirective = registerDirective;\r\n /**\r\n * Register new service.\r\n *\r\n * @param className\r\n * @param services\r\n */\r\n function registerService(className, services) {\r\n if (services === void 0) { services = []; }\r\n var service = className[0].toLowerCase() + className.slice(1);\r\n services.push(function () { return construct(warsApp.services[className], arguments); });\r\n angular.module(\"warsApp.services\").factory(service, services);\r\n }\r\n warsApp.registerService = registerService;\r\n})(warsApp || (warsApp = {}));\r\nbreeze.NamingConvention.camelCase.setAsDefault();\r\nvar warsBreeze = {\r\n entityManager: new breeze.EntityManager(\"breeze/breeze\")\r\n};\r\nangular.element(document).ready(function () { angular.bootstrap(document, ['warsApp']); });\r\n(function () {\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"Condition\", warsApp.models.Condition);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"ObjectSchema\", warsApp.models.ObjectSchema);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"SchemaProperty\", warsApp.models.SchemaProperty);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"DataOperation\", warsApp.models.DataOperation);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"FormSection\", warsApp.models.FormSection);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"ValueOperation\", warsApp.models.ValueOperation);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"ObjectQueryPredicate\", warsApp.models.ObjectQueryPredicate);\r\n warsBreeze.entityManager.metadataStore.registerEntityTypeCtor(\"ObjectQueryProjection\", warsApp.models.ObjectQueryProjection);\r\n //warsBreeze.entityManager.metadataStore.fetchMetadata(\"breeze/Breeze\")\r\n //.then((rawMetadata) => {\r\n // angular.element(document).ready(() => {\r\n // angular.bootstrap(document, ['warsApp']);\r\n // });\r\n //},(failureReason) => {\r\n // alert(failureReason);\r\n //});\r\n})();\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class HttpHandlerService {\r\n\r\n httpService: ng.IHttpService;\r\n handlerUrl: string;\r\n\r\n constructor($http: ng.IHttpService) {\r\n this.httpService = $http;\r\n }\r\n\r\n protected useGetHandler(params: any): ng.IPromise {\r\n var result: ng.IPromise = this.httpService.get(this.handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n return result;\r\n }\r\n\r\n protected usePostHandler(params: any): ng.IPromise {\r\n var result: ng.IPromise = this.httpService.post(this.handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n return result;\r\n }\r\n\r\n protected usePutHandler(params: any): ng.IPromise {\r\n var result: ng.IPromise = this.httpService.put(this.handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n return result;\r\n }\r\n\r\n protected useDeleteHandler(params: any): ng.IPromise {\r\n var result: ng.IPromise = this.httpService.delete(this.handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n return result;\r\n }\r\n\r\n private handlerResponded(response: any, params: any): any {\r\n response.data.requestParams = params;\r\n return response.data;\r\n }\r\n }\r\n}","/// \r\n\r\nmodule warsApp.services {\r\n\r\n export class ApplicationCodeService {\r\n private logType: string = \"ApplicationCodeService\";\r\n\r\n private url = './api/Code/GetCodes';\r\n\r\n private delay = 200;\r\n private holdingForServiceCall = false;\r\n private applicationCodesToQuery: models.ApplicationCodePromise[];\r\n private applicationCodesBeingQueried: models.ApplicationCodePromise[];\r\n\r\n\r\n constructor(\r\n private $http: ng.IHttpService,\r\n private $q: angular.IQService,\r\n private $timeout: angular.ITimeoutService,\r\n private manageSystemCodeService: services.ManageSystemCodesService)\r\n {\r\n this.applicationCodesToQuery = [];\r\n this.applicationCodesBeingQueried = [];\r\n }\r\n\r\n public getApplicationCodesForEnum(enumerationName: string): angular.IPromise {\r\n var model = new models.GetCodeModel();\r\n model.enumName = enumerationName;\r\n model.isEnum = true;\r\n\r\n return this.registerGetExecutionCodesCall(model);\r\n }\r\n\r\n public getProcessLevelApplicationCodesForExecution(codeGroupId: string, processConfigId: string, includeInactiveCodes?: boolean): angular.IPromise\r\n {\r\n var model = new models.GetCodeModel();\r\n model.codeGroupId = codeGroupId;\r\n model.processConfigId = processConfigId;\r\n model.isEnum = false;\r\n services.WarsLogger.logDebug(\"Getting Process Level Application Codes for Code: \" + codeGroupId + \", Process Config ID: \" + processConfigId, this.logType);\r\n\r\n return this.registerGetExecutionCodesCall(model, includeInactiveCodes);\r\n }\r\n\r\n public getSystemLevelApplicationCodesForExecution(codeGroupId: string, includeInactiveCodes?: boolean): angular.IPromise {\r\n var model = new models.GetCodeModel();\r\n model.codeGroupId = codeGroupId;\r\n model.isEnum = false;\r\n\r\n return this.registerGetExecutionCodesCall(model, includeInactiveCodes);\r\n }\r\n\r\n public getApplicationCodesForConfiguration(codeGroupId: string, includeInactiveCodes?: boolean): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.manageSystemCodeService.getCodeGroup(codeGroupId).then(\r\n (configCodeGroup) => {\r\n var codeGroup = new models.CodeGroup();\r\n codeGroup.groupName = configCodeGroup.id;\r\n codeGroup.codes = [];\r\n\r\n for (var i = 0; i < configCodeGroup.codes.length; i++) {\r\n var currentCode = configCodeGroup.codes[i];\r\n if (!includeInactiveCodes && !currentCode.isActive) continue;\r\n var applicationCode = new models.ApplicationCode(\r\n currentCode.uniqueIdentifier,\r\n currentCode.parentCodeGroup_id,\r\n currentCode.shortDescription,\r\n currentCode.longDescription,\r\n currentCode.isActive);\r\n codeGroup.codes.push(applicationCode);\r\n }\r\n d.resolve(codeGroup.codes);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n private registerGetExecutionCodesCall(model: models.GetCodeModel, includeInactiveCodes?: boolean): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n if (includeInactiveCodes === undefined) includeInactiveCodes = false;\r\n\r\n if (!this.holdingForServiceCall) {\r\n this.holdingForServiceCall = true;\r\n this.$timeout(() => this.makeServiceCall(), this.delay);\r\n }\r\n\r\n var match = Enumerable.from(this.applicationCodesToQuery).singleOrDefault(i => i.model.equals(model) && i.includeInactiveCodes === includeInactiveCodes);\r\n if (match) return match.deferred.promise;\r\n\r\n this.applicationCodesToQuery.push(new models.ApplicationCodePromise(model, includeInactiveCodes, d));\r\n return d.promise;\r\n }\r\n\r\n private makeServiceCall(): void {\r\n var self = this;\r\n this.applicationCodesBeingQueried = angular.copy(this.applicationCodesToQuery);\r\n this.applicationCodesToQuery = [];\r\n this.holdingForServiceCall = false;\r\n\r\n var codesAlreadyCached = Enumerable.from(this.applicationCodesBeingQueried).select(i => i.model).where(c => c.getName() != null && this.codeGroupCache[c.getName()]).distinct().toArray(); \r\n var getCodeModels = Enumerable.from(this.applicationCodesBeingQueried).select(i => i.model).where(c => c.getName() == null || !this.codeGroupCache[c.getName()]).distinct().toArray();\r\n\r\n var codeIdAndEnumNames = Enumerable.from(getCodeModels).select(i => i.getName()).toArray();\r\n\r\n services.WarsLogger.logInfo(\"Querying for the following application codes: \" + codeIdAndEnumNames, this.logType);\r\n\r\n if (!getCodeModels || getCodeModels.length === 0) {\r\n self.processServiceCallResponse([], codesAlreadyCached);\r\n } else {\r\n this.$http.post(this.url, { codesToRetrieve: getCodeModels })\r\n .then((result: any) => self.processServiceCallResponse(result.data, codesAlreadyCached));\r\n }\r\n } \r\n\r\n private codeGroupCache:any = {};\r\n\r\n private processServiceCallResponse(codeGroups: models.CodeGroup[],codesCached:models.GetCodeModel[]) {\r\n\r\n for (var index = 0; index < this.applicationCodesBeingQueried.length; index++) {\r\n\r\n var currentCodeGroup = this.applicationCodesBeingQueried[index].model.getName();\r\n var includeInactiveCodes = this.applicationCodesBeingQueried[index].includeInactiveCodes;\r\n\r\n var matchingCodeGroup = Enumerable.from(codeGroups).firstOrDefault(i => i.groupName === currentCodeGroup);\r\n var matchingCachedCodeGroup = Enumerable.from(codesCached).firstOrDefault(i => i.getName()=== currentCodeGroup);;\r\n if (matchingCachedCodeGroup) {\r\n this.applicationCodesBeingQueried[index].deferred.resolve(this.codeGroupCache[currentCodeGroup]);\r\n continue;\r\n }\r\n else if (!matchingCodeGroup) {\r\n this.applicationCodesBeingQueried[index].deferred.resolve([]);\r\n return;\r\n }\r\n var matchingCodesInCodeGroup = matchingCodeGroup.codes;\r\n\r\n if (!includeInactiveCodes) {\r\n matchingCodesInCodeGroup = Enumerable.from(matchingCodesInCodeGroup).where(i => i.isActive).toArray();\r\n }\r\n\r\n if (matchingCodesInCodeGroup === undefined || matchingCodesInCodeGroup === null || matchingCodesInCodeGroup.length === 0) {\r\n this.applicationCodesBeingQueried[index].deferred.reject();\r\n } else {\r\n services.WarsLogger.logInfo(matchingCodesInCodeGroup.length + \" Application codes returned from server for code group: \" + currentCodeGroup, this.logType);\r\n if (this.applicationCodesBeingQueried[index].model.codeGroupId){\r\n this.codeGroupCache[currentCodeGroup] = matchingCodesInCodeGroup;\r\n }\r\n this.applicationCodesBeingQueried[index].deferred.resolve(matchingCodesInCodeGroup);\r\n }\r\n }\r\n }\r\n\r\n public buildCodeDropDownOptions(\r\n codes: models.ApplicationCode[],\r\n maintainOrder: boolean,\r\n context?: models.CodeDropDownContext,\r\n defaultOption?: models.CodeDropDownItem): models.CodeDropDownItem[]\r\n {\r\n if (context) {\r\n if (context.removeSpecifiedOptions) {\r\n codes = Enumerable.from(codes).where(i => context.removeSpecifiedOptions.indexOf(i.uniqueIdentifier) === -1).toArray();\r\n }\r\n if (context.includeSpecifiedOptionsOnly) {\r\n codes = Enumerable.from(codes).where(i => context.includeSpecifiedOptionsOnly.indexOf(i.uniqueIdentifier) !== -1).toArray();\r\n }\r\n }\r\n\r\n var dropDownItems = new Array();\r\n if (defaultOption) dropDownItems.push(defaultOption);\r\n var options = Enumerable.from(codes).select(i => new models.CodeDropDownItem(i.shortDescription, i.uniqueIdentifier)).toArray();\r\n\r\n if (!maintainOrder) {\r\n options = Enumerable.from(options).orderBy(i => i.text).toArray();\r\n }\r\n\r\n dropDownItems = dropDownItems.concat(options);\r\n return dropDownItems;\r\n }\r\n\r\n buildEnumDropDownOptions(\r\n codes: models.ApplicationCode[],\r\n maintainOrder: boolean,\r\n context?: models.EnumDropDownContext,\r\n defaultOption?: models.EnumDropDownItem): models.EnumDropDownItem[]\r\n {\r\n if (context) {\r\n if (context.removeSpecifiedOptions) {\r\n codes = Enumerable.from(codes).where(i => context.removeSpecifiedOptions.indexOf(parseInt(i.uniqueIdentifier)) === -1).toArray();\r\n }\r\n if (context.includeSpecifiedOptionsOnly) {\r\n codes = Enumerable.from(codes).where(i => context.includeSpecifiedOptionsOnly.indexOf(parseInt(i.uniqueIdentifier)) !== -1).toArray();\r\n }\r\n }\r\n\r\n var dropDownItems = new Array();\r\n if (defaultOption) dropDownItems.push(defaultOption);\r\n var options = Enumerable.from(codes).select(i => new models.EnumDropDownItem(i.shortDescription, parseInt(i.uniqueIdentifier))).toArray();\r\n\r\n if (!maintainOrder) {\r\n options = Enumerable.from(options).orderBy(i => i.text).toArray();\r\n }\r\n\r\n dropDownItems = dropDownItems.concat(options);\r\n return dropDownItems;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ApplicationCodeService', ['$http', '$q', '$timeout', \"manageSystemCodesService\"]);","/// \r\nmodule warsApp.services {\r\n \r\n export class UtilityService {\r\n\r\n public includeSpecifiedOptionsOnly(allOptions, includeList) {\r\n var restrictedList = [];\r\n for (var x = 0; x < allOptions.length; x++) {\r\n for (var y = 0; y < includeList.length; y++) {\r\n if (allOptions[x].value === includeList[y]) {\r\n restrictedList.push(allOptions[x]);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return restrictedList;\r\n }\r\n\r\n public removeSpecifiedOptions(allOptions, excludeList) {\r\n var restrictedList = [];\r\n var addToList = true;\r\n for (var x = 0; x < allOptions.length; x++) {\r\n for (var y = 0; y < excludeList.length; y++) {\r\n if (allOptions[x].value == excludeList[y]) {\r\n addToList = false;\r\n break;\r\n }\r\n }\r\n if (addToList) {\r\n restrictedList.push(allOptions[x]);\r\n }\r\n addToList = true;\r\n }\r\n\r\n return restrictedList;\r\n }\r\n\r\n public safeConvertDate(field) {\r\n if (!field) return field;\r\n var dateWithoutTimeZoneOffset = new Date(field);\r\n var millisecondsSinceEpoc = dateWithoutTimeZoneOffset.getTime() + this.getTimeZoneOffsetInMilliseconds(dateWithoutTimeZoneOffset);\r\n return new Date(millisecondsSinceEpoc);\r\n }\r\n\r\n private getTimeZoneOffsetInMilliseconds(date: Date) {\r\n return date.getTimezoneOffset() * 60000;\r\n }\r\n\r\n public convertObjectToQueryString(obj) {\r\n var str = [];\r\n for (var p in obj)\r\n if (obj.hasOwnProperty(p)) {\r\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\r\n }\r\n return str.join(\"&\");\r\n }\r\n\r\n public static generateGuidComb(time?) {\r\n // Create a pseudo-Guid whose trailing 6 bytes (12 hex digits) are timebased\r\n // Start either with the given getTime() value, n, or get the current time in ms.\r\n // Each new Guid is greater than next if more than 1ms passes\r\n // See http://thatextramile.be/blog/2009/05/using-the-guidcomb-identifier-strategy\r\n // Based on breeze.core.getUuid which is based on this StackOverflow answer\r\n // http://stackoverflow.com/a/2117523/200253 \r\n // Convert time value to hex: n.toString(16)\r\n // Make sure it is 6 bytes long: ('00'+ ...).slice(-12) ... from the rear\r\n // Replace LAST 6 bytes (12 hex digits) of regular Guid (that's where they sort in a Db)\r\n // Play with this in jsFiddle: http://jsfiddle.net/wardbell/qS8aN/\r\n var timePart = ('00' + (time || (new Date().getTime())).toString(16)).slice(-12);\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-'.replace(/[xy]/g, function (c) {\r\n var resultArray = new Uint32Array(1);\r\n var randomValue = window.crypto.getRandomValues(resultArray)[0] / 4294967295 /* Max 32 bit number */;\r\n //var randomValue2 = Math.random();\r\n var r = randomValue * 16 | 0,\r\n v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n }) + timePart;\r\n }\r\n\r\n public static isNullOrWhiteSpace(str) {\r\n return (!str || str.length === 0 || /^\\s*$/.test(str));\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('UtilityService', []);","/// \r\nmodule warsApp.services {\r\n\r\n export class DataService {\r\n private _logType: string = \"DataService\";\r\n\r\n protected $q: angular.IQService;\r\n\r\n protected breezeModule: typeof breeze;\r\n protected entityManager: breeze.EntityManager;\r\n\r\n private serviceName = \"breeze/Breeze\";\r\n private static isSaving = false;\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n this.breezeModule = injectedBreeze;\r\n this.breezeModule.config.initializeAdapterInstance(\"modelLibrary\", \"backingStore\", true); // backingStore is the modelLibrary for Angular\r\n this.entityManager = warsBreeze.entityManager; // gets metadata from the service\r\n this.$q = $q;\r\n }\r\n\r\n protected GetEntityType(): breeze.EntityType {\r\n return null;\r\n }\r\n\r\n public createNewEntity(entityName: string, config?: any): TY {\r\n var configObject = config ? config : {};\r\n configObject[\"id\"] = UtilityService.generateGuidComb();\r\n return warsBreeze.entityManager.createEntity(entityName, configObject);\r\n }\r\n\r\n public createNewDetachedEntity(entityName: string): T {\r\n return warsBreeze.entityManager.createEntity(entityName, {}, breeze.EntityState.Detached);\r\n }\r\n\r\n public loadMetaData(): void {\r\n warsBreeze.entityManager.metadataStore.fetchMetadata(this.serviceName);\r\n }\r\n\r\n public fMetaData(): breeze.promises.IPromise {\r\n return warsBreeze.entityManager.metadataStore.fetchMetadata(this.serviceName);\r\n }\r\n\r\n // return an array of entities that have changes\r\n public getChanges(entityType) : T[] {\r\n return warsBreeze.entityManager.getChanges(entityType);\r\n }\r\n \r\n // subscribe to the entityChanged event\r\n public subscribeChanges(callback) : void {\r\n warsBreeze.entityManager.entityChanged.subscribe(callback);\r\n }\r\n\r\n public subscribeHasChanges(callback): void {\r\n warsBreeze.entityManager.hasChangesChanged.subscribe(callback);\r\n }\r\n\r\n public rejectChanges(entity?: T) : void {\r\n if (entity === undefined) {\r\n warsBreeze.entityManager.rejectChanges();\r\n } else if (entity !== null) {\r\n entity.entityAspect.rejectChanges();\r\n }\r\n }\r\n\r\n public resolveDeletesAndUpdatesPerformedOutsideOfBreeze(deleteResult: Wars.Domain.Model.Dtos.Delete.DeleteResult): void {\r\n if (deleteResult.wasSuccessful) {\r\n for (var index = 0; index < deleteResult.deletedOrUpdatedEntities.length; index++) {\r\n let deleteEntry = deleteResult.deletedOrUpdatedEntities[index];\r\n let cachedEntities = warsBreeze.entityManager.getEntities(deleteEntry.entityName);\r\n let deletedCachedEntities = Enumerable.from(cachedEntities)\r\n .where(i => deleteEntry.entityIds.indexOf((i).id) !== -1)\r\n .toArray();\r\n deletedCachedEntities.forEach((entity) => warsBreeze.entityManager.detachEntity(entity));\r\n }\r\n }\r\n }\r\n\r\n public resolveDeletesPerformedOutsideOfBreeze(combinedDeleteResult: Wars.Domain.Model.Dtos.Delete.CombinedDeleteResult): void {\r\n if (combinedDeleteResult.wasSuccessful) {\r\n for (var index = 0; index < combinedDeleteResult.deletedEntities.length; index++) {\r\n let deleteEntry = combinedDeleteResult.deletedEntities[index];\r\n let cachedEntities = warsBreeze.entityManager.getEntities(deleteEntry.entityName);\r\n let deletedCachedEntities = Enumerable.from(cachedEntities)\r\n .where(i => deleteEntry.entityIds.indexOf((i).id) !== -1)\r\n .toArray();\r\n deletedCachedEntities.forEach((entity) => warsBreeze.entityManager.detachEntity(entity));\r\n }\r\n }\r\n }\r\n\r\n public clearCachedEntities(entityName: string): void {\r\n var cachedEntities = warsBreeze.entityManager.getEntities(entityName); \r\n cachedEntities.forEach((entity) => { warsBreeze.entityManager.detachEntity(entity); });\r\n }\r\n\r\n public clearCache() : void{\r\n warsBreeze.entityManager.clear();\r\n }\r\n\r\n public hasChanges(): boolean {\r\n return warsBreeze.entityManager.hasChanges();\r\n }\r\n\r\n public deleteEntitiesWithDeleteServiceWithoutWarning(deleteService: services.DeleteService): ng.IPromise {\r\n\r\n var defer = this.$q.defer();\r\n\r\n var deletedEntities = this.getPersistedEntitiesMarkedForDeletion();\r\n\r\n var deleteInfo: Wars.Domain.Model.Dtos.Delete.DeleteInfoDto = {\r\n entitiesToDelete: []\r\n } \r\n\r\n for (let i = 0; i < deletedEntities.length; i++) {\r\n var entity = deletedEntities[i];\r\n var keyString = entity.entityAspect.getKey().toString();\r\n var keyBeginIndex = keyString.indexOf(\"-\");\r\n var key = keyString.substr(keyBeginIndex + 1);\r\n\r\n deleteInfo.entitiesToDelete.push({ name: entity.entityType.shortName, id: key });\r\n }\r\n\r\n deleteService.deleteBatchRecursivelyWithoutWarning(deleteInfo, true).then(\r\n (combinedDeleteResult: Wars.Domain.Model.Dtos.Delete.CombinedDeleteResult) => {\r\n this.resolveDeletesPerformedOutsideOfBreeze(combinedDeleteResult);\r\n defer.resolve(true);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n private getPersistedEntitiesMarkedForDeletion() : breeze.Entity[] {\r\n var itemsMarkedForDeletion: breeze.Entity[] = [] ;\r\n var changes = warsBreeze.entityManager.getChanges();\r\n for (var i = 0; i < changes.length; i++) {\r\n if (changes[i].entityAspect.entityState.isDeleted()) {\r\n itemsMarkedForDeletion.push(changes[i]);\r\n }\r\n }\r\n return itemsMarkedForDeletion;\r\n }\r\n\r\n public saveChanges(entities: breeze.Entity[], successCallback?: any, failCallback?: any) : void {\r\n if (warsBreeze.entityManager.hasChanges()) {\r\n if (DataService.isSaving) {\r\n setTimeout(() => this.saveChanges(entities, successCallback, failCallback), 50);\r\n return;\r\n }\r\n\r\n DataService.isSaving = true;\r\n\r\n warsBreeze.entityManager.saveChanges(entities).then(\r\n successfulSaveResult => {\r\n DataService.isSaving = false;\r\n if (successCallback) {\r\n successCallback(successfulSaveResult.entities);\r\n }\r\n },\r\n failureReason => {\r\n DataService.isSaving = false;\r\n services.WarsLogger.logError(\"Breeze Save Changes Failed: \" + failureReason, this._logType);\r\n if (failCallback) {\r\n failCallback(failureReason);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public saveAllChanges(successCallback?: any, failCallback?: any, saveOptions?: any): void {\r\n if (warsBreeze.entityManager.hasChanges()) {\r\n if (DataService.isSaving) {\r\n setTimeout(() => this.saveAllChanges(successCallback, failCallback, saveOptions), 50);\r\n return;\r\n }\r\n\r\n DataService.isSaving = true;\r\n\r\n warsBreeze.entityManager.saveChanges(null, saveOptions).then(\r\n successfulSaveResult => {\r\n DataService.isSaving = false;\r\n if (successCallback) {\r\n successCallback(successfulSaveResult.entities);\r\n }\r\n },\r\n failureReason => {\r\n DataService.isSaving = false;\r\n\r\n services.WarsLogger.logError(\"Breeze Save All Changes Failed: \" + failureReason, this._logType);\r\n\r\n if (failCallback) {\r\n failCallback(failureReason);\r\n }\r\n else{\r\n console.error(failureReason);\r\n }\r\n });\r\n } else {\r\n if (successCallback) {\r\n successCallback([]);\r\n }\r\n }\r\n }\r\n\r\n protected executeQuery(query: breeze.EntityQuery): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n warsBreeze.entityManager.executeQuery(query)\r\n .then(\r\n (queryResult: breeze.QueryResult) => { d.resolve(queryResult.results); },\r\n (reason: any) => {\r\n services.WarsLogger.logError(\"Breeze Query Rejected: \" + reason, this._logType);\r\n d.reject(reason);\r\n })\r\n .catch(e => {\r\n console.error(e);\r\n });\r\n \r\n\r\n return d.promise;\r\n }\r\n\r\n protected fetch(query: breeze.EntityQuery): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n warsBreeze.entityManager.executeQuery(query)\r\n .then(\r\n (queryResult: breeze.QueryResult) => { d.resolve(queryResult.results[0]); },\r\n (reason: any) => {\r\n services.WarsLogger.logError(\"Breeze Fetch Rejected: \" + reason, this._logType);\r\n d.reject(reason);\r\n })\r\n .catch(e => {\r\n console.error(e);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public fetchById(id: string, entityName: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n warsBreeze.entityManager.fetchEntityByKey(entityName, id, true).then(r => {\r\n d.resolve(r.entity);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public handlerResponded(response: any, params: any): any {\r\n response.data.requestParams = params;\r\n return response.data;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('DataService', ['breeze', '$q']);","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var DataService = /** @class */ (function () {\r\n function DataService(injectedBreeze, $q) {\r\n this._logType = \"DataService\";\r\n this.serviceName = \"breeze/Breeze\";\r\n this.breezeModule = injectedBreeze;\r\n this.breezeModule.config.initializeAdapterInstance(\"modelLibrary\", \"backingStore\", true); // backingStore is the modelLibrary for Angular\r\n this.entityManager = warsBreeze.entityManager; // gets metadata from the service\r\n this.$q = $q;\r\n }\r\n DataService.prototype.GetEntityType = function () {\r\n return null;\r\n };\r\n DataService.prototype.createNewEntity = function (entityName, config) {\r\n var configObject = config ? config : {};\r\n configObject[\"id\"] = services.UtilityService.generateGuidComb();\r\n return warsBreeze.entityManager.createEntity(entityName, configObject);\r\n };\r\n DataService.prototype.createNewDetachedEntity = function (entityName) {\r\n return warsBreeze.entityManager.createEntity(entityName, {}, breeze.EntityState.Detached);\r\n };\r\n DataService.prototype.loadMetaData = function () {\r\n warsBreeze.entityManager.metadataStore.fetchMetadata(this.serviceName);\r\n };\r\n DataService.prototype.fMetaData = function () {\r\n return warsBreeze.entityManager.metadataStore.fetchMetadata(this.serviceName);\r\n };\r\n // return an array of entities that have changes\r\n DataService.prototype.getChanges = function (entityType) {\r\n return warsBreeze.entityManager.getChanges(entityType);\r\n };\r\n // subscribe to the entityChanged event\r\n DataService.prototype.subscribeChanges = function (callback) {\r\n warsBreeze.entityManager.entityChanged.subscribe(callback);\r\n };\r\n DataService.prototype.subscribeHasChanges = function (callback) {\r\n warsBreeze.entityManager.hasChangesChanged.subscribe(callback);\r\n };\r\n DataService.prototype.rejectChanges = function (entity) {\r\n if (entity === undefined) {\r\n warsBreeze.entityManager.rejectChanges();\r\n }\r\n else if (entity !== null) {\r\n entity.entityAspect.rejectChanges();\r\n }\r\n };\r\n DataService.prototype.resolveDeletesAndUpdatesPerformedOutsideOfBreeze = function (deleteResult) {\r\n if (deleteResult.wasSuccessful) {\r\n var _loop_1 = function () {\r\n var deleteEntry = deleteResult.deletedOrUpdatedEntities[index];\r\n var cachedEntities = warsBreeze.entityManager.getEntities(deleteEntry.entityName);\r\n var deletedCachedEntities = Enumerable.from(cachedEntities)\r\n .where(function (i) { return deleteEntry.entityIds.indexOf(i.id) !== -1; })\r\n .toArray();\r\n deletedCachedEntities.forEach(function (entity) { return warsBreeze.entityManager.detachEntity(entity); });\r\n };\r\n for (var index = 0; index < deleteResult.deletedOrUpdatedEntities.length; index++) {\r\n _loop_1();\r\n }\r\n }\r\n };\r\n DataService.prototype.resolveDeletesPerformedOutsideOfBreeze = function (combinedDeleteResult) {\r\n if (combinedDeleteResult.wasSuccessful) {\r\n var _loop_2 = function () {\r\n var deleteEntry = combinedDeleteResult.deletedEntities[index];\r\n var cachedEntities = warsBreeze.entityManager.getEntities(deleteEntry.entityName);\r\n var deletedCachedEntities = Enumerable.from(cachedEntities)\r\n .where(function (i) { return deleteEntry.entityIds.indexOf(i.id) !== -1; })\r\n .toArray();\r\n deletedCachedEntities.forEach(function (entity) { return warsBreeze.entityManager.detachEntity(entity); });\r\n };\r\n for (var index = 0; index < combinedDeleteResult.deletedEntities.length; index++) {\r\n _loop_2();\r\n }\r\n }\r\n };\r\n DataService.prototype.clearCachedEntities = function (entityName) {\r\n var cachedEntities = warsBreeze.entityManager.getEntities(entityName);\r\n cachedEntities.forEach(function (entity) { warsBreeze.entityManager.detachEntity(entity); });\r\n };\r\n DataService.prototype.clearCache = function () {\r\n warsBreeze.entityManager.clear();\r\n };\r\n DataService.prototype.hasChanges = function () {\r\n return warsBreeze.entityManager.hasChanges();\r\n };\r\n DataService.prototype.deleteEntitiesWithDeleteServiceWithoutWarning = function (deleteService) {\r\n var _this = this;\r\n var defer = this.$q.defer();\r\n var deletedEntities = this.getPersistedEntitiesMarkedForDeletion();\r\n var deleteInfo = {\r\n entitiesToDelete: []\r\n };\r\n for (var i = 0; i < deletedEntities.length; i++) {\r\n var entity = deletedEntities[i];\r\n var keyString = entity.entityAspect.getKey().toString();\r\n var keyBeginIndex = keyString.indexOf(\"-\");\r\n var key = keyString.substr(keyBeginIndex + 1);\r\n deleteInfo.entitiesToDelete.push({ name: entity.entityType.shortName, id: key });\r\n }\r\n deleteService.deleteBatchRecursivelyWithoutWarning(deleteInfo, true).then(function (combinedDeleteResult) {\r\n _this.resolveDeletesPerformedOutsideOfBreeze(combinedDeleteResult);\r\n defer.resolve(true);\r\n });\r\n return defer.promise;\r\n };\r\n DataService.prototype.getPersistedEntitiesMarkedForDeletion = function () {\r\n var itemsMarkedForDeletion = [];\r\n var changes = warsBreeze.entityManager.getChanges();\r\n for (var i = 0; i < changes.length; i++) {\r\n if (changes[i].entityAspect.entityState.isDeleted()) {\r\n itemsMarkedForDeletion.push(changes[i]);\r\n }\r\n }\r\n return itemsMarkedForDeletion;\r\n };\r\n DataService.prototype.saveChanges = function (entities, successCallback, failCallback) {\r\n var _this = this;\r\n if (warsBreeze.entityManager.hasChanges()) {\r\n if (DataService.isSaving) {\r\n setTimeout(function () { return _this.saveChanges(entities, successCallback, failCallback); }, 50);\r\n return;\r\n }\r\n DataService.isSaving = true;\r\n warsBreeze.entityManager.saveChanges(entities).then(function (successfulSaveResult) {\r\n DataService.isSaving = false;\r\n if (successCallback) {\r\n successCallback(successfulSaveResult.entities);\r\n }\r\n }, function (failureReason) {\r\n DataService.isSaving = false;\r\n services.WarsLogger.logError(\"Breeze Save Changes Failed: \" + failureReason, _this._logType);\r\n if (failCallback) {\r\n failCallback(failureReason);\r\n }\r\n });\r\n }\r\n };\r\n DataService.prototype.saveAllChanges = function (successCallback, failCallback, saveOptions) {\r\n var _this = this;\r\n if (warsBreeze.entityManager.hasChanges()) {\r\n if (DataService.isSaving) {\r\n setTimeout(function () { return _this.saveAllChanges(successCallback, failCallback, saveOptions); }, 50);\r\n return;\r\n }\r\n DataService.isSaving = true;\r\n warsBreeze.entityManager.saveChanges(null, saveOptions).then(function (successfulSaveResult) {\r\n DataService.isSaving = false;\r\n if (successCallback) {\r\n successCallback(successfulSaveResult.entities);\r\n }\r\n }, function (failureReason) {\r\n DataService.isSaving = false;\r\n services.WarsLogger.logError(\"Breeze Save All Changes Failed: \" + failureReason, _this._logType);\r\n if (failCallback) {\r\n failCallback(failureReason);\r\n }\r\n else {\r\n console.error(failureReason);\r\n }\r\n });\r\n }\r\n else {\r\n if (successCallback) {\r\n successCallback([]);\r\n }\r\n }\r\n };\r\n DataService.prototype.executeQuery = function (query) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n warsBreeze.entityManager.executeQuery(query)\r\n .then(function (queryResult) { d.resolve(queryResult.results); }, function (reason) {\r\n services.WarsLogger.logError(\"Breeze Query Rejected: \" + reason, _this._logType);\r\n d.reject(reason);\r\n })\r\n .catch(function (e) {\r\n console.error(e);\r\n });\r\n return d.promise;\r\n };\r\n DataService.prototype.fetch = function (query) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n warsBreeze.entityManager.executeQuery(query)\r\n .then(function (queryResult) { d.resolve(queryResult.results[0]); }, function (reason) {\r\n services.WarsLogger.logError(\"Breeze Fetch Rejected: \" + reason, _this._logType);\r\n d.reject(reason);\r\n })\r\n .catch(function (e) {\r\n console.error(e);\r\n });\r\n return d.promise;\r\n };\r\n DataService.prototype.fetchById = function (id, entityName) {\r\n var d = this.$q.defer();\r\n warsBreeze.entityManager.fetchEntityByKey(entityName, id, true).then(function (r) {\r\n d.resolve(r.entity);\r\n });\r\n return d.promise;\r\n };\r\n DataService.prototype.handlerResponded = function (response, params) {\r\n response.data.requestParams = params;\r\n return response.data;\r\n };\r\n DataService.isSaving = false;\r\n return DataService;\r\n }());\r\n services.DataService = DataService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('DataService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class AngularLoadService {\r\n private document: any;\r\n\r\n constructor(private $document, private $q, private $timeout) {\r\n this.document = $document[0];\r\n }\r\n\r\n private loader(createElement) {\r\n var promises = {};\r\n\r\n return function (url) {\r\n var self = this;\r\n if (typeof promises[url] === 'undefined') {\r\n var deferred = this.$q.defer();\r\n var element = createElement(url);\r\n\r\n element.onload = element.onreadystatechange = function (e) {\r\n if (element.readyState && element.readyState !== 'complete') {\r\n return;\r\n }\r\n\r\n self.$timeout(() => {\r\n deferred.resolve(e);\r\n });\r\n };\r\n element.onerror = function (e) {\r\n this.$timeout(() => {\r\n deferred.reject(e);\r\n });\r\n };\r\n\r\n promises[url] = deferred.promise;\r\n }\r\n\r\n return promises[url];\r\n };\r\n }\r\n\r\n\r\n /**\r\n * Dynamically loads the given script\r\n * @param src The url of the script to load dynamically\r\n * @returns {*} Promise that will be resolved once the script has been loaded.\r\n */\r\n public loadScript = this.loader(src => {\r\n var script = document.createElement('script');\r\n\r\n script.src = src;\r\n\r\n document.body.appendChild(script);\r\n return script;\r\n });\r\n\r\n /**\r\n * Dynamically loads the given CSS file\r\n * @param href The url of the CSS to load dynamically\r\n * @returns {*} Promise that will be resolved once the CSS file has been loaded.\r\n */\r\n public loadCSS = this.loader(href => {\r\n var style = document.createElement('link');\r\n\r\n style.rel = 'stylesheet';\r\n style.type = 'text/css';\r\n style.href = href;\r\n\r\n document.head.appendChild(style);\r\n return style;\r\n });\r\n }\r\n}\r\n\r\nwarsApp.registerService('AngularLoadService', ['$document', '$q', '$timeout']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ApiActionService = /** @class */ (function (_super) {\r\n __extends(ApiActionService, _super);\r\n function ApiActionService(breeze, $q, $http) {\r\n var _this = _super.call(this, breeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n ApiActionService.prototype.getApiActions = function (processConfigurationId) {\r\n var expand = \"objectQuery.myInputObjectSchema, \" +\r\n \"objectQuery.myProjectionObjectSchema, \" +\r\n \"inputObjectSchema.properties, \" +\r\n \"outputObjectSchema.properties, \" +\r\n \"apiSchemaMappings\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ApiActions\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(expand);\r\n return this.executeQuery(query);\r\n };\r\n ApiActionService.prototype.runApiAction = function (processTypeId, apiActionId) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/ApiAction/' + apiActionId + \"/ProcessType/\" + processTypeId, null).then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n };\r\n ApiActionService.prototype.getApiConfigurations = function () {\r\n //console.log('api');\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ApiActions\")\r\n .where('isActive', '==', true)\r\n .expand(\"inputObjectSchema.properties, outputObjectSchema.properties, processConfiguration.myProcessType\");\r\n return this.executeQuery(query);\r\n };\r\n ApiActionService.prototype.getApiActionForField = function (uniqueId) {\r\n var p1 = new breeze.Predicate('isActive', '==', true);\r\n var p2 = new breeze.Predicate('uniqueId', '==', uniqueId);\r\n var pred = breeze.Predicate.and([p1, p2]);\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ApiActions\")\r\n .where(pred)\r\n .expand(\"outputObjectSchema.properties\");\r\n return this.executeQuery(query);\r\n };\r\n ApiActionService.prototype.createApiAction = function () {\r\n var apiAction = this.createNewEntity(\"ApiAction\");\r\n apiAction.uniqueId = services.UtilityService.generateGuidComb();\r\n return apiAction;\r\n };\r\n return ApiActionService;\r\n }(services.DataService));\r\n services.ApiActionService = ApiActionService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ApiActionService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n export class ApiActionService extends DataService{\r\n\r\n constructor(breeze: any, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(breeze, $q);\r\n }\r\n\r\n public getApiActions(processConfigurationId: string): angular.IPromise {\r\n var expand = \"objectQuery.myInputObjectSchema, \" +\r\n \"objectQuery.myProjectionObjectSchema, \" +\r\n \"inputObjectSchema.properties, \" +\r\n \"outputObjectSchema.properties, \" +\r\n \"apiSchemaMappings\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ApiActions\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(expand);\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public runApiAction(processTypeId: string, apiActionId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/ApiAction/' + apiActionId + \"/ProcessType/\" + processTypeId, null).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getApiConfigurations(): angular.IPromise {\r\n //console.log('api');\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ApiActions\")\r\n .where('isActive', '==', true)\r\n .expand(\"inputObjectSchema.properties, outputObjectSchema.properties, processConfiguration.myProcessType\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getApiActionForField(uniqueId): angular.IPromise {\r\n var p1 = new breeze.Predicate('isActive', '==', true);\r\n var p2 = new breeze.Predicate('uniqueId', '==', uniqueId);\r\n var pred = breeze.Predicate.and([p1, p2]);\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ApiActions\")\r\n .where(pred)\r\n .expand(\"outputObjectSchema.properties\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createApiAction(): Wars.Domain.Model.ApiAction {\r\n let apiAction = this.createNewEntity(\"ApiAction\");\r\n apiAction.uniqueId = services.UtilityService.generateGuidComb();\r\n\r\n return apiAction;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ApiActionService', ['breeze', '$q', '$http']);\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ApiConfigurationService = /** @class */ (function (_super) {\r\n __extends(ApiConfigurationService, _super);\r\n function ApiConfigurationService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n ApiConfigurationService.prototype.getAllApiConfigurationsByProcessId = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ApiConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('parameters')\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n ApiConfigurationService.prototype.createApiConfiguration = function () {\r\n return (this.createNewEntity(\"ApiConfiguration\"));\r\n };\r\n return ApiConfigurationService;\r\n }(services.DataService));\r\n services.ApiConfigurationService = ApiConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ApiConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ApiConfigurationService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n getAllApiConfigurationsByProcessId(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ApiConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('parameters')\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n createApiConfiguration(): Wars.Domain.Model.ApiConfiguration {\r\n return (this.createNewEntity(\"ApiConfiguration\"));\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ApiConfigurationService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ApiGridConfigurationService = /** @class */ (function (_super) {\r\n __extends(ApiGridConfigurationService, _super);\r\n function ApiGridConfigurationService() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ApiGridConfigurationService.prototype.getApiGridConfigurations = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ApiGridConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(\"columns\");\r\n return this.executeQuery(query);\r\n };\r\n ApiGridConfigurationService.prototype.createApiGridConfiguration = function () {\r\n return this.createNewEntity(\"ApiGridConfiguration\");\r\n };\r\n ApiGridConfigurationService.prototype.createApiGridColumn = function () {\r\n return this.createNewEntity(\"ApiGridColumnConfiguration\");\r\n };\r\n return ApiGridConfigurationService;\r\n }(services.DataService));\r\n services.ApiGridConfigurationService = ApiGridConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ApiGridConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class ApiGridConfigurationService extends DataService{\r\n\r\n public getApiGridConfigurations(processConfigurationId): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ApiGridConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(\"columns\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createApiGridConfiguration(): Wars.Domain.Model.ApiGridConfiguration {\r\n return this.createNewEntity(\"ApiGridConfiguration\");\r\n }\r\n\r\n public createApiGridColumn(): Wars.Domain.Model.ApiGridColumnConfiguration {\r\n return this.createNewEntity(\"ApiGridColumnConfiguration\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ApiGridConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class ApiGridService {\r\n\r\n constructor(private $q: angular.IQService, private $http: angular.IHttpService) { }\r\n\r\n public getApiGridResult(processId: string, processConfigurationId: string, apiGridConfigurationId: string, apiGridFieldSchemaPropertyUniqueId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ApiGrid/' + apiGridConfigurationId + '/Process/' + processId + '/ProcessConfiguration/' + processConfigurationId + '/ApiGridFieldSchemaPropertyUniqueId/' + apiGridFieldSchemaPropertyUniqueId).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ApiGridService', ['$q', '$http']);","/// \r\nmodule warsApp.services {\r\n export class ApiKeyService {\r\n public constructor(\r\n private $q: angular.IQService,\r\n private $http: angular.IHttpService) {\r\n\r\n }\r\n\r\n public addKey(name:string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/ApiKey/' + name, null).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise; \r\n }\r\n\r\n public getKeys():angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/ApiKey/').then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public updateKey(apiKey: Wars.Domain.Model.ApiKey):angular.IPromise {\r\n return this.$http.post('./api/ApiKey/Update', apiKey);\r\n }\r\n } \r\n}\r\n\r\nwarsApp.registerService('ApiKeyService', ['$q', '$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ApiSchemaMappingService = /** @class */ (function (_super) {\r\n __extends(ApiSchemaMappingService, _super);\r\n function ApiSchemaMappingService(injectedBreeze, $q, schemaPropertyService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.schemaPropertyService = schemaPropertyService;\r\n return _this;\r\n }\r\n ApiSchemaMappingService.prototype.createApiSchemaMapping = function () {\r\n var newApiSchemaMapping = this.createNewEntity(\"SchemaMapping\");\r\n return newApiSchemaMapping;\r\n };\r\n return ApiSchemaMappingService;\r\n }(services.DataService));\r\n services.ApiSchemaMappingService = ApiSchemaMappingService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService(\"ApiSchemaMappingService\", [\"breeze\", \"$q\"]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ApiSchemaMappingService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private schemaPropertyService: services.SchemaPropertyService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createApiSchemaMapping(): Wars.Domain.Model.SchemaMapping {\r\n var newApiSchemaMapping = this.createNewEntity(\"SchemaMapping\");\r\n return newApiSchemaMapping;\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"ApiSchemaMappingService\", [\"breeze\", \"$q\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var AssignmentConfigurationService = /** @class */ (function (_super) {\r\n __extends(AssignmentConfigurationService, _super);\r\n function AssignmentConfigurationService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n AssignmentConfigurationService.prototype.createAssigmentSectionClaim = function () {\r\n return this.createNewEntity(\"AssignmentSectionClaim\");\r\n };\r\n return AssignmentConfigurationService;\r\n }(services.DataService));\r\n services.AssignmentConfigurationService = AssignmentConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('AssignmentConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class AssignmentConfigurationService extends services.DataService{\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createAssigmentSectionClaim(): Wars.Domain.Model.AssignmentSectionClaim{\r\n return this.createNewEntity(\"AssignmentSectionClaim\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('AssignmentConfigurationService',['breeze','$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var AutoCompleteConfigurationService = /** @class */ (function (_super) {\r\n __extends(AutoCompleteConfigurationService, _super);\r\n function AutoCompleteConfigurationService() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoCompleteConfigurationService.prototype.getAutoCompleteConfigurations = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"AutoCompleteConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigurationId);\r\n return this.executeQuery(query);\r\n };\r\n AutoCompleteConfigurationService.prototype.createAutoCompleteConfiguration = function () {\r\n return this.createNewEntity(\"AutoCompleteConfiguration\");\r\n };\r\n return AutoCompleteConfigurationService;\r\n }(services.DataService));\r\n services.AutoCompleteConfigurationService = AutoCompleteConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('AutoCompleteConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class AutoCompleteConfigurationService extends DataService{\r\n public getAutoCompleteConfigurations(processConfigurationId: string): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"AutoCompleteConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigurationId);\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createAutoCompleteConfiguration(): Wars.Domain.Model.AutoCompleteConfiguration {\r\n return this.createNewEntity(\"AutoCompleteConfiguration\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('AutoCompleteConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class AutoCompleteService implements IService {\r\n\r\n constructor(private $http: angular.IHttpService) { }\r\n\r\n public runAutoComplete(processConfigurationId: string, autoCompleteId: string, searchValue: string): angular.IHttpPromise {\r\n const url = `./api/AutoComplete/processConfig/${processConfigurationId}/${autoCompleteId}`;\r\n return this.$http.post(url, '\"' + searchValue + '\"');\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('AutoCompleteService', ['$http']);\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var BatchJobConfigurationService = /** @class */ (function (_super) {\r\n __extends(BatchJobConfigurationService, _super);\r\n function BatchJobConfigurationService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n BatchJobConfigurationService.prototype.getAllBatchJobConfigurations = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"BatchJobConfigurations\")\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n BatchJobConfigurationService.prototype.getBatchJobConfigurationsByProcess = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"BatchJobConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('parameters, parameters.treeItem')\r\n .orderBy('name');\r\n return this.executeQuery(query);\r\n };\r\n BatchJobConfigurationService.prototype.createBatchJobConfiguration = function () {\r\n return (this.createNewEntity(\"BatchJobConfiguration\"));\r\n };\r\n return BatchJobConfigurationService;\r\n }(services.DataService));\r\n services.BatchJobConfigurationService = BatchJobConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('BatchJobConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class BatchJobConfigurationService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getAllBatchJobConfigurations(): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"BatchJobConfigurations\")\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getBatchJobConfigurationsByProcess(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"BatchJobConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('parameters, parameters.treeItem')\r\n .orderBy('name');\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createBatchJobConfiguration(): Wars.Domain.Model.BatchJobConfiguration {\r\n return (this.createNewEntity(\"BatchJobConfiguration\"));\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('BatchJobConfigurationService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var BatchJobDashboardService = /** @class */ (function (_super) {\r\n __extends(BatchJobDashboardService, _super);\r\n function BatchJobDashboardService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n BatchJobDashboardService.prototype.getBatchJobExecutions = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/BatchJobDashboard/BatchJobExecutions\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n return BatchJobDashboardService;\r\n }(services.HttpHandlerService));\r\n services.BatchJobDashboardService = BatchJobDashboardService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('BatchJobDashboardService', ['$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class BatchJobDashboardService extends HttpHandlerService {\r\n\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n \r\n public getBatchJobExecutions(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/BatchJobDashboard/BatchJobExecutions\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.BatchJobDto[]) => {\r\n return result;\r\n });\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerService('BatchJobDashboardService', ['$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var BoundItemService = /** @class */ (function (_super) {\r\n __extends(BoundItemService, _super);\r\n function BoundItemService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n BoundItemService.prototype.createBoundItem = function () {\r\n return this.createNewEntity(\"BoundItem\");\r\n };\r\n BoundItemService.prototype.getBoundItemsWithTreeItems = function (binderPageId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"BoundItems\")\r\n .expand(\"treeItem\")\r\n .where(\"pdfBindingPage_id\", \"==\", binderPageId);\r\n return this.executeQuery(query);\r\n };\r\n return BoundItemService;\r\n }(services.DataService));\r\n services.BoundItemService = BoundItemService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('BoundItemService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class BoundItemService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createBoundItem(): models.BoundItem {\r\n return this.createNewEntity(\"BoundItem\");\r\n }\r\n\r\n public getBoundItemsWithTreeItems(binderPageId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"BoundItems\")\r\n .expand(\"treeItem\")\r\n .where(\"pdfBindingPage_id\", \"==\", binderPageId);\r\n\r\n return this.executeQuery(query);\r\n } \r\n }\r\n}\r\n\r\nwarsApp.registerService('BoundItemService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var CalculationService = /** @class */ (function (_super) {\r\n __extends(CalculationService, _super);\r\n function CalculationService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.logType = \"CalculationService\";\r\n return _this;\r\n }\r\n CalculationService.prototype.getAllCalculations = function (processConfigId) {\r\n var systemLevelOrSpecifiedProcessConfigPredicate = new this.breezeModule.Predicate('processConfiguration_id', '==', processConfigId)\r\n .or(\"systemLevel_id\", \"!=\", null);\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Calculations\")\r\n .where(systemLevelOrSpecifiedProcessConfigPredicate)\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n CalculationService.prototype.getAllSequenceCalculations = function (processConfigId) {\r\n var deferred = this.$q.defer();\r\n var systemLevelOrSpecifiedProcessConfigPredicate = new this.breezeModule.Predicate('processConfiguration_id', '==', processConfigId)\r\n .or(\"systemLevel_id\", \"!=\", null);\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Calculations\")\r\n .where(systemLevelOrSpecifiedProcessConfigPredicate)\r\n .orderBy(\"name\");\r\n this.executeQuery(query).then(function (calculations) {\r\n var sequenceCalculations = Enumerable.from(calculations)\r\n .where(function (i) { return i.calculationType === 2 /* Sequence */; })\r\n .toArray();\r\n deferred.resolve(sequenceCalculations);\r\n });\r\n return deferred.promise;\r\n };\r\n CalculationService.prototype.deleteCalculation = function (calculation) {\r\n return this.$http.delete('./api/calculation/' + calculation.id);\r\n };\r\n CalculationService.prototype.createNewOperationParameter = function (property) {\r\n var operationParameter = this.createNewEntity(\"OperationParameter\");\r\n operationParameter.mySchemaProperty = property;\r\n operationParameter.schemaProperty_id = property.id;\r\n return operationParameter;\r\n };\r\n CalculationService.prototype.getCalculationEagerLoadOperations = function (id) {\r\n var d = this.$q.defer();\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"CalculationExpanded\")\r\n .where('id', '==', id)\r\n .orderBy(\"name\");\r\n this.executeQuery(query).then(function (conditions) { d.resolve(conditions[0]); });\r\n return d.promise;\r\n };\r\n CalculationService.prototype.getCalculation = function (id) {\r\n return this.fetchById(id, \"Calculation\");\r\n };\r\n CalculationService.prototype.createNewCalculation = function () {\r\n var newCalculation = this.createNewEntity(\"Calculation\");\r\n newCalculation.name = '';\r\n newCalculation.calculationType = 1 /* Standard */;\r\n newCalculation.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return newCalculation;\r\n };\r\n CalculationService.prototype.createValueOperation = function (operator, onlyAllowListOperands) {\r\n var valueOperation = this.createEmptyValueOperation();\r\n valueOperation.onlyAllowListOperands = onlyAllowListOperands;\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addAdditionalOperandsBeyondFirst(valueOperation, operator);\r\n valueOperation.operator = operator;\r\n services.WarsLogger.logDebug(\"Creating new Value Operation\", this.logType);\r\n return valueOperation;\r\n };\r\n CalculationService.prototype.addAdditionalOperandsBeyondFirst = function (valueOperation, operator) {\r\n switch (operator) {\r\n case 150 /* Add */:\r\n case 151 /* Subtract */:\r\n case 152 /* Multiply */:\r\n case 153 /* Divide */:\r\n case 160 /* DateTimeAdd */:\r\n case 161 /* DateTimeSubtract */:\r\n case 50 /* Exponent */:\r\n case 51 /* Modulo */:\r\n case 157 /* Min */:\r\n case 158 /* Max */:\r\n case 52 /* PadLeft */:\r\n case 53 /* PadRight */:\r\n case 159 /* Combine */:\r\n case 155 /* And */:\r\n case 156 /* Or */:\r\n case 54 /* BooleanEvaluation */:\r\n case 207 /* Join */:\r\n case 251 /* Skip */:\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n break;\r\n case 154 /* IfElseAssignment */:\r\n case 100 /* Substring */:\r\n case 101 /* ReplaceFirst */:\r\n case 102 /* ReplaceAll */:\r\n case 252 /* SkipTake */:\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n break;\r\n case 130 /* SpreadsheetLookup */:\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n break;\r\n case 10 /* Not */:\r\n case 11 /* StringLength */:\r\n case 1 /* SquareRoot */:\r\n case 2 /* Square */:\r\n case 3 /* ToLowerCase */:\r\n case 4 /* ToUpperCase */:\r\n case 5 /* SentenceCase */:\r\n case 6 /* StartCase */:\r\n case 8 /* TrimStart */:\r\n case 9 /* TrimEnd */:\r\n case 250 /* Distinct */:\r\n case 208 /* First */:\r\n case 209 /* Last */:\r\n break;\r\n case 200 /* Count */:\r\n case 201 /* Sum */:\r\n case 202 /* Average */:\r\n case 203 /* MaxItem */:\r\n case 204 /* MinItem */:\r\n case 205 /* Any */:\r\n case 206 /* All */:\r\n valueOperation.onlyAllowListOperands = true;\r\n default:\r\n break;\r\n }\r\n };\r\n CalculationService.prototype.createEmptyValueOperation = function () {\r\n var valueOperation = this.createNewEntity(\"ValueOperation\");\r\n return valueOperation;\r\n };\r\n CalculationService.prototype.addNewSimpleOperandToValueOperation = function (valueOperation) {\r\n var newOperand = this.createSimpleOperand(valueOperation.operands.length);\r\n newOperand.parentValueOperation = valueOperation;\r\n newOperand.parentValueOperation_id = valueOperation.id;\r\n valueOperation.operands.push(newOperand);\r\n services.WarsLogger.logDebug(\"Added a new Simple Operand to Value Operation\", this.logType);\r\n return newOperand;\r\n };\r\n CalculationService.prototype.replaceOperandWithNewSimpleOperand = function (valueOperation, index) {\r\n // Save off existing operand;\r\n var oldOperand = valueOperation.operands[index];\r\n // Create new simple operand;\r\n var newOperand = this.createSimpleOperand(index);\r\n // Replace existing item in array with new simple operand\r\n valueOperation.operands.splice(index, 1, newOperand);\r\n newOperand.parentValueOperation = valueOperation;\r\n newOperand.parentValueOperation_id = valueOperation.id;\r\n // Tell breeze to delete old item\r\n this.deleteOperand(oldOperand);\r\n services.WarsLogger.logDebug(\"Replaced operand with new Simple Operand\", this.logType);\r\n return newOperand;\r\n };\r\n CalculationService.prototype.replaceOperandWithNewComplexOperand = function (parentValueOperation, index, operator) {\r\n // Save off existing operand;\r\n var oldOperand = parentValueOperation.operands[index];\r\n // Create new Value Operation\r\n var newValueOperation = this.createValueOperation(operator, parentValueOperation.onlyAllowListOperands);\r\n newValueOperation.variableType = CalculationService.getValueOperationVariableType(newValueOperation);\r\n // Create new complex operand;\r\n var newOperand = this.createComplexOperand(newValueOperation, index);\r\n // Replace existing item in array with new simple operand\r\n parentValueOperation.operands.splice(index, 1, newOperand);\r\n // Tell breeze to delete old item\r\n this.deleteOperand(oldOperand);\r\n services.WarsLogger.logDebug(\"Replaced operand with new Complex Operand\", this.logType);\r\n return newOperand;\r\n };\r\n CalculationService.prototype.createSimpleOperand = function (operandIndex) {\r\n var operand = this.createNewEntity(\"SimpleOperand\");\r\n operand.operandType = 0 /* SimpleOperand */;\r\n operand.operandOrder = operandIndex;\r\n operand.isATimeDurationInput = false;\r\n services.WarsLogger.logDebug(\"Create new Simple Operand\", this.logType);\r\n return operand;\r\n };\r\n CalculationService.prototype.createComplexOperand = function (valueOperation, operandIndex) {\r\n var complexOperand = this.createNewEntity(\"ComplexOperand\");\r\n complexOperand.operandType = 1 /* ComplexOperand */;\r\n complexOperand.operandOrder = operandIndex;\r\n complexOperand.myValueOperation = valueOperation;\r\n complexOperand.myValueOperation_id = valueOperation.id;\r\n services.WarsLogger.logDebug(\"Create new Complex Operand\", this.logType);\r\n return complexOperand;\r\n };\r\n CalculationService.prototype.createNewTopLevelValueOperation = function (currentTopLevelValueOperation, operator) {\r\n // Create new top level value operation - tie up to newly create complex operand\r\n var newTopLevelValueOperation = this.createEmptyValueOperation();\r\n newTopLevelValueOperation.onlyAllowListOperands = this.isAnAggregateOperator(operator) || this.isAListOperator(operator);\r\n newTopLevelValueOperation.operator = operator;\r\n // Create new Complex Operand and tie it to the current top level value operation\r\n var complexOperand = this.createNewEntity(\"ComplexOperand\");\r\n complexOperand.operandType = 1 /* ComplexOperand */;\r\n complexOperand.operandOrder = 0;\r\n complexOperand.myValueOperation = currentTopLevelValueOperation;\r\n complexOperand.myValueOperation_id = currentTopLevelValueOperation.id;\r\n // Add operands to new top level value operation\r\n newTopLevelValueOperation.operands.push(complexOperand);\r\n this.addAdditionalOperandsBeyondFirst(newTopLevelValueOperation, operator);\r\n services.WarsLogger.logDebug(\"Create new top level Value Operation\", this.logType);\r\n return newTopLevelValueOperation;\r\n };\r\n CalculationService.prototype.deleteValueOperationChildren = function (valueOperation) {\r\n if (valueOperation) {\r\n // Go backwards because things will be disappearing from operand array once breeze setDeleteds are executed\r\n for (var i = valueOperation.operands.length - 1; i >= 0; i--) {\r\n var operand = valueOperation.operands[i];\r\n if (operand.operandType === 0 /* SimpleOperand */) {\r\n this.deleteSimpleOperand(operand);\r\n }\r\n else if (operand.operandType === 1 /* ComplexOperand */) {\r\n this.deleteComplexOperand(operand);\r\n }\r\n }\r\n services.WarsLogger.logDebug(\"Deleted Value Operation children\", this.logType);\r\n }\r\n };\r\n CalculationService.prototype.deleteOperand = function (operand) {\r\n if (operand.operandType === 0 /* SimpleOperand */) {\r\n this.deleteSimpleOperand(operand);\r\n }\r\n else {\r\n this.deleteComplexOperand(operand);\r\n }\r\n };\r\n CalculationService.prototype.deleteSimpleOperand = function (simpleOperand) {\r\n if (simpleOperand) {\r\n if (simpleOperand.treeItem) {\r\n if (simpleOperand.treeItem.constantValue && this.isTypedInConstant(simpleOperand.treeItem.constantValue)) {\r\n simpleOperand.treeItem.constantValue.entityAspect.setDeleted();\r\n }\r\n simpleOperand.treeItem.entityAspect.setDeleted();\r\n }\r\n simpleOperand.entityAspect.setDeleted();\r\n services.WarsLogger.logDebug(\"Deleted Simple Operand\", this.logType);\r\n }\r\n };\r\n CalculationService.prototype.deleteComplexOperand = function (complexOperand) {\r\n if (complexOperand) {\r\n if (complexOperand.myValueOperation) {\r\n this.deleteValueOperationChildren(complexOperand.myValueOperation);\r\n complexOperand.myValueOperation.entityAspect.setDeleted();\r\n }\r\n complexOperand.entityAspect.setDeleted();\r\n services.WarsLogger.logDebug(\"Deleted Complex Operand\", this.logType);\r\n }\r\n };\r\n CalculationService.prototype.returnsAList = function (valueOperation) {\r\n if (!valueOperation)\r\n return false;\r\n // Aggregate operators take list inputs and return a single value\r\n if (this.isAnAggregateOperator(valueOperation.operator))\r\n return false;\r\n for (var i = 0; i < valueOperation.operands.length; i++) {\r\n if (valueOperation.operands[i].operandType === 0 /* SimpleOperand */) {\r\n var simpleOperand = valueOperation.operands[i];\r\n if (simpleOperand && simpleOperand.treeItem && simpleOperand.treeItem.isList) {\r\n return true;\r\n }\r\n }\r\n else {\r\n var complexOperand = valueOperation.operands[i];\r\n if (this.returnsAList(complexOperand.myValueOperation)) {\r\n return true;\r\n }\r\n }\r\n }\r\n };\r\n CalculationService.prototype.isCalculateCompleteAndValid = function (calculation) {\r\n var validationIssues = [];\r\n if (calculation.name === undefined || calculation.name === null || calculation.name.isEmptyOrSpaces())\r\n validationIssues.push(\"Calculation Name is required.\");\r\n if (calculation.calculationType === 2 /* Sequence */ && !this.containsSequencePlaceholder(calculation.valueOperation)) {\r\n validationIssues.push(\"Calculation was marked as containing a sequence but no sequence placeholders (?) were found.\");\r\n }\r\n if (calculation.calculationType === 3 /* NoProcess */ && this.containsProcessUsages(calculation.valueOperation)) {\r\n validationIssues.push(\"Calculation was marked as a No Process calculation but references some process information. Some examples of process info are \" +\r\n \"Form Fields, Process Variable Fields, Process Initiator, Process Identifier, Current State, Current Status, and Most Recent User Action.\");\r\n }\r\n validationIssues = validationIssues.concat(this.isValueOperationCompleteAndValid(calculation.valueOperation));\r\n return validationIssues;\r\n };\r\n CalculationService.prototype.containsProcessUsages = function (valueOperation) {\r\n if (!valueOperation)\r\n return false;\r\n for (var i = 0; i < valueOperation.operands.length; i++) {\r\n if (valueOperation.operands[i].operandType === 0 /* SimpleOperand */) {\r\n var simpleOperand = valueOperation.operands[i];\r\n if (simpleOperand && simpleOperand.treeItem &&\r\n (simpleOperand.treeItem.itemSource === 6 /* FormField */ ||\r\n simpleOperand.treeItem.itemSource === 10 /* Variable */)) {\r\n return true;\r\n }\r\n if (simpleOperand && simpleOperand.treeItem && simpleOperand.treeItem.calculation &&\r\n simpleOperand.treeItem.calculation.calculationType !== 3 /* NoProcess */) {\r\n return true;\r\n }\r\n var disallowedPlaceholders = [\r\n 6 /* CurrentState */,\r\n 5 /* CurrentStatus */,\r\n 10 /* ProcessIdentifier */,\r\n 4 /* ProcessInitiator */,\r\n 12 /* ProcessType */,\r\n 11 /* UserAction */\r\n ];\r\n if (simpleOperand && simpleOperand.treeItem && simpleOperand.treeItem.placeholder && disallowedPlaceholders.indexOf(simpleOperand.treeItem.placeholder) !== -1) {\r\n return true;\r\n }\r\n }\r\n else {\r\n var complexOperand = valueOperation.operands[i];\r\n if (this.containsProcessUsages(complexOperand.myValueOperation)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n CalculationService.prototype.containsSequencePlaceholder = function (valueOperation) {\r\n if (!valueOperation)\r\n return false;\r\n for (var i = 0; i < valueOperation.operands.length; i++) {\r\n if (valueOperation.operands[i].operandType === 0 /* SimpleOperand */) {\r\n var simpleOperand = valueOperation.operands[i];\r\n if (simpleOperand && simpleOperand.treeItem && simpleOperand.treeItem.constantValue &&\r\n simpleOperand.treeItem.constantValue.stringValue && simpleOperand.treeItem.constantValue.stringValue.indexOf(\"?\") !== -1) {\r\n return true;\r\n }\r\n }\r\n else {\r\n var complexOperand = valueOperation.operands[i];\r\n if (this.containsSequencePlaceholder(complexOperand.myValueOperation)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n CalculationService.prototype.isValueOperationCompleteAndValid = function (valueOperation) {\r\n var validationIssues = [];\r\n if (!valueOperation) {\r\n validationIssues.push(\"Cannot save an empty Calculation. Please select the calculator icon to create your calculation or click the Cancel button.\");\r\n return validationIssues;\r\n }\r\n if (valueOperation.operands === undefined || valueOperation.operands.length === 0) {\r\n validationIssues.push(\"Calculation Name is required.\");\r\n }\r\n if (valueOperation.variableType == null) {\r\n validationIssues.push(\"One of the operands contains an invalid type.\");\r\n }\r\n if (valueOperation.operator === 54 /* BooleanEvaluation */) {\r\n if (valueOperation.comparsionOperator === null) {\r\n validationIssues.push(\"Comparison type not selected.\");\r\n }\r\n else {\r\n if (CalculationService.getOperandVariableType(valueOperation.operands[0]) !== CalculationService.getOperandVariableType(valueOperation.operands[1])) {\r\n validationIssues.push(\"Attempting to compare two operands of different data types.\");\r\n }\r\n }\r\n }\r\n for (var i = 0; i < valueOperation.operands.length; i++) {\r\n validationIssues = validationIssues.concat(this.isOperandCompleteAndValid(valueOperation.operands[i]));\r\n }\r\n return validationIssues;\r\n };\r\n CalculationService.prototype.isOperandCompleteAndValid = function (operand) {\r\n var validationIssues = [];\r\n if (operand.operandType === 0 /* SimpleOperand */) {\r\n validationIssues = this.isSimpleOperandCompleteAndValid(operand);\r\n }\r\n return validationIssues;\r\n };\r\n CalculationService.prototype.isSimpleOperandCompleteAndValid = function (simpleOperand) {\r\n var validationIssues = [];\r\n if (simpleOperand.treeItem) {\r\n var isTypedInConstant = this.isTypedInConstant(simpleOperand.treeItem.constantValue);\r\n if (isTypedInConstant) {\r\n if (simpleOperand.treeItem.constantValue.decimalValue === null &&\r\n simpleOperand.treeItem.constantValue.integerValue === null &&\r\n simpleOperand.treeItem.constantValue.stringValue === null) {\r\n validationIssues.push(\"An Operand is empty: No value was typed and no tree item was dragged into the operand area.\");\r\n }\r\n }\r\n }\r\n return validationIssues;\r\n };\r\n CalculationService.prototype.isTypedInConstant = function (constantValue) {\r\n return constantValue != null && constantValue != undefined && constantValue.processConfiguration_id == null && constantValue.systemLevel_id == null;\r\n };\r\n CalculationService.prototype.allowAggregateOperators = function (valueOperation) {\r\n if (!valueOperation)\r\n return true;\r\n // This handles going up the hierarchy\r\n if (valueOperation.onlyAllowListOperands)\r\n return false;\r\n // Now we need to go down the hierarchy\r\n for (var i = 0; i < valueOperation.operands.length; i++) {\r\n var operand = valueOperation.operands[i];\r\n if (operand.operandType === 1 /* ComplexOperand */) {\r\n var complexOperand = operand;\r\n if (!this.allowAggregateOperators(complexOperand.myValueOperation))\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n CalculationService.prototype.allowListOperators = function (valueOperation) {\r\n if (!valueOperation)\r\n return true;\r\n // TODO\r\n return true;\r\n };\r\n CalculationService.prototype.allowAggregateOperatorsForOperand = function (parentValueOperation, operand) {\r\n // This handles going up the hierarchy\r\n if (parentValueOperation.onlyAllowListOperands)\r\n return false;\r\n // Now we need to go down the hierarchy\r\n if (operand.operandType === 1 /* ComplexOperand */) {\r\n var complexOperand = operand;\r\n if (!complexOperand.myValueOperation)\r\n return true;\r\n if (!complexOperand.myValueOperation.operands)\r\n return true;\r\n var childOperands = complexOperand.myValueOperation.operands;\r\n for (var i = 0; i < childOperands.length; i++) {\r\n var childOperand = childOperands[i];\r\n if (childOperand.operandType === 1 /* ComplexOperand */) {\r\n var childComplexOperand = childOperand;\r\n if (!this.allowAggregateOperators(childComplexOperand.myValueOperation))\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n CalculationService.prototype.allowListOperatorsForOperand = function (parentValueOperation, operand) {\r\n // TODO\r\n return true;\r\n };\r\n CalculationService.prototype.allowOperandDelete = function (valueOperation, operandIndex) {\r\n if (!valueOperation || !valueOperation.operator)\r\n return false;\r\n switch (valueOperation.operator) {\r\n case 1 /* SquareRoot */:\r\n case 2 /* Square */:\r\n case 3 /* ToLowerCase */:\r\n case 4 /* ToUpperCase */:\r\n case 5 /* SentenceCase */:\r\n case 6 /* StartCase */:\r\n case 7 /* Value */:\r\n case 8 /* TrimStart */:\r\n case 9 /* TrimEnd */:\r\n case 50 /* Exponent */:\r\n case 51 /* Modulo */:\r\n case 100 /* Substring */:\r\n case 52 /* PadLeft */:\r\n case 53 /* PadRight */:\r\n case 101 /* ReplaceFirst */:\r\n case 102 /* ReplaceAll */:\r\n case 200 /* Count */:\r\n case 201 /* Sum */:\r\n case 202 /* Average */:\r\n case 203 /* MaxItem */:\r\n case 204 /* MinItem */:\r\n case 205 /* Any */:\r\n case 206 /* All */:\r\n case 10 /* Not */:\r\n case 11 /* StringLength */:\r\n case 54 /* BooleanEvaluation */:\r\n case 250 /* Distinct */:\r\n case 207 /* Join */:\r\n case 251 /* Skip */:\r\n case 252 /* SkipTake */:\r\n case 208 /* First */:\r\n case 209 /* Last */:\r\n case 130 /* SpreadsheetLookup */:\r\n return false;\r\n case 150 /* Add */:\r\n case 151 /* Subtract */:\r\n case 152 /* Multiply */:\r\n case 153 /* Divide */:\r\n case 160 /* DateTimeAdd */:\r\n case 161 /* DateTimeSubtract */:\r\n case 155 /* And */:\r\n case 156 /* Or */:\r\n case 157 /* Min */:\r\n case 158 /* Max */:\r\n case 159 /* Combine */:\r\n return operandIndex >= 2;\r\n case 154 /* IfElseAssignment */:\r\n return operandIndex >= 3;\r\n default:\r\n return false;\r\n }\r\n };\r\n CalculationService.prototype.allowGreaterThanLessThanComparison = function (operation) {\r\n if (!operation)\r\n return false;\r\n if (operation.operator !== 54 /* BooleanEvaluation */)\r\n return false;\r\n var operand = operation.operands[0];\r\n if (!operand)\r\n return false;\r\n var comparableVariableTypes = [\r\n 1 /* Integer */,\r\n 2 /* Decimal */,\r\n 0 /* String */,\r\n 4 /* Date */,\r\n 3 /* DateTime */,\r\n 5 /* Time */\r\n ];\r\n if (operand.operandType === 0 /* SimpleOperand */) {\r\n var simpleOperand = operand;\r\n if (!simpleOperand.treeItem)\r\n return false;\r\n return comparableVariableTypes.indexOf(simpleOperand.treeItem.variableType) !== -1;\r\n }\r\n else {\r\n var complexOperand = operand;\r\n return comparableVariableTypes.indexOf(complexOperand.myValueOperation.variableType) !== -1;\r\n }\r\n };\r\n CalculationService.prototype.isAnAggregateOperator = function (operator) {\r\n var listOperator = [\r\n 200 /* Count */,\r\n 201 /* Sum */,\r\n 202 /* Average */,\r\n 203 /* MaxItem */,\r\n 204 /* MinItem */,\r\n 205 /* Any */,\r\n 206 /* All */\r\n ];\r\n return listOperator.indexOf(operator) !== -1;\r\n };\r\n CalculationService.prototype.isAListOperator = function (operator) {\r\n var listOperator = [\r\n 250 /* Distinct */,\r\n 251 /* Skip */,\r\n 252 /* SkipTake */\r\n ];\r\n return listOperator.indexOf(operator) !== -1;\r\n };\r\n CalculationService.prototype.getAllowableOperandTypes = function (calculationType) {\r\n switch (calculationType) {\r\n case 0 /* Numeric */:\r\n return [\r\n 0 /* Numeric */,\r\n 4 /* Aggregate */,\r\n 5 /* Other */\r\n ];\r\n case 1 /* String */:\r\n return [\r\n 0 /* Numeric */,\r\n 1 /* String */,\r\n 5 /* Other */\r\n ];\r\n case 2 /* DateTime */:\r\n return [\r\n 2 /* DateTime */,\r\n 5 /* Other */\r\n ];\r\n case 3 /* Boolean */:\r\n return [\r\n 1 /* String */,\r\n 0 /* Numeric */,\r\n 3 /* Boolean */,\r\n 4 /* Aggregate */,\r\n 5 /* Other */\r\n ];\r\n default:\r\n return undefined;\r\n }\r\n };\r\n CalculationService.prototype.getCalculationTypeByValueOperation = function (valueOperator) {\r\n switch (valueOperator) {\r\n case 150 /* Add */:\r\n case 151 /* Subtract */:\r\n case 152 /* Multiply */:\r\n case 153 /* Divide */:\r\n case 1 /* SquareRoot */:\r\n case 2 /* Square */:\r\n case 50 /* Exponent */:\r\n case 157 /* Min */:\r\n case 158 /* Max */:\r\n case 51 /* Modulo */:\r\n case 11 /* StringLength */:\r\n return 0 /* Numeric */;\r\n case 3 /* ToLowerCase */:\r\n case 4 /* ToUpperCase */:\r\n case 5 /* SentenceCase */:\r\n case 6 /* StartCase */:\r\n case 8 /* TrimStart */:\r\n case 9 /* TrimEnd */:\r\n case 52 /* PadLeft */:\r\n case 53 /* PadRight */:\r\n case 100 /* Substring */:\r\n case 159 /* Combine */:\r\n case 101 /* ReplaceFirst */:\r\n case 102 /* ReplaceAll */:\r\n case 130 /* SpreadsheetLookup */:\r\n return 1 /* String */;\r\n case 160 /* DateTimeAdd */:\r\n case 161 /* DateTimeSubtract */:\r\n return 2 /* DateTime */;\r\n case 10 /* Not */:\r\n case 155 /* And */:\r\n case 156 /* Or */:\r\n case 54 /* BooleanEvaluation */:\r\n return 3 /* Boolean */;\r\n case 200 /* Count */:\r\n case 201 /* Sum */:\r\n case 202 /* Average */:\r\n case 203 /* MaxItem */:\r\n case 204 /* MinItem */:\r\n case 205 /* Any */:\r\n case 206 /* All */:\r\n case 207 /* Join */:\r\n case 208 /* First */:\r\n case 209 /* Last */:\r\n return 4 /* Aggregate */;\r\n case 250 /* Distinct */:\r\n case 251 /* Skip */:\r\n case 252 /* SkipTake */:\r\n return 6 /* List */;\r\n default:\r\n return 5 /* Other */;\r\n }\r\n };\r\n CalculationService.prototype.isOperandSpecified = function (operand) {\r\n if (!operand)\r\n return false;\r\n if (operand.operandType === 0 /* SimpleOperand */) {\r\n var simpleOperand = operand;\r\n if (simpleOperand.treeItem) {\r\n var isTypedInConstant = this.isTypedInConstant(simpleOperand.treeItem.constantValue);\r\n if (isTypedInConstant) {\r\n if (simpleOperand.treeItem.constantValue.decimalValue === null &&\r\n simpleOperand.treeItem.constantValue.integerValue === null &&\r\n simpleOperand.treeItem.constantValue.stringValue === null) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n // If the operand is complex then it has been specified\r\n return true;\r\n }\r\n };\r\n CalculationService.getOperandVariableType = function (operand) {\r\n if (!operand)\r\n return undefined;\r\n if (operand.operandType === 0 /* SimpleOperand */) {\r\n var simpleOperand = operand;\r\n return CalculationService.getSimpleOperandVariableType(simpleOperand);\r\n }\r\n else {\r\n var complexOperand = operand;\r\n return CalculationService.getComplexOperandVariableType(complexOperand);\r\n }\r\n };\r\n CalculationService.getSimpleOperandVariableType = function (simpleOperand) {\r\n if (simpleOperand) {\r\n if (simpleOperand.treeItem) {\r\n return simpleOperand.treeItem.variableType;\r\n }\r\n if (simpleOperand.isATimeDurationInput) {\r\n return 14 /* TimeSpan */;\r\n }\r\n }\r\n return undefined;\r\n };\r\n CalculationService.getComplexOperandVariableType = function (complexOperand) {\r\n var variableType = undefined;\r\n if (complexOperand) {\r\n if (complexOperand.myValueOperation) {\r\n variableType = CalculationService.getValueOperationVariableType(complexOperand.myValueOperation);\r\n }\r\n }\r\n return variableType;\r\n };\r\n CalculationService.getVariableTypeBasedOnOperandTypes = function (operandVariableTypes) {\r\n if (!operandVariableTypes)\r\n return undefined;\r\n if (Enumerable.from(operandVariableTypes).any(function (i) { return i === undefined; }))\r\n return undefined;\r\n var uniqueVariableTypes = Enumerable.from(operandVariableTypes).distinct();\r\n if (Enumerable.from(uniqueVariableTypes).all(function (i) { return i === 1 /* Integer */; }))\r\n return 1 /* Integer */;\r\n if (Enumerable.from(uniqueVariableTypes).all(function (i) {\r\n return i === 2 /* Decimal */ ||\r\n i === 1 /* Integer */;\r\n })) {\r\n return 2 /* Decimal */;\r\n }\r\n if (Enumerable.from(uniqueVariableTypes).all(function (i) { return i === 4 /* Date */; }))\r\n return 4 /* Date */;\r\n if (Enumerable.from(uniqueVariableTypes).all(function (i) { return i === 3 /* DateTime */; }))\r\n return 3 /* DateTime */;\r\n if (Enumerable.from(uniqueVariableTypes).all(function (i) { return i === 5 /* Time */; }))\r\n return 5 /* Time */;\r\n if (Enumerable.from(uniqueVariableTypes).all(function (i) { return i === 24 /* Code */; }))\r\n return 24 /* Code */;\r\n if (Enumerable.from(uniqueVariableTypes).all(function (i) { return i === 6 /* Boolean */; }))\r\n return 6 /* Boolean */;\r\n return 0 /* String */;\r\n };\r\n CalculationService.getValueOperationVariableType = function (valueOperation) {\r\n if (valueOperation.operator === 10 /* Not */ ||\r\n valueOperation.operator === 205 /* Any */ ||\r\n valueOperation.operator === 206 /* All */ ||\r\n valueOperation.operator === 155 /* And */ ||\r\n valueOperation.operator === 156 /* Or */ ||\r\n valueOperation.operator === 54 /* BooleanEvaluation */) {\r\n return 6 /* Boolean */;\r\n }\r\n if (valueOperation.operator === 1 /* SquareRoot */ ||\r\n valueOperation.operator === 2 /* Square */ ||\r\n valueOperation.operator === 201 /* Sum */ ||\r\n valueOperation.operator === 202 /* Average */ ||\r\n valueOperation.operator === 50 /* Exponent */ ||\r\n valueOperation.operator === 51 /* Modulo */ ||\r\n valueOperation.operator === 150 /* Add */ ||\r\n valueOperation.operator === 151 /* Subtract */ ||\r\n valueOperation.operator === 152 /* Multiply */ ||\r\n valueOperation.operator === 153 /* Divide */) {\r\n return 2 /* Decimal */;\r\n }\r\n if (valueOperation.operator === 200 /* Count */ ||\r\n valueOperation.operator === 11 /* StringLength */) {\r\n return 1 /* Integer */;\r\n }\r\n if (valueOperation.operator === 3 /* ToLowerCase */ ||\r\n valueOperation.operator === 4 /* ToUpperCase */ ||\r\n valueOperation.operator === 5 /* SentenceCase */ ||\r\n valueOperation.operator === 6 /* StartCase */ ||\r\n valueOperation.operator === 8 /* TrimStart */ ||\r\n valueOperation.operator === 9 /* TrimEnd */ ||\r\n valueOperation.operator === 52 /* PadLeft */ ||\r\n valueOperation.operator === 53 /* PadRight */ ||\r\n valueOperation.operator === 100 /* Substring */ ||\r\n valueOperation.operator === 101 /* ReplaceFirst */ ||\r\n valueOperation.operator === 102 /* ReplaceAll */ ||\r\n valueOperation.operator === 159 /* Combine */ ||\r\n valueOperation.operator === 130 /* SpreadsheetLookup */ ||\r\n valueOperation.operator === 207 /* Join */) {\r\n return 0 /* String */;\r\n }\r\n // At this point we need to evaluate the operands\r\n if (!valueOperation.operands || valueOperation.operands.length === 0)\r\n return undefined;\r\n var operandVariableTypes = [];\r\n for (var i = 0; i < valueOperation.operands.length; i++) {\r\n if (valueOperation.operands[i]) {\r\n if (valueOperation.operator === 154 /* IfElseAssignment */) {\r\n if (i === 0 || (i > 2 && i % 2 === 1))\r\n continue;\r\n }\r\n switch (valueOperation.operands[i].operandType) {\r\n case 0 /* SimpleOperand */:\r\n var simpleOperand = valueOperation.operands[i];\r\n operandVariableTypes.push(CalculationService.getSimpleOperandVariableType(simpleOperand));\r\n break;\r\n case 1 /* ComplexOperand */:\r\n var complexOperand = valueOperation.operands[i];\r\n operandVariableTypes.push(CalculationService.getComplexOperandVariableType(complexOperand));\r\n break;\r\n }\r\n }\r\n }\r\n var dateTimeOperands;\r\n var timeOperands;\r\n var dateOperands;\r\n var dateOrTimeOperands;\r\n if (valueOperation.operator === 160 /* DateTimeAdd */) {\r\n dateTimeOperands = Enumerable.from(operandVariableTypes).count(function (i) { return i === 3 /* DateTime */; });\r\n timeOperands = Enumerable.from(operandVariableTypes).count(function (i) { return i === 5 /* Time */; });\r\n dateOperands = Enumerable.from(operandVariableTypes).count(function (i) { return i === 4 /* Date */; });\r\n dateOrTimeOperands = dateTimeOperands + timeOperands + dateOperands;\r\n if (dateOperands === 1 && timeOperands === 1)\r\n return 3 /* DateTime */;\r\n if (dateOrTimeOperands === 2) {\r\n // Not Valid\r\n return undefined;\r\n }\r\n if (dateOrTimeOperands === 1) {\r\n return 3 /* DateTime */;\r\n }\r\n return 14 /* TimeSpan */;\r\n }\r\n if (valueOperation.operator === 161 /* DateTimeSubtract */) {\r\n dateTimeOperands = Enumerable.from(operandVariableTypes).count(function (i) { return i === 3 /* DateTime */; });\r\n timeOperands = Enumerable.from(operandVariableTypes).count(function (i) { return i === 5 /* Time */; });\r\n dateOperands = Enumerable.from(operandVariableTypes).count(function (i) { return i === 4 /* Date */; });\r\n dateOrTimeOperands = dateTimeOperands + timeOperands + dateOperands;\r\n if (dateOperands === 1 && timeOperands === 1)\r\n return 3 /* DateTime */;\r\n if (dateOrTimeOperands === 2) {\r\n return 14 /* TimeSpan */;\r\n }\r\n if (dateOrTimeOperands === 1) {\r\n return 3 /* DateTime */;\r\n }\r\n return 14 /* TimeSpan */;\r\n }\r\n return CalculationService.getVariableTypeBasedOnOperandTypes(operandVariableTypes);\r\n };\r\n return CalculationService;\r\n }(services.DataService));\r\n services.CalculationService = CalculationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('CalculationService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class CalculationService extends services.DataService {\r\n private logType: string = \"CalculationService\";\r\n\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getAllCalculations(processConfigId: string): ng.IPromise {\r\n var systemLevelOrSpecifiedProcessConfigPredicate = new this.breezeModule.Predicate('processConfiguration_id', '==', processConfigId)\r\n .or(\"systemLevel_id\", \"!=\", null);\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Calculations\")\r\n .where(systemLevelOrSpecifiedProcessConfigPredicate)\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getAllSequenceCalculations(processConfigId: string): ng.IPromise {\r\n var deferred = this.$q.defer();\r\n\r\n var systemLevelOrSpecifiedProcessConfigPredicate = new this.breezeModule.Predicate('processConfiguration_id', '==', processConfigId)\r\n .or(\"systemLevel_id\", \"!=\", null);\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Calculations\")\r\n .where(systemLevelOrSpecifiedProcessConfigPredicate)\r\n .orderBy(\"name\");\r\n\r\n this.executeQuery(query).then(\r\n (calculations) => {\r\n var sequenceCalculations = Enumerable.from(calculations)\r\n .where(i => i.calculationType === Wars.Domain.Model.Codes.Enums.CalculationType.Sequence)\r\n .toArray();\r\n deferred.resolve(sequenceCalculations);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n public deleteCalculation(calculation: Wars.Domain.Model.Calculations.Calculation): angular.IPromise {\r\n return this.$http.delete('./api/calculation/' + calculation.id);\r\n }\r\n\r\n public createNewOperationParameter(property: Wars.Domain.Model.SchemaProperty): Wars.Domain.Model.OperationParameter {\r\n var operationParameter = this.createNewEntity(\"OperationParameter\");\r\n operationParameter.mySchemaProperty = property;\r\n operationParameter.schemaProperty_id = property.id;\r\n return operationParameter;\r\n }\r\n\r\n public getCalculationEagerLoadOperations(id: string): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"CalculationExpanded\")\r\n .where('id', '==', id)\r\n .orderBy(\"name\");\r\n\r\n this.executeQuery(query).then(\r\n (conditions) => { d.resolve(conditions[0]) });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getCalculation(id: string): ng.IPromise {\r\n return this.fetchById(id, \"Calculation\");\r\n }\r\n\r\n public createNewCalculation(): Wars.Domain.Model.Calculations.Calculation {\r\n var newCalculation = this.createNewEntity(\"Calculation\");\r\n newCalculation.name = '';\r\n newCalculation.calculationType = Wars.Domain.Model.Codes.Enums.CalculationType.Standard;\r\n newCalculation.uniqueIdentifier = UtilityService.generateGuidComb();\r\n return newCalculation;\r\n }\r\n\r\n public createValueOperation(operator: Wars.Domain.Model.Codes.Enums.ValueOperator, onlyAllowListOperands: boolean): Wars.Domain.Model.Calculations.ValueOperation {\r\n var valueOperation = this.createEmptyValueOperation();\r\n valueOperation.onlyAllowListOperands = onlyAllowListOperands;\r\n\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addAdditionalOperandsBeyondFirst(valueOperation, operator);\r\n valueOperation.operator = operator;\r\n\r\n services.WarsLogger.logDebug(\"Creating new Value Operation\", this.logType);\r\n return valueOperation;\r\n }\r\n\r\n public addAdditionalOperandsBeyondFirst(valueOperation: Wars.Domain.Model.Calculations.ValueOperation, operator: Wars.Domain.Model.Codes.Enums.ValueOperator) {\r\n switch (operator) {\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Add:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Subtract:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Multiply:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Divide:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.DateTimeAdd:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.DateTimeSubtract:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Exponent:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Modulo:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Min:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Max:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.PadLeft:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.PadRight:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Combine:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.And:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Or:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.BooleanEvaluation:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Join:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Skip:\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.IfElseAssignment:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Substring:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ReplaceFirst:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ReplaceAll:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SkipTake:\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SpreadsheetLookup:\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n this.addNewSimpleOperandToValueOperation(valueOperation);\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Not:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.StringLength:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SquareRoot:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Square:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ToLowerCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ToUpperCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SentenceCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.StartCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.TrimStart:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.TrimEnd:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Distinct:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.First:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Last:\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Count:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Sum:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Average:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.MaxItem:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.MinItem:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Any:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.All:\r\n valueOperation.onlyAllowListOperands = true;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n public createEmptyValueOperation(): Wars.Domain.Model.Calculations.ValueOperation {\r\n var valueOperation = this.createNewEntity(\"ValueOperation\");\r\n return valueOperation;\r\n }\r\n\r\n public addNewSimpleOperandToValueOperation(valueOperation: Wars.Domain.Model.Calculations.ValueOperation): Wars.Domain.Model.Calculations.SimpleOperand {\r\n var newOperand = this.createSimpleOperand(valueOperation.operands.length);\r\n newOperand.parentValueOperation = valueOperation;\r\n newOperand.parentValueOperation_id = valueOperation.id;\r\n\r\n valueOperation.operands.push(newOperand);\r\n\r\n services.WarsLogger.logDebug(\"Added a new Simple Operand to Value Operation\", this.logType);\r\n return newOperand;\r\n }\r\n\r\n public replaceOperandWithNewSimpleOperand(valueOperation: Wars.Domain.Model.Calculations.ValueOperation, index: number): Wars.Domain.Model.Calculations.SimpleOperand {\r\n // Save off existing operand;\r\n var oldOperand = valueOperation.operands[index];\r\n\r\n // Create new simple operand;\r\n var newOperand = this.createSimpleOperand(index);\r\n\r\n // Replace existing item in array with new simple operand\r\n valueOperation.operands.splice(index, 1, newOperand);\r\n newOperand.parentValueOperation = valueOperation;\r\n newOperand.parentValueOperation_id = valueOperation.id;\r\n\r\n // Tell breeze to delete old item\r\n this.deleteOperand(oldOperand);\r\n\r\n services.WarsLogger.logDebug(\"Replaced operand with new Simple Operand\", this.logType);\r\n return newOperand;\r\n }\r\n\r\n public replaceOperandWithNewComplexOperand(\r\n parentValueOperation: Wars.Domain.Model.Calculations.ValueOperation,\r\n index: number,\r\n operator: Wars.Domain.Model.Codes.Enums.ValueOperator): Wars.Domain.Model.Calculations.ComplexOperand {\r\n // Save off existing operand;\r\n var oldOperand = parentValueOperation.operands[index];\r\n\r\n // Create new Value Operation\r\n var newValueOperation = this.createValueOperation(operator, parentValueOperation.onlyAllowListOperands);\r\n newValueOperation.variableType = CalculationService.getValueOperationVariableType(newValueOperation);\r\n\r\n // Create new complex operand;\r\n var newOperand = this.createComplexOperand(newValueOperation, index);\r\n\r\n // Replace existing item in array with new simple operand\r\n parentValueOperation.operands.splice(index, 1, newOperand);\r\n\r\n // Tell breeze to delete old item\r\n this.deleteOperand(oldOperand);\r\n\r\n services.WarsLogger.logDebug(\"Replaced operand with new Complex Operand\", this.logType);\r\n return newOperand;\r\n }\r\n\r\n private createSimpleOperand(operandIndex: number): Wars.Domain.Model.Calculations.SimpleOperand {\r\n var operand = this.createNewEntity(\"SimpleOperand\");\r\n operand.operandType = Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand;\r\n operand.operandOrder = operandIndex;\r\n operand.isATimeDurationInput = false;\r\n services.WarsLogger.logDebug(\"Create new Simple Operand\", this.logType);\r\n return operand;\r\n }\r\n\r\n private createComplexOperand(\r\n valueOperation: Wars.Domain.Model.Calculations.ValueOperation,\r\n operandIndex: number): Wars.Domain.Model.Calculations.ComplexOperand {\r\n var complexOperand = this.createNewEntity(\"ComplexOperand\");\r\n complexOperand.operandType = Wars.Domain.Model.Codes.Enums.OperandType.ComplexOperand;\r\n complexOperand.operandOrder = operandIndex;\r\n complexOperand.myValueOperation = valueOperation;\r\n complexOperand.myValueOperation_id = valueOperation.id;\r\n services.WarsLogger.logDebug(\"Create new Complex Operand\", this.logType);\r\n return complexOperand;\r\n }\r\n\r\n public createNewTopLevelValueOperation(\r\n currentTopLevelValueOperation: Wars.Domain.Model.Calculations.ValueOperation,\r\n operator: Wars.Domain.Model.Codes.Enums.ValueOperator): Wars.Domain.Model.Calculations.ValueOperation {\r\n // Create new top level value operation - tie up to newly create complex operand\r\n var newTopLevelValueOperation = this.createEmptyValueOperation();\r\n newTopLevelValueOperation.onlyAllowListOperands = this.isAnAggregateOperator(operator) || this.isAListOperator(operator);\r\n newTopLevelValueOperation.operator = operator;\r\n\r\n // Create new Complex Operand and tie it to the current top level value operation\r\n var complexOperand = this.createNewEntity(\"ComplexOperand\");\r\n complexOperand.operandType = Wars.Domain.Model.Codes.Enums.OperandType.ComplexOperand;\r\n complexOperand.operandOrder = 0;\r\n complexOperand.myValueOperation = currentTopLevelValueOperation;\r\n complexOperand.myValueOperation_id = currentTopLevelValueOperation.id;\r\n\r\n // Add operands to new top level value operation\r\n newTopLevelValueOperation.operands.push(complexOperand);\r\n this.addAdditionalOperandsBeyondFirst(newTopLevelValueOperation, operator);\r\n\r\n services.WarsLogger.logDebug(\"Create new top level Value Operation\", this.logType);\r\n return newTopLevelValueOperation;\r\n }\r\n\r\n public deleteValueOperationChildren(valueOperation: Wars.Domain.Model.Calculations.ValueOperation): void {\r\n if (valueOperation) {\r\n // Go backwards because things will be disappearing from operand array once breeze setDeleteds are executed\r\n for (var i = valueOperation.operands.length - 1; i >= 0; i--) {\r\n let operand = valueOperation.operands[i];\r\n if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n this.deleteSimpleOperand(operand);\r\n } else if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.ComplexOperand) {\r\n this.deleteComplexOperand(operand);\r\n }\r\n }\r\n services.WarsLogger.logDebug(\"Deleted Value Operation children\", this.logType);\r\n }\r\n }\r\n\r\n public deleteOperand(operand: Wars.Domain.Model.Calculations.Operand): void {\r\n if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n this.deleteSimpleOperand(operand);\r\n } else {\r\n this.deleteComplexOperand(operand);\r\n }\r\n }\r\n\r\n public deleteSimpleOperand(simpleOperand: Wars.Domain.Model.Calculations.SimpleOperand): void {\r\n if (simpleOperand) {\r\n if (simpleOperand.treeItem) {\r\n if (simpleOperand.treeItem.constantValue && this.isTypedInConstant(simpleOperand.treeItem.constantValue)) {\r\n simpleOperand.treeItem.constantValue.entityAspect.setDeleted();\r\n }\r\n simpleOperand.treeItem.entityAspect.setDeleted();\r\n }\r\n simpleOperand.entityAspect.setDeleted();\r\n services.WarsLogger.logDebug(\"Deleted Simple Operand\", this.logType);\r\n }\r\n }\r\n\r\n public deleteComplexOperand(complexOperand: Wars.Domain.Model.Calculations.ComplexOperand): void {\r\n if (complexOperand) {\r\n if (complexOperand.myValueOperation) {\r\n this.deleteValueOperationChildren(complexOperand.myValueOperation);\r\n complexOperand.myValueOperation.entityAspect.setDeleted();\r\n }\r\n\r\n complexOperand.entityAspect.setDeleted();\r\n services.WarsLogger.logDebug(\"Deleted Complex Operand\", this.logType);\r\n }\r\n }\r\n\r\n public returnsAList(valueOperation: Wars.Domain.Model.Calculations.ValueOperation): boolean {\r\n if (!valueOperation) return false;\r\n\r\n // Aggregate operators take list inputs and return a single value\r\n if (this.isAnAggregateOperator(valueOperation.operator)) return false;\r\n\r\n for (var i = 0; i < valueOperation.operands.length; i++) {\r\n if (valueOperation.operands[i].operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n var simpleOperand = valueOperation.operands[i];\r\n if (simpleOperand && simpleOperand.treeItem && simpleOperand.treeItem.isList) {\r\n return true;\r\n }\r\n } else {\r\n var complexOperand = valueOperation.operands[i];\r\n if (this.returnsAList(complexOperand.myValueOperation)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public isCalculateCompleteAndValid(calculation: Wars.Domain.Model.Calculations.Calculation): string[] {\r\n var validationIssues = [];\r\n if (calculation.name === undefined || calculation.name === null || calculation.name.isEmptyOrSpaces()) validationIssues.push(\"Calculation Name is required.\");\r\n\r\n if (calculation.calculationType === Wars.Domain.Model.Codes.Enums.CalculationType.Sequence && !this.containsSequencePlaceholder(calculation.valueOperation)) {\r\n validationIssues.push(\"Calculation was marked as containing a sequence but no sequence placeholders (?) were found.\");\r\n }\r\n\r\n if (calculation.calculationType === Wars.Domain.Model.Codes.Enums.CalculationType.NoProcess && this.containsProcessUsages(calculation.valueOperation)) {\r\n validationIssues.push(\"Calculation was marked as a No Process calculation but references some process information. Some examples of process info are \" +\r\n \"Form Fields, Process Variable Fields, Process Initiator, Process Identifier, Current State, Current Status, and Most Recent User Action.\");\r\n }\r\n\r\n validationIssues = validationIssues.concat(this.isValueOperationCompleteAndValid(calculation.valueOperation));\r\n return validationIssues;\r\n }\r\n\r\n private containsProcessUsages(valueOperation: Wars.Domain.Model.Calculations.ValueOperation): boolean {\r\n if (!valueOperation) return false;\r\n\r\n for (var i = 0; i < valueOperation.operands.length; i++) {\r\n if (valueOperation.operands[i].operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n var simpleOperand = valueOperation.operands[i];\r\n if (simpleOperand && simpleOperand.treeItem &&\r\n (simpleOperand.treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField ||\r\n simpleOperand.treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable))\r\n {\r\n return true;\r\n }\r\n\r\n if (simpleOperand && simpleOperand.treeItem && simpleOperand.treeItem.calculation &&\r\n simpleOperand.treeItem.calculation.calculationType !== Wars.Domain.Model.Codes.Enums.CalculationType.NoProcess) {\r\n return true;\r\n }\r\n const disallowedPlaceholders = [\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentState,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentStatus,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.ProcessIdentifier,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.ProcessInitiator,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.ProcessType,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.UserAction\r\n ];\r\n if (simpleOperand && simpleOperand.treeItem && simpleOperand.treeItem.placeholder && disallowedPlaceholders.indexOf(simpleOperand.treeItem.placeholder) !== -1) {\r\n return true;\r\n }\r\n } else {\r\n var complexOperand = valueOperation.operands[i];\r\n if (this.containsProcessUsages(complexOperand.myValueOperation)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private containsSequencePlaceholder(valueOperation: Wars.Domain.Model.Calculations.ValueOperation): boolean {\r\n if (!valueOperation) return false;\r\n\r\n for (var i = 0; i < valueOperation.operands.length; i++) {\r\n if (valueOperation.operands[i].operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n var simpleOperand = valueOperation.operands[i];\r\n if (simpleOperand && simpleOperand.treeItem && simpleOperand.treeItem.constantValue &&\r\n simpleOperand.treeItem.constantValue.stringValue && simpleOperand.treeItem.constantValue.stringValue.indexOf(\"?\") !== -1) {\r\n return true;\r\n }\r\n } else {\r\n var complexOperand = valueOperation.operands[i];\r\n if (this.containsSequencePlaceholder(complexOperand.myValueOperation)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public isValueOperationCompleteAndValid(valueOperation: Wars.Domain.Model.Calculations.ValueOperation): string[] {\r\n var validationIssues = [];\r\n\r\n if (!valueOperation) {\r\n validationIssues.push(\"Cannot save an empty Calculation. Please select the calculator icon to create your calculation or click the Cancel button.\");\r\n return validationIssues;\r\n }\r\n\r\n if (valueOperation.operands === undefined || valueOperation.operands.length === 0) {\r\n validationIssues.push(\"Calculation Name is required.\");\r\n }\r\n\r\n if (valueOperation.variableType == null) {\r\n validationIssues.push(\"One of the operands contains an invalid type.\");\r\n }\r\n\r\n if (valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.BooleanEvaluation) {\r\n if (valueOperation.comparsionOperator === null) {\r\n validationIssues.push(\"Comparison type not selected.\");\r\n } else {\r\n if (CalculationService.getOperandVariableType(valueOperation.operands[0]) !== CalculationService.getOperandVariableType(valueOperation.operands[1])) {\r\n validationIssues.push(\"Attempting to compare two operands of different data types.\");\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < valueOperation.operands.length; i++) {\r\n validationIssues = validationIssues.concat(this.isOperandCompleteAndValid(valueOperation.operands[i]));\r\n }\r\n return validationIssues;\r\n }\r\n\r\n public isOperandCompleteAndValid(operand: Wars.Domain.Model.Calculations.Operand): string[] {\r\n var validationIssues = [];\r\n if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n validationIssues = this.isSimpleOperandCompleteAndValid(operand);\r\n }\r\n return validationIssues;\r\n }\r\n\r\n public isSimpleOperandCompleteAndValid(simpleOperand: Wars.Domain.Model.Calculations.SimpleOperand): string[] {\r\n var validationIssues = [];\r\n if (simpleOperand.treeItem) {\r\n var isTypedInConstant = this.isTypedInConstant(simpleOperand.treeItem.constantValue);\r\n if (isTypedInConstant) {\r\n if (simpleOperand.treeItem.constantValue.decimalValue === null &&\r\n simpleOperand.treeItem.constantValue.integerValue === null &&\r\n simpleOperand.treeItem.constantValue.stringValue === null) {\r\n validationIssues.push(\"An Operand is empty: No value was typed and no tree item was dragged into the operand area.\");\r\n }\r\n }\r\n }\r\n return validationIssues;\r\n }\r\n\r\n public isTypedInConstant(constantValue: Wars.Domain.Model.ConstantValue): boolean {\r\n return constantValue != null && constantValue != undefined && constantValue.processConfiguration_id == null && constantValue.systemLevel_id == null;\r\n }\r\n\r\n public allowAggregateOperators(valueOperation: Wars.Domain.Model.Calculations.ValueOperation): boolean {\r\n if (!valueOperation) return true;\r\n // This handles going up the hierarchy\r\n if (valueOperation.onlyAllowListOperands) return false;\r\n // Now we need to go down the hierarchy\r\n for (let i = 0; i < valueOperation.operands.length; i++) {\r\n var operand = valueOperation.operands[i];\r\n if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.ComplexOperand) {\r\n var complexOperand = operand;\r\n if (!this.allowAggregateOperators(complexOperand.myValueOperation)) return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public allowListOperators(valueOperation: Wars.Domain.Model.Calculations.ValueOperation): boolean {\r\n if (!valueOperation) return true;\r\n // TODO\r\n return true;\r\n }\r\n\r\n public allowAggregateOperatorsForOperand(parentValueOperation: Wars.Domain.Model.Calculations.ValueOperation, operand: Wars.Domain.Model.Calculations.Operand): boolean {\r\n // This handles going up the hierarchy\r\n if (parentValueOperation.onlyAllowListOperands) return false;\r\n // Now we need to go down the hierarchy\r\n if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.ComplexOperand) {\r\n var complexOperand = operand;\r\n if (!complexOperand.myValueOperation) return true;\r\n if (!complexOperand.myValueOperation.operands) return true;\r\n\r\n var childOperands = complexOperand.myValueOperation.operands;\r\n for (let i = 0; i < childOperands.length; i++) {\r\n var childOperand = childOperands[i];\r\n if (childOperand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.ComplexOperand) {\r\n var childComplexOperand = childOperand;\r\n if (!this.allowAggregateOperators(childComplexOperand.myValueOperation)) return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public allowListOperatorsForOperand(parentValueOperation: Wars.Domain.Model.Calculations.ValueOperation, operand: Wars.Domain.Model.Calculations.Operand): boolean {\r\n // TODO\r\n return true;\r\n }\r\n \r\n public allowOperandDelete(valueOperation: Wars.Domain.Model.Calculations.ValueOperation, operandIndex: number): boolean {\r\n if (!valueOperation || !valueOperation.operator) return false;\r\n\r\n switch (valueOperation.operator) {\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SquareRoot:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Square:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ToLowerCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ToUpperCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SentenceCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.StartCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Value:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.TrimStart:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.TrimEnd:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Exponent:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Modulo:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Substring:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.PadLeft:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.PadRight:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ReplaceFirst:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ReplaceAll:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Count:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Sum:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Average:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.MaxItem:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.MinItem:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Any:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.All:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Not:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.StringLength:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.BooleanEvaluation:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Distinct:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Join:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Skip:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SkipTake:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.First:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Last:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SpreadsheetLookup:\r\n return false;\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Add:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Subtract:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Multiply:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Divide:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.DateTimeAdd:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.DateTimeSubtract:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.And:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Or:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Min:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Max:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Combine:\r\n return operandIndex >= 2;\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.IfElseAssignment:\r\n return operandIndex >= 3;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n public allowGreaterThanLessThanComparison(operation: Wars.Domain.Model.Calculations.ValueOperation): boolean {\r\n if (!operation) return false;\r\n if (operation.operator !== Wars.Domain.Model.Codes.Enums.ValueOperator.BooleanEvaluation) return false;\r\n var operand = operation.operands[0];\r\n if (!operand) return false;\r\n\r\n var comparableVariableTypes = [\r\n Wars.Domain.Model.Codes.Enums.VariableType.Integer,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Decimal,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Date,\r\n Wars.Domain.Model.Codes.Enums.VariableType.DateTime,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Time\r\n ];\r\n\r\n if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n var simpleOperand = operand;\r\n if (!simpleOperand.treeItem) return false;\r\n\r\n return comparableVariableTypes.indexOf(simpleOperand.treeItem.variableType) !== -1;\r\n } else {\r\n var complexOperand = operand;\r\n return comparableVariableTypes.indexOf(complexOperand.myValueOperation.variableType) !== -1;\r\n }\r\n }\r\n\r\n public isAnAggregateOperator(operator: Wars.Domain.Model.Codes.Enums.ValueOperator): boolean {\r\n var listOperator = [\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.Count,\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.Sum,\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.Average,\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.MaxItem,\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.MinItem,\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.Any,\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.All\r\n ];\r\n\r\n return listOperator.indexOf(operator) !== -1;\r\n }\r\n\r\n public isAListOperator(operator: Wars.Domain.Model.Codes.Enums.ValueOperator): boolean {\r\n var listOperator = [\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.Distinct,\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.Skip,\r\n Wars.Domain.Model.Codes.Enums.ValueOperator.SkipTake\r\n ];\r\n\r\n return listOperator.indexOf(operator) !== -1;\r\n }\r\n\r\n public getAllowableOperandTypes(calculationType: models.CalculationType): models.CalculationType[] {\r\n switch (calculationType) {\r\n case models.CalculationType.Numeric:\r\n return [\r\n models.CalculationType.Numeric,\r\n models.CalculationType.Aggregate,\r\n models.CalculationType.Other\r\n ];\r\n\r\n case models.CalculationType.String:\r\n return [\r\n models.CalculationType.Numeric,\r\n models.CalculationType.String,\r\n models.CalculationType.Other\r\n ];\r\n\r\n case models.CalculationType.DateTime:\r\n return [\r\n models.CalculationType.DateTime,\r\n models.CalculationType.Other\r\n ];\r\n\r\n case models.CalculationType.Boolean:\r\n return [\r\n models.CalculationType.String,\r\n models.CalculationType.Numeric,\r\n models.CalculationType.Boolean,\r\n models.CalculationType.Aggregate,\r\n models.CalculationType.Other\r\n ];\r\n\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n public getCalculationTypeByValueOperation(valueOperator: Wars.Domain.Model.Codes.Enums.ValueOperator): models.CalculationType {\r\n switch (valueOperator) {\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Add:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Subtract:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Multiply:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Divide:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SquareRoot:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Square:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Exponent:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Min:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Max:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Modulo:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.StringLength:\r\n return models.CalculationType.Numeric;\r\n\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ToLowerCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ToUpperCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SentenceCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.StartCase:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.TrimStart:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.TrimEnd:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.PadLeft:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.PadRight:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Substring:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Combine:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ReplaceFirst:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.ReplaceAll:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SpreadsheetLookup:\r\n return models.CalculationType.String;\r\n\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.DateTimeAdd:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.DateTimeSubtract:\r\n return models.CalculationType.DateTime;\r\n\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Not:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.And:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Or:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.BooleanEvaluation:\r\n return models.CalculationType.Boolean;\r\n\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Count:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Sum:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Average:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.MaxItem:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.MinItem:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Any:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.All:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Join:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.First:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Last:\r\n return models.CalculationType.Aggregate;\r\n\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Distinct:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.Skip:\r\n case Wars.Domain.Model.Codes.Enums.ValueOperator.SkipTake:\r\n return models.CalculationType.List;\r\n\r\n default:\r\n return models.CalculationType.Other;\r\n }\r\n }\r\n\r\n public isOperandSpecified(operand: Wars.Domain.Model.Calculations.Operand): boolean {\r\n if (!operand) return false;\r\n\r\n if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n var simpleOperand = operand;\r\n if (simpleOperand.treeItem) {\r\n var isTypedInConstant = this.isTypedInConstant(simpleOperand.treeItem.constantValue);\r\n if (isTypedInConstant) {\r\n if (simpleOperand.treeItem.constantValue.decimalValue === null &&\r\n simpleOperand.treeItem.constantValue.integerValue === null &&\r\n simpleOperand.treeItem.constantValue.stringValue === null) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n // If the operand is complex then it has been specified\r\n return true;\r\n }\r\n }\r\n\r\n public static getOperandVariableType(operand: Wars.Domain.Model.Calculations.Operand): Wars.Domain.Model.Codes.Enums.VariableType {\r\n if (!operand) return undefined;\r\n if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n var simpleOperand = operand;\r\n return CalculationService.getSimpleOperandVariableType(simpleOperand);\r\n } else {\r\n var complexOperand = operand;\r\n return CalculationService.getComplexOperandVariableType(complexOperand);\r\n }\r\n }\r\n\r\n public static getSimpleOperandVariableType(simpleOperand: Wars.Domain.Model.Calculations.SimpleOperand): Wars.Domain.Model.Codes.Enums.VariableType {\r\n if (simpleOperand) {\r\n if (simpleOperand.treeItem) {\r\n return simpleOperand.treeItem.variableType;\r\n }\r\n if (simpleOperand.isATimeDurationInput) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.TimeSpan;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n public static getComplexOperandVariableType(complexOperand: Wars.Domain.Model.Calculations.ComplexOperand): Wars.Domain.Model.Codes.Enums.VariableType {\r\n var variableType = undefined;\r\n if (complexOperand) {\r\n\r\n if (complexOperand.myValueOperation) {\r\n variableType = CalculationService.getValueOperationVariableType(complexOperand.myValueOperation);\r\n }\r\n }\r\n\r\n return variableType;\r\n }\r\n\r\n public static getVariableTypeBasedOnOperandTypes(operandVariableTypes: Wars.Domain.Model.Codes.Enums.VariableType[]): Wars.Domain.Model.Codes.Enums.VariableType {\r\n if (!operandVariableTypes) return undefined;\r\n if (Enumerable.from(operandVariableTypes).any(i => i === undefined)) return undefined;\r\n\r\n var uniqueVariableTypes = Enumerable.from(operandVariableTypes).distinct();\r\n\r\n if (Enumerable.from(uniqueVariableTypes).all(i => i === Wars.Domain.Model.Codes.Enums.VariableType.Integer))\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n\r\n if (Enumerable.from(uniqueVariableTypes).all(i =>\r\n i === Wars.Domain.Model.Codes.Enums.VariableType.Decimal ||\r\n i === Wars.Domain.Model.Codes.Enums.VariableType.Integer)) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n }\r\n\r\n if (Enumerable.from(uniqueVariableTypes).all(i => i === Wars.Domain.Model.Codes.Enums.VariableType.Date))\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Date;\r\n\r\n if (Enumerable.from(uniqueVariableTypes).all(i => i === Wars.Domain.Model.Codes.Enums.VariableType.DateTime))\r\n return Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n\r\n if (Enumerable.from(uniqueVariableTypes).all(i => i === Wars.Domain.Model.Codes.Enums.VariableType.Time))\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Time;\r\n\r\n if (Enumerable.from(uniqueVariableTypes).all(i => i === Wars.Domain.Model.Codes.Enums.VariableType.Code))\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Code;\r\n\r\n if (Enumerable.from(uniqueVariableTypes).all(i => i === Wars.Domain.Model.Codes.Enums.VariableType.Boolean))\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Boolean;\r\n\r\n\r\n return Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n }\r\n\r\n public static getValueOperationVariableType(valueOperation: Wars.Domain.Model.Calculations.ValueOperation): Wars.Domain.Model.Codes.Enums.VariableType {\r\n if (valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Not ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Any ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.All ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.And ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Or || \r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.BooleanEvaluation) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Boolean;\r\n }\r\n\r\n if (valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.SquareRoot ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Square ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Sum ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Average ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Exponent ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Modulo ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Add ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Subtract ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Multiply ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Divide) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n }\r\n\r\n if (valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Count || \r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.StringLength) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n }\r\n\r\n if (valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.ToLowerCase ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.ToUpperCase ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.SentenceCase ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.StartCase ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.TrimStart ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.TrimEnd ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.PadLeft ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.PadRight ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Substring ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.ReplaceFirst ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.ReplaceAll ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Combine ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.SpreadsheetLookup ||\r\n valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.Join) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n }\r\n\r\n // At this point we need to evaluate the operands\r\n\r\n if (!valueOperation.operands || valueOperation.operands.length === 0) return undefined;\r\n\r\n var operandVariableTypes = [];\r\n for (let i = 0; i < valueOperation.operands.length; i++) {\r\n if (valueOperation.operands[i]) {\r\n if (valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.IfElseAssignment) {\r\n if (i === 0 || (i > 2 && i % 2 === 1)) continue;\r\n }\r\n switch (valueOperation.operands[i].operandType) {\r\n case Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand:\r\n var simpleOperand = valueOperation.operands[i];\r\n operandVariableTypes.push(CalculationService.getSimpleOperandVariableType(simpleOperand));\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.OperandType.ComplexOperand:\r\n var complexOperand = valueOperation.operands[i];\r\n operandVariableTypes.push(CalculationService.getComplexOperandVariableType(complexOperand));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n var dateTimeOperands;\r\n var timeOperands;\r\n var dateOperands;\r\n var dateOrTimeOperands;\r\n\r\n if (valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.DateTimeAdd) {\r\n dateTimeOperands = Enumerable.from(operandVariableTypes).count(i => i === Wars.Domain.Model.Codes.Enums.VariableType.DateTime);\r\n timeOperands = Enumerable.from(operandVariableTypes).count(i => i === Wars.Domain.Model.Codes.Enums.VariableType.Time);\r\n dateOperands = Enumerable.from(operandVariableTypes).count(i => i === Wars.Domain.Model.Codes.Enums.VariableType.Date);\r\n\r\n dateOrTimeOperands = dateTimeOperands + timeOperands + dateOperands;\r\n\r\n if (dateOperands === 1 && timeOperands === 1) return Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n if (dateOrTimeOperands === 2) {\r\n // Not Valid\r\n return undefined;\r\n }\r\n if (dateOrTimeOperands === 1) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n }\r\n return Wars.Domain.Model.Codes.Enums.VariableType.TimeSpan;\r\n }\r\n\r\n if (valueOperation.operator === Wars.Domain.Model.Codes.Enums.ValueOperator.DateTimeSubtract) {\r\n dateTimeOperands = Enumerable.from(operandVariableTypes).count(i => i === Wars.Domain.Model.Codes.Enums.VariableType.DateTime);\r\n timeOperands = Enumerable.from(operandVariableTypes).count(i => i === Wars.Domain.Model.Codes.Enums.VariableType.Time);\r\n dateOperands = Enumerable.from(operandVariableTypes).count(i => i === Wars.Domain.Model.Codes.Enums.VariableType.Date);\r\n\r\n dateOrTimeOperands = dateTimeOperands + timeOperands + dateOperands;\r\n\r\n if (dateOperands === 1 && timeOperands === 1) return Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n if (dateOrTimeOperands === 2) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.TimeSpan;\r\n }\r\n if (dateOrTimeOperands === 1) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.DateTime;\r\n }\r\n return Wars.Domain.Model.Codes.Enums.VariableType.TimeSpan;\r\n }\r\n\r\n return CalculationService.getVariableTypeBasedOnOperandTypes(operandVariableTypes);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('CalculationService', ['breeze', '$q', '$http']);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ClaimDefinitionService = /** @class */ (function (_super) {\r\n __extends(ClaimDefinitionService, _super);\r\n function ClaimDefinitionService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.$q = $q;\r\n return _this;\r\n }\r\n ClaimDefinitionService.prototype.getAllProcessClaimsExecutionSide = function (processTypeId) {\r\n var parameters = {\r\n processTypeId: processTypeId\r\n };\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ClaimDefinitionsCustom\")\r\n .withParameters(parameters);\r\n return this.executeQuery(query);\r\n };\r\n ClaimDefinitionService.prototype.getAllProcessClaims = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ClaimDefinitions\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(\"myOnAssignProcessAction, myOnUnAssignProcessAction\")\r\n .orderBy(\"type\");\r\n return this.executeQuery(query);\r\n };\r\n ClaimDefinitionService.prototype.getAllProcessAndSystemClaims = function (processConfigurationId) {\r\n var pred = this.breezeModule.Predicate\r\n .create('processConfiguration_id', '==', processConfigurationId)\r\n .or('processConfiguration_id', '==', null);\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ClaimDefinitions\")\r\n .where(pred)\r\n .orderBy(\"type\");\r\n return this.executeQuery(query);\r\n };\r\n ClaimDefinitionService.prototype.getApiProcessClaims = function (processConfigurationId) {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/claims/' + processConfigurationId).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ClaimDefinitionService.prototype.getUserRepositoryComponents = function () {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ExtensibleComponent/GetExternalUserRepositories').then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ClaimDefinitionService.prototype.getById = function (id) {\r\n return this.fetchById(id, \"ClaimDefinition\");\r\n };\r\n return ClaimDefinitionService;\r\n }(warsApp.services.DataService));\r\n services.ClaimDefinitionService = ClaimDefinitionService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ClaimDefinitionService', ['breeze', '$q', '$http']);\r\n","/// \r\n\r\nmodule warsApp.services {\r\n\r\n export class ClaimDefinitionService extends warsApp.services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http:angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n this.$q = $q;\r\n }\r\n\r\n public getAllProcessClaimsExecutionSide(processTypeId: string): ng.IPromise {\r\n var parameters = {\r\n processTypeId: processTypeId\r\n };\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ClaimDefinitionsCustom\")\r\n .withParameters(parameters);\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getAllProcessClaims(processConfigurationId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ClaimDefinitions\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(\"myOnAssignProcessAction, myOnUnAssignProcessAction\")\r\n .orderBy(\"type\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getAllProcessAndSystemClaims(processConfigurationId: string): ng.IPromise {\r\n var pred = this.breezeModule.Predicate\r\n .create('processConfiguration_id', '==', processConfigurationId)\r\n .or('processConfiguration_id', '==', null);\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ClaimDefinitions\")\r\n .where(pred)\r\n .orderBy(\"type\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getApiProcessClaims(processConfigurationId: string): ng.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/claims/' + processConfigurationId) .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getUserRepositoryComponents(): ng.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ExtensibleComponent/GetExternalUserRepositories').then(result => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public getById(id: string): ng.IPromise {\r\n return this.fetchById(id, \"ClaimDefinition\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ClaimDefinitionService', ['breeze', '$q','$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ClaimGroupService = /** @class */ (function (_super) {\r\n __extends(ClaimGroupService, _super);\r\n function ClaimGroupService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n ClaimGroupService.prototype.getGlaimGroup = function (id) {\r\n return this.fetchById(id, \"ClaimGroup\");\r\n };\r\n ClaimGroupService.prototype.createNewClaimGroup = function () {\r\n var newClaimGroup = this.createNewEntity(\"ClaimGroup\");\r\n return newClaimGroup;\r\n };\r\n return ClaimGroupService;\r\n }(services.DataService));\r\n services.ClaimGroupService = ClaimGroupService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ClaimGroupService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ClaimGroupService extends services.DataService {\r\n \r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getGlaimGroup(id: string): ng.IPromise {\r\n return this.fetchById(id, \"ClaimGroup\");\r\n }\r\n\r\n public createNewClaimGroup(): Wars.Domain.Model.ClaimGroup {\r\n var newClaimGroup = this.createNewEntity(\"ClaimGroup\");\r\n return newClaimGroup;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ClaimGroupService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ClaimsAssignmentConfigurationService = /** @class */ (function (_super) {\r\n __extends(ClaimsAssignmentConfigurationService, _super);\r\n function ClaimsAssignmentConfigurationService(injectedBreeze, $q) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$q = $q;\r\n return _this;\r\n }\r\n ClaimsAssignmentConfigurationService.prototype.createClaimAssignmentConfiguration = function () {\r\n return this.createNewEntity(\"ClaimsAssignmentConfiguration\");\r\n };\r\n ClaimsAssignmentConfigurationService.prototype.getAllAssignmentWorkflowClaims = function (processConfigId) {\r\n var p1 = new breeze.Predicate(\"processConfiguration_id\", \"==\", processConfigId);\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ClaimsAssignmentConfigurations\")\r\n .expand(\"myClaimChild,myClaim\")\r\n .where(p1);\r\n return this.executeQuery(query);\r\n };\r\n ClaimsAssignmentConfigurationService.prototype.getAllAssignmentConfigurationClaims = function (processConfigId, claimId) {\r\n var p1 = new breeze.Predicate(\"processConfiguration_id\", \"==\", processConfigId);\r\n var p2 = new breeze.Predicate(\"claim_id\", \"==\", claimId);\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ClaimsAssignmentConfigurations\")\r\n .expand(\"myClaimChild, assigningClaimValue, myCanBeAssignedCondition, myCanBeUnAssignedCondition\")\r\n .where(p1.and(p2));\r\n return this.executeQuery(query);\r\n };\r\n return ClaimsAssignmentConfigurationService;\r\n }(services.DataService));\r\n services.ClaimsAssignmentConfigurationService = ClaimsAssignmentConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ClaimsAssignmentConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ClaimsAssignmentConfigurationService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n this.$q = $q;\r\n }\r\n\r\n public createClaimAssignmentConfiguration(): Wars.Domain.Model.Workflow.ClaimsAssignmentConfiguration {\r\n return this.createNewEntity(\"ClaimsAssignmentConfiguration\");\r\n }\r\n public getAllAssignmentWorkflowClaims(processConfigId: string): ng.IPromise {\r\n var p1 = new breeze.Predicate(\"processConfiguration_id\", \"==\", processConfigId);\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ClaimsAssignmentConfigurations\")\r\n .expand(\"myClaimChild,myClaim\")\r\n .where(p1);\r\n\r\n return this.executeQuery(query);\r\n }\r\n public getAllAssignmentConfigurationClaims(processConfigId: string, claimId: string): ng.IPromise {\r\n var p1 = new breeze.Predicate(\"processConfiguration_id\", \"==\", processConfigId);\r\n var p2 = new breeze.Predicate(\"claim_id\", \"==\",claimId); \r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ClaimsAssignmentConfigurations\")\r\n .expand(\"myClaimChild, assigningClaimValue, myCanBeAssignedCondition, myCanBeUnAssignedCondition\")\r\n .where(p1.and(p2));\r\n\r\n return this.executeQuery(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ClaimsAssignmentConfigurationService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var CommentService = /** @class */ (function (_super) {\r\n __extends(CommentService, _super);\r\n function CommentService($http) {\r\n var _this = _super.call(this, $http) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n CommentService.prototype.createNewCommentThreadEntry = function (commentDto) {\r\n this.handlerUrl = \"api/ManageProcess/ProcessComment\";\r\n return this.usePostHandler(commentDto);\r\n };\r\n CommentService.prototype.createNewUserActionCommentReply = function (commentDto) {\r\n this.handlerUrl = \"api/ManageProcess/UserActionComment\";\r\n return this.usePostHandler(commentDto);\r\n };\r\n CommentService.prototype.deleteComment = function (processId, commentId) {\r\n return this.$http.post('./api/Process/' + processId + '/DeleteComment/' + commentId, null);\r\n };\r\n return CommentService;\r\n }(services.HttpHandlerService));\r\n services.CommentService = CommentService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('CommentService', ['$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class CommentService extends HttpHandlerService {\r\n\r\n constructor(private $http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public createNewCommentThreadEntry(commentDto: Wars.Domain.Model.Dtos.CommentDto) : ng.IPromise\r\n {\r\n this.handlerUrl = \"api/ManageProcess/ProcessComment\";\r\n return this.usePostHandler(commentDto);\r\n }\r\n\r\n public createNewUserActionCommentReply(commentDto: Wars.Domain.Model.Dtos.CommentDto): ng.IPromise\r\n {\r\n this.handlerUrl = \"api/ManageProcess/UserActionComment\";\r\n return this.usePostHandler(commentDto);\r\n }\r\n\r\n public deleteComment(processId: string, commentId: string): ng.IPromise {\r\n return this.$http.post('./api/Process/' + processId + '/DeleteComment/' + commentId,null);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('CommentService', ['$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ConditionService = /** @class */ (function (_super) {\r\n __extends(ConditionService, _super);\r\n function ConditionService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n ConditionService.prototype.getAllConditions = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Conditions\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n ConditionService.prototype.getAllConditionsEagerLoadExpression = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Conditions\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand('expression')\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n ConditionService.prototype.getCondition = function (id) {\r\n return this.fetchById(id, \"Condition\");\r\n };\r\n ConditionService.prototype.createFieldExpression = function () {\r\n var newFieldExpression = this.createNewEntity(\"TreeItemToTreeItemExpression\");\r\n newFieldExpression.expressionType = 1 /* TreeItemToTreeItem */;\r\n return newFieldExpression;\r\n };\r\n ConditionService.prototype.createValueExpression = function () {\r\n var fieldToConstantExpression = this.createNewEntity(\"TreeItemToConstantExpression\");\r\n fieldToConstantExpression.expressionType = 0 /* TreeItemToConstant */;\r\n return fieldToConstantExpression;\r\n };\r\n ConditionService.prototype.createGroupExpression = function () {\r\n var groupExpression = this.createNewEntity(\"GroupExpression\");\r\n groupExpression.expressionType = 2 /* Group */;\r\n groupExpression.isAnd = false;\r\n return groupExpression;\r\n };\r\n ConditionService.prototype.createStepExpression = function () {\r\n var formStepExpression = this.createNewEntity(\"FormStepExpression\");\r\n formStepExpression.expressionType = 3 /* Step */;\r\n return formStepExpression;\r\n };\r\n ConditionService.prototype.createOperationParameterSet = function () {\r\n return this.createNewEntity(\"OperationParameterSet\");\r\n };\r\n ConditionService.prototype.createOperationParameter = function (set) {\r\n var param = this.createNewEntity(\"OperationParameter\");\r\n param.myOperationParameterSet = set;\r\n return param;\r\n };\r\n ConditionService.prototype.getOperationSetExpanded = function (id) {\r\n var expand = \"operationParameters.treeItem.schemaProperty, \" +\r\n \"operationParameters.treeItem.calculation, \" +\r\n \"operationParameters.treeItem.condition, \" +\r\n \"operationParameters.treeItem.constantValue, \" +\r\n \"operationParameters.treeItem.formStep, \" +\r\n \"operationParameters.treeItem.claim\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"OperationParameterSets\")\r\n .where('id', '==', id)\r\n .expand(expand);\r\n return (this.executeQuery(query));\r\n };\r\n ConditionService.prototype.executeConditions = function (id, conditionIds) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/condition/' + id + '/ExecuteConditions/', conditionIds)\r\n .then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ConditionService.prototype.executeAssignConditions = function (processId, claimUniqueId, assignUserId, assignmentRights) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/condition/ExecuteAssignConditions/' + processId + '/' + claimUniqueId + '/' + assignUserId, assignmentRights)\r\n .then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ConditionService.prototype.executeUnAssigConditions = function (processId, assignmentId, assignmentRights) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/condition/ExecuteUnAssignConditions/' + processId + '/' + assignmentId, assignmentRights)\r\n .then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ConditionService.prototype.executeCondition = function (id, conditionId) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/condition/' + id + '/ExecuteCondition/' + conditionId, {})\r\n .then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n return ConditionService;\r\n }(services.DataService));\r\n services.ConditionService = ConditionService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ConditionService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ConditionService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getAllConditions(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Conditions\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getAllConditionsEagerLoadExpression(processConfigurationId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Conditions\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand('expression')\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getCondition(id: string): ng.IPromise {\r\n return this.fetchById(id, \"Condition\");\r\n }\r\n\r\n public createFieldExpression(): Wars.Domain.Model.Conditions.TreeItemExpression {\r\n var newFieldExpression = this.createNewEntity(\"TreeItemToTreeItemExpression\");\r\n newFieldExpression.expressionType = Wars.Domain.Model.Codes.Enums.ExpressionType.TreeItemToTreeItem;\r\n return newFieldExpression;\r\n }\r\n\r\n public createValueExpression(): Wars.Domain.Model.Conditions.TreeItemToConstantExpression {\r\n var fieldToConstantExpression = this.createNewEntity(\"TreeItemToConstantExpression\");\r\n fieldToConstantExpression.expressionType = Wars.Domain.Model.Codes.Enums.ExpressionType.TreeItemToConstant;\r\n return fieldToConstantExpression;\r\n }\r\n\r\n public createGroupExpression(): Wars.Domain.Model.Conditions.GroupExpression {\r\n var groupExpression = this.createNewEntity(\"GroupExpression\");\r\n groupExpression.expressionType = Wars.Domain.Model.Codes.Enums.ExpressionType.Group;\r\n groupExpression.isAnd = false;\r\n return groupExpression;\r\n }\r\n\r\n public createStepExpression(): Wars.Domain.Model.Conditions.FormStepExpression {\r\n var formStepExpression = this.createNewEntity(\"FormStepExpression\");\r\n formStepExpression.expressionType = Wars.Domain.Model.Codes.Enums.ExpressionType.Step;\r\n return formStepExpression;\r\n }\r\n\r\n public createOperationParameterSet(): Wars.Domain.Model.OperationParameterSet {\r\n return this.createNewEntity(\"OperationParameterSet\");\r\n }\r\n\r\n public createOperationParameter(set:Wars.Domain.Model.OperationParameterSet): Wars.Domain.Model.OperationParameter {\r\n let param=this.createNewEntity(\"OperationParameter\");\r\n param.myOperationParameterSet = set;\r\n\r\n return param;\r\n }\r\n\r\n public getOperationSetExpanded(id):angular.IPromise {\r\n var expand = \"operationParameters.treeItem.schemaProperty, \" +\r\n \"operationParameters.treeItem.calculation, \" +\r\n \"operationParameters.treeItem.condition, \" +\r\n \"operationParameters.treeItem.constantValue, \" +\r\n \"operationParameters.treeItem.formStep, \" +\r\n \"operationParameters.treeItem.claim\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"OperationParameterSets\")\r\n .where('id', '==', id)\r\n .expand(expand);\r\n\r\n return (this.executeQuery(query)) as any;\r\n }\r\n\r\n public executeConditions(id:string, conditionIds: string[]) : angular.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/condition/' + id + '/ExecuteConditions/', conditionIds)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public executeAssignConditions(\r\n processId: string,\r\n claimUniqueId: string,\r\n assignUserId: string,\r\n assignmentRights: Wars.Domain.Model.Dtos.AssignmentRightsDto[]): angular.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/condition/ExecuteAssignConditions/' + processId + '/' + claimUniqueId + '/' + assignUserId, assignmentRights)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public executeUnAssigConditions(\r\n processId: string,\r\n assignmentId: string,\r\n assignmentRights: Wars.Domain.Model.Dtos.AssignmentRightsDto[]): angular.IPromise\r\n {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/condition/ExecuteUnAssignConditions/' + processId + '/' + assignmentId, assignmentRights)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public executeCondition(id: string, conditionId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/condition/' + id + '/ExecuteCondition/' + conditionId, {})\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ConditionService', ['breeze', '$q','$http']);","/// \r\nmodule warsApp.services {\r\n\r\n export class ConfigurationCacheService {\r\n\r\n private processConfigCacheDictionary = {};\r\n\r\n public constructor(\r\n private $q: angular.IQService,\r\n private $http: angular.IHttpService,\r\n private configurationStorageService: services.ConfigurationStorageService) {\r\n }\r\n\r\n public getVersionedProcessConfiguration(id: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n var processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n\r\n // Check in memory cache first\r\n processConfiguration = this.getProcessConfigFromCache(id);\r\n if (processConfiguration !== undefined && processConfiguration !== null) {\r\n d.resolve(processConfiguration);\r\n return d.promise;\r\n }\r\n\r\n // Not in memory check local storage\r\n this.configurationStorageService.getProcessConfigFromLocalStorage(id).then(pc => {\r\n if (pc !== undefined && pc !== null) {\r\n this.addProcessConfigToCache(id, pc);\r\n d.resolve(pc);\r\n return d.promise;\r\n } else {\r\n // Not in memory or local storage - make call to server to get the process configuration\r\n this.$http.get('api/ConfigSnapshot/ProcessConfiguration/' + id).then(\r\n (result) => {\r\n var byteArray: any = result.data;\r\n processConfiguration =\r\n this.configurationStorageService.storeProcessConfigInLocalStorage(id, byteArray);\r\n this.addProcessConfigToCache(id, processConfiguration);\r\n d.resolve(processConfiguration);\r\n });\r\n }\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getActiveSystemLevelConfiguration(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var url = \"./api/ConfigSnapshot/GetActiveSystemLevel\";\r\n this.$http.get(url).then(\r\n (result: any) => {\r\n if (!result) return undefined;\r\n var config: Wars.Domain.Model.Dtos.ConfigSnapshotDto = result.data;\r\n defer.resolve(config);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n public activateSystemLevelConfiguration(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var url = \"./api/ConfigSnapshot/Activate\";\r\n this.$http.post(url, undefined).then(\r\n (result: any) => {\r\n var config: Wars.Domain.Model.Dtos.ConfigSnapshotDto = result.data;\r\n defer.resolve(config);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n public getSystemStatuses(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var url = \"./api/ConfigSnapshot/GetSystemStatusCodes\";\r\n this.$http.get(url).then(\r\n (result: any) => {\r\n defer.resolve(result.data);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n public getSystemStates(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var url = \"./api/ConfigSnapshot/GetSystemStateCodes\";\r\n this.$http.get(url).then(\r\n (result: any) => {\r\n defer.resolve(result.data);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n public getProcessStates(processConfigId: string): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var url = \"./api/ConfigSnapshot/GetProcessStateCodes/\" + processConfigId;\r\n this.$http.get(url).then(\r\n (result: any) => {\r\n defer.resolve(result.data);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n public getSystemClaimGroups(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var url = \"./api/ConfigSnapshot/GetClaimGroups\";\r\n this.$http.get(url).then(\r\n (result: any) => {\r\n defer.resolve(result.data);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n public getSystemReviewGroups(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n var url = \"./api/ConfigSnapshot/GetReviewGroups\";\r\n this.$http.get(url).then(\r\n (result: any) => {\r\n defer.resolve(result.data);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n private addProcessConfigToCache(id: string, processConfig: Wars.Domain.Model.ProcessConfiguration): void {\r\n this.processConfigCacheDictionary[id] = processConfig;\r\n }\r\n\r\n private getProcessConfigFromCache(id: string): Wars.Domain.Model.ProcessConfiguration {\r\n return this.processConfigCacheDictionary[id];\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ConfigurationCacheService', ['$q', '$http', \"configurationStorageService\"]);","/// \r\nmodule warsApp.services {\r\n declare var localforage: any;\r\n\r\n export class ConfigurationStorageService {\r\n private logType = \"ConfigurationStorageService\";\r\n\r\n public constructor(private $q: angular.IQService) {\r\n\r\n }\r\n\r\n public storeProcessConfigInLocalStorage(id: string, processConfigByteArray: any): any {\r\n var cachedConfigurationIds = \"\";\r\n cachedConfigurationIds = this.updateCachedConfigIds(id);\r\n\r\n localforage.setItem(id, processConfigByteArray).catch(e => {\r\n if (this.isQuotaExceeded(e)) {\r\n try {\r\n WarsLogger.logError(\"Local Storage Exceeded - removing all cached configurations.\",\r\n this.logType);\r\n this.clearConfigurationsFromLocalStorage(cachedConfigurationIds);\r\n this.updateCachedConfigIds(id);\r\n localforage.setItem(id, processConfigByteArray);\r\n } catch (secondException) {\r\n WarsLogger.logError(secondException, this.logType);\r\n }\r\n }\r\n });\r\n\r\n return this.decompressAndDeserialize(processConfigByteArray);\r\n }\r\n\r\n private decompressAndDeserialize(byteArray: any): Wars.Domain.Model.ProcessConfiguration {\r\n var newLinesRemoved = byteArray.replace(/\\s/g, '');\r\n var decompressed = this.deCompress(newLinesRemoved);\r\n return this.deserialize(decompressed);\r\n }\r\n\r\n private deCompress(byteArray: any): string {\r\n // Decode base64 (convert ascii to binary)\r\n var strData = atob(byteArray);\r\n // Convert binary string to character-number array\r\n var charData = strData.split(\"\").map((x) => { return x.charCodeAt(0); });\r\n // Turn number array into byte-array\r\n var binData = new Uint8Array(charData);\r\n // Pako magic\r\n var data = pako.inflate(binData);\r\n // convert to unsigned 16 bit\r\n var arr = new Uint16Array(data);\r\n\r\n // Convert gunzipped byteArray back to ascii string:\r\n var json = [];\r\n ////process in reverse to remove the variable byte order markers at the front of the byte array\r\n for (var i = 0; i < arr.length; i++) {\r\n var char = String.fromCharCode(arr[i]);\r\n json.push(char);\r\n }\r\n\r\n return json.join(\"\");\r\n }\r\n\r\n public getProcessConfigFromLocalStorage(id: string): angular.IPromise {\r\n let d = this.$q.defer();\r\n\r\n var processConfiguration: Wars.Domain.Model.ProcessConfiguration = null;\r\n localforage.getItem(id).then((storedItem) => {\r\n if (storedItem) {\r\n processConfiguration = this.decompressAndDeserialize(storedItem);\r\n d.resolve(processConfiguration);\r\n } else {\r\n d.resolve(null);\r\n }\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n private updateCachedConfigIds(id: string): string {\r\n var cachedConfigurationIds = localStorage.getItem(\"cachedConfigurationIds\");\r\n if (!cachedConfigurationIds) cachedConfigurationIds = \"\";\r\n if (cachedConfigurationIds.indexOf(id) === -1) {\r\n if (cachedConfigurationIds === \"\") {localStorage\r\n cachedConfigurationIds = id;\r\n } else {\r\n cachedConfigurationIds += \",\" + id;\r\n }\r\n }\r\n localforage.setItem(\"cachedConfigurationIds\", cachedConfigurationIds);\r\n return cachedConfigurationIds;\r\n }\r\n\r\n private clearConfigurationsFromLocalStorage(cachedConfigurationIds: string) {\r\n var cachedConfigurationsToClear = cachedConfigurationIds.split(\",\");\r\n for (var i = 0; i < cachedConfigurationsToClear.length; i++) {\r\n localforage.removeItem(cachedConfigurationsToClear[i]);\r\n }\r\n localforage.setItem(\"cachedConfigurationIds\", \"\");\r\n }\r\n\r\n private deserialize(jsonString: string): any {\r\n var jsonObject = JSON.parse(jsonString);\r\n return JsonNetDecycle.retrocycle(jsonObject);\r\n }\r\n\r\n private isQuotaExceeded(e: any): boolean {\r\n var quotaExceeded = false;\r\n if (e) {\r\n if (e.code) {\r\n switch (e.code) {\r\n case 22:\r\n quotaExceeded = true;\r\n break;\r\n case 1014:\r\n // Firefox\r\n if (e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\r\n quotaExceeded = true;\r\n }\r\n break;\r\n }\r\n } else if (e.number === -2147024882) {\r\n // Internet Explorer 8\r\n quotaExceeded = true;\r\n }\r\n }\r\n return quotaExceeded;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ConfigurationStorageService', ['$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ConstantService = /** @class */ (function (_super) {\r\n __extends(ConstantService, _super);\r\n function ConstantService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n ConstantService.prototype.getAllConstantsForProcessConfiguration = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ConstantValues\")\r\n .where(\"processConfiguration_id\", \"==\", id);\r\n return this.executeQuery(query);\r\n };\r\n ConstantService.prototype.createConstant = function () {\r\n return this.createNewEntity(\"ConstantValue\");\r\n };\r\n ConstantService.prototype.getConstant = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ConstantValues\")\r\n .where(\"id\", \"==\", id);\r\n return this.fetch(query);\r\n //TODO: this call I am guessing due to caching would every once in a while return a null constant here when one existed in the DB with the specified ID. \r\n //TODO: when we have more time spend a minute to figure out why\r\n //return this.fetchById(id, \"ConstantValue\");\r\n };\r\n return ConstantService;\r\n }(services.DataService));\r\n services.ConstantService = ConstantService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ConstantService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ConstantService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getAllConstantsForProcessConfiguration(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ConstantValues\")\r\n .where(\"processConfiguration_id\", \"==\", id);\r\n\r\n return this.executeQuery(query); \r\n }\r\n\r\n public createConstant(): Wars.Domain.Model.ConstantValue {\r\n return this.createNewEntity(\"ConstantValue\");\r\n }\r\n\r\n public getConstant(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ConstantValues\")\r\n .where(\"id\", \"==\", id);\r\n\r\n return this.fetch(query); \r\n //TODO: this call I am guessing due to caching would every once in a while return a null constant here when one existed in the DB with the specified ID. \r\n //TODO: when we have more time spend a minute to figure out why\r\n //return this.fetchById(id, \"ConstantValue\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ConstantService', ['breeze', '$q']);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ContentPageService = /** @class */ (function (_super) {\r\n __extends(ContentPageService, _super);\r\n function ContentPageService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n ContentPageService.prototype.getContentPagesForConfiguration = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/GetContentPagesForConfiguration\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n ContentPageService.prototype.getContentPagesForExecution = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/GetContentPagesForExection\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n ContentPageService.prototype.getContentPageForExecution = function (id) {\r\n var params = {};\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/GetContentPageForExecution?id=\" + id;\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n ContentPageService.prototype.addContentPage = function (contentPage) {\r\n var params = contentPage;\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/CreateContentPage\";\r\n return this.usePostHandler(params);\r\n };\r\n ContentPageService.prototype.updateContentPage = function (contentPage) {\r\n var params = contentPage;\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/UpdateContentPage\";\r\n return this.usePostHandler(params);\r\n };\r\n ContentPageService.prototype.deleteContentPage = function (contentPage) {\r\n var params = contentPage;\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/DeleteContentPage\";\r\n return this.usePostHandler(params);\r\n };\r\n return ContentPageService;\r\n }(services.HttpHandlerService));\r\n services.ContentPageService = ContentPageService;\r\n // public getContentPagesTitles(): ng.IPromise {\r\n // var namesQuery= this.breezeModule.EntityQuery\r\n // .from(\"ContentPages\")\r\n // .select(\"title, id\")\r\n // .orderBy(\"title\");\r\n // returnthis.executeQuery(namesQuery);\r\n // }\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ContentPageService', ['$http']);\r\n","/// \r\n\r\nmodule warsApp.services {\r\n\r\n export class ContentPageService extends HttpHandlerService {\r\n\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public getContentPagesForConfiguration(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/GetContentPagesForConfiguration\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.ContentPageDto[]) => {\r\n return result;\r\n });\r\n }\r\n\r\n public getContentPagesForExecution(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/GetContentPagesForExection\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.ContentPageDto[]) => {\r\n return result;\r\n });\r\n }\r\n\r\n public getContentPageForExecution(id: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/GetContentPageForExecution?id=\" + id;\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.ContentPageDto) => {\r\n return result;\r\n });\r\n }\r\n\r\n public addContentPage(contentPage: models.ContentPageDto): ng.IPromise {\r\n var params = contentPage;\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/CreateContentPage\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateContentPage(contentPage: Wars.Domain.Model.Dtos.ContentPageDto): ng.IPromise {\r\n var params = contentPage;\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/UpdateContentPage\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public deleteContentPage(contentPage: Wars.Domain.Model.Dtos.ContentPageDto): ng.IPromise {\r\n var params = contentPage;\r\n this.handlerUrl = \"api/ContentManagement/ContentPage/DeleteContentPage\";\r\n return this.usePostHandler(params);\r\n }\r\n }\r\n\r\n // public getContentPagesTitles(): ng.IPromise {\r\n // var namesQuery= this.breezeModule.EntityQuery\r\n // .from(\"ContentPages\")\r\n // .select(\"title, id\")\r\n // .orderBy(\"title\");\r\n\r\n // returnthis.executeQuery(namesQuery);\r\n // }\r\n}\r\n\r\nwarsApp.registerService('ContentPageService', ['$http'])","/// \r\nmodule warsApp.services {\r\n export class CustomDivService {\r\n private divCounter:any = {};\r\n private divHandler: any = {};\r\n\r\n constructor() {\r\n \r\n }\r\n\r\n public divLoaded(stepId: string) {\r\n if (!this.divCounter[stepId]) {\r\n this.divCounter[stepId] = 0;\r\n }\r\n\r\n this.divCounter[stepId]++;\r\n\r\n if (this.divHandler[stepId]) {\r\n this.divHandler[stepId].forEach(c => {\r\n c(this.divCounter[stepId]);\r\n });\r\n }\r\n }\r\n\r\n public resetCounter() {\r\n this.divCounter={};\r\n }\r\n\r\n public registerDivLoadedHandler(stepId: string, callback: any) {\r\n if (!this.divHandler[stepId]) {\r\n this.divHandler[stepId] = [];\r\n }\r\n\r\n this.divHandler[stepId].push(callback);\r\n }\r\n\r\n public unregisterDivLoadedHandler(stepId) {\r\n if (this.divHandler[stepId]) {\r\n this.divHandler[stepId] = [];\r\n }\r\n }\r\n } \r\n}\r\n\r\nwarsApp.registerService('CustomDivService', [])","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var DataLinkService = /** @class */ (function (_super) {\r\n __extends(DataLinkService, _super);\r\n function DataLinkService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n DataLinkService.prototype.createNewDataLink = function (processConfigId) {\r\n var newDataLink = this.createNewEntity(\"DataLink\");\r\n newDataLink.processConfiguration_id = processConfigId;\r\n return newDataLink;\r\n };\r\n DataLinkService.prototype.getDataLinks = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"DataLinks\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand('item1TreeItem.schemaProperty, item2TreeItem.schemaProperty');\r\n return this.executeQuery(query);\r\n };\r\n return DataLinkService;\r\n }(services.DataService));\r\n services.DataLinkService = DataLinkService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('DataLinkService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class DataLinkService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createNewDataLink(processConfigId: string): Wars.Domain.Model.DataLink {\r\n var newDataLink = this.createNewEntity(\"DataLink\");\r\n newDataLink.processConfiguration_id = processConfigId;\r\n return newDataLink;\r\n }\r\n\r\n public getDataLinks(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"DataLinks\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand('item1TreeItem.schemaProperty, item2TreeItem.schemaProperty');\r\n\r\n return this.executeQuery(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('DataLinkService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var DataSourceService = /** @class */ (function (_super) {\r\n __extends(DataSourceService, _super);\r\n function DataSourceService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n DataSourceService.prototype.getDataSources = function (id) {\r\n var query = this.breezeModule.EntityQuery.from(\"DataSources\");\r\n if (id) {\r\n query = query.where(\"processConfiguration_id\", \"==\", id);\r\n }\r\n else {\r\n query = query.where(\"processConfiguration_id\", \"==\", null);\r\n }\r\n query = query.expand(\"operations.parameters.parmeterSchema, objectSchemas.properties.codeGroup.codes, objectSchemas.properties.typeSchema\");\r\n return this.executeQuery(query);\r\n };\r\n DataSourceService.prototype.createNewDataOperation = function () {\r\n return this.createNewEntity(\"DataOperation\");\r\n };\r\n DataSourceService.prototype.createNewDataOperationParameter = function () {\r\n return this.createNewEntity(\"DataOperationParameter\");\r\n };\r\n DataSourceService.prototype.parseSwaggerUrl = function (url) {\r\n return SwaggerParser.parse(url);\r\n };\r\n DataSourceService.prototype.createNewObjectSchema = function () {\r\n var obj = this.createNewEntity(\"ObjectSchema\");\r\n obj.isList = false;\r\n obj.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return obj;\r\n };\r\n DataSourceService.prototype.createNewSchemaProperty = function () {\r\n var prop = this.createNewEntity(\"SchemaProperty\");\r\n prop.required = true;\r\n prop.isIndexed = false;\r\n prop.isSystemLevel = false;\r\n prop.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return prop;\r\n };\r\n return DataSourceService;\r\n }(services.DataService));\r\n services.DataSourceService = DataSourceService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('DataSourceService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n declare var SwaggerParser;\r\n\r\n export class DataSourceService extends services.DataService {\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getDataSources(id?: string): ng.IPromise {\r\n let query = this.breezeModule.EntityQuery.from(\"DataSources\");\r\n\r\n if (id){\r\n query = query.where(\"processConfiguration_id\",\"==\", id);\r\n }else{\r\n query = query.where(\"processConfiguration_id\", \"==\", null);\r\n }\r\n\r\n query = query.expand(\"operations.parameters.parmeterSchema, objectSchemas.properties.codeGroup.codes, objectSchemas.properties.typeSchema\");\r\n\r\n return this.executeQuery(query);\r\n\r\n }\r\n public createNewDataOperation(): models.DataOperation {\r\n return this.createNewEntity(\"DataOperation\");\r\n }\r\n public createNewDataOperationParameter(): Wars.Domain.Model.DataOperationParameter{\r\n return this.createNewEntity(\"DataOperationParameter\");\r\n }\r\n public parseSwaggerUrl(url: string): ng.IPromise {\r\n return (SwaggerParser).parse(url);\r\n\r\n }\r\n public createNewObjectSchema(): Wars.Domain.Model.ObjectSchema {\r\n let obj = this.createNewEntity(\"ObjectSchema\");\r\n obj.isList = false;\r\n obj.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return obj;\r\n }\r\n public createNewSchemaProperty(): Wars.Domain.Model.SchemaProperty{\r\n var prop = this.createNewEntity(\"SchemaProperty\");\r\n prop.required = true;\r\n prop.isIndexed = false;\r\n prop.isSystemLevel = false;\r\n prop.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n\r\n return prop;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('DataSourceService', ['breeze', '$q']);","/// \r\nmodule warsApp.services {\r\n export class DateRangeService {\r\n public doesDateRangePass(date: Date, dateRange: Wars.Domain.Model.Codes.Enums.DateRange) {\r\n switch (dateRange) {\r\n case Wars.Domain.Model.Codes.Enums.DateRange.AnyDate:\r\n return date != null;\r\n case Wars.Domain.Model.Codes.Enums.DateRange.FutureDate:\r\n return date.setHours(0, 0, 0, 0) >= new Date().setHours(0, 0, 0, 0) ;\r\n case Wars.Domain.Model.Codes.Enums.DateRange.PresentDate:\r\n return date.setHours(0, 0, 0, 0) === new Date().setHours(0, 0, 0, 0);\r\n case Wars.Domain.Model.Codes.Enums.DateRange.PreviousDate:\r\n return date.setHours(0, 0, 0, 0) <= new Date().setHours(0, 0, 0, 0);\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n public dateRangeFailureText(dateRange: Wars.Domain.Model.Codes.Enums.DateRange) {\r\n switch (dateRange) {\r\n case Wars.Domain.Model.Codes.Enums.DateRange.AnyDate:\r\n return \"must be a date.\";\r\n case Wars.Domain.Model.Codes.Enums.DateRange.FutureDate:\r\n return \"must be the current or a future date.\";\r\n case Wars.Domain.Model.Codes.Enums.DateRange.PresentDate:\r\n return \"must be the current date.\";\r\n case Wars.Domain.Model.Codes.Enums.DateRange.PreviousDate:\r\n return \"must be the current or a previous date.\";\r\n default:\r\n return \"\";\r\n }\r\n }\r\n } \r\n}\r\n\r\nwarsApp.registerService('DateRangeService',[]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var DeleteService = /** @class */ (function (_super) {\r\n __extends(DeleteService, _super);\r\n function DeleteService($http, $q, modalService, growl, dataService) {\r\n var _this = _super.call(this, $http) || this;\r\n _this.$q = $q;\r\n _this.modalService = modalService;\r\n _this.growl = growl;\r\n _this.dataService = dataService;\r\n return _this;\r\n }\r\n DeleteService.prototype.delete = function (name, id) {\r\n var params = {};\r\n this.handlerUrl = \"api/Delete/SafeDelete/\" + name + \"/\" + id;\r\n return this.usePostHandler(params);\r\n };\r\n DeleteService.prototype.deleteRecursivelyWithoutWarning = function (name, id, ignoreUnsavedChanges) {\r\n if (!ignoreUnsavedChanges && this.dataService.hasChanges()) {\r\n this.growl.error(\"Please save all in-work changes before attempting this delete action\", { ttl: 5000 });\r\n var deferred = this.$q.defer();\r\n var failureResult = {\r\n entityName: name,\r\n entityId: id,\r\n wasSuccessful: false,\r\n inWorkChangesExist: true\r\n };\r\n deferred.resolve(failureResult);\r\n return deferred.promise;\r\n }\r\n var params = {};\r\n this.handlerUrl = \"api/Delete/RecursiveDelete/\" + name + \"/\" + id;\r\n return this.usePostHandler(params);\r\n };\r\n DeleteService.prototype.deleteBatchRecursivelyWithoutWarning = function (deleteInfo, ignoreUnsavedChanges) {\r\n if (!ignoreUnsavedChanges && this.dataService.hasChanges()) {\r\n this.growl.error(\"Please save all in-work changes before attempting this delete action\", { ttl: 5000 });\r\n var deferred = this.$q.defer();\r\n var failureResult = {\r\n wasSuccessful: false,\r\n inWorkChangesExist: true\r\n };\r\n deferred.resolve(failureResult);\r\n return deferred.promise;\r\n }\r\n this.handlerUrl = \"api/Delete/RecursiveDeleteBundle\";\r\n return this.usePostHandler(deleteInfo);\r\n };\r\n DeleteService.prototype.deleteWithModalConfirmationIfNecessary = function (name, id, successMessage, successCallback, failureMessage, failureCallback) {\r\n var _this = this;\r\n if (this.dataService.hasChanges()) {\r\n this.growl.error(\"Please save all in-work changes before attempting this delete action\", { ttl: 5000 });\r\n return;\r\n }\r\n else {\r\n this.delete(name, id).then(function (deleteResult) {\r\n if (deleteResult.wasSuccessful) {\r\n _this.processSuccessfulDelete(deleteResult, successMessage, successCallback);\r\n }\r\n else {\r\n _this.showDeleteModal(deleteResult, successCallback, successMessage, failureCallback, failureMessage);\r\n }\r\n });\r\n }\r\n };\r\n //Use this one:\r\n DeleteService.prototype.deleteWithModalConfirmIfNecessary = function (entityName, id, messagePrefix, successCallback, failureCallback) {\r\n this.deleteWithModalConfirmationIfNecessary(entityName, id, messagePrefix + \" successfully deleted\", successCallback, messagePrefix + \" could not be deleted\", failureCallback);\r\n };\r\n DeleteService.prototype.processSuccessfulDelete = function (deleteResult, successMessage, successCallback) {\r\n if (successMessage)\r\n this.growl.success(successMessage, { ttl: 5000 });\r\n this.dataService.resolveDeletesAndUpdatesPerformedOutsideOfBreeze(deleteResult);\r\n if (successCallback)\r\n successCallback();\r\n };\r\n DeleteService.prototype.showDeleteModal = function (deleteResult, successCallback, successMessage, failureCallback, failureMessage) {\r\n var _this = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/deleteModal.html\",\r\n controller: \"deleteModalController\",\r\n size: 'lg',\r\n inputs: {\r\n deleteResult: deleteResult\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n // Only true if not a cancel\r\n if (result && result.cancel === false) {\r\n if (result.deleteResult && result.deleteResult.wasSuccessful) {\r\n _this.processSuccessfulDelete(result.deleteResult, successMessage, successCallback);\r\n }\r\n else {\r\n if (failureMessage)\r\n _this.growl.error(failureMessage, { ttl: 5000 });\r\n if (failureCallback)\r\n failureCallback(result.deleteResult);\r\n }\r\n }\r\n });\r\n });\r\n };\r\n return DeleteService;\r\n }(services.HttpHandlerService));\r\n services.DeleteService = DeleteService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService(\"DeleteService\", [\"$http\", \"$q\", \"ModalService\", \"growl\", \"dataService\"]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class DeleteService extends HttpHandlerService {\r\n constructor(\r\n $http: ng.IHttpService,\r\n private $q: angular.IQService,\r\n private modalService: any,\r\n private growl: angular.growl.IGrowlService,\r\n private dataService: services.DataService) {\r\n super($http);\r\n }\r\n\r\n private delete(name: string, id: string): ng.IPromise {\r\n var params: any = { };\r\n this.handlerUrl = \"api/Delete/SafeDelete/\" + name + \"/\" + id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public deleteRecursivelyWithoutWarning(name: string, id: string, ignoreUnsavedChanges: boolean): ng.IPromise {\r\n if (!ignoreUnsavedChanges && this.dataService.hasChanges()) {\r\n this.growl.error(\"Please save all in-work changes before attempting this delete action\", { ttl: 5000 });\r\n var deferred = this.$q.defer();\r\n\r\n var failureResult: any = {\r\n entityName: name,\r\n entityId: id,\r\n wasSuccessful: false,\r\n inWorkChangesExist: true\r\n };\r\n\r\n deferred.resolve(failureResult);\r\n return deferred.promise;\r\n } \r\n\r\n var params: any = {};\r\n this.handlerUrl = \"api/Delete/RecursiveDelete/\" + name + \"/\" + id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public deleteBatchRecursivelyWithoutWarning(deleteInfo: Wars.Domain.Model.Dtos.Delete.DeleteInfoDto, ignoreUnsavedChanges: boolean): ng.IPromise {\r\n if (!ignoreUnsavedChanges && this.dataService.hasChanges()) {\r\n this.growl.error(\"Please save all in-work changes before attempting this delete action\", { ttl: 5000 });\r\n var deferred = this.$q.defer();\r\n\r\n var failureResult: any = {\r\n wasSuccessful: false,\r\n inWorkChangesExist: true\r\n };\r\n\r\n deferred.resolve(failureResult);\r\n return deferred.promise;\r\n }\r\n\r\n this.handlerUrl = \"api/Delete/RecursiveDeleteBundle\";\r\n return this.usePostHandler(deleteInfo);\r\n }\r\n\r\n public deleteWithModalConfirmationIfNecessary(\r\n name: string,\r\n id: string,\r\n successMessage?: string,\r\n successCallback?: () => void,\r\n failureMessage?: string,\r\n failureCallback?: (result: Wars.Domain.Model.Dtos.Delete.DeleteResult) => void): void\r\n {\r\n if (this.dataService.hasChanges()) {\r\n this.growl.error(\"Please save all in-work changes before attempting this delete action\", { ttl: 5000 });\r\n return;\r\n } else {\r\n this.delete(name, id).then((deleteResult) => {\r\n if (deleteResult.wasSuccessful) {\r\n this.processSuccessfulDelete(deleteResult, successMessage, successCallback);\r\n } else {\r\n this.showDeleteModal(deleteResult, successCallback, successMessage, failureCallback, failureMessage);\r\n }\r\n });\r\n }\r\n }\r\n//Use this one:\r\n public deleteWithModalConfirmIfNecessary(\r\n entityName: string,\r\n id: string,\r\n messagePrefix: string,\r\n successCallback?: () => void,\r\n failureCallback?: (result: Wars.Domain.Model.Dtos.Delete.DeleteResult) => void): void\r\n {\r\n this.deleteWithModalConfirmationIfNecessary(\r\n entityName,\r\n id,\r\n messagePrefix + \" successfully deleted\",\r\n successCallback,\r\n messagePrefix + \" could not be deleted\",\r\n failureCallback);\r\n }\r\n\r\n private processSuccessfulDelete(deleteResult: Wars.Domain.Model.Dtos.Delete.DeleteResult, successMessage?: string, successCallback?: () => void): void {\r\n if (successMessage) this.growl.success(successMessage, { ttl: 5000 });\r\n this.dataService.resolveDeletesAndUpdatesPerformedOutsideOfBreeze(deleteResult);\r\n if (successCallback) successCallback();\r\n }\r\n\r\n private showDeleteModal(\r\n deleteResult: Wars.Domain.Model.Dtos.Delete.DeleteResult,\r\n successCallback?: () => void,\r\n successMessage?: string,\r\n failureCallback?: (result: Wars.Domain.Model.Dtos.Delete.DeleteResult) => void,\r\n failureMessage?: string): void\r\n {\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/deleteModal.html\",\r\n controller: \"deleteModalController\",\r\n size: 'lg',\r\n inputs: {\r\n deleteResult: deleteResult\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n // Only true if not a cancel\r\n if (result && result.cancel === false) {\r\n if (result.deleteResult && result.deleteResult.wasSuccessful) {\r\n this.processSuccessfulDelete(result.deleteResult, successMessage, successCallback);\r\n } else {\r\n if (failureMessage) this.growl.error(failureMessage, { ttl: 5000 });\r\n if (failureCallback) failureCallback(result.deleteResult);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"DeleteService\", [\"$http\", \"$q\", \"ModalService\", \"growl\", \"dataService\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var DocumentService = /** @class */ (function (_super) {\r\n __extends(DocumentService, _super);\r\n function DocumentService(injectedBreeze, $q, $http, systemLevelService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.systemLevelService = systemLevelService;\r\n return _this;\r\n }\r\n DocumentService.prototype.getDocumentConfiguration = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"DocumentConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand(\"canDownloadSecureDocumentSecurityMatrix, canSecureDocumentSecurityMatrix, myAvailableDocumentTypes.mySystemCode\");\r\n return this.fetch(query);\r\n };\r\n DocumentService.prototype.getDocumentConfigs = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"DocumentConfigurations\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand(\"canDownloadSecureDocumentSecurityMatrix, canSecureDocumentSecurityMatrix, myAvailableDocumentTypes.mySystemCode\");\r\n return this.executeQuery(query);\r\n };\r\n DocumentService.prototype.createDocumentConfig = function () {\r\n var docConfig = this.createNewEntity(\"DocumentConfiguration\");\r\n docConfig.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n docConfig.overrideSystemDocumentAccepts = false;\r\n docConfig.includeDocumentType = false;\r\n docConfig.includeDocumentComment = false;\r\n docConfig.includeDocumentDelete = false;\r\n docConfig.maxDocumentsAllowed = 1;\r\n docConfig.useSingleMetadataForMultipleFiles = false;\r\n return docConfig;\r\n };\r\n DocumentService.prototype.createAvailableDocumentType = function (docConfig, systemCode) {\r\n var documentTypeAvailability = this.createNewEntity(\"DocumentTypeAvailability\");\r\n documentTypeAvailability.myDocumentConfiguration = docConfig;\r\n documentTypeAvailability.documentConfiguration_id = docConfig.id;\r\n documentTypeAvailability.mySystemCode = systemCode;\r\n documentTypeAvailability.systemCode_id = systemCode.id;\r\n documentTypeAvailability.isAvailable = false;\r\n return documentTypeAvailability;\r\n };\r\n DocumentService.prototype.getFaClass = function (fileName) {\r\n if (!fileName)\r\n return 'fa-file-o';\r\n var imageExtensions = ['.jpg', '.jpeg', '.jfif', '.exif', '.tiff', '.tif', '.gif', '.bmp', '.png'];\r\n var wordExtensioins = ['.doc', '.dot', '.docx', '.docm', '.dotx', '.dotm', '.docb'];\r\n var excelExtensions = ['.xls', '.xlt', '.xlm', '.xlsx', '.xlsm', '.xltx', '.xltm'];\r\n var archiveExtensions = ['.zip', '.tar', '.7z'];\r\n var textExtensions = ['.txt'];\r\n var lowerCaseFileName = fileName.toLowerCase();\r\n if (lowerCaseFileName.endsWith(\".pdf\"))\r\n return 'fa-file-pdf-o';\r\n var image = Enumerable.from(imageExtensions).any(function (i) { return lowerCaseFileName.endsWith(i); });\r\n if (image)\r\n return 'fa-file-image-o';\r\n var wordDoc = Enumerable.from(wordExtensioins).any(function (i) { return lowerCaseFileName.endsWith(i); });\r\n if (wordDoc)\r\n return 'fa-file-word-o';\r\n var excel = Enumerable.from(excelExtensions).any(function (i) { return lowerCaseFileName.endsWith(i); });\r\n if (excel)\r\n return 'fa-file-excel-o';\r\n var archive = Enumerable.from(archiveExtensions).any(function (i) { return lowerCaseFileName.endsWith(i); });\r\n if (archive)\r\n return 'fa-file-archive-o';\r\n var text = Enumerable.from(textExtensions).any(function (i) { return lowerCaseFileName.endsWith(i); });\r\n if (text)\r\n return 'fa-file-text-o';\r\n return 'fa-file-o';\r\n };\r\n DocumentService.prototype.getFileSizeStringFilter = function (filesize) {\r\n return this.getFileSizeString(parseInt(filesize));\r\n };\r\n DocumentService.prototype.getFileSizeString = function (filesize) {\r\n var kb = 1024;\r\n var mb = 1048576;\r\n if (!filesize)\r\n return \"unknown\";\r\n if (filesize < kb)\r\n return filesize + \" bytes\";\r\n if (filesize < mb)\r\n return Math.floor(filesize / kb) + \" KB\";\r\n return Math.floor(filesize / mb) + \" MB\";\r\n };\r\n return DocumentService;\r\n }(services.DataService));\r\n services.DocumentService = DocumentService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService(\"DocumentService\", [\"breeze\", \"$q\", \"$http\", \"systemLevelService\"]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class DocumentService extends services.DataService {\r\n\r\n constructor(\r\n injectedBreeze: typeof breeze,\r\n $q: angular.IQService,\r\n private $http: angular.IHttpService,\r\n private systemLevelService: services.SystemLevelService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getDocumentConfiguration(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"DocumentConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand(\"canDownloadSecureDocumentSecurityMatrix, canSecureDocumentSecurityMatrix, myAvailableDocumentTypes.mySystemCode\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getDocumentConfigs(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"DocumentConfigurations\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand(\"canDownloadSecureDocumentSecurityMatrix, canSecureDocumentSecurityMatrix, myAvailableDocumentTypes.mySystemCode\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createDocumentConfig(): Wars.Domain.Model.Documents.DocumentConfiguration {\r\n var docConfig = this.createNewEntity(\"DocumentConfiguration\");\r\n docConfig.uniqueIdentifier = UtilityService.generateGuidComb();\r\n docConfig.overrideSystemDocumentAccepts = false;\r\n docConfig.includeDocumentType = false;\r\n docConfig.includeDocumentComment = false;\r\n docConfig.includeDocumentDelete = false;\r\n docConfig.maxDocumentsAllowed = 1;\r\n docConfig.useSingleMetadataForMultipleFiles = false;\r\n return docConfig;\r\n }\r\n\r\n public createAvailableDocumentType(\r\n docConfig: Wars.Domain.Model.Documents.DocumentConfiguration,\r\n systemCode: Wars.Domain.Model.Codes.SystemCode): Wars.Domain.Model.Documents.DocumentTypeAvailability {\r\n var documentTypeAvailability = this.createNewEntity(\"DocumentTypeAvailability\");\r\n documentTypeAvailability.myDocumentConfiguration = docConfig;\r\n documentTypeAvailability.documentConfiguration_id = docConfig.id;\r\n documentTypeAvailability.mySystemCode = systemCode;\r\n documentTypeAvailability.systemCode_id = systemCode.id;\r\n documentTypeAvailability.isAvailable = false;\r\n return documentTypeAvailability;\r\n }\r\n\r\n public getFaClass(fileName): string {\r\n if (!fileName) return 'fa-file-o';\r\n\r\n var imageExtensions = ['.jpg', '.jpeg', '.jfif', '.exif', '.tiff', '.tif', '.gif', '.bmp', '.png'];\r\n var wordExtensioins = ['.doc', '.dot', '.docx', '.docm', '.dotx', '.dotm', '.docb'];\r\n var excelExtensions = ['.xls', '.xlt', '.xlm', '.xlsx', '.xlsm', '.xltx', '.xltm'];\r\n var archiveExtensions = ['.zip', '.tar', '.7z'];\r\n var textExtensions = ['.txt'];\r\n\r\n var lowerCaseFileName = fileName.toLowerCase();\r\n\r\n if (lowerCaseFileName.endsWith(\".pdf\")) return 'fa-file-pdf-o';\r\n\r\n var image = Enumerable.from(imageExtensions).any(i => lowerCaseFileName.endsWith(i));\r\n if (image) return 'fa-file-image-o';\r\n\r\n var wordDoc = Enumerable.from(wordExtensioins).any(i => lowerCaseFileName.endsWith(i));\r\n if (wordDoc) return 'fa-file-word-o';\r\n\r\n var excel = Enumerable.from(excelExtensions).any(i => lowerCaseFileName.endsWith(i));\r\n if (excel) return 'fa-file-excel-o';\r\n\r\n var archive = Enumerable.from(archiveExtensions).any(i => lowerCaseFileName.endsWith(i));\r\n if (archive) return 'fa-file-archive-o';\r\n\r\n var text = Enumerable.from(textExtensions).any(i => lowerCaseFileName.endsWith(i));\r\n if (text) return 'fa-file-text-o';\r\n\r\n return 'fa-file-o';\r\n }\r\n\r\n public getFileSizeStringFilter(filesize: string) {\r\n return this.getFileSizeString(parseInt(filesize));\r\n }\r\n\r\n public getFileSizeString(filesize: number) {\r\n var kb = 1024;\r\n var mb = 1048576;\r\n if (!filesize) return \"unknown\";\r\n if (filesize < kb) return filesize + \" bytes\";\r\n if (filesize < mb) return Math.floor(filesize / kb) + \" KB\";\r\n return Math.floor(filesize / mb) + \" MB\";\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"DocumentService\", [\"breeze\", \"$q\", \"$http\", \"systemLevelService\"]);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var EditableContentPageService = /** @class */ (function (_super) {\r\n __extends(EditableContentPageService, _super);\r\n function EditableContentPageService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n EditableContentPageService.prototype.getEditiableContentPage = function (id) {\r\n var params = {};\r\n this.handlerUrl = \"api/EditableContentPage/Edit/GetEditableContentPage?id=\" + id;\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n EditableContentPageService.prototype.getEditableContentPageForView = function (id) {\r\n var params = {};\r\n this.handlerUrl = \"api/EditableContentPage/View/GetEditableContentPageForView?id=\" + id;\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n EditableContentPageService.prototype.updateEditableContentPage = function (contentPage) {\r\n var params = contentPage;\r\n this.handlerUrl = \"api/EditableContentPage/UpdateEditableContentPage\";\r\n return this.usePostHandler(params);\r\n };\r\n return EditableContentPageService;\r\n }(services.HttpHandlerService));\r\n services.EditableContentPageService = EditableContentPageService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('EditableContentPageService', ['$http']);\r\n","/// \r\n\r\nmodule warsApp.services {\r\n\r\n export class EditableContentPageService extends HttpHandlerService {\r\n\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public getEditiableContentPage(id: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/EditableContentPage/Edit/GetEditableContentPage?id=\" + id;\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.EditableContentPageDto) => {\r\n return result;\r\n });\r\n }\r\n\r\n public getEditableContentPageForView(id: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/EditableContentPage/View/GetEditableContentPageForView?id=\" + id;\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.EditableContentPageDto) => {\r\n return result;\r\n });\r\n }\r\n\r\n public updateEditableContentPage(contentPage: Wars.Domain.Model.Dtos.EditableContentPageDto): ng.IPromise {\r\n var params = contentPage;\r\n this.handlerUrl = \"api/EditableContentPage/UpdateEditableContentPage\";\r\n return this.usePostHandler(params);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('EditableContentPageService', ['$http'])","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var EmailConfigurationService = /** @class */ (function (_super) {\r\n __extends(EmailConfigurationService, _super);\r\n function EmailConfigurationService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n EmailConfigurationService.prototype.getAllEmailConfigurationsByProcessId = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"EmailConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('recipients.claim, carbonCopies, blindCarbonCopies')\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n EmailConfigurationService.prototype.getAllEmailConfigurations = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"EmailConfigurations\")\r\n .expand('myProcessConfiguration, myProcessConfiguration.myProcessType')\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n EmailConfigurationService.prototype.createEmailConfiguration = function () {\r\n return (this.createNewEntity(\"EmailConfiguration\"));\r\n };\r\n return EmailConfigurationService;\r\n }(services.DataService));\r\n services.EmailConfigurationService = EmailConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('EmailConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class EmailConfigurationService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getAllEmailConfigurationsByProcessId(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"EmailConfigurations\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('recipients.claim, carbonCopies, blindCarbonCopies')\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getAllEmailConfigurations(): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"EmailConfigurations\")\r\n .expand('myProcessConfiguration, myProcessConfiguration.myProcessType')\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createEmailConfiguration(): Wars.Domain.Model.EmailConfiguration {\r\n return (this.createNewEntity(\"EmailConfiguration\"));\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('EmailConfigurationService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var EmailGroupService = /** @class */ (function (_super) {\r\n __extends(EmailGroupService, _super);\r\n function EmailGroupService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n EmailGroupService.prototype.getAllProcessEmailGroups = function (appConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"EmailGroups\")\r\n .where('processConfiguration_id', '==', appConfigId)\r\n .expand('myEmailAddresses');\r\n return this.executeQuery(query);\r\n };\r\n EmailGroupService.prototype.createNewEmailAddress = function () {\r\n return this.createNewEntity(\"EmailAddress\");\r\n };\r\n EmailGroupService.prototype.getById = function (id) {\r\n return this.fetchById(id, \"EmailGroup\");\r\n };\r\n return EmailGroupService;\r\n }(services.DataService));\r\n services.EmailGroupService = EmailGroupService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('EmailGroupService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class EmailGroupService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getAllProcessEmailGroups(appConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"EmailGroups\")\r\n .where('processConfiguration_id', '==', appConfigId)\r\n .expand('myEmailAddresses');\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createNewEmailAddress(): Wars.Domain.Model.EmailAddress {\r\n return this.createNewEntity(\"EmailAddress\");\r\n }\r\n\r\n public getById(id: string): ng.IPromise {\r\n return this.fetchById(id, \"EmailGroup\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('EmailGroupService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var EmailService = /** @class */ (function (_super) {\r\n __extends(EmailService, _super);\r\n function EmailService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n EmailService.prototype.getUserEmailNotifications = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/Email/UserEmailNotifications\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n EmailService.prototype.getAllEmailConfigurationApplicableForCurrentUser = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/Email/EmailConfigurations\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n EmailService.prototype.createUserEmailNotification = function (userEmailConfiguration) {\r\n var params = userEmailConfiguration;\r\n this.handlerUrl = \"api/Email/UserEmailNotification/CreateUserEmailNotification\";\r\n return this.usePostHandler(params);\r\n };\r\n EmailService.prototype.deleteUserEmailNotification = function (userEmailConfiguration) {\r\n var params = userEmailConfiguration;\r\n this.handlerUrl = \"api/Email/UserEmailNotification/Delete\";\r\n return this.usePostHandler(params);\r\n };\r\n EmailService.prototype.getEmails = function (search) {\r\n search.createDateBegin = search.createDateBegin !== null && search.createDateBegin !== undefined ? search.createDateBegin : '';\r\n search.createDateEnd = search.createDateEnd !== null && search.createDateEnd !== undefined ? search.createDateEnd : '';\r\n var params = {};\r\n this.handlerUrl = \"api/Email/UserEmail\" +\r\n \"?createDateBegin=\" + search.createDateBegin +\r\n \"&createDateEnd=\" + search.createDateEnd +\r\n \"&subject=\" + search.subject +\r\n \"&body=\" + search.body +\r\n \"&processName=\" + search.processName;\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n EmailService.prototype.updateViewedNotifications = function (emailNotifications) {\r\n var params = emailNotifications;\r\n this.handlerUrl = \"api/Email/UserEmail/UpdateViewedNotifications\";\r\n return this.usePostHandler(params);\r\n };\r\n EmailService.prototype.getEmailNotificationCount = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/Email/UserEmail/GetEmailNotificationCount\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n return EmailService;\r\n }(services.HttpHandlerService));\r\n services.EmailService = EmailService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('EmailService', ['$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class EmailService extends HttpHandlerService {\r\n\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public getUserEmailNotifications(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Email/UserEmailNotifications\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.UserEmailNotificationDto[]) => {\r\n return result;\r\n });\r\n }\r\n\r\n public getAllEmailConfigurationApplicableForCurrentUser(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Email/EmailConfigurations\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.EmailConfigurationDto[]) => {\r\n return result;\r\n });\r\n }\r\n\r\n public createUserEmailNotification(userEmailConfiguration: any) {\r\n var params = userEmailConfiguration;\r\n this.handlerUrl = \"api/Email/UserEmailNotification/CreateUserEmailNotification\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public deleteUserEmailNotification(userEmailConfiguration: any) {\r\n var params = userEmailConfiguration;\r\n this.handlerUrl = \"api/Email/UserEmailNotification/Delete\";\r\n return this.usePostHandler(params);\r\n }\r\n \r\n public getEmails(search: any): ng.IPromise {\r\n search.createDateBegin = search.createDateBegin !== null && search.createDateBegin !== undefined ? search.createDateBegin : '';\r\n search.createDateEnd = search.createDateEnd !== null && search.createDateEnd !== undefined ? search.createDateEnd : '';\r\n var params: any = {};\r\n this.handlerUrl = \"api/Email/UserEmail\" +\r\n \"?createDateBegin=\" + search.createDateBegin +\r\n \"&createDateEnd=\" + search.createDateEnd +\r\n \"&subject=\" + search.subject +\r\n \"&body=\" + search.body +\r\n \"&processName=\" + search.processName;\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.EmailDto[]) => {\r\n return result;\r\n });\r\n }\r\n\r\n public updateViewedNotifications(emailNotifications: any) {\r\n var params = emailNotifications;\r\n this.handlerUrl = \"api/Email/UserEmail/UpdateViewedNotifications\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public getEmailNotificationCount() : ng.IPromise{\r\n var params: any = {};\r\n this.handlerUrl = \"api/Email/UserEmail/GetEmailNotificationCount\";\r\n return this.useGetHandler(params).then(\r\n (result: number) => {\r\n return result;\r\n });\r\n }\r\n \r\n }\r\n}\r\n\r\nwarsApp.registerService('EmailService', ['$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ExtensibilityService = /** @class */ (function (_super) {\r\n __extends(ExtensibilityService, _super);\r\n function ExtensibilityService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n ExtensibilityService.prototype.getCustomActionContract = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ExtensibleContracts\")\r\n .where(\"interfaceName\", \"==\", \"ICustomAction\")\r\n .expand(\"extensibleComponents\");\r\n return (this.fetch(query));\r\n };\r\n ExtensibilityService.prototype.getCustomTransformers = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ExtensibleContracts\")\r\n .where(\"interfaceName\", \"==\", \"IObjectQueryCustomTransformer\")\r\n .expand(\"extensibleComponents\");\r\n return (this.fetch(query));\r\n };\r\n return ExtensibilityService;\r\n }(services.DataService));\r\n services.ExtensibilityService = ExtensibilityService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ExtensibilityService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class ExtensibilityService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getCustomActionContract(): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ExtensibleContracts\")\r\n .where(\"interfaceName\", \"==\", \"ICustomAction\")\r\n .expand(\"extensibleComponents\");\r\n\r\n return (this.fetch(query)) as any;\r\n }\r\n\r\n public getCustomTransformers(): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ExtensibleContracts\")\r\n .where(\"interfaceName\", \"==\", \"IObjectQueryCustomTransformer\")\r\n .expand(\"extensibleComponents\");\r\n\r\n return (this.fetch(query)) as any;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ExtensibilityService', ['breeze', '$q'])","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ExternalApiService = /** @class */ (function (_super) {\r\n __extends(ExternalApiService, _super);\r\n function ExternalApiService(breeze, $q, $http) {\r\n var _this = _super.call(this, breeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n ExternalApiService.prototype.getExternalApiConfiguration = function (processConfigId) {\r\n var expand = \"myProcessType, \" +\r\n \"myExternalApiConfiguration.myStatusMappings.statusCode, \" +\r\n \"myExternalApiConfiguration.myStatusMappings.myStateMappings.stateCode, \" +\r\n \"myExternalApiConfiguration.myFormMappings.myListMappings.myPropertyMappings, \" +\r\n \"myExternalApiConfiguration.myFormMappings.myListMappings.myPropertyMappings.schemaProperty, \" +\r\n \"myExternalApiConfiguration.myFormMappings.myListMappings.objectSchema, \" +\r\n \"myExternalApiConfiguration.myFormMappings.myPropertyMappings.schemaProperty, \" +\r\n \"myExternalApiConfiguration.myProcessDataMapping.myPropertyMappings.schemaProperty, \" +\r\n \"myExternalApiConfiguration.myProcessDataMapping.myListMappings.objectSchema, \" +\r\n \"myExternalApiConfiguration.myProcessDataMapping.myListMappings.myPropertyMappings.schemaProperty, \" +\r\n \"myExternalApiConfiguration.myReviewMappings.reviewConfiguration\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where('id', '==', processConfigId)\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n ExternalApiService.prototype.updateAllMappings = function (processConfigId) {\r\n var _this = this;\r\n var params = {};\r\n var handlerUrl = \"api/ExternalApi/UpdateAllMappings/\" + processConfigId;\r\n var result = this.$http.post(handlerUrl, params)\r\n .then(function (response) { return _this.handlerResponded(response, params); });\r\n return result;\r\n };\r\n return ExternalApiService;\r\n }(services.DataService));\r\n services.ExternalApiService = ExternalApiService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ExternalApiService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n export class ExternalApiService extends DataService{\r\n\r\n constructor(breeze: any, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(breeze, $q);\r\n }\r\n\r\n public getExternalApiConfiguration(processConfigId: string): angular.IPromise {\r\n var expand = \"myProcessType, \" +\r\n \"myExternalApiConfiguration.myStatusMappings.statusCode, \" +\r\n \"myExternalApiConfiguration.myStatusMappings.myStateMappings.stateCode, \" +\r\n \"myExternalApiConfiguration.myFormMappings.myListMappings.myPropertyMappings, \" +\r\n \"myExternalApiConfiguration.myFormMappings.myListMappings.myPropertyMappings.schemaProperty, \" +\r\n \"myExternalApiConfiguration.myFormMappings.myListMappings.objectSchema, \" +\r\n \"myExternalApiConfiguration.myFormMappings.myPropertyMappings.schemaProperty, \" +\r\n \"myExternalApiConfiguration.myProcessDataMapping.myPropertyMappings.schemaProperty, \" +\r\n \"myExternalApiConfiguration.myProcessDataMapping.myListMappings.objectSchema, \" +\r\n \"myExternalApiConfiguration.myProcessDataMapping.myListMappings.myPropertyMappings.schemaProperty, \" +\r\n \"myExternalApiConfiguration.myReviewMappings.reviewConfiguration\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where('id', '==', processConfigId)\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public updateAllMappings(processConfigId: string): angular.IPromise {\r\n var params = {};\r\n var handlerUrl = \"api/ExternalApi/UpdateAllMappings/\" + processConfigId;\r\n\r\n var result: ng.IPromise = this.$http.post(handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n\r\n return result;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ExternalApiService', ['breeze', '$q', '$http']);\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var FieldService = /** @class */ (function (_super) {\r\n __extends(FieldService, _super);\r\n function FieldService() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FieldService.prototype.getField = function (id) {\r\n return this.fetchById(id, \"Field\");\r\n };\r\n FieldService.prototype.createFieldExcludedStatuses = function () {\r\n return this.createNewEntity(\"FieldExcludedStatuses\");\r\n };\r\n FieldService.prototype.createFieldExcludedSystemCodes = function () {\r\n return this.createNewEntity(\"FieldExcludedSystemCodes\");\r\n };\r\n FieldService.prototype.createFieldExcludedProcessTypes = function () {\r\n return this.createNewEntity(\"FieldExcludedProcessTypes\");\r\n };\r\n FieldService.prototype.createFieldExcludedStates = function () {\r\n return this.createNewEntity(\"FieldExcludedStates\");\r\n };\r\n return FieldService;\r\n }(services.DataService));\r\n services.FieldService = FieldService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('FieldService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n export class FieldService extends services.DataService {\r\n public getField(id: string): angular.IPromise {\r\n return this.fetchById(id, \"Field\");\r\n }\r\n\r\n public createFieldExcludedStatuses():Wars.Domain.Model.FieldExcludedStatuses {\r\n return this.createNewEntity(\"FieldExcludedStatuses\");\r\n }\r\n\r\n public createFieldExcludedSystemCodes():Wars.Domain.Model.FieldExcludedSystemCodes {\r\n return this.createNewEntity(\"FieldExcludedSystemCodes\");\r\n }\r\n\r\n public createFieldExcludedProcessTypes(): Wars.Domain.Model.FieldExcludedProcessTypes {\r\n return this.createNewEntity(\"FieldExcludedProcessTypes\");\r\n }\r\n\r\n public createFieldExcludedStates():Wars.Domain.Model.FieldExcludedStates {\r\n return this.createNewEntity(\"FieldExcludedStates\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('FieldService', ['breeze', '$q', '$http'])","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var FileUploadDownloadService = /** @class */ (function (_super) {\r\n __extends(FileUploadDownloadService, _super);\r\n function FileUploadDownloadService($http, $q, $timeout, upload) {\r\n var _this = _super.call(this, $http) || this;\r\n _this.errorMsg = \"The file upload was unsuccessful\";\r\n _this.$q = $q;\r\n _this.$timeout = $timeout;\r\n _this.upload = upload;\r\n return _this;\r\n }\r\n FileUploadDownloadService.prototype.uploadFiles = function (files, model) {\r\n var url = \"./api/document\";\r\n return this.commonUpload(files, model, url);\r\n };\r\n FileUploadDownloadService.prototype.uploadProcessLevelStaticFiles = function (files, model) {\r\n var url = './api/document/processConfiguration/' + model.processConfigId;\r\n return this.commonUpload(files, model, url);\r\n };\r\n FileUploadDownloadService.prototype.uploadSystemLevelStaticFiles = function (files, model) {\r\n var url = './api/document/systemLevel/' + model.systemLevelId;\r\n return this.commonUpload(files, model, url);\r\n };\r\n FileUploadDownloadService.prototype.getSecuredDocumentKey = function (docMetadataId) {\r\n var params = {};\r\n this.handlerUrl = \"./api/document/\" + docMetadataId + \"/SecuredDocumentKey\";\r\n return this.useGetHandler(params);\r\n };\r\n FileUploadDownloadService.prototype.deleteDocument = function (id) {\r\n var params = {};\r\n this.handlerUrl = \"./api/document/Delete/\" + id;\r\n return this.usePostHandler(params);\r\n };\r\n FileUploadDownloadService.prototype.editIsSecure = function (docId, manageDocumentConfigUniqueId, isSecure) {\r\n var params = {};\r\n this.handlerUrl = \"./api/document/EditIsSecure/\" + docId + \"/\" + manageDocumentConfigUniqueId + \"/\" + isSecure;\r\n return this.usePostHandler(params);\r\n };\r\n FileUploadDownloadService.prototype.updateDocumentMetadata = function (documents, documentConnections, previousDocumentIds, isTemporary) {\r\n var params = {\r\n documents: documents,\r\n documentConnections: documentConnections,\r\n previousDocumentIds: previousDocumentIds,\r\n isTemporary: isTemporary\r\n };\r\n this.handlerUrl = \"./api/document/DocumentMetadata/Process/\" + documentConnections.processId;\r\n return this.usePostHandler(params);\r\n };\r\n FileUploadDownloadService.prototype.commonUpload = function (files, model, url) {\r\n var _this = this;\r\n model.errorMessage = undefined;\r\n var d = this.$q.defer();\r\n if (files && files.length) {\r\n this.upload.upload({\r\n url: url,\r\n data: { files: files }\r\n }).then(function (response) { _this.$timeout(function () { d.resolve(response.data); }); }, function () {\r\n model.errorMessage = _this.errorMsg;\r\n model.fileUploadProgress = undefined;\r\n d.resolve(undefined);\r\n }, function (evt) {\r\n model.fileUploadProgress = Math.min(100, 100.0 * (evt.loaded / evt.total));\r\n });\r\n }\r\n return d.promise;\r\n };\r\n return FileUploadDownloadService;\r\n }(services.HttpHandlerService));\r\n services.FileUploadDownloadService = FileUploadDownloadService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('FileUploadDownloadService', ['$http', '$q', '$timeout', 'Upload']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class FileUploadDownloadService extends HttpHandlerService {\r\n\r\n private $q: ng.IQService;\r\n private $timeout: ng.ITimeoutService;\r\n private upload: any;\r\n\r\n private errorMsg = \"The file upload was unsuccessful\";\r\n \r\n constructor($http: ng.IHttpService, $q: ng.IQService, $timeout: ng.ITimeoutService, upload: any) {\r\n super($http);\r\n this.$q = $q;\r\n this.$timeout = $timeout;\r\n this.upload = upload;\r\n }\r\n\r\n public uploadFiles(files: any, model: models.FileUploadModel): ng.IPromise {\r\n var url = \"./api/document\";\r\n return this.commonUpload(files, model, url);\r\n }\r\n\r\n public uploadProcessLevelStaticFiles(files: any, model: models.FileUploadModel): ng.IPromise {\r\n var url = './api/document/processConfiguration/' + model.processConfigId;\r\n return this.commonUpload(files, model, url);\r\n }\r\n\r\n public uploadSystemLevelStaticFiles(files: any, model: models.FileUploadModel): ng.IPromise {\r\n var url = './api/document/systemLevel/' + model.systemLevelId;\r\n return this.commonUpload(files, model, url);\r\n }\r\n\r\n public getSecuredDocumentKey(docMetadataId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"./api/document/\" + docMetadataId + \"/SecuredDocumentKey\";\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public deleteDocument(id: string) : ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"./api/document/Delete/\" + id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public editIsSecure(docId: string, manageDocumentConfigUniqueId: string, isSecure: boolean) {\r\n var params: any = {};\r\n this.handlerUrl = \"./api/document/EditIsSecure/\" + docId + \"/\" + manageDocumentConfigUniqueId + \"/\" + isSecure;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateDocumentMetadata(\r\n documents: Wars.Domain.Model.Dtos.DocumentDto[],\r\n documentConnections: Wars.Domain.Model.Dtos.DocumentConnectionsDto,\r\n previousDocumentIds: string[],\r\n isTemporary: boolean) : ng.IPromise\r\n {\r\n var params: any = {\r\n documents: documents,\r\n documentConnections,\r\n previousDocumentIds,\r\n isTemporary\r\n };\r\n this.handlerUrl = \"./api/document/DocumentMetadata/Process/\" + documentConnections.processId;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n private commonUpload(files: any, model: models.FileUploadModel, url: string): ng.IPromise {\r\n model.errorMessage = undefined;\r\n var d = this.$q.defer();\r\n\r\n if (files && files.length) {\r\n this.upload.upload({\r\n url: url,\r\n data: {files: files}\r\n }).then(\r\n (response) => { this.$timeout(() => { d.resolve(response.data); }); },\r\n () => { \r\n model.errorMessage = this.errorMsg;\r\n model.fileUploadProgress = undefined;\r\n d.resolve(undefined);\r\n },\r\n (evt: any) => {\r\n model.fileUploadProgress = Math.min(100, 100.0 * (evt.loaded / evt.total));\r\n });\r\n }\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('FileUploadDownloadService', ['$http', '$q', '$timeout', 'Upload']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var FormCodeFunctionService = /** @class */ (function (_super) {\r\n __extends(FormCodeFunctionService, _super);\r\n function FormCodeFunctionService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n FormCodeFunctionService.prototype.createFormCodeFunction = function () {\r\n return this.createNewEntity(\"FormCodeFunction\");\r\n };\r\n FormCodeFunctionService.prototype.getFieldsFormCodeFunction = function (fieldId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"FormCodeFunctions\")\r\n .where(\"field_id\", \"==\", fieldId);\r\n return this.fetch(query);\r\n };\r\n return FormCodeFunctionService;\r\n }(services.DataService));\r\n services.FormCodeFunctionService = FormCodeFunctionService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('FormCodeFunctionService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class FormCodeFunctionService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createFormCodeFunction(): Wars.Domain.Model.FormCodeFunction {\r\n return this.createNewEntity(\"FormCodeFunction\");\r\n }\r\n\r\n public getFieldsFormCodeFunction(fieldId): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"FormCodeFunctions\")\r\n .where(\"field_id\", \"==\", fieldId);\r\n\r\n return this.fetch(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('FormCodeFunctionService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var FormContainerAssociationService = /** @class */ (function (_super) {\r\n __extends(FormContainerAssociationService, _super);\r\n function FormContainerAssociationService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n FormContainerAssociationService.prototype.createNewFormContainerAssociation = function () {\r\n var newFormContainerAssociation = this.createNewEntity(\"FormContainerAssociation\");\r\n return newFormContainerAssociation;\r\n };\r\n return FormContainerAssociationService;\r\n }(services.DataService));\r\n services.FormContainerAssociationService = FormContainerAssociationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('FormContainerAssociationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class FormContainerAssociationService extends services.DataService {\r\n \r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createNewFormContainerAssociation(): Wars.Domain.Model.FormContainerAssociation {\r\n var newFormContainerAssociation = this.createNewEntity(\"FormContainerAssociation\");\r\n return newFormContainerAssociation;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('FormContainerAssociationService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var FormContainerService = /** @class */ (function (_super) {\r\n __extends(FormContainerService, _super);\r\n function FormContainerService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n FormContainerService.prototype.getAllFormContainersForProcessConfiguration = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"FormContainers\")\r\n .where(\"processConfiguration_id\", \"==\", id)\r\n .expand(\"containerItems, myFormContainerAssociation, securityMatrix\");\r\n return this.executeQuery(query);\r\n };\r\n FormContainerService.prototype.createFormContainer = function () {\r\n return this.createNewEntity(\"FormContainer\");\r\n };\r\n FormContainerService.prototype.createFormContainerItem = function () {\r\n return this.createNewEntity(\"FormContainerItem\");\r\n };\r\n return FormContainerService;\r\n }(services.DataService));\r\n services.FormContainerService = FormContainerService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('FormContainerService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class FormContainerService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getAllFormContainersForProcessConfiguration(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"FormContainers\")\r\n .where(\"processConfiguration_id\", \"==\", id)\r\n .expand(\"containerItems, myFormContainerAssociation, securityMatrix\");\r\n\r\n return this.executeQuery(query);\r\n\r\n }\r\n\r\n public createFormContainer(): Wars.Domain.Model.FormContainer {\r\n return this.createNewEntity(\"FormContainer\");\r\n }\r\n\r\n public createFormContainerItem(): Wars.Domain.Model.FormContainerItem {\r\n return this.createNewEntity(\"FormContainerItem\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('FormContainerService', ['breeze', '$q']);","/// \r\nmodule warsApp.services {\r\n export class FormDataService {\r\n\r\n constructor(private $q: angular.IQService, private $http: angular.IHttpService) {\r\n\r\n }\r\n\r\n public createFormData(processId: string, formId: string, parentFormDataId?: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n let url = './api/Process/' + processId + '/Form/' + formId;\r\n\r\n if (parentFormDataId) {\r\n url += '/Parent/' + parentFormDataId;\r\n }\r\n\r\n this.$http.post(url, null)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public setFormField(processId: string,\r\n formId: string,\r\n formDataId: string,\r\n fieldUniqueIdentifer: string,\r\n value: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n let data = {\r\n val: value\r\n };\r\n\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n '/Form/' +\r\n formId +\r\n \"/\" +\r\n formDataId +\r\n \"/Field/\" +\r\n fieldUniqueIdentifer,\r\n data)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public clearFormData(processId: string, formId: string, formDataId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' + processId + '/Form/' + formId + \"/\" + formDataId + \"/Clear/\", null)\r\n .then(result => {\r\n d.resolve();\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public addListRow(processId: string,\r\n formId: string,\r\n formDataId: string,\r\n listUniqueIdentifer: string,\r\n rowId: string,\r\n onlyAllowApiEdits?: boolean): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n let metadata = null;\r\n\r\n if (onlyAllowApiEdits) {\r\n metadata = {\r\n onlyAllowApiEdits: onlyAllowApiEdits\r\n };\r\n }\r\n\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n '/Form/' +\r\n formId +\r\n \"/\" +\r\n formDataId +\r\n \"/Group/\" +\r\n listUniqueIdentifer +\r\n \"/Row/\" +\r\n rowId,\r\n metadata)\r\n .then(result => {\r\n d.resolve(result);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public removeListRow(processId: string,\r\n formId: string,\r\n formDataId: string,\r\n listUniqueIdentifer: string,\r\n rowId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n '/Form/' +\r\n formId +\r\n \"/\" +\r\n formDataId +\r\n \"/Group/\" +\r\n listUniqueIdentifer +\r\n \"/Row/\" +\r\n rowId +\r\n '/Delete',\r\n {})\r\n .then(result => {\r\n d.resolve(result);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public setMultipleListFields(processId: string,\r\n formId: string,\r\n formDataId: string,\r\n listUniqueIdentifer: string,\r\n rowId: string,\r\n multiAddFieldsSaveDto: Wars.Domain.Model.Dtos.MultiAddFieldsSaveDto): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n '/Form/' +\r\n formId +\r\n \"/\" +\r\n formDataId +\r\n \"/Group/\" +\r\n listUniqueIdentifer +\r\n \"/Row/\" +\r\n rowId + '/SaveMultiAddFields',\r\n multiAddFieldsSaveDto)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public setListField(processId: string,\r\n formId: string,\r\n formDataId: string,\r\n listUniqueIdentifer: string,\r\n rowId: string,\r\n fieldUniqueIdentifer: string,\r\n value: string,\r\n isReadOnly?:boolean): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n let data = {\r\n val: value,\r\n metadata:\"\"\r\n };\r\n\r\n if (isReadOnly) {\r\n data.metadata= JSON.stringify({\r\n isReadonly: true\r\n });\r\n }\r\n\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n '/Form/' +\r\n formId +\r\n \"/\" +\r\n formDataId +\r\n \"/Group/\" +\r\n listUniqueIdentifer +\r\n \"/Row/\" +\r\n rowId +\r\n \"/Property/\" +\r\n fieldUniqueIdentifer,\r\n data)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public calculate(processId: string, calculationId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' + processId + '/Calculate/' + calculationId, null)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('FormDataService', ['$q', '$http'])","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var FormService = /** @class */ (function (_super) {\r\n __extends(FormService, _super);\r\n function FormService(injectedBreeze, $q, $http, modalService, formSectionService, securityMatrixService, dataSourceService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.modalService = modalService;\r\n _this.formSectionService = formSectionService;\r\n _this.securityMatrixService = securityMatrixService;\r\n _this.dataSourceService = dataSourceService;\r\n _this.logType = \"FormService\";\r\n return _this;\r\n }\r\n FormService.prototype.createForm = function (processConfiguration) {\r\n var form = this.createNewEntity(\"Form\", { MyProcessConfiguration: processConfiguration });\r\n form.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return form;\r\n };\r\n FormService.prototype.createFormStep = function (form) {\r\n return this.createNewEntity(\"FormStep\", { myForm: form });\r\n };\r\n FormService.prototype.createUrl = function (form) {\r\n return this.createNewEntity(\"UrlDependency\", { form: form });\r\n };\r\n FormService.prototype.createFormSection = function (step) {\r\n return this.createNewEntity(\"FormSection\", { step: step });\r\n };\r\n FormService.prototype.createManageSection = function () {\r\n var manageSection = this.createNewEntity(\"ManageSection\");\r\n manageSection.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return manageSection;\r\n };\r\n FormService.prototype.createManageStatusConfiguration = function () {\r\n return this.createNewEntity(\"ManageStatusConfiguration\");\r\n };\r\n FormService.prototype.createManageTimeTrackerConfiguration = function () {\r\n return this.createNewEntity(\"ManageTimeTrackerConfiguration\");\r\n };\r\n FormService.prototype.createCommentThreadConfiguration = function () {\r\n var commentThreadConfiguration = this.createNewEntity(\"CommentThreadConfiguration\");\r\n commentThreadConfiguration.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n commentThreadConfiguration.canDeleteComments = false;\r\n commentThreadConfiguration.canDeleteOwnComment = false;\r\n commentThreadConfiguration.deleteLabel = \"Delete\";\r\n commentThreadConfiguration.maxLevelsOfDepth = 3;\r\n commentThreadConfiguration.showAvatar = true;\r\n commentThreadConfiguration.allowCommentDateToBeSet = false;\r\n commentThreadConfiguration.allowDocuments = false;\r\n commentThreadConfiguration.commentDateLabel = \"Comment Date\";\r\n commentThreadConfiguration.canCommentSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false, false);\r\n commentThreadConfiguration.canDeleteSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false, false);\r\n commentThreadConfiguration.canViewDeletedCommentsSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false, false);\r\n return commentThreadConfiguration;\r\n };\r\n FormService.prototype.createManageDocumentConfiguration = function () {\r\n var newConfig = this.createNewEntity(\"ManageDocumentsConfiguration\");\r\n newConfig.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newConfig.canUploadDocuments = false;\r\n newConfig.canSelectDocuments = false;\r\n newConfig.canSelectSecureDocuments = false;\r\n newConfig.canEditIsSecureValue = false;\r\n newConfig.includeFieldDocuments = false;\r\n newConfig.includeReviewDocuments = false;\r\n newConfig.includeUserActionDocuments = false;\r\n newConfig.includeManageDocumentSectionDocuments = false;\r\n newConfig.includeProcessEventSectionDocuments = false;\r\n newConfig.includeCommentThreadSectionDocuments = false;\r\n newConfig.includeSecuredDocumentColumn = false;\r\n newConfig.includeSecuredDocuments = false;\r\n return newConfig;\r\n };\r\n FormService.prototype.createFormGridColumn = function (formSection) {\r\n return this.createNewEntity(\"FormGridColumn\", { formSection: formSection });\r\n };\r\n FormService.prototype.createCondition = function (field) {\r\n var condition = this.createNewEntity(\"Condition\", { field: field });\r\n condition.expression = this.createNewEntity(\"GroupExpression\");\r\n services.WarsLogger.logDebug(\"Create Condition\", this.logType, condition);\r\n return condition;\r\n };\r\n FormService.prototype.createField = function (formSection) {\r\n var newField = this.createNewEntity(\"Field\", { formSection: formSection, excludeFromSaves: false });\r\n newField.applySecurityMatrix = false;\r\n newField.applyDefaultValueSecurityMatrix = false;\r\n newField.showLinkForAutoComplete = false;\r\n newField.isRequired = false;\r\n newField.disallowEmptyValue = false;\r\n return newField;\r\n };\r\n FormService.prototype.createNewCondition = function () {\r\n var condition = this.createNewEntity(\"Condition\");\r\n condition.expression = this.createGroupExpression();\r\n console.info(condition);\r\n return condition;\r\n };\r\n FormService.prototype.createGroupExpression = function () {\r\n var exp = this.createNewEntity(\"GroupExpression\");\r\n exp.expressionType = 2 /* Group */;\r\n return exp;\r\n };\r\n FormService.prototype.getById = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"id\", \"==\", id);\r\n return this.fetch(query);\r\n };\r\n FormService.prototype.getManageFormConfiguration = function (id) {\r\n var p1 = new breeze.Predicate(\"id\", \"==\", id);\r\n var expand = \"myManageSections.manageProcessDataConfiguration.processDataViewConfigurations, \" +\r\n \"myManageSections.manageStatusConfiguration.securityMatrixForRespondingToComments, \" +\r\n \"myManageSections.apiGridConfiguration.columns, \" +\r\n \"myManageSections.manageClockConfigurations.securityMatrix, \" +\r\n \"myManageSections.assignmentConfiguration.assignmentSectionClaims.claimDefinition, \" +\r\n \"myManageSections.commentThreadConfiguration.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"myManageSections.commentThreadConfiguration.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"myManageSections.commentThreadConfiguration.documentConfiguration.myAvailableDocumentTypes.mySystemCode, \" +\r\n \"myManageSections.commentThreadConfiguration.canCommentSecurityMatrix, \" +\r\n \"myManageSections.commentThreadConfiguration.canDeleteSecurityMatrix, \" +\r\n \"myManageSections.commentThreadConfiguration.canViewDeletedCommentsSecurityMatrix, \" +\r\n \"myManageSections.commentThreadConfiguration.reviewConfiguration, \" +\r\n \"myManageSections.commentThreadConfiguration.commentEmailConfiguration, \" +\r\n \"myManageSections.securityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.canUploadDocumentsSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.canSelectDocumentsSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.canSelectSecureDocumentsSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.canEditIsSecureValueSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"myManageSections.manageProcessEventConfiguration.manageProcessEventConfigResos, \" +\r\n \"formSchema.properties, \" +\r\n \"urlDependencies, \" +\r\n \"securityMatrix.claimBindings\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"FormsLazy\")\r\n .where(p1)\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n FormService.prototype.getFormFields = function (processConfigurationId, variableType) {\r\n var deferred = this.$q.defer();\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId)\r\n .expand(\"mySteps.formSections.fields.schemaProperty, mySteps.formSections.objectSchema\");\r\n this.executeQuery(query).then(function (forms) {\r\n var allFields = Enumerable.from(forms)\r\n .selectMany(function (i) { return i.mySteps; })\r\n .selectMany(function (i) { return i.formSections; })\r\n .selectMany(function (i) { return i.fields; })\r\n .toArray();\r\n if (variableType === undefined || variableType === null) {\r\n deferred.resolve(allFields);\r\n }\r\n else {\r\n var filteredSet = Enumerable.from(allFields)\r\n .where(function (i) { return i.schemaProperty.propertyType === variableType; })\r\n .toArray();\r\n deferred.resolve(filteredSet);\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n FormService.prototype.getFormConfiguration = function (id) {\r\n var p1 = new breeze.Predicate(\"id\", \"==\", id);\r\n var expand = \"mySteps.formCodeFunctions, \" +\r\n \"mySteps.formSections.securityMatrix, \" +\r\n \"mySteps.formSections.fields.schemaProperty.codeGroup.codes, \" +\r\n \"formSchema.properties, \" +\r\n \"mySteps.formSections.columns.schemaProperty, \" +\r\n \"mySteps.formSections.systemLevelListSchemaProperty.typeSchema, \" +\r\n \"mySteps.formSections.fields.staticDocument, \" +\r\n \"mySteps.formSections.fields.gisActionWorkflowOverride.gisActionWorkflowConfiguration.gisActionBlocks, \" +\r\n \"mySteps.formSections.fields.mapConfigurationOverride.mapConfiguration.layers, \" +\r\n \"mySteps.formSections.fields.mapConfigurationOverride.mapConfiguration.legendConfigurations.legendLayers, \" +\r\n \"mySteps.formSections.fields.fieldExcludedStatuses.statusCode, \" +\r\n \"mySteps.formSections.fields.fieldExcludedSystemCodes.systemCode, \" +\r\n \"mySteps.formSections.fields.fieldExcludedStates.stateCode, \" +\r\n \"mySteps.formSections.fields.fieldExcludedProcessTypes.processType, \" +\r\n \"mySteps.formSections.fields.securityMatrix, \" +\r\n \"mySteps.formSections.fields.schemaProperty.scheduledResourceConfiguration, \" +\r\n \"mySteps.formSections.fields.schemaProperty.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"mySteps.formSections.fields.schemaProperty.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"mySteps.formSections.fields.schemaProperty.documentConfiguration.myAvailableDocumentTypes.mySystemCode, \" +\r\n \"mySteps.formSections.fields.apiGridConfiguration.columns, \" +\r\n \"mySteps.formSections.fields.includedMapFunction.mapFunctionConfiguration, \" +\r\n \"mySteps.formSections.fields.queryGridOverride.queryGridConfiguration, \" +\r\n \"mySteps.objectSchema.properties, \" +\r\n \"urlDependencies, \" +\r\n \"mySteps.formSections.objectSchema.properties, \" +\r\n \"securityMatrix.claimBindings\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"FormsLazy\")\r\n .where(p1)\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n FormService.prototype.getProcessConfigurationForms = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId);\r\n return (this.executeQuery(query));\r\n };\r\n FormService.prototype.getProcessConfigurationContainers = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"FormContainers\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId);\r\n return (this.executeQuery(query));\r\n };\r\n FormService.prototype.getProcessConfigurationFormsWithSections = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId)\r\n .expand(\"myManageSections, mySteps.formSections.objectSchema, mySteps.formSections.fields.schemaProperty\");\r\n return (this.executeQuery(query));\r\n };\r\n FormService.prototype.getSystemForms = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", null);\r\n return (this.executeQuery(query));\r\n };\r\n FormService.prototype.getDynamicForms = function () {\r\n var query = this.breezeModule.EntityQuery.from(\"DynamicFormCustom\");\r\n return (this.executeQuery(query));\r\n };\r\n FormService.prototype.loadFieldGroup = function (field) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Fields\")\r\n .where('id', '==', field.id)\r\n .expand('schemaProperty.codeGroup.codes');\r\n this.executeQuery(query);\r\n };\r\n FormService.prototype.setFieldPropertySchemaParent = function (step, formSection, property, formConfiguration) {\r\n if (formSection.isVisible) {\r\n property.parentObjectSchema = formSection.objectSchema;\r\n formSection.objectSchema.properties.push(property);\r\n }\r\n else if (formConfiguration.mySteps.length > 1) {\r\n property.parentObjectSchema = step.objectSchema;\r\n step.objectSchema.properties.push(property);\r\n }\r\n else {\r\n formConfiguration.formSchema.properties.push(property);\r\n }\r\n };\r\n FormService.prototype.deleteFormSection = function (formSection, step) {\r\n var _this = this;\r\n var fields = formSection.fields;\r\n for (var i = 0; i < fields.length; i++) {\r\n fields[i].entityAspect.setDeleted();\r\n }\r\n this.saveAllChanges(function (s) {\r\n formSection.entityAspect.setDeleted();\r\n _this.saveAllChanges();\r\n });\r\n step.formSections.remove(formSection);\r\n };\r\n FormService.prototype.editField = function (field, formSection, processConfiguration, form) {\r\n var _this = this;\r\n var self = this;\r\n //console.log(processConfiguration);\r\n field.fieldTypeChanged = false;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/editField.html\",\r\n controller: \"editFieldController\",\r\n size: 'lg',\r\n inputs: {\r\n field: field,\r\n processConfigurationId: processConfiguration.id,\r\n formSection: formSection,\r\n processConfiguration: processConfiguration,\r\n form: form\r\n }\r\n }).then(function (modal) {\r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n $('.modal-backdrop').each(function () {\r\n $(this).remove();\r\n });\r\n if (result) {\r\n self.saveAllChanges();\r\n field[\"refresh\"] = true;\r\n self.formSectionService.splitFields(formSection);\r\n if (field.fieldTypeChanged) {\r\n _this.updateFieldType(field.schemaProperty_id, field.schemaProperty.propertyType);\r\n }\r\n }\r\n else {\r\n self.rejectChanges();\r\n }\r\n });\r\n });\r\n };\r\n FormService.prototype.setupFormSchema = function (formConfiguration) {\r\n var _this = this;\r\n var formPropertiesToOrphan = Enumerable.from(formConfiguration.formSchema.properties)\r\n .where(function (p) { return Enumerable.from(formConfiguration.mySteps)\r\n .all(function (s) { return p.typeSchema == null || s.objectSchema_id !== p.typeSchema.id; }); })\r\n .toArray();\r\n formPropertiesToOrphan.forEach(function (p) {\r\n p.parentObjectSchema = null;\r\n p.objectSchema_id = null;\r\n });\r\n var formSchema = formConfiguration.formSchema;\r\n formConfiguration.mySteps.forEach(function (step) {\r\n var stepParentSchemaProperty = Enumerable.from(formConfiguration.formSchema.properties).singleOrDefault(function (p) { return step.objectSchema_id === p.typeSchema.id; });\r\n step.objectSchema.parentProperty = stepParentSchemaProperty;\r\n if (!stepParentSchemaProperty) {\r\n stepParentSchemaProperty = _this.dataSourceService.createNewSchemaProperty();\r\n stepParentSchemaProperty.name = !step.objectSchema.name || step.objectSchema.name === \"\" ? \"Default\" : step.objectSchema.name;\r\n step.objectSchema.name = stepParentSchemaProperty.name;\r\n stepParentSchemaProperty.propertyType = 8 /* Object */;\r\n stepParentSchemaProperty.typeSchema = step.objectSchema;\r\n stepParentSchemaProperty.parentObjectSchema = formConfiguration.formSchema;\r\n formConfiguration.formSchema.properties.push(stepParentSchemaProperty);\r\n }\r\n var stepPropertiesToOrphan = Enumerable.from(step.objectSchema.properties)\r\n .where(function (p) { return Enumerable.from(step.formSections)\r\n .all(function (s) { return !p.typeSchema || s.objectSchema_id !== p.typeSchema.id; }); })\r\n .toArray();\r\n stepPropertiesToOrphan.forEach(function (p) {\r\n p.parentObjectSchema = null;\r\n p.objectSchema_id = null;\r\n });\r\n step.formSections.forEach(function (formSection) {\r\n var parentStepProperty = Enumerable.from(step.objectSchema.properties).singleOrDefault(function (p) {\r\n return !formSection.objectSchema || p.type_id === formSection.objectSchema.id;\r\n });\r\n formSection.objectSchema.parentProperty = parentStepProperty;\r\n if (!parentStepProperty) {\r\n parentStepProperty = _this.dataSourceService.createNewSchemaProperty();\r\n parentStepProperty.name = !formSection.objectSchema.name || formSection.objectSchema.name === \"\" ? \"Default\" : formSection.objectSchema.name;\r\n formSection.objectSchema.name = parentStepProperty.name;\r\n parentStepProperty.typeSchema = formSection.objectSchema;\r\n parentStepProperty.propertyType = 8 /* Object */;\r\n parentStepProperty.parentObjectSchema = step.objectSchema;\r\n step.objectSchema.properties.push(parentStepProperty);\r\n }\r\n formSection.fields.forEach(function (field) {\r\n formSection.objectSchema.properties.push(field.schemaProperty);\r\n });\r\n });\r\n });\r\n };\r\n FormService.prototype.getFormWithSection = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId)\r\n .expand('myManageSections');\r\n return (this.executeQuery(query));\r\n };\r\n FormService.prototype.createAssigmentConfiguration = function () {\r\n return this.createNewEntity(\"AssignmentConfiguration\");\r\n };\r\n FormService.prototype.performFormChangeUpdates = function (dto) {\r\n var _this = this;\r\n var handlerUrl = \"api/FormChange/PerformFormChangeUpdates\";\r\n var params = dto;\r\n var result = this.$http.post(handlerUrl, params)\r\n .then(function (response) { return _this.handlerResponded(response, params); });\r\n return result;\r\n };\r\n FormService.prototype.updateFieldType = function (schemaPropertyId, variableType) {\r\n var _this = this;\r\n var handlerUrl = 'api/FormChange/' + schemaPropertyId + '/UpdateFieldType/' + variableType;\r\n var result = this.$http.post(handlerUrl, {})\r\n .then(function (response) { return _this.handlerResponded(response, {}); });\r\n return result;\r\n };\r\n return FormService;\r\n }(warsApp.services.DataService));\r\n services.FormService = FormService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('FormService', ['breeze', '$q', '$http', 'ModalService',\r\n 'formSectionService', 'securityMatrixService', 'dataSourceService']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class FormService extends warsApp.services.DataService {\r\n\r\n private logType: string = \"FormService\";\r\n\r\n constructor(\r\n injectedBreeze: typeof breeze,\r\n $q: angular.IQService,\r\n private $http: angular.IHttpService,\r\n private modalService: any,\r\n private formSectionService: services.FormSectionService,\r\n private securityMatrixService:services.SecurityMatrixService,\r\n private dataSourceService:services.DataSourceService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createForm(processConfiguration?: Wars.Domain.Model.ProcessConfiguration): Wars.Domain.Model.Form {\r\n var form = this.createNewEntity(\"Form\", { MyProcessConfiguration: processConfiguration });\r\n form.uniqueIdentifier = UtilityService.generateGuidComb();\r\n return form;\r\n }\r\n\r\n public createFormStep(form: Wars.Domain.Model.Form): Wars.Domain.Model.FormStep {\r\n return this.createNewEntity(\"FormStep\", { myForm: form });\r\n }\r\n public createUrl(form: Wars.Domain.Model.Form): Wars.Domain.Model.UrlDependency {\r\n return this.createNewEntity(\"UrlDependency\", {form: form});\r\n }\r\n\r\n public createFormSection(step: Wars.Domain.Model.FormStep): models.FormSection {\r\n return this.createNewEntity(\"FormSection\", { step: step });\r\n }\r\n\r\n\r\n public createManageSection(): Wars.Domain.Model.ManageSection {\r\n let manageSection = this.createNewEntity(\"ManageSection\");\r\n manageSection.uniqueIdentifier = UtilityService.generateGuidComb();\r\n return manageSection;\r\n }\r\n\r\n public createManageStatusConfiguration(): Wars.Domain.Model.ManageStatusConfiguration {\r\n return this.createNewEntity(\"ManageStatusConfiguration\");\r\n }\r\n\r\n public createManageTimeTrackerConfiguration(): Wars.Domain.Model.ManageTimeTrackerConfiguration {\r\n return this.createNewEntity(\"ManageTimeTrackerConfiguration\");\r\n }\r\n\r\n public createCommentThreadConfiguration(): Wars.Domain.Model.CommentThreadConfiguration{\r\n let commentThreadConfiguration = this.createNewEntity(\"CommentThreadConfiguration\");\r\n\r\n commentThreadConfiguration.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n commentThreadConfiguration.canDeleteComments = false;\r\n commentThreadConfiguration.canDeleteOwnComment = false;\r\n commentThreadConfiguration.deleteLabel = \"Delete\";\r\n commentThreadConfiguration.maxLevelsOfDepth = 3;\r\n commentThreadConfiguration.showAvatar = true;\r\n commentThreadConfiguration.allowCommentDateToBeSet = false;\r\n commentThreadConfiguration.allowDocuments = false;\r\n commentThreadConfiguration.commentDateLabel = \"Comment Date\";\r\n\r\n\r\n commentThreadConfiguration.canCommentSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false, false);\r\n commentThreadConfiguration.canDeleteSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false, false);\r\n commentThreadConfiguration.canViewDeletedCommentsSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false, false);\r\n\r\n return commentThreadConfiguration;\r\n }\r\n\r\n public createManageDocumentConfiguration(): Wars.Domain.Model.ManageDocumentsConfiguration {\r\n var newConfig = this.createNewEntity(\"ManageDocumentsConfiguration\");\r\n newConfig.uniqueIdentifier = UtilityService.generateGuidComb();\r\n newConfig.canUploadDocuments = false;\r\n newConfig.canSelectDocuments = false;\r\n newConfig.canSelectSecureDocuments = false;\r\n newConfig.canEditIsSecureValue = false;\r\n newConfig.includeFieldDocuments = false;\r\n newConfig.includeReviewDocuments = false;\r\n newConfig.includeUserActionDocuments = false;\r\n newConfig.includeManageDocumentSectionDocuments = false;\r\n newConfig.includeProcessEventSectionDocuments = false;\r\n newConfig.includeCommentThreadSectionDocuments = false;\r\n newConfig.includeSecuredDocumentColumn = false;\r\n newConfig.includeSecuredDocuments = false;\r\n return newConfig;\r\n }\r\n\r\n public createFormGridColumn(formSection: Wars.Domain.Model.FormSection): Wars.Domain.Model.FormGridColumn {\r\n return this.createNewEntity(\"FormGridColumn\", { formSection: formSection });\r\n }\r\n\r\n public createCondition(field: Wars.Domain.Model.Field): models.Condition {\r\n var condition = this.createNewEntity(\"Condition\", { field: field });\r\n condition.expression = this.createNewEntity(\"GroupExpression\");\r\n services.WarsLogger.logDebug(\"Create Condition\", this.logType, condition);\r\n return condition;\r\n }\r\n\r\n public createField(formSection: models.FormSection): Wars.Domain.Model.Field {\r\n var newField = this.createNewEntity(\"Field\", { formSection: formSection, excludeFromSaves: false });\r\n newField.applySecurityMatrix = false;\r\n newField.applyDefaultValueSecurityMatrix = false;\r\n newField.showLinkForAutoComplete = false;\r\n newField.isRequired = false;\r\n newField.disallowEmptyValue = false;\r\n return newField;\r\n }\r\n\r\n public createNewCondition(): models.Condition {\r\n var condition = this.createNewEntity(\"Condition\");\r\n condition.expression = this.createGroupExpression();\r\n console.info(condition);\r\n return condition;\r\n }\r\n\r\n public createGroupExpression(): Wars.Domain.Model.Conditions.GroupExpression {\r\n var exp = this.createNewEntity(\"GroupExpression\");\r\n exp.expressionType = Wars.Domain.Model.Codes.Enums.ExpressionType.Group;\r\n\r\n return exp;\r\n }\r\n\r\n public getById(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"id\", \"==\", id);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getManageFormConfiguration(id: string): ng.IPromise {\r\n var p1 = new breeze.Predicate(\"id\", \"==\", id);\r\n var expand =\r\n \"myManageSections.manageProcessDataConfiguration.processDataViewConfigurations, \" +\r\n \"myManageSections.manageStatusConfiguration.securityMatrixForRespondingToComments, \" +\r\n \"myManageSections.apiGridConfiguration.columns, \" +\r\n \"myManageSections.manageClockConfigurations.securityMatrix, \" +\r\n \"myManageSections.assignmentConfiguration.assignmentSectionClaims.claimDefinition, \" +\r\n \"myManageSections.commentThreadConfiguration.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"myManageSections.commentThreadConfiguration.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"myManageSections.commentThreadConfiguration.documentConfiguration.myAvailableDocumentTypes.mySystemCode, \" + \r\n \"myManageSections.commentThreadConfiguration.canCommentSecurityMatrix, \" +\r\n \"myManageSections.commentThreadConfiguration.canDeleteSecurityMatrix, \" +\r\n \"myManageSections.commentThreadConfiguration.canViewDeletedCommentsSecurityMatrix, \" + \r\n \"myManageSections.commentThreadConfiguration.reviewConfiguration, \" +\r\n \"myManageSections.commentThreadConfiguration.commentEmailConfiguration, \" +\r\n \"myManageSections.securityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.canUploadDocumentsSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.canSelectDocumentsSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.canSelectSecureDocumentsSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.canEditIsSecureValueSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"myManageSections.manageDocumentsConfiguration.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"myManageSections.manageProcessEventConfiguration.manageProcessEventConfigResos, \" +\r\n \"formSchema.properties, \" +\r\n \"urlDependencies, \" +\r\n \"securityMatrix.claimBindings\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"FormsLazy\")\r\n .where(p1)\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getFormFields(processConfigurationId: string, variableType?: number): ng.IPromise {\r\n var deferred = this.$q.defer();\r\n\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId)\r\n .expand(\"mySteps.formSections.fields.schemaProperty, mySteps.formSections.objectSchema\");\r\n\r\n this.executeQuery(query).then((forms) => {\r\n var allFields = Enumerable.from(forms)\r\n .selectMany(i => i.mySteps)\r\n .selectMany(i => i.formSections)\r\n .selectMany(i => i.fields)\r\n .toArray();\r\n\r\n if (variableType === undefined || variableType === null) {\r\n deferred.resolve(allFields);\r\n } else {\r\n var filteredSet = Enumerable.from(allFields)\r\n .where(i => i.schemaProperty.propertyType === variableType)\r\n .toArray();\r\n\r\n deferred.resolve(filteredSet);\r\n }\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n public getFormConfiguration(id: string): ng.IPromise {\r\n var p1 = new breeze.Predicate(\"id\", \"==\", id);\r\n var expand =\r\n \"mySteps.formCodeFunctions, \" +\r\n \"mySteps.formSections.securityMatrix, \" +\r\n \"mySteps.formSections.fields.schemaProperty.codeGroup.codes, \" +\r\n \"formSchema.properties, \" +\r\n \"mySteps.formSections.columns.schemaProperty, \" +\r\n \"mySteps.formSections.systemLevelListSchemaProperty.typeSchema, \" +\r\n \"mySteps.formSections.fields.staticDocument, \" +\r\n \"mySteps.formSections.fields.gisActionWorkflowOverride.gisActionWorkflowConfiguration.gisActionBlocks, \" +\r\n \"mySteps.formSections.fields.mapConfigurationOverride.mapConfiguration.layers, \" +\r\n \"mySteps.formSections.fields.mapConfigurationOverride.mapConfiguration.legendConfigurations.legendLayers, \" +\r\n \"mySteps.formSections.fields.fieldExcludedStatuses.statusCode, \" +\r\n \"mySteps.formSections.fields.fieldExcludedSystemCodes.systemCode, \" +\r\n \"mySteps.formSections.fields.fieldExcludedStates.stateCode, \" +\r\n \"mySteps.formSections.fields.fieldExcludedProcessTypes.processType, \" +\r\n \"mySteps.formSections.fields.securityMatrix, \" +\r\n \"mySteps.formSections.fields.schemaProperty.scheduledResourceConfiguration, \" +\r\n \"mySteps.formSections.fields.schemaProperty.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"mySteps.formSections.fields.schemaProperty.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"mySteps.formSections.fields.schemaProperty.documentConfiguration.myAvailableDocumentTypes.mySystemCode, \" +\r\n \"mySteps.formSections.fields.apiGridConfiguration.columns, \" +\r\n \"mySteps.formSections.fields.includedMapFunction.mapFunctionConfiguration, \" +\r\n \"mySteps.formSections.fields.queryGridOverride.queryGridConfiguration, \" +\r\n \"mySteps.objectSchema.properties, \" +\r\n \"urlDependencies, \" +\r\n \"mySteps.formSections.objectSchema.properties, \" +\r\n \"securityMatrix.claimBindings\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"FormsLazy\")\r\n .where(p1)\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getProcessConfigurationForms(processConfigurationId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId);\r\n\r\n return (this.executeQuery(query));\r\n }\r\n\r\n public getProcessConfigurationContainers(processConfigurationId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"FormContainers\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId);\r\n\r\n return (this.executeQuery(query));\r\n }\r\n\r\n public getProcessConfigurationFormsWithSections(processConfigurationId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId)\r\n .expand(\"myManageSections, mySteps.formSections.objectSchema, mySteps.formSections.fields.schemaProperty\");\r\n\r\n return (this.executeQuery(query));\r\n }\r\n\r\n public getSystemForms(): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", null);\r\n\r\n return (this.executeQuery(query));\r\n }\r\n\r\n public getDynamicForms(): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery.from(\"DynamicFormCustom\");\r\n return (this.executeQuery(query));\r\n }\r\n\r\n public loadFieldGroup(field: Wars.Domain.Model.Field) {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Fields\")\r\n .where('id', '==', field.id)\r\n .expand('schemaProperty.codeGroup.codes');\r\n\r\n this.executeQuery(query);\r\n }\r\n\r\n public setFieldPropertySchemaParent(step: Wars.Domain.Model.FormStep, formSection: Wars.Domain.Model.FormSection,\r\n property: Wars.Domain.Model.SchemaProperty, formConfiguration: Wars.Domain.Model.Form) {\r\n if (formSection.isVisible) {\r\n property.parentObjectSchema = formSection.objectSchema;\r\n formSection.objectSchema.properties.push(property);\r\n }\r\n else if (formConfiguration.mySteps.length > 1) {\r\n property.parentObjectSchema = step.objectSchema;\r\n step.objectSchema.properties.push(property);\r\n }\r\n else {\r\n formConfiguration.formSchema.properties.push(property);\r\n }\r\n }\r\n\r\n public deleteFormSection(formSection: Wars.Domain.Model.FormSection, step: Wars.Domain.Model.FormStep) {\r\n var fields = formSection.fields;\r\n\r\n for (var i = 0; i < fields.length; i++) {\r\n fields[i].entityAspect.setDeleted();\r\n }\r\n\r\n this.saveAllChanges(s => {\r\n formSection.entityAspect.setDeleted();\r\n this.saveAllChanges();\r\n });\r\n\r\n step.formSections.remove(formSection);\r\n }\r\n\r\n public editField(field: Wars.Domain.Model.Field, formSection: Wars.Domain.Model.FormSection,\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration, form: Wars.Domain.Model.Form) {\r\n var self = this;\r\n //console.log(processConfiguration);\r\n\r\n (field).fieldTypeChanged = false;\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/editField.html\",\r\n controller: \"editFieldController\",\r\n size: 'lg',\r\n inputs: {\r\n field: field,\r\n processConfigurationId: processConfiguration.id,\r\n formSection: formSection,\r\n processConfiguration: processConfiguration,\r\n form: form\r\n }\r\n }).then(modal => {\r\n modal.element.modal();\r\n\r\n modal.close.then(result => {\r\n $('.modal-backdrop').each(function () {\r\n $(this).remove();\r\n });\r\n\r\n if (result) {\r\n self.saveAllChanges();\r\n field[\"refresh\"] = true;\r\n self.formSectionService.splitFields(formSection);\r\n if ((field).fieldTypeChanged) {\r\n this.updateFieldType(field.schemaProperty_id, field.schemaProperty.propertyType);\r\n }\r\n\r\n } else {\r\n self.rejectChanges();\r\n }\r\n });\r\n });\r\n\r\n }\r\n\r\n public setupFormSchema(formConfiguration:Wars.Domain.Model.Form) {\r\n let formPropertiesToOrphan = Enumerable.from(formConfiguration.formSchema.properties)\r\n .where(p => Enumerable.from(formConfiguration.mySteps)\r\n .all(s => p.typeSchema == null || s.objectSchema_id !== p.typeSchema.id))\r\n .toArray();\r\n\r\n formPropertiesToOrphan.forEach(p => {\r\n p.parentObjectSchema = null;\r\n p.objectSchema_id = null;\r\n });\r\n\r\n let formSchema: Wars.Domain.Model.ObjectSchema = formConfiguration.formSchema;\r\n formConfiguration.mySteps.forEach(step => {\r\n\r\n let stepParentSchemaProperty = Enumerable.from(formConfiguration.formSchema.properties).singleOrDefault(p => step.objectSchema_id === p.typeSchema.id);\r\n step.objectSchema.parentProperty = stepParentSchemaProperty;\r\n\r\n if (!stepParentSchemaProperty) {\r\n stepParentSchemaProperty = this.dataSourceService.createNewSchemaProperty();\r\n\r\n stepParentSchemaProperty.name = !step.objectSchema.name || step.objectSchema.name === \"\" ? \"Default\" : step.objectSchema.name;\r\n step.objectSchema.name = stepParentSchemaProperty.name;\r\n stepParentSchemaProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n stepParentSchemaProperty.typeSchema = step.objectSchema;\r\n stepParentSchemaProperty.parentObjectSchema = formConfiguration.formSchema;\r\n\r\n formConfiguration.formSchema.properties.push(stepParentSchemaProperty);\r\n }\r\n\r\n let stepPropertiesToOrphan = Enumerable.from(step.objectSchema.properties)\r\n .where(p => Enumerable.from(step.formSections)\r\n .all(s => !p.typeSchema || s.objectSchema_id !== p.typeSchema.id))\r\n .toArray();\r\n\r\n stepPropertiesToOrphan.forEach(p => {\r\n p.parentObjectSchema = null;\r\n p.objectSchema_id = null;\r\n });\r\n\r\n step.formSections.forEach(formSection => {\r\n let parentStepProperty = Enumerable.from(step.objectSchema.properties).singleOrDefault(p =>\r\n !formSection.objectSchema || p.type_id === formSection.objectSchema.id);\r\n\r\n formSection.objectSchema.parentProperty = parentStepProperty;\r\n\r\n if (!parentStepProperty) {\r\n parentStepProperty = this.dataSourceService.createNewSchemaProperty();\r\n\r\n parentStepProperty.name = !formSection.objectSchema.name || formSection.objectSchema.name === \"\" ? \"Default\" : formSection.objectSchema.name;\r\n formSection.objectSchema.name = parentStepProperty.name;\r\n parentStepProperty.typeSchema = formSection.objectSchema;\r\n parentStepProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n parentStepProperty.parentObjectSchema =step.objectSchema;\r\n\r\n step.objectSchema.properties.push(parentStepProperty);\r\n }\r\n\r\n formSection.fields.forEach(field => {\r\n formSection.objectSchema.properties.push(field.schemaProperty);\r\n });\r\n });\r\n\r\n\r\n });\r\n }\r\n\r\n public getFormWithSection(processConfigurationId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Forms\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigurationId)\r\n .expand('myManageSections');\r\n\r\n return (this.executeQuery(query));\r\n }\r\n\r\n createAssigmentConfiguration(): Wars.Domain.Model.AssignmentConfiguration {\r\n return this.createNewEntity(\"AssignmentConfiguration\");\r\n }\r\n\r\n public performFormChangeUpdates(dto: Wars.Domain.Model.Dtos.FormChangeDto): ng.IPromise {\r\n var handlerUrl = \"api/FormChange/PerformFormChangeUpdates\";\r\n var params = dto;\r\n var result: ng.IPromise = this.$http.post(handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n\r\n return result;\r\n }\r\n\r\n public updateFieldType(schemaPropertyId: string, variableType: Wars.Domain.Model.Codes.Enums.VariableType): ng.IPromise {\r\n var handlerUrl = 'api/FormChange/' + schemaPropertyId + '/UpdateFieldType/' + variableType;\r\n var result: ng.IPromise = this.$http.post(handlerUrl, {})\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, {}));\r\n\r\n return result;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('FormService', ['breeze', '$q', '$http', 'ModalService',\r\n 'formSectionService','securityMatrixService','dataSourceService']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var FormStepService = /** @class */ (function (_super) {\r\n __extends(FormStepService, _super);\r\n function FormStepService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n FormStepService.prototype.fetchFormStep = function (id) {\r\n return this.fetchById(id, \"FormStep\");\r\n };\r\n return FormStepService;\r\n }(services.DataService));\r\n services.FormStepService = FormStepService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('FormStepService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class FormStepService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public fetchFormStep(id: string): angular.IPromise {\r\n return this.fetchById(id, \"FormStep\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('FormStepService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var EsriMapService = /** @class */ (function (_super) {\r\n __extends(EsriMapService, _super);\r\n function EsriMapService(injectedBreeze, $http, $q) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n EsriMapService.prototype.loadLayerMetadata = function (layer, esrilayer) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n var url = this.getProxyUrl(this.getUrlEscaped(layer.url) + esrilayer.layerId, layer.proxyUrl);\r\n this.$http.post('/proxy', url).then(function (r) {\r\n var data = r.data;\r\n esrilayer.description = data.description;\r\n data.fields.forEach(function (f) {\r\n var field = _this.createEsriFieldMetadata();\r\n field.name = f.name;\r\n field.alias = f.alias;\r\n field.type = _this.getVariableType(f.type);\r\n field.length = f.length;\r\n esrilayer.fields.push(field);\r\n });\r\n d.resolve();\r\n });\r\n return d.promise;\r\n };\r\n EsriMapService.prototype.getFeatureGeometry = function (feature, geometryType) {\r\n switch (geometryType) {\r\n case \"esriGeometryPolygon\":\r\n return feature.geometry.rings;\r\n case \"esriGeometryPolyline\":\r\n return feature.geometry.paths;\r\n case \"esriGeometryPoint\":\r\n return [feature.geometry.x, feature.geometry.y];\r\n default:\r\n return null;\r\n }\r\n };\r\n EsriMapService.prototype.createMarker = function (feature, geometryType, options) {\r\n switch (geometryType) {\r\n case \"esriGeometryPoint\":\r\n return L.marker(this.getFeatureGeometry(feature, geometryType), options);\r\n default:\r\n return null;\r\n }\r\n };\r\n EsriMapService.prototype.createGeoJsonLayer = function (feature, geometryType, options) {\r\n var geoJson = Terraformer.ArcGIS.parse(feature.geometry);\r\n return L.geoJSON(geoJson, options);\r\n };\r\n EsriMapService.prototype.createVectorLayer = function (feature, geometryType, options) {\r\n switch (geometryType) {\r\n case \"esriGeometryPolygon\":\r\n return L.polygon(this.getFeatureGeometry(feature, geometryType), options);\r\n case \"esriGeometryPolyline\":\r\n return L.polyline(this.getFeatureGeometry(feature, geometryType), options);\r\n ;\r\n default:\r\n return null;\r\n }\r\n };\r\n EsriMapService.prototype.getVariableType = function (esriType) {\r\n switch (esriType) {\r\n case \"esriFieldTypeDouble\":\r\n return 2 /* Decimal */;\r\n case \"esriFieldTypeOID\":\r\n case \"esriFieldTypeString\":\r\n return 0 /* String */;\r\n case \"esriFieldTypeGeometry\":\r\n return 81 /* Geometry */;\r\n default:\r\n return 0 /* String */;\r\n }\r\n };\r\n EsriMapService.prototype.getUrlEscaped = function (url) {\r\n if (url.charAt(url.length - 1) != '/') {\r\n return url + '/';\r\n }\r\n return url;\r\n };\r\n EsriMapService.prototype.getProxyUrl = function (url, proxyUrl, useAnd) {\r\n var combinedUrl = \"\";\r\n if (proxyUrl) {\r\n combinedUrl = proxyUrl + \"?\" + url;\r\n }\r\n if (useAnd) {\r\n return combinedUrl + \"&f=pjson\";\r\n }\r\n return combinedUrl + \"?f=pjson\";\r\n };\r\n EsriMapService.prototype.getMapServiceMetadata = function (url, proxy) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n var combinedUrl = this.getProxyUrl(url, proxy);\r\n this.$http.post('/proxy', combinedUrl).then(function (r) {\r\n var data = r.data;\r\n var metaData = _this.createEsriMapServiceMetadata();\r\n metaData.currentVersion = data.currentVersion;\r\n metaData.name = data.name;\r\n metaData.description = data.description;\r\n var splitCapabilities = data.capabilities.split(',');\r\n splitCapabilities.forEach(function (c) {\r\n var newCapability = _this.createEsriMapServiceCapability(c);\r\n if (newCapability) {\r\n metaData.capabilities.push(newCapability);\r\n }\r\n });\r\n data.layers.forEach(function (l) {\r\n var newLayer = _this.createEsriMapServiceLayerMetadata();\r\n newLayer.layerId = l.id;\r\n newLayer.parentLayerId = l.parentLayerId >= 0 ? l.parentLayerId : null;\r\n newLayer.name = l.name;\r\n metaData.layers.push(newLayer);\r\n });\r\n d.resolve(metaData);\r\n });\r\n return d.promise;\r\n };\r\n EsriMapService.prototype.createEsriMapServiceMetadata = function () {\r\n return this.createNewEntity(\"EsriMapServiceMetadata\");\r\n };\r\n EsriMapService.prototype.createEsriFieldMetadata = function () {\r\n return this.createNewEntity(\"EsriField\");\r\n };\r\n EsriMapService.prototype.createEsriMapServiceCapability = function (value) {\r\n var capabilityType;\r\n switch (value) {\r\n case \"Map\":\r\n capabilityType = 1 /* Map */;\r\n break;\r\n case \"Query\":\r\n capabilityType = 2 /* Query */;\r\n break;\r\n default:\r\n return null;\r\n }\r\n var capability = this.createNewEntity(\"EsriMapServiceCapability\");\r\n capability.capability = capabilityType;\r\n return capability;\r\n };\r\n EsriMapService.prototype.createEsriMapServiceLayerMetadata = function () {\r\n return this.createNewEntity(\"EsriMapServiceLayerMetadata\");\r\n };\r\n EsriMapService.prototype.getGeometryType = function (geoJsonType) {\r\n switch (geoJsonType) {\r\n case \"LineString\":\r\n return \"esriGeometryPolyline\";\r\n case \"Point\":\r\n return \"esriGeometryPoint\";\r\n case \"Polygon\":\r\n return \"esriGeometryPolygon\";\r\n default:\r\n return \"esriGeometryPolygon\";\r\n }\r\n };\r\n EsriMapService.prototype.getSpatialRelationship = function (geoJsonType) {\r\n switch (geoJsonType) {\r\n // case \"LineString\":\r\n // return \"esriSpatialRelEnvelopeIntersects\";\r\n default:\r\n return \"esriSpatialRelIntersects\";\r\n }\r\n };\r\n EsriMapService.prototype.queryMapService = function (esriQuery, placeholderValueDictionary, geometryPlaceholder) {\r\n var d = this.$q.defer();\r\n var baseUrl = esriQuery.layer.url.endsWith('/') ? esriQuery.layer.url : esriQuery.layer.url + '/';\r\n baseUrl = baseUrl + esriQuery.esriMapServiceLayerMetadata.layerId + '/query?';\r\n var urlParams = \"\";\r\n var whereClause = this.getWhereClause(esriQuery, placeholderValueDictionary);\r\n if (whereClause) {\r\n urlParams += 'WHERE=' + whereClause;\r\n }\r\n if (esriQuery.includeGeometryFilter) {\r\n urlParams += \"&inSR={wkid:4326}\";\r\n if (esriQuery.geometryFilter.useMapGeometry) {\r\n var bounds = warsApp.directives.GisMapController.currentMap.getBounds();\r\n urlParams += \"&geometry=\" +\r\n JSON.stringify({\r\n \"xmin\": bounds.getWest(),\r\n \"ymin\": bounds.getSouth(),\r\n \"xmax\": bounds.getEast(),\r\n \"ymax\": bounds.getNorth(),\r\n \"spatialReference\": { \"wkid\": 4326 }\r\n });\r\n urlParams += \"&geometryType=esriGeometryEnvelope\";\r\n }\r\n else if (geometryPlaceholder) {\r\n var geo = null;\r\n if (geometryPlaceholder.type) {\r\n geo = geometryPlaceholder;\r\n }\r\n else {\r\n geo = geometryPlaceholder.toGeoJSON();\r\n if (geo && geo.geometry.type === \"LineString\" && geo.geometry.coordinates.length === 2) {\r\n geo = turf.buffer(geo.geometry, 25, 'meters');\r\n }\r\n }\r\n var convertedGeo = Terraformer.ArcGIS.convert(geo).geometry;\r\n delete convertedGeo.spatialReference;\r\n urlParams += \"&geometry=\" + JSON.stringify(convertedGeo);\r\n urlParams += \"&geometryType=\" + this.getGeometryType(geo.geometry.type);\r\n urlParams += \"&spatialRel=\" + this.getSpatialRelationship(geo.geometry.type);\r\n }\r\n }\r\n urlParams += \"&ReturnGeometry=\";\r\n if (esriQuery.returnGeometry) {\r\n urlParams += \"true&outSR={wkid:4326}\";\r\n }\r\n else {\r\n urlParams += \"false\";\r\n }\r\n urlParams += \"&outFields=*\";\r\n var combinedUrl = this.getProxyUrl(baseUrl + urlParams, esriQuery.layer.proxyUrl, true);\r\n this.$http.post('/proxy', combinedUrl).then(function (r) {\r\n var data = r.data;\r\n var featureCollection = {\r\n type: \"FeatureCollection\",\r\n features: []\r\n };\r\n if (data && data.features) {\r\n data.features.forEach(function (f) {\r\n var feature = Terraformer.ArcGIS.parse(f);\r\n feature.id = services.UtilityService.generateGuidComb();\r\n featureCollection.features.push(feature);\r\n });\r\n }\r\n d.resolve(featureCollection);\r\n });\r\n return d.promise;\r\n };\r\n EsriMapService.prototype.getWhereClause = function (esriQuery, placeholderValueDictionary) {\r\n var whereStr = \"\";\r\n if (esriQuery.whereClause) {\r\n return esriQuery.whereClause;\r\n }\r\n if (esriQuery.wherePredicates) {\r\n for (var i = 0; i < esriQuery.wherePredicates.length; i++) {\r\n var predicate = esriQuery.wherePredicates[i];\r\n var isString = predicate.field.type == 0 /* String */;\r\n if (i != 0) {\r\n if (esriQuery.useOrForWheres) {\r\n whereStr += \" OR \";\r\n }\r\n else {\r\n whereStr += \" AND \";\r\n }\r\n }\r\n if (isString) {\r\n whereStr += 'UPPER(' + predicate.field.name + ')';\r\n }\r\n else {\r\n whereStr += predicate.field.name;\r\n }\r\n whereStr += this.getOperator(predicate.compareOperator);\r\n if (isString) {\r\n whereStr += \"UPPER('\";\r\n }\r\n var val = '';\r\n if (predicate.isPlaceholder) {\r\n val = placeholderValueDictionary[predicate.placeHolderUniqueIdentifier];\r\n }\r\n else if (predicate.value) {\r\n val = predicate.value;\r\n }\r\n else {\r\n val = '';\r\n }\r\n if (predicate.javascriptTransformer) {\r\n var args = ['value', predicate.javascriptTransformer.code];\r\n var myFunc = Function.apply(null, args);\r\n var funcResult = myFunc(val);\r\n whereStr += funcResult;\r\n }\r\n else {\r\n whereStr += val;\r\n }\r\n if (isString) {\r\n whereStr += \"')\";\r\n }\r\n }\r\n }\r\n return whereStr;\r\n };\r\n EsriMapService.prototype.getOperator = function (comparisionType) {\r\n switch (comparisionType) {\r\n case 0 /* Equals */:\r\n return \"=\";\r\n case 2 /* GreaterThan */:\r\n return \">\";\r\n case 4 /* GreaterThanOrEqualTo */:\r\n return \">=\";\r\n case 3 /* LessThan */:\r\n return \"<\";\r\n case 5 /* LessThanOrEqualTo */:\r\n return \"<=\";\r\n case 1 /* NotEquals */:\r\n return \"<>\";\r\n default:\r\n return \"=\";\r\n }\r\n };\r\n return EsriMapService;\r\n }(services.DataService));\r\n services.EsriMapService = EsriMapService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('EsriMapService', ['breeze', '$http', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n declare var Terraformer: any;\r\n declare var turf: any;\r\n\r\n export class EsriMapService extends services.DataService {\r\n constructor(injectedBreeze: typeof breeze, private $http: angular.IHttpService,\r\n $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n\r\n }\r\n\r\n public loadLayerMetadata(layer: Wars.Domain.Model.Gis.Layer, esrilayer: Wars.Domain.Model.Gis.EsriMapServiceLayerMetadata) {\r\n var d = this.$q.defer();\r\n\r\n const url = this.getProxyUrl(this.getUrlEscaped(layer.url) + esrilayer.layerId, layer.proxyUrl);\r\n\r\n this.$http.post('/proxy', url).then(r => {\r\n const data = r.data;\r\n esrilayer.description = data.description;\r\n\r\n data.fields.forEach(f => {\r\n let field = this.createEsriFieldMetadata();\r\n\r\n field.name = f.name;\r\n field.alias = f.alias;\r\n field.type = this.getVariableType(f.type);\r\n field.length = f.length;\r\n\r\n esrilayer.fields.push(field);\r\n });\r\n\r\n d.resolve();\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getFeatureGeometry(feature: warsApp.models.Feature,geometryType:string):any {\r\n switch (geometryType) {\r\n case \"esriGeometryPolygon\":\r\n return feature.geometry.rings;\r\n case \"esriGeometryPolyline\":\r\n return feature.geometry.paths;\r\n case \"esriGeometryPoint\":\r\n return [feature.geometry.x,feature.geometry.y];\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n public createMarker(feature: warsApp.models.Feature, geometryType: string, options?: any): L.Marker {\r\n switch (geometryType) {\r\n case \"esriGeometryPoint\":\r\n return L.marker(this.getFeatureGeometry(feature, geometryType), options);\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n public createGeoJsonLayer(feature: warsApp.models.Feature, geometryType: string, options?: any): L.GeoJSON {\r\n var geoJson = Terraformer.ArcGIS.parse(feature.geometry);\r\n\r\n return L.geoJSON(geoJson, options);\r\n }\r\n\r\n public createVectorLayer(feature: warsApp.models.Feature, geometryType: string, options?: any): L.InternalPolyline{\r\n switch (geometryType) {\r\n case \"esriGeometryPolygon\":\r\n return L.polygon(this.getFeatureGeometry(feature, geometryType), options);\r\n case \"esriGeometryPolyline\":\r\n return L.polyline(this.getFeatureGeometry(feature, geometryType), options);;\r\n default:\r\n return null;\r\n } \r\n }\r\n\r\n private getVariableType(esriType: string): Wars.Domain.Model.Codes.Enums.VariableType {\r\n switch (esriType) {\r\n case \"esriFieldTypeDouble\":\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n case \"esriFieldTypeOID\":\r\n case \"esriFieldTypeString\":\r\n return Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n case \"esriFieldTypeGeometry\":\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Geometry;\r\n default:\r\n return Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n }\r\n }\r\n\r\n private getUrlEscaped(url: string) {\r\n if (url.charAt(url.length - 1) != '/') {\r\n return url + '/';\r\n }\r\n\r\n return url;\r\n }\r\n\r\n private getProxyUrl(url: string, proxyUrl: string,useAnd?:boolean) {\r\n let combinedUrl = \"\";\r\n\r\n if (proxyUrl) {\r\n combinedUrl = proxyUrl + \"?\" + url;\r\n }\r\n\r\n if (useAnd) {\r\n return combinedUrl + \"&f=pjson\";\r\n } \r\n return combinedUrl + \"?f=pjson\";\r\n }\r\n\r\n public getMapServiceMetadata(url: string, proxy?: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n const combinedUrl = this.getProxyUrl(url, proxy);\r\n\r\n this.$http.post('/proxy', combinedUrl).then(r => {\r\n let data: any = r.data;\r\n\r\n let metaData = this.createEsriMapServiceMetadata();\r\n metaData.currentVersion = data.currentVersion;\r\n metaData.name = data.name;\r\n metaData.description = data.description;\r\n\r\n let splitCapabilities = (data.capabilities).split(',');\r\n\r\n splitCapabilities.forEach(c => {\r\n const newCapability = this.createEsriMapServiceCapability(c);\r\n if (newCapability) {\r\n metaData.capabilities.push(newCapability);\r\n }\r\n });\r\n\r\n\r\n data.layers.forEach(l => {\r\n let newLayer = this.createEsriMapServiceLayerMetadata();\r\n newLayer.layerId = l.id;\r\n newLayer.parentLayerId = l.parentLayerId >= 0 ? l.parentLayerId : null;\r\n newLayer.name = l.name;\r\n\r\n metaData.layers.push(newLayer);\r\n });\r\n\r\n d.resolve(metaData);\r\n\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n private createEsriMapServiceMetadata(): Wars.Domain.Model.Gis.EsriMapServiceMetadata {\r\n return this.createNewEntity(\"EsriMapServiceMetadata\");\r\n\r\n }\r\n\r\n private createEsriFieldMetadata(): Wars.Domain.Model.Gis.EsriField {\r\n return this.createNewEntity(\"EsriField\");\r\n }\r\n\r\n private createEsriMapServiceCapability(value: string): Wars.Domain.Model.Gis.EsriMapServiceCapability {\r\n let capabilityType: Wars.Domain.Model.Codes.Enums.EsriMapServiceCapabilityType;\r\n\r\n switch (value) {\r\n case \"Map\":\r\n capabilityType = Wars.Domain.Model.Codes.Enums.EsriMapServiceCapabilityType.Map;\r\n break;\r\n case \"Query\":\r\n capabilityType = Wars.Domain.Model.Codes.Enums.EsriMapServiceCapabilityType.Query;\r\n break;\r\n default:\r\n return null;\r\n }\r\n\r\n let capability = this.createNewEntity(\"EsriMapServiceCapability\");\r\n capability.capability = capabilityType;\r\n\r\n return capability;\r\n }\r\n\r\n private createEsriMapServiceLayerMetadata(): Wars.Domain.Model.Gis.EsriMapServiceLayerMetadata {\r\n return this.createNewEntity(\"EsriMapServiceLayerMetadata\");\r\n }\r\n\r\n private getGeometryType(geoJsonType):string {\r\n switch (geoJsonType) {\r\n case \"LineString\":\r\n return \"esriGeometryPolyline\";\r\n case \"Point\":\r\n return \"esriGeometryPoint\";\r\n case \"Polygon\":\r\n return \"esriGeometryPolygon\";\r\n default:\r\n return \"esriGeometryPolygon\";\r\n }\r\n }\r\n\r\n private getSpatialRelationship(geoJsonType):string {\r\n switch (geoJsonType) {\r\n // case \"LineString\":\r\n // return \"esriSpatialRelEnvelopeIntersects\";\r\n default:\r\n return \"esriSpatialRelIntersects\";\r\n }\r\n }\r\n\r\n public queryMapService(esriQuery: Wars.Domain.Model.Gis.EsriQueryConfiguration, placeholderValueDictionary: any, geometryPlaceholder?: any): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n let baseUrl = esriQuery.layer.url.endsWith('/')?esriQuery.layer.url:esriQuery.layer.url + '/';\r\n baseUrl= baseUrl+ esriQuery.esriMapServiceLayerMetadata.layerId + '/query?';\r\n\r\n let urlParams = \"\";\r\n\r\n let whereClause=this.getWhereClause(esriQuery, placeholderValueDictionary);\r\n\r\n if (whereClause) {\r\n urlParams += 'WHERE=' + whereClause;\r\n }\r\n\r\n if (esriQuery.includeGeometryFilter) {\r\n urlParams += \"&inSR={wkid:4326}\";\r\n \r\n\r\n if (esriQuery.geometryFilter.useMapGeometry) {\r\n var bounds = warsApp.directives.GisMapController.currentMap.getBounds();\r\n\r\n urlParams += \"&geometry=\" +\r\n JSON.stringify(\r\n {\r\n \"xmin\": bounds.getWest(),\r\n \"ymin\": bounds.getSouth(),\r\n \"xmax\": bounds.getEast(),\r\n \"ymax\": bounds.getNorth(),\r\n \"spatialReference\": { \"wkid\": 4326 }\r\n });\r\n urlParams += \"&geometryType=esriGeometryEnvelope\";\r\n } else if (geometryPlaceholder) {\r\n let geo = null;\r\n\r\n if (geometryPlaceholder.type) {\r\n geo = geometryPlaceholder;\r\n } else {\r\n geo = geometryPlaceholder.toGeoJSON();\r\n\r\n\r\n if (geo && geo.geometry.type === \"LineString\" && geo.geometry.coordinates.length === 2) {\r\n geo= turf.buffer(geo.geometry, 25, 'meters');\r\n }\r\n }\r\n let convertedGeo=Terraformer.ArcGIS.convert(geo).geometry;\r\n delete convertedGeo.spatialReference;\r\n\r\n urlParams += `&geometry=${JSON.stringify(convertedGeo)}`;\r\n urlParams += \"&geometryType=\"+this.getGeometryType(geo.geometry.type);\r\n\r\n urlParams += \"&spatialRel=\"+this.getSpatialRelationship(geo.geometry.type);\r\n }\r\n }\r\n\r\n urlParams += \"&ReturnGeometry=\";\r\n\r\n if (esriQuery.returnGeometry) {\r\n urlParams += \"true&outSR={wkid:4326}\";\r\n\r\n } else {\r\n urlParams += \"false\"; \r\n }\r\n\r\n urlParams += \"&outFields=*\";\r\n\r\n const combinedUrl = this.getProxyUrl(baseUrl + urlParams, esriQuery.layer.proxyUrl,true);\r\n\r\n this.$http.post('/proxy', combinedUrl).then(r => {\r\n let data: any = r.data;\r\n let featureCollection = {\r\n type: \"FeatureCollection\",\r\n features: []\r\n };\r\n\r\n if (data && data.features) {\r\n data.features.forEach(f => {\r\n var feature = Terraformer.ArcGIS.parse(f);\r\n feature.id = UtilityService.generateGuidComb();\r\n featureCollection.features.push(feature);\r\n });\r\n }\r\n\r\n d.resolve(featureCollection);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n private getWhereClause(esriQuery: Wars.Domain.Model.Gis.EsriQueryConfiguration, placeholderValueDictionary: any): string {\r\n let whereStr = \"\";\r\n\r\n if (esriQuery.whereClause) {\r\n return esriQuery.whereClause;\r\n }\r\n\r\n if (esriQuery.wherePredicates) {\r\n for (let i = 0; i < esriQuery.wherePredicates.length; i++) {\r\n let predicate = esriQuery.wherePredicates[i];\r\n\r\n const isString = predicate.field.type == Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n\r\n if (i != 0) {\r\n if (esriQuery.useOrForWheres) {\r\n whereStr += \" OR \";\r\n } else {\r\n whereStr += \" AND \";\r\n }\r\n }\r\n\r\n if (isString) {\r\n whereStr += 'UPPER(' + predicate.field.name + ')';\r\n } else {\r\n whereStr += predicate.field.name;\r\n }\r\n\r\n whereStr += this.getOperator(predicate.compareOperator);\r\n\r\n if (isString) {\r\n whereStr += \"UPPER('\";\r\n }\r\n\r\n let val: string = '';\r\n if (predicate.isPlaceholder) {\r\n val = placeholderValueDictionary[predicate.placeHolderUniqueIdentifier];\r\n } else if(predicate.value){\r\n val = predicate.value;\r\n } else {\r\n val = '';\r\n }\r\n\r\n if (predicate.javascriptTransformer) {\r\n let args = ['value', predicate.javascriptTransformer.code];\r\n let myFunc = Function.apply(null, args);\r\n\r\n let funcResult = myFunc(val);\r\n whereStr += funcResult;\r\n } else {\r\n whereStr += val;\r\n }\r\n\r\n if (isString) {\r\n whereStr += \"')\";\r\n }\r\n }\r\n }\r\n\r\n return whereStr;\r\n }\r\n\r\n private getOperator(comparisionType: Wars.Domain.Model.Codes.Enums.CompareOperator) {\r\n switch (comparisionType) {\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.Equals:\r\n return \"=\";\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.GreaterThan:\r\n return \">\";\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.GreaterThanOrEqualTo:\r\n return \">=\";\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.LessThan:\r\n return \"<\";\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.LessThanOrEqualTo:\r\n return \"<=\";\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.NotEquals:\r\n return \"<>\";\r\n \r\n default:\r\n return \"=\";\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('EsriMapService', ['breeze', '$http', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var GisDataStoreMetadataMappingService = /** @class */ (function (_super) {\r\n __extends(GisDataStoreMetadataMappingService, _super);\r\n function GisDataStoreMetadataMappingService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n GisDataStoreMetadataMappingService.prototype.createGisDatastoreMetadataMapping = function () {\r\n return this.createNewEntity(\"GisDatastoreMetadataMapping\");\r\n };\r\n GisDataStoreMetadataMappingService.prototype.getGisDatastoreMetadataMappings = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery.from(\"GisDatastoreMetadataMappings\");\r\n var expand = \"gisDatastore,gisDatastorePropertyMapping1,gisDatastorePropertyMapping2,\" +\r\n \"gisDatastorePropertyMapping3,gisDatastorePropertyMapping4,gisDatastorePropertyMapping5,\" +\r\n \"gisDatastorePropertyMapping6,gisDatastorePropertyMapping7,gisDatastorePropertyMapping8,\" +\r\n \"gisDatastorePropertyMapping9,gisDatastorePropertyMapping10\";\r\n query = query.where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(expand);\r\n return this.executeQuery(query);\r\n };\r\n return GisDataStoreMetadataMappingService;\r\n }(services.DataService));\r\n services.GisDataStoreMetadataMappingService = GisDataStoreMetadataMappingService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('GisDataStoreMetadataMappingService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n export class GisDataStoreMetadataMappingService extends\r\n services.DataService {\r\n constructor(\r\n injectedBreeze: typeof breeze,\r\n $q: angular.IQService,\r\n private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createGisDatastoreMetadataMapping(): Wars.Domain.Model.Gis.GisDatastoreMetadataMapping {\r\n return this.createNewEntity(\r\n \"GisDatastoreMetadataMapping\");\r\n }\r\n\r\n public getGisDatastoreMetadataMappings(processConfigurationId: string): angular.\r\n IPromise {\r\n let query = this.breezeModule.EntityQuery.from(\"GisDatastoreMetadataMappings\");\r\n\r\n var expand = \"gisDatastore,gisDatastorePropertyMapping1,gisDatastorePropertyMapping2,\" +\r\n \"gisDatastorePropertyMapping3,gisDatastorePropertyMapping4,gisDatastorePropertyMapping5,\" +\r\n \"gisDatastorePropertyMapping6,gisDatastorePropertyMapping7,gisDatastorePropertyMapping8,\" +\r\n \"gisDatastorePropertyMapping9,gisDatastorePropertyMapping10\";\r\n\r\n query = query.where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(expand);\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerService('GisDataStoreMetadataMappingService', ['breeze', '$q', '$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var GisDatastoreService = /** @class */ (function (_super) {\r\n __extends(GisDatastoreService, _super);\r\n function GisDatastoreService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n GisDatastoreService.prototype.createGeometryDatastoreType = function () {\r\n return this.createNewEntity(\"GeometryDatastoreType\");\r\n };\r\n GisDatastoreService.prototype.createGisDatastore = function () {\r\n return this.createNewEntity(\"GisDatastore\");\r\n };\r\n GisDatastoreService.prototype.getGisDatastores = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"GisDatastores\")\r\n .expand(\"availableDatastoreTypes\");\r\n return this.executeQuery(query);\r\n };\r\n GisDatastoreService.prototype.activate = function (gisDatastoreId) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/GisDatastore/' + gisDatastoreId + '/Activate', null).then(function (r) {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n };\r\n GisDatastoreService.prototype.queryGisDatastore = function (gisDatastore, placeholderValueDictionary, queryConfiguration, geometryPlaceholder) {\r\n var d = this.$q.defer();\r\n var geoJson = null;\r\n if (geometryPlaceholder && geometryPlaceholder.type) {\r\n geoJson = geometryPlaceholder;\r\n }\r\n else if (geometryPlaceholder) {\r\n geoJson = geometryPlaceholder.toGeoJSON();\r\n }\r\n /* if (queryConfiguration) {\r\n if (!placeholderValueDictionary) {\r\n placeholderValueDictionary = {};\r\n }\r\n \r\n queryConfiguration.wherePredicates.forEach(f => {\r\n let value = \"\";\r\n if (f.value) {\r\n value = f.value;\r\n }\r\n \r\n if (!f.isPlaceholder) {\r\n placeholderValueDictionary[`Metadata${f.metadataNumber}`] = value;\r\n }\r\n });\r\n }*/\r\n var data = {\r\n geoJson: geoJson,\r\n placeHolders: placeholderValueDictionary\r\n };\r\n this.$http.post(\"api/GisDatastore/\" + gisDatastore.id + \"/Query/\" + queryConfiguration.id, data).then(function (f) {\r\n d.resolve(f.data);\r\n });\r\n return d.promise;\r\n };\r\n return GisDatastoreService;\r\n }(services.DataService));\r\n services.GisDatastoreService = GisDatastoreService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('GisDatastoreService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class GisDatastoreService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createGeometryDatastoreType(): Wars.Domain.Model.Gis.GeometryDatastoreType {\r\n return this.createNewEntity(\"GeometryDatastoreType\");\r\n }\r\n\r\n public createGisDatastore(): Wars.Domain.Model.Gis.GisDatastore {\r\n return this.createNewEntity(\"GisDatastore\");\r\n }\r\n\r\n public getGisDatastores(): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"GisDatastores\")\r\n .expand(\"availableDatastoreTypes\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public activate(gisDatastoreId): angular.IPromise {\r\n let d = this.$q.defer();\r\n\r\n this.$http.post('./api/GisDatastore/' + gisDatastoreId + '/Activate', null).then(r => {\r\n d.resolve();\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public queryGisDatastore(gisDatastore: Wars.Domain.Model.Gis.GisDatastore,\r\n placeholderValueDictionary: any,queryConfiguration:Wars.Domain.Model.Gis.GisDatastoreQueryConfiguration, geometryPlaceholder?: any): angular.IPromise {\r\n let d = this.$q.defer();\r\n\r\n let geoJson = null;\r\n if (geometryPlaceholder && geometryPlaceholder.type) {\r\n geoJson = geometryPlaceholder;\r\n }\r\n else if (geometryPlaceholder) {\r\n geoJson = geometryPlaceholder.toGeoJSON();\r\n }\r\n\r\n /* if (queryConfiguration) {\r\n if (!placeholderValueDictionary) {\r\n placeholderValueDictionary = {};\r\n }\r\n\r\n queryConfiguration.wherePredicates.forEach(f => {\r\n let value = \"\";\r\n if (f.value) {\r\n value = f.value;\r\n }\r\n\r\n if (!f.isPlaceholder) {\r\n placeholderValueDictionary[`Metadata${f.metadataNumber}`] = value;\r\n }\r\n });\r\n }*/\r\n\r\n let data = {\r\n geoJson:geoJson,\r\n placeHolders:placeholderValueDictionary\r\n };\r\n\r\n\r\n this.$http.post(`api/GisDatastore/${gisDatastore.id}/Query/${queryConfiguration.id}`, data).then(f => {\r\n d.resolve(f.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('GisDatastoreService', ['breeze', '$q', '$http']);","/// \r\nmodule warsApp.services {\r\n declare var turf: any;\r\n declare var Terraformer: any;\r\n\r\n export class GisMapService {\r\n\r\n private layerDictionary: any = {};\r\n private featureLayer: L.GeoJSON;\r\n\r\n constructor(private $q: angular.IQService,\r\n private esriMapService: services.EsriMapService,\r\n private jsonDictionaryStoreService: services.JsonDictionaryStoreService,\r\n private growl: angular.growl.IGrowlService,\r\n private formDataService: services.FormDataService) {\r\n\r\n }\r\n\r\n public addFeaturesLayer(features: Wars.Domain.Model.Dtos.FeatureDto[], zoomToLayer?: boolean) {\r\n this.addFeaturesLayerInternal(features);\r\n\r\n if (zoomToLayer && this.featureLayer) {\r\n warsApp.directives.GisMapController.currentMap.fitBounds(this.featureLayer.getBounds());\r\n }\r\n }\r\n\r\n private removeFeatureLayer() {\r\n warsApp.directives.GisMapController.currentMap.removeLayer(this.featureLayer);\r\n }\r\n\r\n private addFeaturesLayerInternal(features: Wars.Domain.Model.Dtos.FeatureDto[]) {\r\n if (!features || features.length === 0)\r\n return;\r\n\r\n let newFeatureCollection = {\r\n features: Enumerable.from(features).select(f => JSON.parse(f.geoJson)).toArray(),\r\n type: \"FeatureCollection\"\r\n };\r\n\r\n //var x = Enumerable.from(features).select(f => JSON.parse(f.geoJson)).toArray();\r\n\r\n this.featureLayer =\r\n new L.GeoJSON(newFeatureCollection).addTo(warsApp.directives.GisMapController.currentMap);\r\n }\r\n\r\n private runPostWorkflowActions(clearLayers: boolean, runGuid: string) {\r\n if (clearLayers) {\r\n this.layerDictionary[runGuid].forEach(l => {\r\n warsApp.directives.GisMapController.currentMap.removeLayer(l);\r\n });\r\n }\r\n\r\n delete this.layerDictionary[runGuid];\r\n }\r\n\r\n public runGisActionWorkflowOverride(override: Wars.Domain.Model.Gis.GisActionWorkflowOverride,\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n formId: string,\r\n formDataId: any) {\r\n\r\n const runGuid: string = services.UtilityService.generateGuidComb();\r\n\r\n let promise = this.runWorkflow(override.gisActionWorkflowConfiguration, process.id, runGuid);\r\n\r\n promise.then(r => {\r\n if (r && r.exitWorkflow) {\r\n this.runPostWorkflowActions(override.gisActionWorkflowConfiguration.clearAllLayersAtCompletion,\r\n runGuid);\r\n if (override.postRunGisActionWorkflowOverride) {\r\n this.runGisActionWorkflowOverride(override.postRunGisActionWorkflowOverride,\r\n process,\r\n formId,\r\n formDataId);\r\n }\r\n } else if (override.fieldMappings && override.fieldMappings.length > 0) {\r\n let features: any = r[override.featureListOutput_id];\r\n let featureOutput: any = null;\r\n\r\n if (features.features) {\r\n features = features.features;\r\n }\r\n\r\n if (!features) {\r\n return;\r\n }\r\n\r\n if (override.featureOutput_id) {\r\n featureOutput = r[override.featureOutput_id][0];\r\n process.features.push(featureOutput);\r\n process.featureToRows[featureOutput.id] = [];\r\n this.addFeaturesLayer([featureOutput], false);\r\n } else {\r\n this.addFeaturesLayer(features, false);\r\n }\r\n\r\n let processRowsToAdd = [];\r\n var featureActionsRun = 0;\r\n\r\n features.forEach(feature => {\r\n let rowId: string;\r\n\r\n Elp.Api.Process.addRow(process.id,\r\n formId,\r\n formDataId,\r\n override.formSection.objectSchema.uniqueIdentifier,\r\n override.isAddReadOnly).then(r => {\r\n rowId = r;\r\n\r\n let saveDto: Wars.Domain.Model.Dtos.MultiAddFieldsSaveDto = {\r\n FieldValues: {\r\n }\r\n };\r\n\r\n let processRow = { id: rowId };\r\n\r\n override.fieldMappings.forEach(f => {\r\n let value: any = \"\";\r\n\r\n if (override.featureListOutput.type ===\r\n Wars.Domain.Model.Codes.Enums.GisInputOutputType.ListofGisDatastoreFeatures) {\r\n\r\n value = feature[\"metadata\" + f.metadataPosition];\r\n if (value == \"True\") {\r\n value = true;\r\n }\r\n } else if (override.featureListOutput.type ===\r\n Wars.Domain.Model.Codes.Enums.GisInputOutputType.FeatureCollection) {\r\n if (f.propertyName && f.propertyName != \"\") {\r\n value = feature.properties[f.propertyName];\r\n } else if (f.metadataPosition && featureOutput) {\r\n value = featureOutput[\"metadata\" + f.metadataPosition];\r\n }\r\n }\r\n\r\n processRow[f.field.schemaProperty.uniqueIdentifier] = value;\r\n let metadata = \"\";\r\n\r\n if (f.isReadOnly) {\r\n if (!process.rowMetadata) {\r\n (process).rowMetadata = {};\r\n }\r\n\r\n //[f.field.schemaProperty.uniqueIdentifier]\r\n if (!process.rowMetadata[rowId]) {\r\n process.rowMetadata[rowId] = {\r\n fieldsMetadata: {}\r\n };\r\n }\r\n\r\n metadata = JSON.stringify({\r\n isReadonly: true\r\n });\r\n\r\n (process.rowMetadata[rowId]).fieldsMetadata[f.field.schemaProperty\r\n .uniqueIdentifier] = metadata;\r\n }\r\n\r\n (saveDto).FieldValues[f.field.schemaProperty.uniqueIdentifier] = {\r\n Value: value,\r\n Metadata: metadata\r\n };\r\n });\r\n\r\n processRowsToAdd.push(processRow);\r\n\r\n this.formDataService.setMultipleListFields(process.id,\r\n formId,\r\n formDataId,\r\n override.formSection.objectSchema.uniqueIdentifier,\r\n rowId,\r\n saveDto).then(r => {\r\n featureActionsRun++;\r\n if (features.length * 2 === featureActionsRun) {\r\n processRowsToAdd.forEach(processRow => {\r\n if (!(process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier])) {\r\n (process.formJson[formId])[formDataId][override.formSection.objectSchema.uniqueIdentifier] = [];\r\n }\r\n (process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier]).push(processRow);\r\n });\r\n }\r\n });\r\n\r\n processRow[override.featureField.schemaProperty.uniqueIdentifier] = featureOutput ? featureOutput.id : feature.id;\r\n Elp.Api.Process.setRowValue(process.id,\r\n formId,\r\n formDataId,\r\n override.formSection.objectSchema.uniqueIdentifier,\r\n override.featureField.schemaProperty.uniqueIdentifier,\r\n rowId,\r\n featureOutput ? featureOutput.id : feature.id,\r\n true).then(r => {\r\n featureActionsRun++;\r\n if (features.length * 2 === featureActionsRun) {\r\n processRowsToAdd.forEach(processRow => {\r\n if (!(process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier])) {\r\n (process.formJson[formId])[formDataId][override.formSection.objectSchema.uniqueIdentifier] = [];\r\n }\r\n (process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier]).push(processRow);\r\n });\r\n }\r\n });\r\n\r\n if (!featureOutput) {\r\n process.features.push(feature);\r\n process.featureToRows[feature.id] = [rowId];\r\n } else {\r\n (process.featureToRows[featureOutput.id]).push(rowId);\r\n }\r\n });\r\n\r\n\r\n });\r\n\r\n this.runPostWorkflowActions(override.gisActionWorkflowConfiguration.clearAllLayersAtCompletion,\r\n runGuid);\r\n\r\n if (override.postRunGisActionWorkflowOverride) {\r\n this.runGisActionWorkflowOverride(override.postRunGisActionWorkflowOverride,\r\n process,\r\n formId,\r\n formDataId);\r\n }\r\n } else {\r\n if (override.postRunGisActionWorkflowOverride) {\r\n this.runGisActionWorkflowOverride(override.postRunGisActionWorkflowOverride,\r\n process,\r\n formId,\r\n formDataId);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public runWorkflow(workflow: Wars.Domain.Model.Gis.GisActionWorkflowConfiguration,\r\n processId: string,\r\n runGuid: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n if (workflow) {\r\n this.layerDictionary[runGuid] = [];\r\n\r\n const orderedActions = Enumerable.from(workflow.gisActionBlocks).orderBy(w => w.workflowOrder)\r\n .toArray();\r\n\r\n let promise = this.runActionPromise(orderedActions[0],\r\n null,\r\n orderedActions.slice(1),\r\n processId,\r\n runGuid);\r\n\r\n promise.then(r => {\r\n d.resolve(r);\r\n });\r\n } else {\r\n d.reject();\r\n }\r\n\r\n return d.promise;\r\n }\r\n\r\n private runActionPromise(action: Wars.Domain.Model.Gis.GisActionBlock,\r\n input: any,\r\n nextActions: Array,\r\n processId: string,\r\n runGuid: string):\r\n angular.IPromise {\r\n\r\n const outterD = this.$q.defer();\r\n const innerD = this.$q.defer();\r\n\r\n let outputs = [];\r\n\r\n switch (action.gisActionBlockType) {\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.AddFeature:\r\n this.runAddFeaturesAction(action, input, processId, runGuid).then(g => {\r\n\r\n let output = this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.DrawFeature:\r\n this.runDrawFeatureAction(action, input, processId, runGuid).then(g => {\r\n\r\n let output = this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.QueryEsriQuery:\r\n this.runEsriQueryAction(action, input, processId, runGuid).then(r => {\r\n\r\n let output = this.getOutputs(action, r, input);\r\n innerD.resolve(output);\r\n });\r\n\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.QueryGisDatastore:\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.Filter:\r\n this.runFilterAction(action, input, processId, runGuid).then(g => {\r\n\r\n let output = this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.Trim:\r\n this.runTrimAction(action, input, processId, runGuid).then(g => {\r\n\r\n let output = this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.Validation:\r\n this.runValidationAction(action, input, processId, runGuid).then(g => {\r\n\r\n if (action.gisActionValidationConfiguration.exitWorkflowOnFailure && !g) {\r\n innerD.resolve({ exitWorkflow: true });\r\n } else {\r\n let output = this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n }\r\n });\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.SetProperty:\r\n this.runSetPropertyAction(action, input, processId, runGuid).then(g => {\r\n\r\n let output = this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GisActionBlockType.BufferGeometry:\r\n this.runBufferAction(action, input, processId, runGuid).then(g => {\r\n\r\n let output = this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n }\r\n\r\n innerD.promise.then(r => {\r\n if (r && (r).exitWorkflow) {\r\n outterD.resolve(r);\r\n } else if (nextActions && nextActions.length > 0) {\r\n this.runActionPromise(nextActions[0], r, nextActions.slice(1), processId, runGuid).then(\r\n actionResult => {\r\n outterD.resolve(actionResult);\r\n\r\n });\r\n } else {\r\n outterD.resolve(r);\r\n }\r\n\r\n });\r\n\r\n return outterD.promise;\r\n }\r\n\r\n private runFilterAction(actionBlock: Wars.Domain.Model.Gis.GisActionBlock,\r\n inputs: any,\r\n processId: string,\r\n runGuid: string): angular.IPromise {\r\n const d = this.$q.defer();\r\n\r\n let featureCollection = null;\r\n\r\n if (actionBlock.filterFeatureCollectionConfiguration.featureCollectionInput) {\r\n if (inputs[actionBlock.filterFeatureCollectionConfiguration.featureCollectionInput.relatedGisInputOutput\r\n .id]) {\r\n featureCollection = inputs[actionBlock.filterFeatureCollectionConfiguration.featureCollectionInput\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n\r\n if (actionBlock.filterFeatureCollectionConfiguration.useFilterFunction) {\r\n //TODO: Implement this if I need it later\r\n } else {\r\n let filteredFeatures = featureCollection.features;\r\n actionBlock.filterFeatureCollectionConfiguration.filterAttributes.forEach(attr => {\r\n filteredFeatures = filteredFeatures.filter(f => {\r\n const value = f.properties[attr.attributeName];\r\n\r\n switch (attr.compareOperator) {\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.Equals:\r\n return value == attr.value;\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.GreaterThan:\r\n return value > attr.value;\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.GreaterThanOrEqualTo:\r\n return value >= attr.value;\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.LessThan:\r\n return value < attr.value;\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.LessThanOrEqualTo:\r\n return value <= attr.value;\r\n case Wars.Domain.Model.Codes.Enums.CompareOperator.NotEquals:\r\n return value != attr.value;\r\n\r\n default:\r\n return false;\r\n }\r\n });\r\n });\r\n\r\n const result = {\r\n type: \"FeatureCollection\",\r\n features: filteredFeatures\r\n };\r\n\r\n d.resolve(result);\r\n }\r\n\r\n return d.promise;\r\n }\r\n\r\n private runSetPropertyAction(actionBlock: Wars.Domain.Model.Gis.GisActionBlock,\r\n inputs: any,\r\n processId: string,\r\n runGuid: string): angular.IPromise {\r\n const d = this.$q.defer();\r\n\r\n let featureCollection = null;\r\n\r\n if (actionBlock.setPropertyConfiguration.propertyCollection) {\r\n if (inputs[actionBlock.setPropertyConfiguration.propertyCollection.relatedGisInputOutput.id]) {\r\n featureCollection = inputs[actionBlock.setPropertyConfiguration.propertyCollection\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n\r\n if (featureCollection && featureCollection.features && featureCollection.features.length > 0) {\r\n featureCollection.features.forEach(f => {\r\n if (actionBlock.setPropertyConfiguration.useJsonDictionaryStore) {\r\n if (actionBlock.setPropertyConfiguration.jsonDictionaryOperationType ===\r\n Wars.Domain.Model.Codes.Enums.JsonDictionaryOperationType.ContainsKey) {\r\n f.properties[actionBlock.setPropertyConfiguration.propertyName] =\r\n this.jsonDictionaryStoreService.containsKey(\r\n actionBlock.setPropertyConfiguration.jsonDictionaryStore,\r\n f.properties[actionBlock.setPropertyConfiguration.comparisionProperty]);\r\n\r\n } else if (actionBlock.setPropertyConfiguration.jsonDictionaryOperationType ===\r\n Wars.Domain.Model.Codes.Enums.JsonDictionaryOperationType.GetValue) {\r\n f.properties[actionBlock.setPropertyConfiguration.propertyName] =\r\n this.jsonDictionaryStoreService.getValue(\r\n actionBlock.setPropertyConfiguration.jsonDictionaryStore,\r\n f.properties[actionBlock.setPropertyConfiguration.comparisionProperty]);\r\n\r\n }\r\n }\r\n if (actionBlock.setPropertyConfiguration.useJavascriptTransformer) {\r\n //TODO: Implement this if later needed\r\n }\r\n });\r\n }\r\n\r\n d.resolve(featureCollection);\r\n\r\n return d.promise;\r\n }\r\n\r\n private runValidationAction(actionBlock: Wars.Domain.Model.Gis.GisActionBlock,\r\n inputs: any,\r\n processId: string,\r\n runGuid: string): angular.IPromise {\r\n const d = this.$q.defer();\r\n\r\n let featureCollection = null;\r\n\r\n if (actionBlock.gisActionValidationConfiguration.validationCollection) {\r\n if (inputs[actionBlock.gisActionValidationConfiguration.validationCollection.relatedGisInputOutput\r\n .id]) {\r\n featureCollection = inputs[actionBlock.gisActionValidationConfiguration.validationCollection\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n\r\n if (actionBlock.gisActionValidationConfiguration.checkAnyFeatures) {\r\n if (featureCollection && featureCollection.features && featureCollection.features.length > 0) {\r\n d.resolve(true);\r\n } else {\r\n this.growl.error(actionBlock.gisActionValidationConfiguration.validationMessage, { ttl: 10000 });\r\n d.resolve(false);\r\n }\r\n } else {\r\n //TODO: Add the javascript way here when needed\r\n }\r\n\r\n return d.promise;\r\n }\r\n\r\n private runEsriQueryAction(actionBlock: Wars.Domain.Model.Gis.GisActionBlock,\r\n inputs: any,\r\n processId: string,\r\n runGuid: string): angular.\r\n IPromise {\r\n const d = this.$q.defer();\r\n\r\n let geometry = null;\r\n\r\n if (actionBlock.gisActionBlockEsriQueryConfiguration.geometryFilterValueInput) {\r\n if (inputs[actionBlock.gisActionBlockEsriQueryConfiguration.geometryFilterValueInput\r\n .relatedGisInputOutput.id]) {\r\n geometry = inputs[actionBlock.gisActionBlockEsriQueryConfiguration.geometryFilterValueInput\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n\r\n this.esriMapService.queryMapService(actionBlock.gisActionBlockEsriQueryConfiguration.esriQueryConfiguration,\r\n null,\r\n geometry).then(r => {\r\n d.resolve(r);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n private runBufferAction(actionBlock: Wars.Domain.Model.Gis.GisActionBlock,\r\n inputs: any,\r\n processId: string,\r\n runGuid: string): angular.IPromise {\r\n const d = this.$q.defer();\r\n\r\n let geometry = null;\r\n\r\n if (actionBlock.bufferConfiguration.geometryToBuffer) {\r\n if (inputs[actionBlock.bufferConfiguration.geometryToBuffer.relatedGisInputOutput.id]) {\r\n var tempGeometry = inputs[actionBlock.bufferConfiguration.geometryToBuffer.relatedGisInputOutput\r\n .id];\r\n geometry = this.getFeatureFromGeometry(tempGeometry);\r\n }\r\n }\r\n\r\n var buffered = turf.buffer(geometry, actionBlock.bufferConfiguration.bufferDistance, 'meters');\r\n if (actionBlock.bufferConfiguration.showBuffer) {\r\n var bufferLayer = new L.GeoJSON(buffered).addTo(warsApp.directives.GisMapController.currentMap);\r\n this.layerDictionary[runGuid].push(bufferLayer);\r\n }\r\n\r\n d.resolve(buffered);\r\n\r\n return d.promise;\r\n }\r\n\r\n private getFeatureFromGeometry(geometry) {\r\n let type = \"Point\";\r\n let coordinates = null;\r\n\r\n if (geometry._latlng) {\r\n type = \"Point\";\r\n coordinates = [geometry._latlng.lng, geometry._latlng.lat];\r\n } else {\r\n //TODO: Fix this someday\r\n }\r\n\r\n let feature = {\r\n type: \"Feature\",\r\n properties: {},\r\n geometry: {\r\n type: type,\r\n coordinates: coordinates\r\n }\r\n };\r\n\r\n return feature;\r\n }\r\n\r\n private getOutputs(actionBlock: Wars.Domain.Model.Gis.GisActionBlock, result: any, input: any): any {\r\n let outputProperty = Enumerable.from(actionBlock.outputCollection.gisInputOutputs)\r\n .single(i => !i.relatedGisInputOutput_id);\r\n\r\n let returnObj = {};\r\n\r\n returnObj[outputProperty.id] = result;\r\n\r\n Enumerable.from(actionBlock.outputCollection.gisInputOutputs).where(g => g.relatedGisInputOutput_id != null)\r\n .forEach(g => {\r\n if (g.relatedGisInputOutput.relatedGisInputOutput) {\r\n returnObj[g.id] = input[g.relatedGisInputOutput.relatedGisInputOutput.id];\r\n } else {\r\n returnObj[g.id] = input[g.relatedGisInputOutput_id];\r\n }\r\n });\r\n\r\n return returnObj;\r\n }\r\n\r\n private runTrimAction(actionBlock: Wars.Domain.Model.Gis.GisActionBlock,\r\n inputs: any,\r\n processId: string,\r\n runGuid: string): angular.IPromise {\r\n const d = this.$q.defer();\r\n\r\n let geo = inputs[actionBlock.trimConfiguration.comparisionGeometry.relatedGisInputOutput_id];\r\n geo = geo.toGeoJSON();\r\n\r\n let bbox;\r\n if (geo && geo.geometry.type === \"LineString\") {\r\n geo = turf.buffer(geo.geometry, 25, 'meters');\r\n bbox = turf.bbox(geo);\r\n } else {\r\n let clippingGeometry = geo.getBounds();\r\n\r\n bbox = [\r\n clippingGeometry._southWest.lng, clippingGeometry._southWest.lat,\r\n clippingGeometry._northEast.lng, clippingGeometry._northEast.lat\r\n ];\r\n }\r\n\r\n let featureCollection = null;\r\n\r\n if (actionBlock.trimConfiguration.featureCollection) {\r\n if (inputs[actionBlock.trimConfiguration.featureCollection.relatedGisInputOutput.id]) {\r\n featureCollection = inputs[actionBlock.trimConfiguration.featureCollection.relatedGisInputOutput\r\n .id];\r\n }\r\n }\r\n\r\n featureCollection.features.forEach(f => {\r\n var originalFeature = f;\r\n\r\n var originalDistance = turf.lineDistance(originalFeature, 'miles');\r\n let clippedFeature = warsApp.bboxClip.bboxClip(f, bbox);\r\n\r\n let clippedDistance = turf.lineDistance(clippedFeature, 'miles');\r\n\r\n var differences = this.getLineDifferences(originalFeature, clippedFeature);\r\n\r\n f.geometry = clippedFeature.geometry;\r\n\r\n actionBlock.trimConfiguration.lineTrimAttributes.forEach(attr => {\r\n if (attr.isAdd) {\r\n f.properties[attr.attributeName] = f.properties[attr.attributeName] + differences.beginDistance;\r\n } else {\r\n f.properties[attr.attributeName] = f.properties[attr.attributeName] - differences.endDistance;\r\n }\r\n\r\n //Hack: Remove and either add a round block or trim configuration\r\n f.properties[attr.attributeName] = f.properties[attr.attributeName].toFixed(3);\r\n });\r\n });\r\n\r\n let layer = L.geoJSON(featureCollection);\r\n directives.GisMapController.currentMap.addLayer(layer);\r\n this.layerDictionary[runGuid].push(layer);\r\n\r\n d.resolve(featureCollection);\r\n\r\n return d.promise;\r\n }\r\n\r\n private getLineDifferences(feature: any, comparisionFeature: any) {\r\n let isBeginning = true;\r\n\r\n let beginningLine = {\r\n type: \"Feature\",\r\n geometry: {\r\n type: \"LineString\",\r\n coordinates: []\r\n }\r\n };\r\n\r\n let endingLine = {\r\n type: \"Feature\",\r\n geometry: {\r\n type: \"LineString\",\r\n coordinates: []\r\n }\r\n };\r\n\r\n var coordinates = feature.geometry.coordinates;\r\n var comparisionCoordinates = comparisionFeature.geometry.coordinates;\r\n\r\n let comparisionIndex = 0;\r\n\r\n for (let i = 0; i < coordinates.length; i++) {\r\n if (comparisionIndex < comparisionCoordinates.length &&\r\n (coordinates[i][0] >= comparisionCoordinates[comparisionIndex][0] - 0.002 && coordinates[i][0] <= comparisionCoordinates[comparisionIndex][0] + 0.002) &&\r\n (coordinates[i][1] >= comparisionCoordinates[comparisionIndex][1] - 0.002 && coordinates[i][1] <= comparisionCoordinates[comparisionIndex][1] + 0.002)) {\r\n if (isBeginning) {\r\n isBeginning = false;\r\n }\r\n comparisionIndex++;\r\n } else {\r\n if (isBeginning) {\r\n beginningLine.geometry.coordinates.push(coordinates[i]);\r\n } else {\r\n endingLine.geometry.coordinates.push(coordinates[i]);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n beginDistance: beginningLine.geometry.coordinates.length > 0\r\n ? turf.lineDistance(beginningLine, 'miles')\r\n : 0,\r\n endDistance: endingLine.geometry.coordinates.length > 0 ? turf.lineDistance(endingLine, 'miles') : 0\r\n }\r\n }\r\n\r\n private runAddFeaturesAction(actionBlock: Wars.Domain.Model.Gis.GisActionBlock,\r\n inputs: any,\r\n processId: string,\r\n runGuid: string): angular.\r\n IPromise {\r\n const d = this.$q.defer();\r\n let featureCollection = null;\r\n let correlatedCollection = null;\r\n\r\n if (actionBlock.addFeaturesConfiguration.featureCollection) {\r\n if (inputs[actionBlock.addFeaturesConfiguration.featureCollection.relatedGisInputOutput.id]) {\r\n featureCollection = inputs[actionBlock.addFeaturesConfiguration.featureCollection\r\n .relatedGisInputOutput.id];\r\n\r\n if (actionBlock.addFeaturesConfiguration.featureCollection.type ==\r\n Wars.Domain.Model.Codes.Enums.GisInputOutputType.Geometry) {\r\n\r\n featureCollection = {\r\n features: [this.getFeatureFromGeometry(featureCollection)]\r\n };\r\n }\r\n }\r\n }\r\n\r\n if (actionBlock.addFeaturesConfiguration.correlatedCollection) {\r\n if (inputs[actionBlock.addFeaturesConfiguration.correlatedCollection.relatedGisInputOutput.id]) {\r\n correlatedCollection = inputs[actionBlock.addFeaturesConfiguration.correlatedCollection\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n\r\n if (featureCollection && featureCollection.features && featureCollection.features.length > 0) {\r\n let features = [];\r\n\r\n let lastCorrelated = null;\r\n for (let i = 0; i < featureCollection.features.length; i++) {\r\n let newFeature =\r\n Elp.Api.GisDatastore.createFeatureFromGeoJson(\r\n actionBlock.addFeaturesConfiguration.gisDatastore_id,\r\n featureCollection.features[i]);\r\n\r\n actionBlock.addFeaturesConfiguration.featureAttributeToPropertyMaps.forEach(fa => {\r\n let value = \"\";\r\n if (correlatedCollection && correlatedCollection.features) {\r\n if (correlatedCollection.features[i]) {\r\n value = correlatedCollection.features[i].properties[fa.propertyName];\r\n } else if (lastCorrelated) {\r\n value = lastCorrelated.properties[fa.propertyName];\r\n }\r\n\r\n } else {\r\n value = featureCollection.features[i].properties[fa.propertyName];\r\n }\r\n\r\n if (fa.codeGroupToTransform) {\r\n var code = Enumerable.from(fa.codeGroupToTransform.codes)\r\n .firstOrDefault(s => s.longDescription == value);\r\n if (code) {\r\n value = code.uniqueIdentifier;\r\n }\r\n }\r\n if (fa.javascriptTransformer) {\r\n let args = ['value', fa.javascriptTransformer.code];\r\n let myFunc = Function.apply(null, args);\r\n\r\n value = myFunc(value);\r\n }\r\n\r\n if (fa.useGeometryLatitude) {\r\n value = featureCollection.features[i].geometry.coordinates[0][1];\r\n }\r\n if (fa.useGeometryLongtitude) {\r\n value = featureCollection.features[i].geometry.coordinates[0][0];\r\n }\r\n\r\n newFeature['metadata' + fa.attributeNumber] = value;\r\n if (correlatedCollection) {\r\n lastCorrelated = correlatedCollection.features[i];\r\n }\r\n });\r\n\r\n newFeature.process_Id = processId;\r\n features.push(newFeature);\r\n }\r\n\r\n Elp.Api.GisDatastore.saveFeatures(actionBlock.addFeaturesConfiguration.gisDatastore_id, features)\r\n .then(savedFeatures => {\r\n d.resolve(savedFeatures);\r\n });\r\n } else {\r\n d.resolve([]);\r\n }\r\n\r\n return d.promise;\r\n }\r\n\r\n private runDrawFeatureAction(actionBlock: Wars.Domain.Model.Gis.GisActionBlock,\r\n inputs: any,\r\n processId: string,\r\n runGuid: string): angular.IPromise {\r\n\r\n return this.drawFeatureAction(actionBlock.drawFeatureConfiguration, runGuid);\r\n }\r\n\r\n public drawFeatureAction(drawFeatureConfiguration: Wars.Domain.Model.Gis.DrawFeatureConfiguration,\r\n runGuid?: string): angular.IPromise {\r\n const d = this.$q.defer();\r\n let geometry;\r\n\r\n switch (drawFeatureConfiguration.drawingType) {\r\n case Wars.Domain.Model.Codes.Enums.GeometryType.Point:\r\n geometry = (directives.GisMapController.currentMap).editTools.startMarker();\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GeometryType.Polygon:\r\n geometry = (directives.GisMapController.currentMap).editTools.startPolygon();\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GeometryType.MultiLineString:\r\n geometry = (directives.GisMapController.currentMap).editTools.startPolyline();\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.GeometryType.Rectangle:\r\n geometry = (directives.GisMapController.currentMap).editTools.startRectangle();\r\n break;\r\n default:\r\n geometry = (directives.GisMapController.currentMap).editTools.startPolyline();\r\n break;\r\n }\r\n\r\n let commitFunc = () => {\r\n geometry.editor.disable();\r\n (directives.GisMapController.currentMap).editTools.off('editable:drawing:commit', commitFunc);\r\n\r\n if (runGuid) {\r\n this.layerDictionary[runGuid].push(geometry);\r\n }\r\n\r\n if (drawFeatureConfiguration.clearDrawingAfterSelection) {\r\n warsApp.directives.GisMapController.currentMap.removeLayer(geometry);\r\n }\r\n\r\n d.resolve(geometry);\r\n };\r\n\r\n (directives.GisMapController.currentMap).editTools.on('editable:drawing:commit', commitFunc);\r\n\r\n return d.promise;\r\n }\r\n\r\n public zoomToFeature(featureId: string, process: Wars.Domain.Model.Dtos.ProcessDto) {\r\n var feature = Enumerable.from(process.features).singleOrDefault(f => f.id === featureId);\r\n\r\n if (feature) {\r\n var zoomLayer = new L.GeoJSON(JSON.parse(feature.geoJson));\r\n\r\n warsApp.directives.GisMapController.currentMap.fitBounds(zoomLayer.getBounds());\r\n\r\n }\r\n }\r\n\r\n public removeFeature(featureId: string, process: Wars.Domain.Model.Dtos.ProcessDto) {\r\n let feature = Enumerable.from(process.features).singleOrDefault(f => f.id === featureId);\r\n\r\n process.features.remove(feature);\r\n this.removeFeatureLayer();\r\n\r\n this.addFeaturesLayer(process.features);\r\n }\r\n }\r\n}\r\n\r\n\r\nwarsApp.registerService('GisMapService',\r\n ['$q', 'esriMapService', 'jsonDictionaryStoreService', 'growl', 'formDataService']);","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var GisMapService = /** @class */ (function () {\r\n function GisMapService($q, esriMapService, jsonDictionaryStoreService, growl, formDataService) {\r\n this.$q = $q;\r\n this.esriMapService = esriMapService;\r\n this.jsonDictionaryStoreService = jsonDictionaryStoreService;\r\n this.growl = growl;\r\n this.formDataService = formDataService;\r\n this.layerDictionary = {};\r\n }\r\n GisMapService.prototype.addFeaturesLayer = function (features, zoomToLayer) {\r\n this.addFeaturesLayerInternal(features);\r\n if (zoomToLayer && this.featureLayer) {\r\n warsApp.directives.GisMapController.currentMap.fitBounds(this.featureLayer.getBounds());\r\n }\r\n };\r\n GisMapService.prototype.removeFeatureLayer = function () {\r\n warsApp.directives.GisMapController.currentMap.removeLayer(this.featureLayer);\r\n };\r\n GisMapService.prototype.addFeaturesLayerInternal = function (features) {\r\n if (!features || features.length === 0)\r\n return;\r\n var newFeatureCollection = {\r\n features: Enumerable.from(features).select(function (f) { return JSON.parse(f.geoJson); }).toArray(),\r\n type: \"FeatureCollection\"\r\n };\r\n //var x = Enumerable.from(features).select(f => JSON.parse(f.geoJson)).toArray();\r\n this.featureLayer =\r\n new L.GeoJSON(newFeatureCollection).addTo(warsApp.directives.GisMapController.currentMap);\r\n };\r\n GisMapService.prototype.runPostWorkflowActions = function (clearLayers, runGuid) {\r\n if (clearLayers) {\r\n this.layerDictionary[runGuid].forEach(function (l) {\r\n warsApp.directives.GisMapController.currentMap.removeLayer(l);\r\n });\r\n }\r\n delete this.layerDictionary[runGuid];\r\n };\r\n GisMapService.prototype.runGisActionWorkflowOverride = function (override, process, formId, formDataId) {\r\n var _this = this;\r\n var runGuid = services.UtilityService.generateGuidComb();\r\n var promise = this.runWorkflow(override.gisActionWorkflowConfiguration, process.id, runGuid);\r\n promise.then(function (r) {\r\n if (r && r.exitWorkflow) {\r\n _this.runPostWorkflowActions(override.gisActionWorkflowConfiguration.clearAllLayersAtCompletion, runGuid);\r\n if (override.postRunGisActionWorkflowOverride) {\r\n _this.runGisActionWorkflowOverride(override.postRunGisActionWorkflowOverride, process, formId, formDataId);\r\n }\r\n }\r\n else if (override.fieldMappings && override.fieldMappings.length > 0) {\r\n var features_1 = r[override.featureListOutput_id];\r\n var featureOutput_1 = null;\r\n if (features_1.features) {\r\n features_1 = features_1.features;\r\n }\r\n if (!features_1) {\r\n return;\r\n }\r\n if (override.featureOutput_id) {\r\n featureOutput_1 = r[override.featureOutput_id][0];\r\n process.features.push(featureOutput_1);\r\n process.featureToRows[featureOutput_1.id] = [];\r\n _this.addFeaturesLayer([featureOutput_1], false);\r\n }\r\n else {\r\n _this.addFeaturesLayer(features_1, false);\r\n }\r\n var processRowsToAdd_1 = [];\r\n var featureActionsRun = 0;\r\n features_1.forEach(function (feature) {\r\n var rowId;\r\n Elp.Api.Process.addRow(process.id, formId, formDataId, override.formSection.objectSchema.uniqueIdentifier, override.isAddReadOnly).then(function (r) {\r\n rowId = r;\r\n var saveDto = {\r\n FieldValues: {}\r\n };\r\n var processRow = { id: rowId };\r\n override.fieldMappings.forEach(function (f) {\r\n var value = \"\";\r\n if (override.featureListOutput.type ===\r\n 3 /* ListofGisDatastoreFeatures */) {\r\n value = feature[\"metadata\" + f.metadataPosition];\r\n if (value == \"True\") {\r\n value = true;\r\n }\r\n }\r\n else if (override.featureListOutput.type ===\r\n 2 /* FeatureCollection */) {\r\n if (f.propertyName && f.propertyName != \"\") {\r\n value = feature.properties[f.propertyName];\r\n }\r\n else if (f.metadataPosition && featureOutput_1) {\r\n value = featureOutput_1[\"metadata\" + f.metadataPosition];\r\n }\r\n }\r\n processRow[f.field.schemaProperty.uniqueIdentifier] = value;\r\n var metadata = \"\";\r\n if (f.isReadOnly) {\r\n if (!process.rowMetadata) {\r\n process.rowMetadata = {};\r\n }\r\n //[f.field.schemaProperty.uniqueIdentifier]\r\n if (!process.rowMetadata[rowId]) {\r\n process.rowMetadata[rowId] = {\r\n fieldsMetadata: {}\r\n };\r\n }\r\n metadata = JSON.stringify({\r\n isReadonly: true\r\n });\r\n process.rowMetadata[rowId].fieldsMetadata[f.field.schemaProperty\r\n .uniqueIdentifier] = metadata;\r\n }\r\n saveDto.FieldValues[f.field.schemaProperty.uniqueIdentifier] = {\r\n Value: value,\r\n Metadata: metadata\r\n };\r\n });\r\n processRowsToAdd_1.push(processRow);\r\n _this.formDataService.setMultipleListFields(process.id, formId, formDataId, override.formSection.objectSchema.uniqueIdentifier, rowId, saveDto).then(function (r) {\r\n featureActionsRun++;\r\n if (features_1.length * 2 === featureActionsRun) {\r\n processRowsToAdd_1.forEach(function (processRow) {\r\n if (!process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier]) {\r\n process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier] = [];\r\n }\r\n process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier].push(processRow);\r\n });\r\n }\r\n });\r\n processRow[override.featureField.schemaProperty.uniqueIdentifier] = featureOutput_1 ? featureOutput_1.id : feature.id;\r\n Elp.Api.Process.setRowValue(process.id, formId, formDataId, override.formSection.objectSchema.uniqueIdentifier, override.featureField.schemaProperty.uniqueIdentifier, rowId, featureOutput_1 ? featureOutput_1.id : feature.id, true).then(function (r) {\r\n featureActionsRun++;\r\n if (features_1.length * 2 === featureActionsRun) {\r\n processRowsToAdd_1.forEach(function (processRow) {\r\n if (!process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier]) {\r\n process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier] = [];\r\n }\r\n process.formJson[formId][formDataId][override.formSection.objectSchema.uniqueIdentifier].push(processRow);\r\n });\r\n }\r\n });\r\n if (!featureOutput_1) {\r\n process.features.push(feature);\r\n process.featureToRows[feature.id] = [rowId];\r\n }\r\n else {\r\n process.featureToRows[featureOutput_1.id].push(rowId);\r\n }\r\n });\r\n });\r\n _this.runPostWorkflowActions(override.gisActionWorkflowConfiguration.clearAllLayersAtCompletion, runGuid);\r\n if (override.postRunGisActionWorkflowOverride) {\r\n _this.runGisActionWorkflowOverride(override.postRunGisActionWorkflowOverride, process, formId, formDataId);\r\n }\r\n }\r\n else {\r\n if (override.postRunGisActionWorkflowOverride) {\r\n _this.runGisActionWorkflowOverride(override.postRunGisActionWorkflowOverride, process, formId, formDataId);\r\n }\r\n }\r\n });\r\n };\r\n GisMapService.prototype.runWorkflow = function (workflow, processId, runGuid) {\r\n var d = this.$q.defer();\r\n if (workflow) {\r\n this.layerDictionary[runGuid] = [];\r\n var orderedActions = Enumerable.from(workflow.gisActionBlocks).orderBy(function (w) { return w.workflowOrder; })\r\n .toArray();\r\n var promise = this.runActionPromise(orderedActions[0], null, orderedActions.slice(1), processId, runGuid);\r\n promise.then(function (r) {\r\n d.resolve(r);\r\n });\r\n }\r\n else {\r\n d.reject();\r\n }\r\n return d.promise;\r\n };\r\n GisMapService.prototype.runActionPromise = function (action, input, nextActions, processId, runGuid) {\r\n var _this = this;\r\n var outterD = this.$q.defer();\r\n var innerD = this.$q.defer();\r\n var outputs = [];\r\n switch (action.gisActionBlockType) {\r\n case 6 /* AddFeature */:\r\n this.runAddFeaturesAction(action, input, processId, runGuid).then(function (g) {\r\n var output = _this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n case 1 /* DrawFeature */:\r\n this.runDrawFeatureAction(action, input, processId, runGuid).then(function (g) {\r\n var output = _this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n case 5 /* QueryEsriQuery */:\r\n this.runEsriQueryAction(action, input, processId, runGuid).then(function (r) {\r\n var output = _this.getOutputs(action, r, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n case 4 /* QueryGisDatastore */:\r\n break;\r\n case 3 /* Filter */:\r\n this.runFilterAction(action, input, processId, runGuid).then(function (g) {\r\n var output = _this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n case 2 /* Trim */:\r\n this.runTrimAction(action, input, processId, runGuid).then(function (g) {\r\n var output = _this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n case 8 /* Validation */:\r\n this.runValidationAction(action, input, processId, runGuid).then(function (g) {\r\n if (action.gisActionValidationConfiguration.exitWorkflowOnFailure && !g) {\r\n innerD.resolve({ exitWorkflow: true });\r\n }\r\n else {\r\n var output = _this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n }\r\n });\r\n break;\r\n case 9 /* SetProperty */:\r\n this.runSetPropertyAction(action, input, processId, runGuid).then(function (g) {\r\n var output = _this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n case 7 /* BufferGeometry */:\r\n this.runBufferAction(action, input, processId, runGuid).then(function (g) {\r\n var output = _this.getOutputs(action, g, input);\r\n innerD.resolve(output);\r\n });\r\n break;\r\n }\r\n innerD.promise.then(function (r) {\r\n if (r && r.exitWorkflow) {\r\n outterD.resolve(r);\r\n }\r\n else if (nextActions && nextActions.length > 0) {\r\n _this.runActionPromise(nextActions[0], r, nextActions.slice(1), processId, runGuid).then(function (actionResult) {\r\n outterD.resolve(actionResult);\r\n });\r\n }\r\n else {\r\n outterD.resolve(r);\r\n }\r\n });\r\n return outterD.promise;\r\n };\r\n GisMapService.prototype.runFilterAction = function (actionBlock, inputs, processId, runGuid) {\r\n var d = this.$q.defer();\r\n var featureCollection = null;\r\n if (actionBlock.filterFeatureCollectionConfiguration.featureCollectionInput) {\r\n if (inputs[actionBlock.filterFeatureCollectionConfiguration.featureCollectionInput.relatedGisInputOutput\r\n .id]) {\r\n featureCollection = inputs[actionBlock.filterFeatureCollectionConfiguration.featureCollectionInput\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n if (actionBlock.filterFeatureCollectionConfiguration.useFilterFunction) {\r\n //TODO: Implement this if I need it later\r\n }\r\n else {\r\n var filteredFeatures_1 = featureCollection.features;\r\n actionBlock.filterFeatureCollectionConfiguration.filterAttributes.forEach(function (attr) {\r\n filteredFeatures_1 = filteredFeatures_1.filter(function (f) {\r\n var value = f.properties[attr.attributeName];\r\n switch (attr.compareOperator) {\r\n case 0 /* Equals */:\r\n return value == attr.value;\r\n case 2 /* GreaterThan */:\r\n return value > attr.value;\r\n case 4 /* GreaterThanOrEqualTo */:\r\n return value >= attr.value;\r\n case 3 /* LessThan */:\r\n return value < attr.value;\r\n case 5 /* LessThanOrEqualTo */:\r\n return value <= attr.value;\r\n case 1 /* NotEquals */:\r\n return value != attr.value;\r\n default:\r\n return false;\r\n }\r\n });\r\n });\r\n var result = {\r\n type: \"FeatureCollection\",\r\n features: filteredFeatures_1\r\n };\r\n d.resolve(result);\r\n }\r\n return d.promise;\r\n };\r\n GisMapService.prototype.runSetPropertyAction = function (actionBlock, inputs, processId, runGuid) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n var featureCollection = null;\r\n if (actionBlock.setPropertyConfiguration.propertyCollection) {\r\n if (inputs[actionBlock.setPropertyConfiguration.propertyCollection.relatedGisInputOutput.id]) {\r\n featureCollection = inputs[actionBlock.setPropertyConfiguration.propertyCollection\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n if (featureCollection && featureCollection.features && featureCollection.features.length > 0) {\r\n featureCollection.features.forEach(function (f) {\r\n if (actionBlock.setPropertyConfiguration.useJsonDictionaryStore) {\r\n if (actionBlock.setPropertyConfiguration.jsonDictionaryOperationType ===\r\n 1 /* ContainsKey */) {\r\n f.properties[actionBlock.setPropertyConfiguration.propertyName] =\r\n _this.jsonDictionaryStoreService.containsKey(actionBlock.setPropertyConfiguration.jsonDictionaryStore, f.properties[actionBlock.setPropertyConfiguration.comparisionProperty]);\r\n }\r\n else if (actionBlock.setPropertyConfiguration.jsonDictionaryOperationType ===\r\n 2 /* GetValue */) {\r\n f.properties[actionBlock.setPropertyConfiguration.propertyName] =\r\n _this.jsonDictionaryStoreService.getValue(actionBlock.setPropertyConfiguration.jsonDictionaryStore, f.properties[actionBlock.setPropertyConfiguration.comparisionProperty]);\r\n }\r\n }\r\n if (actionBlock.setPropertyConfiguration.useJavascriptTransformer) {\r\n //TODO: Implement this if later needed\r\n }\r\n });\r\n }\r\n d.resolve(featureCollection);\r\n return d.promise;\r\n };\r\n GisMapService.prototype.runValidationAction = function (actionBlock, inputs, processId, runGuid) {\r\n var d = this.$q.defer();\r\n var featureCollection = null;\r\n if (actionBlock.gisActionValidationConfiguration.validationCollection) {\r\n if (inputs[actionBlock.gisActionValidationConfiguration.validationCollection.relatedGisInputOutput\r\n .id]) {\r\n featureCollection = inputs[actionBlock.gisActionValidationConfiguration.validationCollection\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n if (actionBlock.gisActionValidationConfiguration.checkAnyFeatures) {\r\n if (featureCollection && featureCollection.features && featureCollection.features.length > 0) {\r\n d.resolve(true);\r\n }\r\n else {\r\n this.growl.error(actionBlock.gisActionValidationConfiguration.validationMessage, { ttl: 10000 });\r\n d.resolve(false);\r\n }\r\n }\r\n else {\r\n //TODO: Add the javascript way here when needed\r\n }\r\n return d.promise;\r\n };\r\n GisMapService.prototype.runEsriQueryAction = function (actionBlock, inputs, processId, runGuid) {\r\n var d = this.$q.defer();\r\n var geometry = null;\r\n if (actionBlock.gisActionBlockEsriQueryConfiguration.geometryFilterValueInput) {\r\n if (inputs[actionBlock.gisActionBlockEsriQueryConfiguration.geometryFilterValueInput\r\n .relatedGisInputOutput.id]) {\r\n geometry = inputs[actionBlock.gisActionBlockEsriQueryConfiguration.geometryFilterValueInput\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n this.esriMapService.queryMapService(actionBlock.gisActionBlockEsriQueryConfiguration.esriQueryConfiguration, null, geometry).then(function (r) {\r\n d.resolve(r);\r\n });\r\n return d.promise;\r\n };\r\n GisMapService.prototype.runBufferAction = function (actionBlock, inputs, processId, runGuid) {\r\n var d = this.$q.defer();\r\n var geometry = null;\r\n if (actionBlock.bufferConfiguration.geometryToBuffer) {\r\n if (inputs[actionBlock.bufferConfiguration.geometryToBuffer.relatedGisInputOutput.id]) {\r\n var tempGeometry = inputs[actionBlock.bufferConfiguration.geometryToBuffer.relatedGisInputOutput\r\n .id];\r\n geometry = this.getFeatureFromGeometry(tempGeometry);\r\n }\r\n }\r\n var buffered = turf.buffer(geometry, actionBlock.bufferConfiguration.bufferDistance, 'meters');\r\n if (actionBlock.bufferConfiguration.showBuffer) {\r\n var bufferLayer = new L.GeoJSON(buffered).addTo(warsApp.directives.GisMapController.currentMap);\r\n this.layerDictionary[runGuid].push(bufferLayer);\r\n }\r\n d.resolve(buffered);\r\n return d.promise;\r\n };\r\n GisMapService.prototype.getFeatureFromGeometry = function (geometry) {\r\n var type = \"Point\";\r\n var coordinates = null;\r\n if (geometry._latlng) {\r\n type = \"Point\";\r\n coordinates = [geometry._latlng.lng, geometry._latlng.lat];\r\n }\r\n else {\r\n //TODO: Fix this someday\r\n }\r\n var feature = {\r\n type: \"Feature\",\r\n properties: {},\r\n geometry: {\r\n type: type,\r\n coordinates: coordinates\r\n }\r\n };\r\n return feature;\r\n };\r\n GisMapService.prototype.getOutputs = function (actionBlock, result, input) {\r\n var outputProperty = Enumerable.from(actionBlock.outputCollection.gisInputOutputs)\r\n .single(function (i) { return !i.relatedGisInputOutput_id; });\r\n var returnObj = {};\r\n returnObj[outputProperty.id] = result;\r\n Enumerable.from(actionBlock.outputCollection.gisInputOutputs).where(function (g) { return g.relatedGisInputOutput_id != null; })\r\n .forEach(function (g) {\r\n if (g.relatedGisInputOutput.relatedGisInputOutput) {\r\n returnObj[g.id] = input[g.relatedGisInputOutput.relatedGisInputOutput.id];\r\n }\r\n else {\r\n returnObj[g.id] = input[g.relatedGisInputOutput_id];\r\n }\r\n });\r\n return returnObj;\r\n };\r\n GisMapService.prototype.runTrimAction = function (actionBlock, inputs, processId, runGuid) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n var geo = inputs[actionBlock.trimConfiguration.comparisionGeometry.relatedGisInputOutput_id];\r\n geo = geo.toGeoJSON();\r\n var bbox;\r\n if (geo && geo.geometry.type === \"LineString\") {\r\n geo = turf.buffer(geo.geometry, 25, 'meters');\r\n bbox = turf.bbox(geo);\r\n }\r\n else {\r\n var clippingGeometry = geo.getBounds();\r\n bbox = [\r\n clippingGeometry._southWest.lng, clippingGeometry._southWest.lat,\r\n clippingGeometry._northEast.lng, clippingGeometry._northEast.lat\r\n ];\r\n }\r\n var featureCollection = null;\r\n if (actionBlock.trimConfiguration.featureCollection) {\r\n if (inputs[actionBlock.trimConfiguration.featureCollection.relatedGisInputOutput.id]) {\r\n featureCollection = inputs[actionBlock.trimConfiguration.featureCollection.relatedGisInputOutput\r\n .id];\r\n }\r\n }\r\n featureCollection.features.forEach(function (f) {\r\n var originalFeature = f;\r\n var originalDistance = turf.lineDistance(originalFeature, 'miles');\r\n var clippedFeature = warsApp.bboxClip.bboxClip(f, bbox);\r\n var clippedDistance = turf.lineDistance(clippedFeature, 'miles');\r\n var differences = _this.getLineDifferences(originalFeature, clippedFeature);\r\n f.geometry = clippedFeature.geometry;\r\n actionBlock.trimConfiguration.lineTrimAttributes.forEach(function (attr) {\r\n if (attr.isAdd) {\r\n f.properties[attr.attributeName] = f.properties[attr.attributeName] + differences.beginDistance;\r\n }\r\n else {\r\n f.properties[attr.attributeName] = f.properties[attr.attributeName] - differences.endDistance;\r\n }\r\n //Hack: Remove and either add a round block or trim configuration\r\n f.properties[attr.attributeName] = f.properties[attr.attributeName].toFixed(3);\r\n });\r\n });\r\n var layer = L.geoJSON(featureCollection);\r\n warsApp.directives.GisMapController.currentMap.addLayer(layer);\r\n this.layerDictionary[runGuid].push(layer);\r\n d.resolve(featureCollection);\r\n return d.promise;\r\n };\r\n GisMapService.prototype.getLineDifferences = function (feature, comparisionFeature) {\r\n var isBeginning = true;\r\n var beginningLine = {\r\n type: \"Feature\",\r\n geometry: {\r\n type: \"LineString\",\r\n coordinates: []\r\n }\r\n };\r\n var endingLine = {\r\n type: \"Feature\",\r\n geometry: {\r\n type: \"LineString\",\r\n coordinates: []\r\n }\r\n };\r\n var coordinates = feature.geometry.coordinates;\r\n var comparisionCoordinates = comparisionFeature.geometry.coordinates;\r\n var comparisionIndex = 0;\r\n for (var i = 0; i < coordinates.length; i++) {\r\n if (comparisionIndex < comparisionCoordinates.length &&\r\n (coordinates[i][0] >= comparisionCoordinates[comparisionIndex][0] - 0.002 && coordinates[i][0] <= comparisionCoordinates[comparisionIndex][0] + 0.002) &&\r\n (coordinates[i][1] >= comparisionCoordinates[comparisionIndex][1] - 0.002 && coordinates[i][1] <= comparisionCoordinates[comparisionIndex][1] + 0.002)) {\r\n if (isBeginning) {\r\n isBeginning = false;\r\n }\r\n comparisionIndex++;\r\n }\r\n else {\r\n if (isBeginning) {\r\n beginningLine.geometry.coordinates.push(coordinates[i]);\r\n }\r\n else {\r\n endingLine.geometry.coordinates.push(coordinates[i]);\r\n }\r\n }\r\n }\r\n return {\r\n beginDistance: beginningLine.geometry.coordinates.length > 0\r\n ? turf.lineDistance(beginningLine, 'miles')\r\n : 0,\r\n endDistance: endingLine.geometry.coordinates.length > 0 ? turf.lineDistance(endingLine, 'miles') : 0\r\n };\r\n };\r\n GisMapService.prototype.runAddFeaturesAction = function (actionBlock, inputs, processId, runGuid) {\r\n var d = this.$q.defer();\r\n var featureCollection = null;\r\n var correlatedCollection = null;\r\n if (actionBlock.addFeaturesConfiguration.featureCollection) {\r\n if (inputs[actionBlock.addFeaturesConfiguration.featureCollection.relatedGisInputOutput.id]) {\r\n featureCollection = inputs[actionBlock.addFeaturesConfiguration.featureCollection\r\n .relatedGisInputOutput.id];\r\n if (actionBlock.addFeaturesConfiguration.featureCollection.type ==\r\n 1 /* Geometry */) {\r\n featureCollection = {\r\n features: [this.getFeatureFromGeometry(featureCollection)]\r\n };\r\n }\r\n }\r\n }\r\n if (actionBlock.addFeaturesConfiguration.correlatedCollection) {\r\n if (inputs[actionBlock.addFeaturesConfiguration.correlatedCollection.relatedGisInputOutput.id]) {\r\n correlatedCollection = inputs[actionBlock.addFeaturesConfiguration.correlatedCollection\r\n .relatedGisInputOutput.id];\r\n }\r\n }\r\n if (featureCollection && featureCollection.features && featureCollection.features.length > 0) {\r\n var features = [];\r\n var lastCorrelated_1 = null;\r\n var _loop_1 = function (i) {\r\n var newFeature = Elp.Api.GisDatastore.createFeatureFromGeoJson(actionBlock.addFeaturesConfiguration.gisDatastore_id, featureCollection.features[i]);\r\n actionBlock.addFeaturesConfiguration.featureAttributeToPropertyMaps.forEach(function (fa) {\r\n var value = \"\";\r\n if (correlatedCollection && correlatedCollection.features) {\r\n if (correlatedCollection.features[i]) {\r\n value = correlatedCollection.features[i].properties[fa.propertyName];\r\n }\r\n else if (lastCorrelated_1) {\r\n value = lastCorrelated_1.properties[fa.propertyName];\r\n }\r\n }\r\n else {\r\n value = featureCollection.features[i].properties[fa.propertyName];\r\n }\r\n if (fa.codeGroupToTransform) {\r\n var code = Enumerable.from(fa.codeGroupToTransform.codes)\r\n .firstOrDefault(function (s) { return s.longDescription == value; });\r\n if (code) {\r\n value = code.uniqueIdentifier;\r\n }\r\n }\r\n if (fa.javascriptTransformer) {\r\n var args = ['value', fa.javascriptTransformer.code];\r\n var myFunc = Function.apply(null, args);\r\n value = myFunc(value);\r\n }\r\n if (fa.useGeometryLatitude) {\r\n value = featureCollection.features[i].geometry.coordinates[0][1];\r\n }\r\n if (fa.useGeometryLongtitude) {\r\n value = featureCollection.features[i].geometry.coordinates[0][0];\r\n }\r\n newFeature['metadata' + fa.attributeNumber] = value;\r\n if (correlatedCollection) {\r\n lastCorrelated_1 = correlatedCollection.features[i];\r\n }\r\n });\r\n newFeature.process_Id = processId;\r\n features.push(newFeature);\r\n };\r\n for (var i = 0; i < featureCollection.features.length; i++) {\r\n _loop_1(i);\r\n }\r\n Elp.Api.GisDatastore.saveFeatures(actionBlock.addFeaturesConfiguration.gisDatastore_id, features)\r\n .then(function (savedFeatures) {\r\n d.resolve(savedFeatures);\r\n });\r\n }\r\n else {\r\n d.resolve([]);\r\n }\r\n return d.promise;\r\n };\r\n GisMapService.prototype.runDrawFeatureAction = function (actionBlock, inputs, processId, runGuid) {\r\n return this.drawFeatureAction(actionBlock.drawFeatureConfiguration, runGuid);\r\n };\r\n GisMapService.prototype.drawFeatureAction = function (drawFeatureConfiguration, runGuid) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n var geometry;\r\n switch (drawFeatureConfiguration.drawingType) {\r\n case 1 /* Point */:\r\n geometry = warsApp.directives.GisMapController.currentMap.editTools.startMarker();\r\n break;\r\n case 5 /* Polygon */:\r\n geometry = warsApp.directives.GisMapController.currentMap.editTools.startPolygon();\r\n break;\r\n case 4 /* MultiLineString */:\r\n geometry = warsApp.directives.GisMapController.currentMap.editTools.startPolyline();\r\n break;\r\n case 8 /* Rectangle */:\r\n geometry = warsApp.directives.GisMapController.currentMap.editTools.startRectangle();\r\n break;\r\n default:\r\n geometry = warsApp.directives.GisMapController.currentMap.editTools.startPolyline();\r\n break;\r\n }\r\n var commitFunc = function () {\r\n geometry.editor.disable();\r\n warsApp.directives.GisMapController.currentMap.editTools.off('editable:drawing:commit', commitFunc);\r\n if (runGuid) {\r\n _this.layerDictionary[runGuid].push(geometry);\r\n }\r\n if (drawFeatureConfiguration.clearDrawingAfterSelection) {\r\n warsApp.directives.GisMapController.currentMap.removeLayer(geometry);\r\n }\r\n d.resolve(geometry);\r\n };\r\n warsApp.directives.GisMapController.currentMap.editTools.on('editable:drawing:commit', commitFunc);\r\n return d.promise;\r\n };\r\n GisMapService.prototype.zoomToFeature = function (featureId, process) {\r\n var feature = Enumerable.from(process.features).singleOrDefault(function (f) { return f.id === featureId; });\r\n if (feature) {\r\n var zoomLayer = new L.GeoJSON(JSON.parse(feature.geoJson));\r\n warsApp.directives.GisMapController.currentMap.fitBounds(zoomLayer.getBounds());\r\n }\r\n };\r\n GisMapService.prototype.removeFeature = function (featureId, process) {\r\n var feature = Enumerable.from(process.features).singleOrDefault(function (f) { return f.id === featureId; });\r\n process.features.remove(feature);\r\n this.removeFeatureLayer();\r\n this.addFeaturesLayer(process.features);\r\n };\r\n return GisMapService;\r\n }());\r\n services.GisMapService = GisMapService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('GisMapService', ['$q', 'esriMapService', 'jsonDictionaryStoreService', 'growl', 'formDataService']);\r\n","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var LegendConfigurationService = /** @class */ (function (_super) {\r\n __extends(LegendConfigurationService, _super);\r\n function LegendConfigurationService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n LegendConfigurationService.prototype.createLegendConfiguration = function () {\r\n return this.createNewEntity(\"LegendConfiguration\");\r\n };\r\n LegendConfigurationService.prototype.createLegendLayer = function () {\r\n return this.createNewEntity(\"LegendLayer\");\r\n };\r\n return LegendConfigurationService;\r\n }(services.DataService));\r\n services.LegendConfigurationService = LegendConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('LegendConfigurationService', ['breeze', '$q', '$http']);\r\n","/// \r\n\r\nmodule warsApp.services {\r\n export class LegendConfigurationService extends services.DataService < Wars.Domain.Model.Gis.LegendConfiguration> {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createLegendConfiguration(): Wars.Domain.Model.Gis.LegendConfiguration{\r\n return this.createNewEntity(\"LegendConfiguration\");\r\n }\r\n\r\n public createLegendLayer(): Wars.Domain.Model.Gis.LegendLayer{\r\n return this.createNewEntity(\"LegendLayer\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('LegendConfigurationService', ['breeze', '$q', '$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var MapConfigurationService = /** @class */ (function (_super) {\r\n __extends(MapConfigurationService, _super);\r\n function MapConfigurationService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n MapConfigurationService.prototype.getMapConfigurations = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"MapConfigurations\")\r\n .expand('mapFunctions, gisActionWorkflowConfigurations, queryGridConfigurations')\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n MapConfigurationService.prototype.getLayerConfigurations = function (mapConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Layers\")\r\n .where('mapConfiguration_id', '==', mapConfigurationId)\r\n .orderBy(\"name\");\r\n return (this.executeQuery(query));\r\n };\r\n MapConfigurationService.prototype.getMapConfiguration = function (id) {\r\n var d = this.$q.defer();\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"MapConfigurations\")\r\n .where('id', '==', id)\r\n .expand(\"layers.esriMapServiceMetadata.layers.fields,\" +\r\n \"javascriptTransformers,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.setPropertyConfiguration,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.gisActionValidationConfiguration,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.bufferConfiguration,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.inputCollection.gisInputOutputs.relatedGisInputOutput,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.outputCollection.gisInputOutputs.relatedGisInputOutput,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.drawFeatureConfiguration.drawStyle,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.trimConfiguration.lineTrimAttributes,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.gisActionBlockEsriQueryConfiguration, \" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.filterFeatureCollectionConfiguration.filterAttributes, \" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.addFeaturesConfiguration.featureAttributeToPropertyMaps, \" +\r\n \"queryGridConfigurations.queryGridQueries.gisFieldMappings.includedQueryField, \" +\r\n \"queryGridConfigurations.includedQueryFields, \" +\r\n \"queryGridConfigurations.drawStyle, \" +\r\n \"esriQueryConfigurations.wherePredicates, \" +\r\n \"esriQueryConfigurations.geometryFilter, \" +\r\n \"gisDatastoreQueryConfigurations.wherePredicates, \" +\r\n \"gisDatastoreQueryConfigurations.geometryFilter, \" +\r\n \"legendConfigurations.legendLayers,\" +\r\n \"mapFunctions.drawFeatureConfiguration.drawStyle,\" +\r\n \"mapFunctions.zoomToQueryConfiguration.placeHolderForInput \");\r\n this.executeQuery(query).then(function (r) {\r\n d.resolve(r[0]);\r\n });\r\n return d.promise;\r\n };\r\n MapConfigurationService.prototype.createMapConfiguration = function () {\r\n return this.createNewEntity(\"MapConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createGisWherePedicate = function () {\r\n return this.createNewEntity(\"GisWherePredicate\");\r\n };\r\n MapConfigurationService.prototype.createLayer = function () {\r\n return this.createNewEntity(\"Layer\");\r\n };\r\n MapConfigurationService.prototype.createMapFunctionConfiguration = function () {\r\n return this.createNewEntity(\"MapFunctionConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createEsriQueryConfiguration = function () {\r\n return this.createNewEntity(\"EsriQueryConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createEsriPlaceHolderValue = function () {\r\n return this.createNewEntity(\"GisWherePlaceHolderValue\");\r\n };\r\n MapConfigurationService.prototype.createGeometryFilter = function () {\r\n return this.createNewEntity(\"GeometryFilter\");\r\n };\r\n MapConfigurationService.prototype.createQueryGridConfiguration = function () {\r\n return this.createNewEntity(\"QueryGridConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createIncludedQueryField = function () {\r\n return this.createNewEntity(\"IncludedQueryField\");\r\n };\r\n MapConfigurationService.prototype.createQueryGridQuery = function () {\r\n return this.createNewEntity(\"QueryGridQuery\");\r\n };\r\n MapConfigurationService.prototype.createQueryGridFieldMapping = function () {\r\n return this.createNewEntity(\"GisFieldMapping\");\r\n };\r\n MapConfigurationService.prototype.createGisActionBlock = function () {\r\n return this.createNewEntity(\"GisActionBlock\");\r\n };\r\n MapConfigurationService.prototype.createFilterAttribute = function () {\r\n return this.createNewEntity(\"FilterAttribute\");\r\n };\r\n MapConfigurationService.prototype.createAddFeaturesConfiguration = function () {\r\n return this.createNewEntity(\"AddFeaturesConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createDrawFeatureConfiguration = function () {\r\n var drawFeatureConfiguration = this.createNewEntity(\"DrawFeatureConfiguration\");\r\n drawFeatureConfiguration.drawStyle = this.createDrawStyle();\r\n drawFeatureConfiguration.drawingType = 3 /* LineString */;\r\n drawFeatureConfiguration.clearDrawingAfterSelection = false;\r\n return drawFeatureConfiguration;\r\n };\r\n MapConfigurationService.prototype.createTrimConfiguration = function () {\r\n return this.createNewEntity(\"TrimConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createGisActionCalculationConfiguration = function () {\r\n return this.createNewEntity(\"GisActionCalculationConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createFilterFeatureCollectionConfiguration = function () {\r\n return this.createNewEntity(\"FilterFeatureCollectionConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createValidationConfiguration = function () {\r\n return this.createNewEntity(\"GisActionValidationConfiguration\");\r\n };\r\n MapConfigurationService.prototype.creatSetPropertyConfiguration = function () {\r\n return this.createNewEntity(\"SetPropertyConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createGisDatastoreQueryConfiguration = function () {\r\n return this.createNewEntity(\"GisDatastoreQueryConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createGisActionWorkflowConfiguration = function () {\r\n return this.createNewEntity(\"GisActionWorkflowConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createJavascriptTransformer = function () {\r\n return this.createNewEntity(\"JavascriptTransformer\");\r\n };\r\n MapConfigurationService.prototype.createGisInputOutput = function () {\r\n return this.createNewEntity(\"GisInputOutput\");\r\n };\r\n MapConfigurationService.prototype.createGisInputOutputCollection = function () {\r\n return this.createNewEntity(\"GisInputOutputCollection\");\r\n };\r\n MapConfigurationService.prototype.createGisActionBlockEsriQueryConfiguration = function () {\r\n return this.createNewEntity(\"GisActionBlockEsriQueryConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createLineTrimAttribute = function () {\r\n return this.createNewEntity(\"LineTrimAttribute\");\r\n };\r\n MapConfigurationService.prototype.createBufferConfiguration = function () {\r\n return this.createNewEntity(\"BufferConfiguration\");\r\n };\r\n MapConfigurationService.prototype.createFeatureAttributeToPropertyMap = function () {\r\n return this.createNewEntity(\"FeatureAttributeToPropertyMap\");\r\n };\r\n MapConfigurationService.prototype.createDrawStyle = function () {\r\n var drawStyle = this.createNewEntity(\"DrawStyle\");\r\n drawStyle.stroke = true;\r\n drawStyle.color = '#3388ff';\r\n drawStyle.weight = 3;\r\n drawStyle.opacity = 1;\r\n drawStyle.fill = true;\r\n drawStyle.fillColor = '#3388ff';\r\n drawStyle.fillOpacity = 0.2;\r\n return drawStyle;\r\n };\r\n MapConfigurationService.prototype.createZoomToQueryConfiguration = function () {\r\n var returnObj = this.createNewEntity(\"ZoomToQueryConfiguration\");\r\n returnObj.highlightZoomResults = false;\r\n return returnObj;\r\n };\r\n return MapConfigurationService;\r\n }(services.DataService));\r\n services.MapConfigurationService = MapConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('MapConfigurationService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n import MapConfiguration = Wars.Domain.Model.Gis.MapConfiguration;\r\n\r\n export class MapConfigurationService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n\r\n }\r\n\r\n public getMapConfigurations(): angular.\r\n IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"MapConfigurations\")\r\n .expand('mapFunctions, gisActionWorkflowConfigurations, queryGridConfigurations')\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getLayerConfigurations(mapConfigurationId: string): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Layers\")\r\n .where('mapConfiguration_id', '==', mapConfigurationId)\r\n .orderBy(\"name\");\r\n\r\n return (>((this.executeQuery(query)) as any));\r\n }\r\n\r\n public getMapConfiguration(id: string): angular.IPromise {\r\n const d = this.$q.defer();\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"MapConfigurations\")\r\n .where('id', '==', id)\r\n .expand(\"layers.esriMapServiceMetadata.layers.fields,\" +\r\n \"javascriptTransformers,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.setPropertyConfiguration,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.gisActionValidationConfiguration,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.bufferConfiguration,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.inputCollection.gisInputOutputs.relatedGisInputOutput,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.outputCollection.gisInputOutputs.relatedGisInputOutput,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.drawFeatureConfiguration.drawStyle,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.trimConfiguration.lineTrimAttributes,\" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.gisActionBlockEsriQueryConfiguration, \" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.filterFeatureCollectionConfiguration.filterAttributes, \" +\r\n \"gisActionWorkflowConfigurations.gisActionBlocks.addFeaturesConfiguration.featureAttributeToPropertyMaps, \" +\r\n \"queryGridConfigurations.queryGridQueries.gisFieldMappings.includedQueryField, \" +\r\n \"queryGridConfigurations.includedQueryFields, \" +\r\n \"queryGridConfigurations.drawStyle, \" +\r\n \"esriQueryConfigurations.wherePredicates, \" +\r\n \"esriQueryConfigurations.geometryFilter, \" +\r\n \"gisDatastoreQueryConfigurations.wherePredicates, \" +\r\n \"gisDatastoreQueryConfigurations.geometryFilter, \" +\r\n \"legendConfigurations.legendLayers,\" +\r\n \"mapFunctions.drawFeatureConfiguration.drawStyle,\" +\r\n \"mapFunctions.zoomToQueryConfiguration.placeHolderForInput \");\r\n\r\n this.executeQuery(query).then(r => {\r\n d.resolve(r[0]);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public createMapConfiguration(): Wars.Domain.Model.Gis.MapConfiguration {\r\n return this.createNewEntity(\"MapConfiguration\");\r\n }\r\n\r\n\r\n public createGisWherePedicate(): Wars.Domain.Model.Gis.GisWherePredicate {\r\n return this.createNewEntity(\"GisWherePredicate\");\r\n }\r\n\r\n public createLayer(): Wars.Domain.Model.Gis.Layer {\r\n return this.createNewEntity(\"Layer\");\r\n }\r\n\r\n public createMapFunctionConfiguration(): Wars.Domain.Model.Gis.MapFunctionConfiguration {\r\n return this.createNewEntity(\"MapFunctionConfiguration\");\r\n }\r\n\r\n public createEsriQueryConfiguration(): Wars.Domain.Model.Gis.EsriQueryConfiguration {\r\n return this.createNewEntity(\"EsriQueryConfiguration\");\r\n }\r\n\r\n public createEsriPlaceHolderValue(): Wars.Domain.Model.Gis.GisWherePlaceHolderValue{\r\n return this.createNewEntity(\"GisWherePlaceHolderValue\");\r\n }\r\n\r\n public createGeometryFilter(): Wars.Domain.Model.Gis.GeometryFilter {\r\n return this.createNewEntity(\"GeometryFilter\");\r\n }\r\n\r\n public createQueryGridConfiguration(): Wars.Domain.Model.Gis.QueryGridConfiguration {\r\n return this.createNewEntity(\"QueryGridConfiguration\");\r\n }\r\n\r\n public createIncludedQueryField(): Wars.Domain.Model.Gis.IncludedQueryField {\r\n return this.createNewEntity(\"IncludedQueryField\");\r\n }\r\n\r\n public createQueryGridQuery(): Wars.Domain.Model.Gis.QueryGridQuery {\r\n return this.createNewEntity(\"QueryGridQuery\");\r\n }\r\n\r\n public createQueryGridFieldMapping(): Wars.Domain.Model.Gis.GisFieldMapping {\r\n return this.createNewEntity(\"GisFieldMapping\");\r\n }\r\n\r\n public createGisActionBlock(): Wars.Domain.Model.Gis.GisActionBlock {\r\n return this.createNewEntity(\"GisActionBlock\");\r\n }\r\n\r\n public createFilterAttribute(): Wars.Domain.Model.Gis.FilterAttribute {\r\n return this.createNewEntity (\"FilterAttribute\");\r\n }\r\n\r\n public createAddFeaturesConfiguration(): Wars.Domain.Model.Gis.AddFeaturesConfiguration{\r\n return this.createNewEntity(\"AddFeaturesConfiguration\");\r\n }\r\n\r\n public createDrawFeatureConfiguration(): Wars.Domain.Model.Gis.DrawFeatureConfiguration {\r\n let drawFeatureConfiguration = this.createNewEntity(\"DrawFeatureConfiguration\");\r\n\r\n drawFeatureConfiguration.drawStyle = this.createDrawStyle();\r\n drawFeatureConfiguration.drawingType = Wars.Domain.Model.Codes.Enums.GeometryType.LineString;\r\n drawFeatureConfiguration.clearDrawingAfterSelection = false;\r\n\r\n return drawFeatureConfiguration;\r\n }\r\n\r\n public createTrimConfiguration(): Wars.Domain.Model.Gis.TrimConfiguration {\r\n return this.createNewEntity(\"TrimConfiguration\");\r\n }\r\n\r\n public createGisActionCalculationConfiguration(): Wars.Domain.Model.Gis.GisActionCalculationConfiguration {\r\n return this.createNewEntity(\"GisActionCalculationConfiguration\");\r\n }\r\n\r\n public createFilterFeatureCollectionConfiguration(): Wars.Domain.Model.Gis.FilterFeatureCollectionConfiguration {\r\n return this.createNewEntity(\"FilterFeatureCollectionConfiguration\");\r\n }\r\n\r\n public createValidationConfiguration(): Wars.Domain.Model.Gis.GisActionValidationConfiguration{\r\n return this.createNewEntity(\"GisActionValidationConfiguration\");\r\n }\r\n\r\n public creatSetPropertyConfiguration(): Wars.Domain.Model.Gis.SetPropertyConfiguration{\r\n return this.createNewEntity(\"SetPropertyConfiguration\");\r\n }\r\n\r\n public createGisDatastoreQueryConfiguration(): Wars.Domain.Model.Gis.GisDatastoreQueryConfiguration {\r\n return this.createNewEntity(\"GisDatastoreQueryConfiguration\");\r\n }\r\n\r\n public createGisActionWorkflowConfiguration(): Wars.Domain.Model.Gis.GisActionWorkflowConfiguration {\r\n return this.createNewEntity(\"GisActionWorkflowConfiguration\");\r\n }\r\n\r\n public createJavascriptTransformer(): Wars.Domain.Model.Gis.JavascriptTransformer {\r\n return this.createNewEntity(\"JavascriptTransformer\");\r\n }\r\n\r\n public createGisInputOutput(): Wars.Domain.Model.Gis.GisInputOutput {\r\n return this.createNewEntity(\"GisInputOutput\");\r\n }\r\n\r\n public createGisInputOutputCollection(): Wars.Domain.Model.Gis.GisInputOutputCollection {\r\n return this.createNewEntity(\"GisInputOutputCollection\");\r\n }\r\n\r\n public createGisActionBlockEsriQueryConfiguration(): Wars.Domain.Model.Gis.GisActionBlockEsriQueryConfiguration {\r\n return this.createNewEntity(\"GisActionBlockEsriQueryConfiguration\");\r\n }\r\n\r\n public createLineTrimAttribute(): Wars.Domain.Model.Gis.LineTrimAttribute {\r\n return this.createNewEntity(\"LineTrimAttribute\");\r\n }\r\n\r\n public createBufferConfiguration(): Wars.Domain.Model.Gis.BufferConfiguration{\r\n return this.createNewEntity(\"BufferConfiguration\");\r\n }\r\n\r\n public createFeatureAttributeToPropertyMap(): Wars.Domain.Model.Gis.FeatureAttributeToPropertyMap {\r\n return this.createNewEntity(\"FeatureAttributeToPropertyMap\");\r\n }\r\n\r\n public createDrawStyle(): Wars.Domain.Model.Gis.DrawStyle {\r\n let drawStyle = this.createNewEntity(\"DrawStyle\");\r\n\r\n drawStyle.stroke = true;\r\n drawStyle.color = '#3388ff';\r\n drawStyle.weight = 3;\r\n drawStyle.opacity = 1;\r\n drawStyle.fill = true;\r\n drawStyle.fillColor = '#3388ff';\r\n drawStyle.fillOpacity = 0.2;\r\n\r\n return drawStyle;\r\n }\r\n\r\n public createZoomToQueryConfiguration(): Wars.Domain.Model.Gis.ZoomToQueryConfiguration {\r\n let returnObj = this.createNewEntity(\"ZoomToQueryConfiguration\");\r\n\r\n returnObj.highlightZoomResults = false;\r\n\r\n return returnObj;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('MapConfigurationService', ['breeze', '$q', '$http']);","/// \r\nmodule warsApp.services {\r\n export class HistoryService {\r\n constructor(private $http: angular.IHttpService, private $q: angular.IQService) {\r\n\r\n }\r\n\r\n public getFormFieldHistory(processId: string, formDataId: string, uniqueId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/Process/' + processId + '/FormDataHistory/' + formDataId + '/' + uniqueId).then(r => {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public getProcessDataHistory(processId: string, uniqueId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/Process/' + processId + '/ProcessDataHistory/' + uniqueId).then(r => {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n\r\n }\r\n public getListFormFieldHistory(processId: string, formDataId: string, listId: string, rowId: string, propertyId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/Process/' + processId + '/ListFormDataHistory/' + formDataId + '/' + listId + '/' + rowId + '/' + propertyId).then(r => {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public getListProcessDataHistory(processId: string, listId: string, rowId: string, propertyId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/Process/' + processId + '/ListProcessDataHistory/' + listId + '/' + rowId + '/' + propertyId).then(r => {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('HistoryService', ['$http', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var HolidaySetService = /** @class */ (function (_super) {\r\n __extends(HolidaySetService, _super);\r\n function HolidaySetService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n HolidaySetService.prototype.getHolidaySets = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"HolidaySets\")\r\n .expand(\"holidays\")\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n HolidaySetService.prototype.createNewHolidaySet = function () {\r\n return this.createNewEntity(\"HolidaySet\");\r\n };\r\n HolidaySetService.prototype.createHoliday = function () {\r\n return this.createNewEntity(\"Holiday\");\r\n };\r\n return HolidaySetService;\r\n }(services.DataService));\r\n services.HolidaySetService = HolidaySetService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('HolidaySetService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class HolidaySetService extends services.DataService {\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getHolidaySets(): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"HolidaySets\") \r\n .expand(\"holidays\")\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n \r\n public createNewHolidaySet(): Wars.Domain.Model.HolidaySet {\r\n return this.createNewEntity(\"HolidaySet\");\r\n }\r\n\r\n public createHoliday(): Wars.Domain.Model.Holiday {\r\n return this.createNewEntity(\"Holiday\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('HolidaySetService', ['breeze', '$q']);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var InterProcessApiService = /** @class */ (function (_super) {\r\n __extends(InterProcessApiService, _super);\r\n function InterProcessApiService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n InterProcessApiService.prototype.createInterProcessApi = function (processConfigId) {\r\n var newInterProcessApi = this.createNewEntity(\"InterProcessApi\");\r\n newInterProcessApi.processConfiguration_id = processConfigId;\r\n return newInterProcessApi;\r\n };\r\n InterProcessApiService.prototype.createInterProcessOutputMapping = function (interProcessApiId) {\r\n var newMapping = this.createNewEntity(\"InterProcessOutputMapping\");\r\n newMapping.interProcessApi_id = interProcessApiId;\r\n return newMapping;\r\n };\r\n InterProcessApiService.prototype.getInterProcessApis = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"InterProcessApis\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand(\"myOutputMappings, myProcessInputField, myOutputSchema.properties\");\r\n return this.executeQuery(query);\r\n };\r\n InterProcessApiService.prototype.getInterProcessApi = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"InterProcessApis\")\r\n .where(\"id\", \"==\", id);\r\n return this.fetch(query);\r\n };\r\n return InterProcessApiService;\r\n }(services.DataService));\r\n services.InterProcessApiService = InterProcessApiService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('InterProcessApiService', ['breeze', '$q']);\r\n","/// \r\n\r\nmodule warsApp.services {\r\n export class InterProcessApiService extends services.DataService {\r\n\r\n constructor(\r\n injectedBreeze: typeof breeze,\r\n $q: angular.IQService)\r\n {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createInterProcessApi(processConfigId: string): Wars.Domain.Model.InterProcessApi {\r\n var newInterProcessApi = this.createNewEntity(\"InterProcessApi\");\r\n newInterProcessApi.processConfiguration_id = processConfigId;\r\n return newInterProcessApi;\r\n }\r\n\r\n public createInterProcessOutputMapping(interProcessApiId: string): Wars.Domain.Model.InterProcessOutputMapping {\r\n var newMapping = this.createNewEntity(\"InterProcessOutputMapping\");\r\n newMapping.interProcessApi_id = interProcessApiId;\r\n return newMapping;\r\n }\r\n\r\n public getInterProcessApis(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"InterProcessApis\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand(\"myOutputMappings, myProcessInputField, myOutputSchema.properties\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getInterProcessApi(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"InterProcessApis\")\r\n .where(\"id\", \"==\", id);\r\n\r\n return this.fetch(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('InterProcessApiService', ['breeze', '$q']);","/// \r\nmodule warsApp.services {\r\n export class JsonDictionaryStoreService {\r\n constructor() {\r\n\r\n }\r\n\r\n public getJsonStoreDictionary(jsonDictionaryStore:Wars.Domain.Model.JsonDictionaryStore):any {\r\n return JSON.parse(jsonDictionaryStore.jsonDictionary);\r\n }\r\n\r\n public containsKey(jsonDictionaryStore:Wars.Domain.Model.JsonDictionaryStore, key: string):boolean {\r\n let dict = this.getJsonStoreDictionary(jsonDictionaryStore);\r\n\r\n if (!!(dict && dict[key]))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n public getValue(jsonDictionaryStore:Wars.Domain.Model.JsonDictionaryStore, key: string): any {\r\n let dict = this.getJsonStoreDictionary(jsonDictionaryStore);\r\n\r\n if (dict) {\r\n return dict[key];\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('JsonDictionaryStoreService',[]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var LandingPageConfigurationService = /** @class */ (function (_super) {\r\n __extends(LandingPageConfigurationService, _super);\r\n function LandingPageConfigurationService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n LandingPageConfigurationService.prototype.getLandingPageConfigurations = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/GetLandingPageConfigurations\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n LandingPageConfigurationService.prototype.addLandingPageConfiguration = function (landingPageConfiguration) {\r\n var params = landingPageConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/AddLandingPageConfiguration\";\r\n return this.usePostHandler(params);\r\n };\r\n LandingPageConfigurationService.prototype.updateLandingPageConfiguration = function (landingPageConfiguration) {\r\n var params = landingPageConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/UpdateLandingPageConfiguration\";\r\n return this.usePostHandler(params);\r\n };\r\n LandingPageConfigurationService.prototype.updateLandingPageConfigurations = function (landingPageConfiguration) {\r\n var params = landingPageConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/UpdateLandingPageConfigurations\";\r\n return this.usePostHandler(params);\r\n };\r\n LandingPageConfigurationService.prototype.deleteLandingPageConfigurations = function (landingPageConfiguration) {\r\n var params = landingPageConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/DeleteLandingPageConfiguration\";\r\n return this.usePostHandler(params);\r\n };\r\n return LandingPageConfigurationService;\r\n }(services.HttpHandlerService));\r\n services.LandingPageConfigurationService = LandingPageConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('LandingPageConfigurationService', ['$http']);\r\n","/// \r\nmodule warsApp.services {\r\n export class LandingPageConfigurationService extends HttpHandlerService {\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public getLandingPageConfigurations(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/GetLandingPageConfigurations\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.LandingPageConfigurationDto[]) => {\r\n return result;\r\n });\r\n }\r\n\r\n public addLandingPageConfiguration(landingPageConfiguration: models.LandingPageConfigurationDto): ng.IPromise {\r\n var params = landingPageConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/AddLandingPageConfiguration\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateLandingPageConfiguration(landingPageConfiguration: Wars.Domain.Model.Dtos.LandingPageConfigurationDto): ng.IPromise {\r\n var params = landingPageConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/UpdateLandingPageConfiguration\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateLandingPageConfigurations(landingPageConfiguration: Wars.Domain.Model.Dtos.LandingPageConfigurationDto[]): ng.IPromise {\r\n var params = landingPageConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/UpdateLandingPageConfigurations\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public deleteLandingPageConfigurations(landingPageConfiguration: Wars.Domain.Model.Dtos.LandingPageConfigurationDto): ng.IPromise {\r\n var params = landingPageConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/LandingPageConfiguration/DeleteLandingPageConfiguration\";\r\n return this.usePostHandler(params);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('LandingPageConfigurationService', ['$http'])","/// \r\nmodule warsApp.services {\r\n\r\n declare var _LTracker: any;\r\n\r\n export class WarsLogger {\r\n\r\n // 1-DEBUG, 2-INFO, 3-WARN, 4-ERROR, 5-FATAL, 6-OFF\r\n private static logLevel: number = 3;\r\n\r\n private static logToConsole: boolean = true;\r\n // E.g. console.error\r\n private static useConsoleLevels: boolean = true;\r\n\r\n private static logToLoggly: boolean = true;\r\n\r\n public static logDebug(message: string, source: string, logContext?: any): void {\r\n if (this.logLevel > 1) return;\r\n WarsLogger.log(message, source, 'DEBUG', logContext);\r\n }\r\n\r\n public static logInfo(message: string, source: string, logContext?: any): void {\r\n if (this.logLevel > 2) return;\r\n WarsLogger.log(message, source, 'INFO', logContext);\r\n }\r\n\r\n public static logWarn(message: string, source: string, logContext?: any): void {\r\n if (this.logLevel > 3) return;\r\n WarsLogger.log(message, source, 'WARN', logContext);\r\n }\r\n\r\n public static logError(message: string, source: string, logContext?: any): void {\r\n if (this.logLevel > 4) return;\r\n WarsLogger.log(message, source, 'ERROR', logContext);\r\n }\r\n\r\n public static logFatal(message: string, source: string, logContext?: any): void {\r\n if (this.logLevel > 5) return;\r\n WarsLogger.log(message, source, 'FATAL', logContext);\r\n }\r\n\r\n private static log(message: string, source: string, level: string, logContext?: any): void {\r\n try {\r\n if (this.logToLoggly) {\r\n const logObject: any = {\r\n 'message': message,\r\n 'level': level,\r\n 'source': source\r\n };\r\n\r\n if (logContext !== undefined) {\r\n logObject.logContext = logContext;\r\n }\r\n\r\n _LTracker.push(logObject);\r\n }\r\n\r\n if (this.logToConsole) {\r\n if (this.useConsoleLevels) {\r\n if (level === \"FATAL\") {\r\n console.error(\"Fatal !! - \" + source + \" - \" + message);\r\n if (logContext !== undefined) {\r\n console.error(logContext);\r\n }\r\n } else if (level === \"ERROR\") {\r\n console.error(source + \" - \" + message);\r\n if (logContext !== undefined) {\r\n console.error(logContext);\r\n }\r\n } else if (level === \"WARN\") {\r\n console.warn(source + \" - \" + message);\r\n if (logContext !== undefined) {\r\n console.warn(logContext);\r\n }\r\n } else if (level === \"INFO\") {\r\n console.info(source + \" - \" + message);\r\n if (logContext !== undefined) {\r\n console.info(logContext);\r\n }\r\n } else if (level === \"DEBUG\") {\r\n console.debug(source + \" - \" + message);\r\n if (logContext !== undefined) {\r\n console.debug(logContext);\r\n }\r\n }\r\n } else {\r\n console.log(level + \" - \" + source + \" - \" + message);\r\n if (logContext !== undefined) {\r\n console.log(logContext);\r\n }\r\n }\r\n }\r\n } catch (err) {\r\n \r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('WarsLogger', []);","/// \r\nmodule warsApp.services {\r\n\r\n export class ManageDocumentSelectionService{\r\n constructor(private $http: angular.IHttpService, private $q: angular.IQService) { }\r\n\r\n public updateDocumentSelection(processId: string,\r\n manageSectionId: string,\r\n documentId: string,\r\n isSelected: boolean) : ng.IPromise{\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/process/' + processId + '/UpdateDocumentSelection/' + manageSectionId + '/document/' + documentId, isSelected)\r\n .then(r => { d.resolve(r.data); });\r\n\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ManageDocumentSelectionService', ['$http', '$q'])","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ManageProcessDataConfigurationService = /** @class */ (function (_super) {\r\n __extends(ManageProcessDataConfigurationService, _super);\r\n function ManageProcessDataConfigurationService() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ManageProcessDataConfigurationService.prototype.createProcessDataViewConfiguration = function () {\r\n return this.createNewEntity(\"ProcessDataViewConfiguration\");\r\n };\r\n ManageProcessDataConfigurationService.prototype.createManageProcessDataConfiguration = function () {\r\n return this.createNewEntity(\"ManageProcessDataConfiguration\");\r\n };\r\n ManageProcessDataConfigurationService.prototype.createManageProcessEventConfiguration = function () {\r\n return this.createNewEntity(\"ManageProcessEventConfiguration\");\r\n };\r\n return ManageProcessDataConfigurationService;\r\n }(services.DataService));\r\n services.ManageProcessDataConfigurationService = ManageProcessDataConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ManageProcessDataConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class ManageProcessDataConfigurationService extends DataService {\r\n public createProcessDataViewConfiguration(): Wars.Domain.Model.ProcessDataViewConfiguration {\r\n return this.createNewEntity(\"ProcessDataViewConfiguration\");\r\n }\r\n public createManageProcessDataConfiguration(): Wars.Domain.Model.ManageProcessDataConfiguration {\r\n return this.createNewEntity(\"ManageProcessDataConfiguration\");\r\n }\r\n public createManageProcessEventConfiguration(): Wars.Domain.Model.ManageProcessEventConfiguration {\r\n return this.createNewEntity(\"ManageProcessEventConfiguration\");\r\n }\r\n }\r\n}\r\nwarsApp.registerService('ManageProcessDataConfigurationService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ManageScheduledResourcesService = /** @class */ (function (_super) {\r\n __extends(ManageScheduledResourcesService, _super);\r\n function ManageScheduledResourcesService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n ManageScheduledResourcesService.prototype.createNewScheduledResourceConfiguration = function (codeGroup) {\r\n var scheduledResourceConfig = this.createNewEntity(\"ScheduledResourceConfiguration\", { myParentCodeGroup: codeGroup });\r\n scheduledResourceConfig.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return scheduledResourceConfig;\r\n };\r\n ManageScheduledResourcesService.prototype.getAllScheduledResourcesForProcessConfiguration = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ScheduledResourceConfigurations\")\r\n .where(\"processConfiguration_id\", \"==\", id);\r\n return this.executeQuery(query);\r\n };\r\n ManageScheduledResourcesService.prototype.getAllScheduledResourcesForProcessConfigurationAndSystem = function (id) {\r\n var pred = this.breezeModule.Predicate\r\n .create('processConfiguration_id', '==', id)\r\n .or('processConfiguration_id', '==', null);\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ScheduledResourceConfigurations\")\r\n .where(pred);\r\n return this.executeQuery(query);\r\n };\r\n ManageScheduledResourcesService.prototype.checkScheduledResource = function (processId, formDataId, schemaPropertyId, scheduleEntry) {\r\n var d = this.$q.defer();\r\n var payload = {\r\n processId: processId,\r\n FormDataId: formDataId,\r\n schemaPropertyId: schemaPropertyId,\r\n scheduleEntry: scheduleEntry\r\n };\r\n this.$http.post('./api/ScheduledResource/CheckSchedule', payload).then(function (r) { d.resolve(r.data); });\r\n return d.promise;\r\n };\r\n return ManageScheduledResourcesService;\r\n }(services.DataService));\r\n services.ManageScheduledResourcesService = ManageScheduledResourcesService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ManageScheduledResourcesService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n \r\n\r\n export class ManageScheduledResourcesService extends services.DataService {\r\n \r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http:angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createNewScheduledResourceConfiguration(codeGroup: Wars.Domain.Model.Codes.CodeGroup): Wars.Domain.Model.ScheduledResourceConfiguration {\r\n var scheduledResourceConfig = this.createNewEntity(\"ScheduledResourceConfiguration\", { myParentCodeGroup: codeGroup });\r\n scheduledResourceConfig.uniqueIdentifier = UtilityService.generateGuidComb();\r\n return scheduledResourceConfig;\r\n }\r\n \r\n public getAllScheduledResourcesForProcessConfiguration(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ScheduledResourceConfigurations\")\r\n .where(\"processConfiguration_id\", \"==\", id);\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getAllScheduledResourcesForProcessConfigurationAndSystem(id: string): ng.IPromise {\r\n const pred = this.breezeModule.Predicate\r\n .create('processConfiguration_id', '==', id)\r\n .or('processConfiguration_id', '==', null);\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ScheduledResourceConfigurations\")\r\n .where(pred);\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public checkScheduledResource(\r\n processId: string,\r\n formDataId: string,\r\n schemaPropertyId: string,\r\n scheduleEntry: Wars.Domain.Model.Execution.ScheduleEntry): angular.IPromise\r\n {\r\n var d = this.$q.defer();\r\n var payload = {\r\n processId: processId,\r\n FormDataId: formDataId,\r\n schemaPropertyId: schemaPropertyId,\r\n scheduleEntry: scheduleEntry\r\n };\r\n\r\n this.$http.post('./api/ScheduledResource/CheckSchedule', payload).then(r => { d.resolve(r.data); });\r\n return d.promise;\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerService('ManageScheduledResourcesService', ['breeze', '$q','$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ManageStaticDocumentsService = /** @class */ (function (_super) {\r\n __extends(ManageStaticDocumentsService, _super);\r\n function ManageStaticDocumentsService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n ManageStaticDocumentsService.prototype.getStaticDocumentsForProcessConfiguration = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"StaticDocuments\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId);\r\n return this.executeQuery(query);\r\n };\r\n ManageStaticDocumentsService.prototype.getStaticDocumentById = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"StaticDocuments\")\r\n .where(\"id\", \"==\", id);\r\n return this.fetch(query);\r\n };\r\n ManageStaticDocumentsService.prototype.createStaticDocument = function () {\r\n return this.createNewEntity(\"StaticDocument\");\r\n };\r\n return ManageStaticDocumentsService;\r\n }(services.DataService));\r\n services.ManageStaticDocumentsService = ManageStaticDocumentsService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ManageStaticDocumentsService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ManageStaticDocumentsService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getStaticDocumentsForProcessConfiguration(processConfigId: string): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"StaticDocuments\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId);\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getStaticDocumentById(id: string): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"StaticDocuments\")\r\n .where(\"id\", \"==\", id);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public createStaticDocument(): Wars.Domain.Model.StaticDocument {\r\n return this.createNewEntity(\"StaticDocument\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ManageStaticDocumentsService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ManageSystemCodesService = /** @class */ (function (_super) {\r\n __extends(ManageSystemCodesService, _super);\r\n function ManageSystemCodesService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n ManageSystemCodesService.prototype.createNewSystemCode = function (codeGroup, isSystemLevel) {\r\n var systemCode = this.createNewEntity(\"SystemCode\");\r\n systemCode.myParentCodeGroup = codeGroup;\r\n systemCode.isSystemLevel = isSystemLevel;\r\n systemCode.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return systemCode;\r\n };\r\n ManageSystemCodesService.prototype.createNewSpecializedCodeGroup = function () {\r\n var codeGroup = this.createNewEntity(\"CodeGroup\");\r\n codeGroup.isDocumentTypeCodeGroup = false;\r\n return codeGroup;\r\n };\r\n ManageSystemCodesService.prototype.getAllCodesForProcessConfiguration = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"CodeGroups\")\r\n .where(\"processConfiguration_id\", \"==\", id)\r\n .expand(\"codes\");\r\n return this.executeQuery(query);\r\n };\r\n ManageSystemCodesService.prototype.getCodeGroup = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"CodeGroups\")\r\n .where(\"id\", \"==\", id)\r\n .expand(\"codes\");\r\n return this.fetch(query);\r\n };\r\n return ManageSystemCodesService;\r\n }(services.DataService));\r\n services.ManageSystemCodesService = ManageSystemCodesService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ManageSystemCodesService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n \r\n\r\n export class ManageSystemCodesService extends services.DataService {\r\n \r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createNewSystemCode(codeGroup: Wars.Domain.Model.Codes.CodeGroup, isSystemLevel: boolean): Wars.Domain.Model.Codes.SystemCode {\r\n var systemCode = this.createNewEntity(\"SystemCode\");\r\n systemCode.myParentCodeGroup = codeGroup;\r\n systemCode.isSystemLevel = isSystemLevel;\r\n systemCode.uniqueIdentifier = UtilityService.generateGuidComb();\r\n return systemCode;\r\n }\r\n\r\n public createNewSpecializedCodeGroup(): Wars.Domain.Model.Codes.CodeGroup {\r\n var codeGroup = this.createNewEntity(\"CodeGroup\");\r\n codeGroup.isDocumentTypeCodeGroup = false;\r\n return codeGroup;\r\n }\r\n\r\n public getAllCodesForProcessConfiguration(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"CodeGroups\")\r\n .where(\"processConfiguration_id\", \"==\", id)\r\n .expand(\"codes\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getCodeGroup(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"CodeGroups\")\r\n .where(\"id\", \"==\", id)\r\n .expand(\"codes\");\r\n\r\n return this.fetch(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ManageSystemCodesService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var MapConfigurationOverridesService = /** @class */ (function (_super) {\r\n __extends(MapConfigurationOverridesService, _super);\r\n function MapConfigurationOverridesService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n MapConfigurationOverridesService.prototype.createMapConfigurationOverrides = function () {\r\n return this.createNewEntity(\"MapConfigurationOverride\");\r\n };\r\n MapConfigurationOverridesService.prototype.createIncludedMapFunction = function () {\r\n return this.createNewEntity(\"IncludedMapFunction\");\r\n };\r\n MapConfigurationOverridesService.prototype.createGisActionWorkflowOverride = function () {\r\n return this.createNewEntity(\"GisActionWorkflowOverride\");\r\n };\r\n MapConfigurationOverridesService.prototype.createQueryGridOverride = function () {\r\n return this.createNewEntity(\"QueryGridOverride\");\r\n };\r\n MapConfigurationOverridesService.prototype.createGisActionWorkflowGisFieldMap = function () {\r\n return this.createNewEntity(\"GisActionWorkflowGisFieldMap\");\r\n };\r\n MapConfigurationOverridesService.prototype.createGisWherePlaceHolderValue = function () {\r\n return this.createNewEntity(\"GisWherePlaceHolderValue\");\r\n };\r\n MapConfigurationOverridesService.prototype.getMapConfigurationOverrides = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"MapConfigurationOverrides\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand('includedMapFunctions.placeHolderValues, gisActionWorkflowOverrides.fieldMappings,' +\r\n ' queryGridConfigurationOverrides.placeHolderValues, ' +\r\n ' queryGridConfigurationOverrides.queryGridConfiguration.queryGridQueries.esriQueryConfiguration.wherePredicates, ' +\r\n ' queryGridConfigurationOverrides.queryGridConfiguration.queryGridQueries.gisDatastoreQueryConfiguration.wherePredicates, ' +\r\n ' gisActionWorkflowOverrides.gisActionWorkflowConfiguration.outputCollection.gisInputOutputs,' +\r\n ' gisActionWorkflowOverrides.gisActionWorkflowConfiguration.gisActionBlocks.addFeaturesConfiguration.gisDatastore')\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n return MapConfigurationOverridesService;\r\n }(services.DataService));\r\n services.MapConfigurationOverridesService = MapConfigurationOverridesService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('MapConfigurationOverridesService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n import MapConfiguration = Wars.Domain.Model.Gis.MapConfiguration;\r\n\r\n export class MapConfigurationOverridesService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createMapConfigurationOverrides(): Wars.Domain.Model.Gis.MapConfigurationOverride {\r\n return this.createNewEntity(\"MapConfigurationOverride\");\r\n }\r\n\r\n public createIncludedMapFunction(): Wars.Domain.Model.Gis.IncludedMapFunction {\r\n return this.createNewEntity(\"IncludedMapFunction\");\r\n }\r\n\r\n public createGisActionWorkflowOverride(): Wars.Domain.Model.Gis.GisActionWorkflowOverride {\r\n return this.createNewEntity(\"GisActionWorkflowOverride\");\r\n }\r\n\r\n public createQueryGridOverride(): Wars.Domain.Model.Gis.QueryGridOverride{\r\n return this.createNewEntity(\"QueryGridOverride\");\r\n }\r\n\r\n public createGisActionWorkflowGisFieldMap(): Wars.Domain.Model.Gis.GisActionWorkflowGisFieldMap {\r\n return this.createNewEntity(\"GisActionWorkflowGisFieldMap\");\r\n }\r\n\r\n public createGisWherePlaceHolderValue(): Wars.Domain.Model.Gis.GisWherePlaceHolderValue {\r\n return this.createNewEntity(\"GisWherePlaceHolderValue\");\r\n }\r\n\r\n public getMapConfigurationOverrides(processConfigurationId: string): angular.\r\n IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"MapConfigurationOverrides\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand('includedMapFunctions.placeHolderValues, gisActionWorkflowOverrides.fieldMappings,' +\r\n ' queryGridConfigurationOverrides.placeHolderValues, '+\r\n ' queryGridConfigurationOverrides.queryGridConfiguration.queryGridQueries.esriQueryConfiguration.wherePredicates, '+\r\n ' queryGridConfigurationOverrides.queryGridConfiguration.queryGridQueries.gisDatastoreQueryConfiguration.wherePredicates, '+\r\n ' gisActionWorkflowOverrides.gisActionWorkflowConfiguration.outputCollection.gisInputOutputs,' +\r\n ' gisActionWorkflowOverrides.gisActionWorkflowConfiguration.gisActionBlocks.addFeaturesConfiguration.gisDatastore')\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n }\r\n}\r\nwarsApp.registerService('MapConfigurationOverridesService', ['breeze', '$q', '$http'])\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var MenuLinkService = /** @class */ (function (_super) {\r\n __extends(MenuLinkService, _super);\r\n function MenuLinkService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n MenuLinkService.prototype.addMenuLink = function (menuLink) {\r\n var params = menuLink;\r\n this.handlerUrl = \"api/ContentManagement/MenuLink/AddMenuLink\";\r\n return this.usePostHandler(params);\r\n };\r\n MenuLinkService.prototype.updateMenuLink = function (menuLink) {\r\n var params = menuLink;\r\n this.handlerUrl = \"api/ContentManagement/MenuLink/UpdateMenuLink\";\r\n return this.usePostHandler(params);\r\n };\r\n MenuLinkService.prototype.updateMenuLinks = function (menuLinks) {\r\n var params = menuLinks;\r\n this.handlerUrl = \"api/ContentManagement/MenuLink/UpdateMenuLinks\";\r\n return this.usePostHandler(params);\r\n };\r\n MenuLinkService.prototype.deleteMenuLink = function (menuLink) {\r\n var params = menuLink;\r\n this.handlerUrl = \"api/ContentManagement/MenuLink/DeleteMenuLink\";\r\n return this.usePostHandler(params);\r\n };\r\n return MenuLinkService;\r\n }(services.HttpHandlerService));\r\n services.MenuLinkService = MenuLinkService;\r\n var MenuItemService = /** @class */ (function (_super) {\r\n __extends(MenuItemService, _super);\r\n function MenuItemService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n MenuItemService.prototype.getMenuItems = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/GetMenuItems\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n MenuItemService.prototype.addMenuItem = function (menuItem) {\r\n var params = menuItem;\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/AddMenuItem\";\r\n return this.usePostHandler(params);\r\n };\r\n MenuItemService.prototype.updateMenuItem = function (menuItem) {\r\n var params = menuItem;\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/UpdateMenuItem\";\r\n return this.usePostHandler(params);\r\n };\r\n MenuItemService.prototype.updateMenuItems = function (menuItem) {\r\n var params = menuItem;\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/UpdateMenuItems\";\r\n return this.usePostHandler(params);\r\n };\r\n MenuItemService.prototype.deleteMenuItem = function (menuItem) {\r\n var params = menuItem;\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/DeleteMenuItem\";\r\n return this.usePostHandler(params);\r\n };\r\n return MenuItemService;\r\n }(services.HttpHandlerService));\r\n services.MenuItemService = MenuItemService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('MenuItemService', ['$http']);\r\nwarsApp.registerService('MenuLinkService', ['$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class MenuLinkService extends HttpHandlerService {\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public addMenuLink(menuLink: models.MenuLinkDto): ng.IPromise {\r\n var params = menuLink;\r\n this.handlerUrl = \"api/ContentManagement/MenuLink/AddMenuLink\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateMenuLink(menuLink: Wars.Domain.Model.Dtos.MenuLinkDto): ng.IPromise {\r\n var params = menuLink;\r\n this.handlerUrl = \"api/ContentManagement/MenuLink/UpdateMenuLink\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateMenuLinks(menuLinks: Wars.Domain.Model.Dtos.MenuLinkDto[]): ng.IPromise {\r\n var params = menuLinks;\r\n this.handlerUrl = \"api/ContentManagement/MenuLink/UpdateMenuLinks\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public deleteMenuLink(menuLink: Wars.Domain.Model.Dtos.MenuLinkDto): ng.IPromise {\r\n var params = menuLink;\r\n this.handlerUrl = \"api/ContentManagement/MenuLink/DeleteMenuLink\";\r\n return this.usePostHandler(params);\r\n }\r\n }\r\n\r\n export class MenuItemService extends HttpHandlerService {\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public getMenuItems(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/GetMenuItems\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.MenuItemDto[]) => {\r\n return result;\r\n });\r\n }\r\n\r\n public addMenuItem(menuItem: models.MenuItemDto): ng.IPromise {\r\n var params = menuItem;\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/AddMenuItem\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateMenuItem(menuItem: Wars.Domain.Model.Dtos.MenuItemDto): ng.IPromise {\r\n var params = menuItem;\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/UpdateMenuItem\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateMenuItems(menuItem: Wars.Domain.Model.Dtos.MenuItemDto[]): ng.IPromise {\r\n var params = menuItem;\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/UpdateMenuItems\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public deleteMenuItem(menuItem: Wars.Domain.Model.Dtos.MenuItemDto): ng.IPromise {\r\n var params = menuItem;\r\n this.handlerUrl = \"api/ContentManagement/MenuItem/DeleteMenuItem\";\r\n return this.usePostHandler(params);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('MenuItemService', ['$http']);\r\nwarsApp.registerService('MenuLinkService', ['$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ObjectQueryStatusType = /** @class */ (function () {\r\n function ObjectQueryStatusType() {\r\n }\r\n return ObjectQueryStatusType;\r\n }());\r\n services.ObjectQueryStatusType = ObjectQueryStatusType;\r\n var ObjectQueryStateType = /** @class */ (function () {\r\n function ObjectQueryStateType() {\r\n }\r\n return ObjectQueryStateType;\r\n }());\r\n services.ObjectQueryStateType = ObjectQueryStateType;\r\n var ObjectQueryProcessType = /** @class */ (function () {\r\n function ObjectQueryProcessType() {\r\n }\r\n return ObjectQueryProcessType;\r\n }());\r\n services.ObjectQueryProcessType = ObjectQueryProcessType;\r\n var ObjectQueryProcessSubType = /** @class */ (function () {\r\n function ObjectQueryProcessSubType() {\r\n }\r\n return ObjectQueryProcessSubType;\r\n }());\r\n services.ObjectQueryProcessSubType = ObjectQueryProcessSubType;\r\n var ObjectQueryReviewConfiguration = /** @class */ (function () {\r\n function ObjectQueryReviewConfiguration() {\r\n }\r\n return ObjectQueryReviewConfiguration;\r\n }());\r\n services.ObjectQueryReviewConfiguration = ObjectQueryReviewConfiguration;\r\n var ObjectQueryApiAction = /** @class */ (function () {\r\n function ObjectQueryApiAction() {\r\n }\r\n return ObjectQueryApiAction;\r\n }());\r\n services.ObjectQueryApiAction = ObjectQueryApiAction;\r\n var ObjectQueryReviewType = /** @class */ (function () {\r\n function ObjectQueryReviewType() {\r\n }\r\n return ObjectQueryReviewType;\r\n }());\r\n services.ObjectQueryReviewType = ObjectQueryReviewType;\r\n var ObjectQueryAssignmentClaim = /** @class */ (function () {\r\n function ObjectQueryAssignmentClaim() {\r\n }\r\n return ObjectQueryAssignmentClaim;\r\n }());\r\n services.ObjectQueryAssignmentClaim = ObjectQueryAssignmentClaim;\r\n var ObjectQueryStringTuple = /** @class */ (function () {\r\n function ObjectQueryStringTuple(name, value) {\r\n this.name = name;\r\n this.value = value;\r\n }\r\n return ObjectQueryStringTuple;\r\n }());\r\n services.ObjectQueryStringTuple = ObjectQueryStringTuple;\r\n var ObjectQueryFormApiQuery = /** @class */ (function () {\r\n function ObjectQueryFormApiQuery() {\r\n }\r\n return ObjectQueryFormApiQuery;\r\n }());\r\n services.ObjectQueryFormApiQuery = ObjectQueryFormApiQuery;\r\n var ObjectQueryFormApiForm = /** @class */ (function () {\r\n function ObjectQueryFormApiForm() {\r\n }\r\n return ObjectQueryFormApiForm;\r\n }());\r\n services.ObjectQueryFormApiForm = ObjectQueryFormApiForm;\r\n var ObjectQueryGroupSetting = /** @class */ (function () {\r\n function ObjectQueryGroupSetting() {\r\n }\r\n return ObjectQueryGroupSetting;\r\n }());\r\n services.ObjectQueryGroupSetting = ObjectQueryGroupSetting;\r\n var ObjectQueryApiSchemaProperty = /** @class */ (function () {\r\n function ObjectQueryApiSchemaProperty() {\r\n }\r\n return ObjectQueryApiSchemaProperty;\r\n }());\r\n services.ObjectQueryApiSchemaProperty = ObjectQueryApiSchemaProperty;\r\n var ObjectQueryService = /** @class */ (function (_super) {\r\n __extends(ObjectQueryService, _super);\r\n function ObjectQueryService(injectedBreeze, $q, $http, extensibilityService, deleteService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.extensibilityService = extensibilityService;\r\n _this.deleteService = deleteService;\r\n var self = _this;\r\n self.qService = $q;\r\n self.subscribeHasChanges(function () {\r\n var changes = warsBreeze.entityManager.getChanges();\r\n for (var i = 0; i < changes.length; i++) {\r\n var oqId;\r\n var oq;\r\n var entityName = changes[i].entityAspect.entity.entityType.shortName;\r\n if (entityName === \"ObjectQuery\") {\r\n oq = changes[i];\r\n }\r\n else if (entityName === \"ObjectQueryProjection\") {\r\n if (changes[i].entityAspect.entityState.isModified()) {\r\n if (changes[i].entityAspect.originalValues.propertyType !== undefined ||\r\n changes[i].entityAspect.originalValues.projectionType !== undefined) {\r\n changes[i].alias = \"\";\r\n }\r\n }\r\n oqId = changes[i].objectQuery_id;\r\n }\r\n else if (entityName === \"ObjectQueryPredicate\") {\r\n oqId = changes[i].objectQuery_id;\r\n }\r\n else if (entityName === \"ObjectQueryConjunction\") {\r\n oqId = changes[i].objectQuery_id;\r\n }\r\n else if (entityName === \"ObjectQueryDisjunction\") {\r\n oqId = changes[i].objectQuery_id;\r\n }\r\n if (oq != null) {\r\n self.onObjectQueryModified(oq);\r\n }\r\n else if (oqId != null) {\r\n //get entity from cache\r\n self.fetchById(oqId, \"ObjectQuery\")\r\n .then(function (result) {\r\n if (result != null) {\r\n self.onObjectQueryModified(result);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n ObjectQueryService.prototype.getObjectQueryFormApiForms = function (processConfigurationId) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(\"api/ObjectQuery/ObjectQueryFormApiList?processConfigurationId=\" + processConfigurationId).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.getObjectQueryFormApiQueries = function (processConfigurationId) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(\"api/ObjectQuery/ProcessQueryList?processConfigurationId=\" + processConfigurationId).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.getQueryApi = function (processConfigurationId) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(\"api/ObjectQuery/ObjectQueryFormApi?processConfigurationId=\" + processConfigurationId).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.saveQueryApi = function (api) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/ObjectQueryFormApi\", api).then(function () {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.removeQueryApi = function (api) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/RemoveObjectQueryFormApi\", api).then(function () {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.addQueryResultMapping = function (api, mapSet) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n var pack = {\r\n api: api,\r\n mapSet: mapSet\r\n };\r\n self.$http.post(\"api/ObjectQuery/AddQueryResultMapping\", pack).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.removeResultMapping = function (mapping, mapSet) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n var pack = {\r\n mapping: mapping,\r\n mapSet: mapSet\r\n };\r\n self.$http.post(\"api/ObjectQuery/RemoveQueryResultMapping\", pack).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.reorderResultMapping = function (mapping, ascending, mapSet) {\r\n var self = this;\r\n var payload = {\r\n property: mapping,\r\n ascending: ascending,\r\n mapSet: mapSet\r\n };\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/ReorderQueryResultMapping\", payload).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.updateMapSetOrder = function (mapSet, ascending) {\r\n var self = this;\r\n var payload = {\r\n ascending: ascending,\r\n mapSet: mapSet\r\n };\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/ReorderQueryResultMapSet\", payload).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.saveResultMapping = function (mapping) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/SaveQueryResultMapping\", mapping).then(function () {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.saveMapSet = function (mapSet) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/SaveQueryResultMapSet\", mapSet).then(function () {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.testExecution = function (objectQuery) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(\"api/ObjectQuery/TestExecution?objectQueryId=\" + objectQuery.id).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.getGroupSettings = function (processConfigId, formUniqueIdentifier) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(\"api/ObjectQuery/FormGroupSettings?processConfigId=\" + processConfigId + \"&formUniqueIdentifier=\" + formUniqueIdentifier).then(function (results) {\r\n d.resolve(results.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.executeForm = function (processTypeId, formUniqueIdentifier, processId, groupSettings) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n if (groupSettings != null && groupSettings.length > 0) {\r\n groupSettings = Enumerable.from(groupSettings).orderBy(function (i) { return i.order; }).toArray();\r\n }\r\n self.$http.post(\"api/ObjectQuery/ExecuteForm\", {\r\n processTypeId: processTypeId,\r\n formUniqueIdentifier: formUniqueIdentifier,\r\n processId: processId,\r\n groupSettings: groupSettings\r\n })\r\n .then(function (results) {\r\n d.resolve(results.data);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.removeSubQuery = function (objectQueryId) {\r\n var self = this;\r\n for (var i = 0; i < self.subQueries.length; i++) {\r\n if (self.subQueries[i].id === objectQueryId) {\r\n self.subQueries.splice(i, 1);\r\n break;\r\n }\r\n }\r\n };\r\n ObjectQueryService.prototype.removeProcessIdSubQuery = function (objectQueryId) {\r\n var self = this;\r\n for (var i = 0; i < self.processIdSubQueries.length; i++) {\r\n if (self.processIdSubQueries[i].id === objectQueryId) {\r\n self.processIdSubQueries.splice(i, 1);\r\n break;\r\n }\r\n }\r\n };\r\n ObjectQueryService.prototype.deleteObjectSchema = function (objectSchema) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.deleteService.deleteRecursivelyWithoutWarning(\"ObjectSchema\", objectSchema.id, true).then(function (result) {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.onObjectQueryModified = function (objectQuery) {\r\n var self = this;\r\n //pre-delete and executable status save\r\n objectQuery.isExecutable = false;\r\n //remove from subqueries\r\n self.removeSubQuery(objectQuery.id);\r\n self.removeProcessIdSubQuery(objectQuery.id);\r\n };\r\n ObjectQueryService.prototype.deleteObjectQuery = function (objectQuery) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.deleteService.deleteWithModalConfirmationIfNecessary(\"ObjectQuery\", objectQuery.id, null, function () {\r\n d.resolve(null);\r\n }, null, function (result) {\r\n d.reject(result);\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.createNewObjectQuery = function () {\r\n var q = this.createNewEntity(\"ObjectQuery\", {});\r\n q.canAddProjection = true;\r\n return q;\r\n };\r\n ObjectQueryService.prototype.isAggregateQuery = function (objectQuery) {\r\n if (objectQuery.isAggregateQuery != null) {\r\n return objectQuery.isAggregateQuery;\r\n }\r\n if (objectQuery.projections.length > 0) {\r\n if (Enumerable.from(objectQuery.projections).all(function (i) { return i.projectionType === 0 /* Property */; })) {\r\n objectQuery.isAggregateQuery = false;\r\n }\r\n else {\r\n objectQuery.isAggregateQuery = true;\r\n }\r\n }\r\n return objectQuery.isAggregateQuery;\r\n };\r\n ObjectQueryService.prototype.createNewObjectQueryProjection = function (objectQuery, isProcessLevel) {\r\n var projection = this.createNewEntity(\"ObjectQueryProjection\", {});\r\n projection.myObjectQuery = objectQuery;\r\n projection.objectQuery_id = objectQuery.id;\r\n projection.descending = false;\r\n if (this.isAggregateQuery(objectQuery)) {\r\n projection.projectionTypeContext.removeSpecifiedOptions = [];\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(0 /* Property */);\r\n projection.projectionType = 6 /* Group */;\r\n var hasAggregaate = Enumerable.from(objectQuery.projections).any(function (i) { return i.projectionType !== 6 /* Group */; });\r\n if (hasAggregaate) {\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(1 /* Count */);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(4 /* Max */);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(3 /* Min */);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(2 /* Sum */);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(5 /* Avg */);\r\n }\r\n }\r\n else {\r\n projection.projectionTypeContext.removeSpecifiedOptions = [];\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(6 /* Group */);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(1 /* Count */);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(4 /* Max */);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(3 /* Min */);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(2 /* Sum */);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(5 /* Avg */);\r\n projection.projectionType = 0 /* Property */;\r\n }\r\n projection.propertyType = 0 /* Property */;\r\n if (objectQuery.projections.length === 0) {\r\n projection.orderNumerator = 1;\r\n }\r\n else {\r\n var l = Enumerable\r\n .from(objectQuery.projections)\r\n .orderByDescending(function (i) { return i.orderNumerator; })\r\n .toArray();\r\n projection.orderNumerator = l[0].orderNumerator + 1;\r\n }\r\n projection.propertyTypeContext.removeSpecifiedOptions = [];\r\n if (isProcessLevel) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(4 /* ProcessType */);\r\n }\r\n if (this.getStates().length === 0) {\r\n projection\r\n .propertyTypeContext\r\n .removeSpecifiedOptions.push(2 /* Status */);\r\n projection\r\n .propertyTypeContext\r\n .removeSpecifiedOptions.push(1 /* State */);\r\n }\r\n this.onObjectQueryModified(objectQuery);\r\n return projection;\r\n };\r\n ObjectQueryService.prototype.createNewPredicate = function (objectQuery, parent) {\r\n var restriction = this.createNewEntity(\"ObjectQueryPredicate\", {});\r\n this.linkRestrictionParents(restriction, objectQuery, parent);\r\n restriction.operatorType = 0 /* Equals */;\r\n restriction.rightRestrictionType = 1 /* InputParameterValue */;\r\n restriction.propertyType = 0 /* Property */;\r\n restriction.processType = null;\r\n restriction.processType_id = null;\r\n restriction.processSubType_id = null;\r\n restriction.stateUniqueIdentifier = null;\r\n restriction.statusUniqueIdentifier = null;\r\n restriction.restrictionType = \"P\";\r\n restriction.states = this.getStates();\r\n restriction.statuses = this.getStatuses();\r\n restriction.processTypes = this.getProcessTypes();\r\n restriction.processSubTypes = this.getProcessSubTypes();\r\n restriction.reviewConfigurations = this.getReviewConfigurations();\r\n restriction.reviewTypes = this.getReviewTypes();\r\n restriction.assignmentClaims = this.getClaims();\r\n this.onObjectQueryModified(objectQuery);\r\n return restriction;\r\n };\r\n ObjectQueryService.prototype.createNewOrGroup = function (objectQuery, parent) {\r\n var restriction = this.createNewEntity(\"ObjectQueryDisjunction\", {});\r\n this.linkRestrictionParents(restriction, objectQuery, parent);\r\n restriction.restrictionType = \"D\";\r\n this.onObjectQueryModified(objectQuery);\r\n return restriction;\r\n };\r\n ObjectQueryService.prototype.createNewAndGroup = function (objectQuery, parent) {\r\n var restriction = this.createNewEntity(\"ObjectQueryConjunction\", {});\r\n this.linkRestrictionParents(restriction, objectQuery, parent);\r\n restriction.restrictionType = \"C\";\r\n this.onObjectQueryModified(objectQuery);\r\n return restriction;\r\n };\r\n ObjectQueryService.prototype.createNewInputSchema = function (objectQuery) {\r\n var schema = this.createNewEntity(\"ObjectSchema\", {});\r\n //objectQuery.myInputObjectSchema = schema;\r\n //objectQuery.inputObjectSchema_id = schema.id;\r\n schema.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n schema.name = objectQuery.name + \" Input\";\r\n schema.isList = false;\r\n return schema;\r\n };\r\n ObjectQueryService.prototype.createProjectionSchema = function (objectQuery) {\r\n var schema = this.createNewEntity(\"ObjectSchema\", {});\r\n //objectQuery.myProjectionObjectSchema = schema;\r\n //objectQuery.projectionObjectSchema_id = schema.id;\r\n schema.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n schema.name = objectQuery.name + \" Output\";\r\n schema.isList = true;\r\n return schema;\r\n };\r\n ObjectQueryService.prototype.createNewInputListSchema = function (objectQuery, objectSchema, name) {\r\n var schema = this.createNewEntity(\"ObjectSchema\", {});\r\n schema.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n schema.isList = true;\r\n schema.name = name;\r\n return schema;\r\n };\r\n ObjectQueryService.prototype.createNewProjectionListSchema = function (objectQuery, objectSchema, name) {\r\n var schema = this.createNewEntity(\"ObjectSchema\", {});\r\n schema.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n schema.isList = true;\r\n schema.name = name;\r\n return schema;\r\n };\r\n ObjectQueryService.prototype.createNewSchemaProperty = function (objectSchema) {\r\n var property = this.createNewEntity(\"SchemaProperty\", {});\r\n property.objectSchema_id = objectSchema.id;\r\n property.parentObjectSchema = objectSchema;\r\n property.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return property;\r\n };\r\n ObjectQueryService.prototype.getAllObjectQueriesForProcessConfiguration = function (id) {\r\n //.Left.JoinQueryOver(() => objectQuery.MyInputObjectSchema, () => inputSchema)\r\n //.Left.JoinQueryOver(() => inputSchema.Properties, () => inputSchemaProperty)\r\n //.Left.JoinQueryOver(() => inputSchemaProperty.TypeSchema, () => inputTypeSchema)\r\n //.Left.JoinQueryOver(() => objectQuery.MyProjectionObjectSchema, () => projectionSchema)\r\n //.Left.JoinQueryOver(() => projectionSchema.Properties, () => projectionSchemaProperty)\r\n //.Left.JoinQueryOver(() => projectionSchemaProperty.TypeSchema, () => projectionTypeSchema)\r\n //.Left.JoinQueryOver(() => objectQuery.Projections, () => objectQueryProjection)\r\n //.Left.JoinQueryOver(() => objectQueryProjection.ReportDataTreeItem, () => projectionTreeItem)\r\n //.Left.JoinQueryOver(() => projectionTreeItem.SchemaProperty)\r\n //.Left.JoinQueryOver(() => objectQuery.Restrictions)\r\n //.Left.JoinQueryOver(() => objectQuery.Predicates, () => objectQueryPredicate)\r\n //.Left.JoinQueryOver(() => objectQueryPredicate.LeftReportDataTreeItem)\r\n //.Left.JoinQueryOver(() => objectQueryPredicate.RightParameterTreeItem)\r\n //.Left.JoinQueryOver(() => objectQueryPredicate.MyObjectQuery)\r\n var expand = \"myInputObjectSchema.properties.typeSchema, \" +\r\n \"myProjectionObjectSchema.properties.typeSchema, \" +\r\n \"projections.reportDataTreeItem.schemaProperty, \" +\r\n \"restrictions, \" +\r\n \"predicates.leftReportDataTreeItem, \" +\r\n \"predicates.rightParameterTreeItem, \" +\r\n \"predicates.myObjectQuery\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ObjectQueries\")\r\n .where(\"processConfiguration_id\", \"==\", id)\r\n .expand(expand);\r\n return this.executeQuery(query);\r\n };\r\n ObjectQueryService.prototype.getProcessLevelObjectQueries = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ObjectQueries\")\r\n .where(\"processConfiguration_id\", \"==\", id);\r\n return this.executeQuery(query);\r\n };\r\n ObjectQueryService.prototype.getAllObjectQueriesForSystemLevel = function () {\r\n var expand = \"myInputObjectSchema.properties.typeSchema, \" +\r\n \"myProjectionObjectSchema.properties.typeSchema, \" +\r\n \"projections.reportDataTreeItem.schemaProperty, \" +\r\n \"restrictions, \" +\r\n \"predicates.leftReportDataTreeItem, \" +\r\n \"predicates.rightParameterTreeItem, \" +\r\n \"predicates.myObjectQuery\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ObjectQueries\")\r\n .where(\"processConfiguration_id\", \"==\", null)\r\n .expand(expand);\r\n return this.executeQuery(query);\r\n };\r\n ObjectQueryService.prototype.getReviewConfigurations = function () {\r\n return Enumerable\r\n .from(this.reviewConfigurations)\r\n .select(function (i) { return new ObjectQueryStringTuple(i.name, i.uniqueIdentifier); })\r\n .toArray();\r\n };\r\n ObjectQueryService.prototype.getReviewTypes = function () {\r\n var _this = this;\r\n var result = new Array();\r\n if (this.reviewConfigurations != null) {\r\n for (var i = 0; i < this.reviewConfigurations.length; i++) {\r\n if (this.reviewConfigurations[i].reviewTypes == null || this.reviewConfigurations[i].reviewTypes.length === 0)\r\n continue;\r\n for (var ii = 0; ii < this.reviewConfigurations[i].reviewTypes.length; ii++) {\r\n if (Enumerable.from(result).any(function (x) { return x.value === _this.reviewConfigurations[i].reviewTypes[ii].uniqueIdentifier; }))\r\n continue;\r\n result.push(new ObjectQueryStringTuple(\"[\" + this.reviewConfigurations[i].reviewTypeCodeName + \"] \" + this.reviewConfigurations[i].reviewTypes[ii].shortDescription, this.reviewConfigurations[i].reviewTypes[ii].uniqueIdentifier));\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n ObjectQueryService.prototype.getClaims = function () {\r\n return Enumerable\r\n .from(this.claims)\r\n .select(function (i) { return new ObjectQueryStringTuple(i.name, i.uniqueIdentifier); })\r\n .toArray();\r\n };\r\n ObjectQueryService.prototype.getProcessTypes = function () {\r\n return Enumerable\r\n .from(this.processTypes)\r\n .select(function (i) { return new ObjectQueryStringTuple(i.name, i.id); })\r\n .toArray();\r\n };\r\n ObjectQueryService.prototype.getProcessSubTypes = function () {\r\n return Enumerable\r\n .from(this.processSubTypes)\r\n .select(function (i) { return new ObjectQueryStringTuple(i.name, i.id); })\r\n .toArray();\r\n };\r\n ObjectQueryService.prototype.getCustomTransformers = function () {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.extensibilityService.getCustomTransformers()\r\n .then(function (result) {\r\n d.resolve(Enumerable.from(result.extensibleComponents).where(function (i) { return i.enabled; }).toArray());\r\n });\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.getStatuses = function () {\r\n return Enumerable\r\n .from(this.statuses)\r\n .select(function (i) { return new ObjectQueryStringTuple(i.shortDescription, i.uniqueIdentifier); })\r\n .toArray();\r\n };\r\n ObjectQueryService.prototype.getStates = function () {\r\n var _this = this;\r\n var result = new Array();\r\n for (var i = 0; i < this.statuses.length; i++) {\r\n var states = Enumerable\r\n .from(this.statuses[i].states)\r\n .select(function (x) { return new ObjectQueryStringTuple(\"[\" + _this.statuses[i].shortDescription + \"] \" + x.shortDescription, x.uniqueIdentifier); })\r\n .toArray();\r\n result.addRange(states);\r\n }\r\n return result;\r\n };\r\n ObjectQueryService.prototype.loadConfig = function (id) {\r\n var self = this;\r\n var d = self.qService.defer();\r\n if (id == null) {\r\n self.$http.get(\"api/ObjectQuery/ProcessStatusList\").then(function (result) {\r\n if (result != null && result.data != null) {\r\n var statuses = result.data;\r\n self.statuses = statuses;\r\n self.$http.get(\"api/ObjectQuery/ProcessTypeList\").then(function (result2) {\r\n var processTypes = result2.data;\r\n self.processTypes = processTypes;\r\n self.$http.get(\"api/ObjectQuery/ReviewConfigurationList\").then(function (result3) {\r\n var reviewConfigurations = result3.data;\r\n self.reviewConfigurations = reviewConfigurations;\r\n self.$http.get(\"api/ObjectQuery/AssignmentClaimList\").then(function (result4) {\r\n var assignmentClaims = result4.data;\r\n self.claims = assignmentClaims;\r\n self.$http.get(\"api/ObjectQuery/ProcessSubTypeList\").then(function (result5) {\r\n var processSubTypes = result5.data;\r\n self.processSubTypes = processSubTypes;\r\n d.resolve();\r\n });\r\n });\r\n });\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n self.$http.get(\"api/ObjectQuery/ProcessStatusList?processConfigurationId=\" + id).then(function (result) {\r\n if (result != null && result.data != null) {\r\n var statuses = result.data;\r\n self.statuses = statuses;\r\n self.$http.get(\"api/ObjectQuery/ReviewConfigurationList?processConfigurationId=\" + id).then(function (result2) {\r\n var reviewConfigurations = result2.data;\r\n self.reviewConfigurations = reviewConfigurations;\r\n self.$http.get(\"api/ObjectQuery/AssignmentClaimList?processConfigurationId=\" + id).then(function (result3) {\r\n var assignmentClaims = result3.data;\r\n self.claims = assignmentClaims;\r\n self.$http.get(\"api/ObjectQuery/ApiQueryList\").then(function (result4) {\r\n var apiActions = result4.data;\r\n self.apiActions = apiActions;\r\n self.$http.get(\"api/ObjectQuery/ProcessSubTypeList?processConfigurationId=\" + id).then(function (result5) {\r\n var processSubTypes = result5.data;\r\n self.processSubTypes = processSubTypes;\r\n d.resolve();\r\n });\r\n });\r\n });\r\n });\r\n }\r\n });\r\n }\r\n return d.promise;\r\n };\r\n ObjectQueryService.prototype.linkRestrictionParents = function (restriction, objectQuery, parent) {\r\n restriction.myObjectQuery = objectQuery;\r\n restriction.objectQuery_id = objectQuery.id;\r\n if (parent != null) {\r\n restriction.myParentRestriction = parent;\r\n restriction.parentRestriction_id = parent.id;\r\n }\r\n };\r\n return ObjectQueryService;\r\n }(services.DataService));\r\n services.ObjectQueryService = ObjectQueryService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService(\"ObjectQueryService\", [\"breeze\", \"$q\", \"$http\", \"extensibilityService\", \"deleteService\"]);\r\n","/// \r\nmodule warsApp.services {\r\n \r\n export class ObjectQueryStatusType {\r\n groupName: string;\r\n uniqueIdentifier: string;\r\n shortDescription: string;\r\n states: Array;\r\n }\r\n\r\n export class ObjectQueryStateType {\r\n uniqueIdentifier: string;\r\n shortDescription: string;\r\n }\r\n\r\n export class ObjectQueryProcessType {\r\n id: string;\r\n name: string;\r\n }\r\n\r\n export class ObjectQueryProcessSubType {\r\n id: string;\r\n name: string;\r\n }\r\n\r\n export class ObjectQueryReviewConfiguration {\r\n uniqueIdentifier: string;\r\n name: string;\r\n reviewTypeCodeName: string;\r\n reviewTypes: Array;\r\n }\r\n\r\n export class ObjectQueryApiAction {\r\n id: string;\r\n name: string;\r\n processTypeId: string;\r\n }\r\n\r\n export class ObjectQueryReviewType {\r\n uniqueIdentifier: string;\r\n shortDescription: string;\r\n }\r\n\r\n export class ObjectQueryAssignmentClaim {\r\n name: string;\r\n uniqueIdentifier: string;\r\n }\r\n\r\n export class ObjectQueryStringTuple {\r\n name: string;\r\n value: string;\r\n\r\n constructor(name: string, value: string) {\r\n this.name = name;\r\n this.value = value;\r\n }\r\n }\r\n\r\n export class ObjectQueryFormApiQuery {\r\n name: string;\r\n id: string;\r\n schemaProperties: Array;\r\n }\r\n\r\n export class ObjectQueryFormApiForm {\r\n name: string;\r\n id: string;\r\n uniqueIdentifier: string;\r\n schemaProperties: Array;\r\n }\r\n\r\n export class ObjectQueryGroupSetting {\r\n name: string;\r\n schemaName: string;\r\n order: number;\r\n }\r\n\r\n export class ObjectQueryApiSchemaProperty {\r\n name: string;\r\n id: string;\r\n uniqueIdentifier: string;\r\n variableType: Wars.Domain.Model.Codes.Enums.VariableType;\r\n schemaProperties: Array;\r\n }\r\n\r\n export class ObjectQueryService extends services.DataService {\r\n\r\n statuses: Array;\r\n processTypes: Array;\r\n processSubTypes: Array;\r\n reviewConfigurations: Array;\r\n claims: Array;\r\n apiActions: Array;\r\n subQueries: Array;\r\n processIdSubQueries: Array;\r\n qService: angular.IQService;\r\n \r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http:angular.IHttpService, private extensibilityService: services.ExtensibilityService, private deleteService: services.DeleteService) {\r\n super(injectedBreeze, $q);\r\n var self = this;\r\n self.qService = $q;\r\n self.subscribeHasChanges(() => {\r\n var changes = warsBreeze.entityManager.getChanges();\r\n for (var i = 0; i < changes.length; i++) {\r\n var oqId: string;\r\n var oq: Wars.Domain.Model.ObjectQuery;\r\n var entityName = changes[i].entityAspect.entity.entityType.shortName;\r\n if (entityName === \"ObjectQuery\") {\r\n oq = changes[i];\r\n } else if (entityName === \"ObjectQueryProjection\") {\r\n if (changes[i].entityAspect.entityState.isModified()) {\r\n if ((changes[i].entityAspect.originalValues).propertyType !== undefined || \r\n (changes[i].entityAspect.originalValues).projectionType !== undefined) {\r\n (changes[i]).alias = \"\";\r\n }\r\n }\r\n oqId = (changes[i]).objectQuery_id;\r\n } else if (entityName === \"ObjectQueryPredicate\") {\r\n oqId = (changes[i]).objectQuery_id;\r\n } else if (entityName === \"ObjectQueryConjunction\") {\r\n oqId = (changes[i]).objectQuery_id;\r\n } else if (entityName === \"ObjectQueryDisjunction\") {\r\n oqId = (changes[i]).objectQuery_id;\r\n }\r\n if (oq != null) {\r\n self.onObjectQueryModified(oq); \r\n } else if (oqId != null) {\r\n //get entity from cache\r\n self.fetchById(oqId, \"ObjectQuery\")\r\n .then((result) => {\r\n if (result != null) {\r\n self.onObjectQueryModified(result);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n getObjectQueryFormApiForms(processConfigurationId: string): ng.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(`api/ObjectQuery/ObjectQueryFormApiList?processConfigurationId=${processConfigurationId}`).then((result) => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n getObjectQueryFormApiQueries(processConfigurationId: string): ng.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(`api/ObjectQuery/ProcessQueryList?processConfigurationId=${processConfigurationId}`).then((result) => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n getQueryApi(processConfigurationId: string): ng.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(`api/ObjectQuery/ObjectQueryFormApi?processConfigurationId=${processConfigurationId}`).then((result) => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n saveQueryApi(api: models.ObjectQueryFormModelApi): ng.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/ObjectQueryFormApi\", api).then(() => {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n }\r\n\r\n removeQueryApi(api: models.ObjectQueryFormModelApi): ng.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/RemoveObjectQueryFormApi\", api).then(() => {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n }\r\n\r\n addQueryResultMapping(api: models.ObjectQueryFormModelApi, mapSet: any): ng.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n var pack = {\r\n api: api,\r\n mapSet: mapSet\r\n }\r\n self.$http.post(\"api/ObjectQuery/AddQueryResultMapping\", pack).then((result) => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n removeResultMapping(mapping: models.ObjectQueryResultProperty, mapSet: any): ng.IPromise> {\r\n var self = this;\r\n var d = self.qService.defer();\r\n var pack = {\r\n mapping: mapping,\r\n mapSet: mapSet\r\n }\r\n self.$http.post(\"api/ObjectQuery/RemoveQueryResultMapping\", pack).then((result) => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n reorderResultMapping(mapping: models.ObjectQueryResultProperty, ascending: boolean, mapSet: any): ng.IPromise> {\r\n var self = this;\r\n var payload = {\r\n property: mapping,\r\n ascending: ascending,\r\n mapSet: mapSet\r\n };\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/ReorderQueryResultMapping\", payload).then((result) => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n updateMapSetOrder(mapSet: any, ascending: boolean): ng.IPromise> {\r\n var self = this;\r\n var payload = {\r\n ascending: ascending,\r\n mapSet: mapSet\r\n };\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/ReorderQueryResultMapSet\", payload).then((result) => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n saveResultMapping(mapping: models.ObjectQueryResultProperty): ng.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/SaveQueryResultMapping\", mapping).then(() => {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n }\r\n\r\n saveMapSet(mapSet: any): ng.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.post(\"api/ObjectQuery/SaveQueryResultMapSet\", mapSet).then(() => {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n }\r\n \r\n testExecution(objectQuery: Wars.Domain.Model.ObjectQuery): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(`api/ObjectQuery/TestExecution?objectQueryId=${objectQuery.id}`).then((result) => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n getGroupSettings(processConfigId: string, formUniqueIdentifier: string): angular.IPromise> {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.$http.get(`api/ObjectQuery/FormGroupSettings?processConfigId=${processConfigId}&formUniqueIdentifier=${formUniqueIdentifier}`).then((results) => {\r\n d.resolve(results.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n executeForm(processTypeId: string, formUniqueIdentifier: string, processId: string, groupSettings: Array): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n if (groupSettings != null && groupSettings.length > 0) {\r\n groupSettings = Enumerable.from(groupSettings).orderBy(i => i.order).toArray();\r\n }\r\n self.$http.post(\"api/ObjectQuery/ExecuteForm\",\r\n {\r\n processTypeId: processTypeId,\r\n formUniqueIdentifier: formUniqueIdentifier,\r\n processId: processId,\r\n groupSettings: groupSettings\r\n })\r\n .then((results) => {\r\n d.resolve(results.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n removeSubQuery(objectQueryId: string) {\r\n var self = this;\r\n for (var i = 0; i < self.subQueries.length; i++) {\r\n if (self.subQueries[i].id === objectQueryId) {\r\n self.subQueries.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n removeProcessIdSubQuery(objectQueryId: string) {\r\n var self = this;\r\n for (var i = 0; i < self.processIdSubQueries.length; i++) {\r\n if (self.processIdSubQueries[i].id === objectQueryId) {\r\n self.processIdSubQueries.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n deleteObjectSchema(objectSchema: Wars.Domain.Model.ObjectSchema): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.deleteService.deleteRecursivelyWithoutWarning(\"ObjectSchema\", objectSchema.id, true).then((result) => {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n }\r\n\r\n onObjectQueryModified(objectQuery: Wars.Domain.Model.ObjectQuery): void {\r\n var self = this;\r\n //pre-delete and executable status save\r\n objectQuery.isExecutable = false;\r\n //remove from subqueries\r\n self.removeSubQuery(objectQuery.id);\r\n self.removeProcessIdSubQuery(objectQuery.id);\r\n }\r\n\r\n deleteObjectQuery(objectQuery: Wars.Domain.Model.ObjectQuery): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.deleteService.deleteWithModalConfirmationIfNecessary(\"ObjectQuery\", objectQuery.id, null, () => {\r\n d.resolve(null);\r\n }, null, (result) => {\r\n d.reject(result);\r\n });\r\n return d.promise;\r\n }\r\n \r\n createNewObjectQuery(): Wars.Domain.Model.ObjectQuery {\r\n var q = this.createNewEntity(\"ObjectQuery\", {});\r\n (q).canAddProjection = true;\r\n return q;\r\n }\r\n\r\n isAggregateQuery(objectQuery: Wars.Domain.Model.ObjectQuery): boolean {\r\n if ((objectQuery).isAggregateQuery != null) {\r\n return (objectQuery).isAggregateQuery;\r\n }\r\n if (objectQuery.projections.length > 0) {\r\n if (Enumerable.from(objectQuery.projections).all(i => i.projectionType === Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property)) {\r\n (objectQuery).isAggregateQuery = false;\r\n } else {\r\n (objectQuery).isAggregateQuery = true;\r\n }\r\n }\r\n return (objectQuery).isAggregateQuery;\r\n }\r\n\r\n createNewObjectQueryProjection(objectQuery: Wars.Domain.Model.ObjectQuery, isProcessLevel: boolean): Wars.Domain.Model.ObjectQueryProjection {\r\n var projection = this.createNewEntity(\"ObjectQueryProjection\", {});\r\n projection.myObjectQuery = objectQuery;\r\n projection.objectQuery_id = objectQuery.id;\r\n projection.descending = false;\r\n if (this.isAggregateQuery(objectQuery)) {\r\n projection.projectionTypeContext.removeSpecifiedOptions = [];\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property);\r\n projection.projectionType = Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group;\r\n var hasAggregaate = Enumerable.from(objectQuery.projections).any(i => i.projectionType !== Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group);\r\n if (hasAggregaate) {\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Count);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Max);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Min);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Sum);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Avg);\r\n }\r\n } else {\r\n projection.projectionTypeContext.removeSpecifiedOptions = [];\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Group);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Count);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Max);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Min);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Sum);\r\n projection.projectionTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Avg);\r\n projection.projectionType = Wars.Domain.Model.Codes.Enums.ObjectQueryProjectionType.Property; \r\n }\r\n projection.propertyType = Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property;\r\n if (objectQuery.projections.length === 0) {\r\n projection.orderNumerator = 1;\r\n } else {\r\n var l = Enumerable\r\n .from(objectQuery.projections)\r\n .orderByDescending(i => i.orderNumerator)\r\n .toArray();\r\n projection.orderNumerator = l[0].orderNumerator + 1;\r\n }\r\n projection.propertyTypeContext.removeSpecifiedOptions = [];\r\n if (isProcessLevel) {\r\n projection.propertyTypeContext.removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.ProcessType);\r\n }\r\n if (this.getStates().length === 0) {\r\n projection\r\n .propertyTypeContext\r\n .removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Status);\r\n projection\r\n .propertyTypeContext\r\n .removeSpecifiedOptions.push(Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.State);\r\n }\r\n this.onObjectQueryModified(objectQuery);\r\n return projection;\r\n }\r\n\r\n createNewPredicate(objectQuery: Wars.Domain.Model.ObjectQuery, parent: Wars.Domain.Model.ObjectQueryRestriction): Wars.Domain.Model.ObjectQueryPredicate {\r\n var restriction = this.createNewEntity(\"ObjectQueryPredicate\", {});\r\n this.linkRestrictionParents(restriction, objectQuery, parent);\r\n restriction.operatorType = Wars.Domain.Model.Codes.Enums.ObjectQueryRestrictionOperatorType.Equals;\r\n restriction.rightRestrictionType = Wars.Domain.Model.Codes.Enums.ObjectQueryRightRestrictionType.InputParameterValue;\r\n restriction.propertyType = Wars.Domain.Model.Codes.Enums.ObjectQueryPropertyType.Property;\r\n restriction.processType = null;\r\n restriction.processType_id = null;\r\n restriction.processSubType_id = null;\r\n restriction.stateUniqueIdentifier = null;\r\n restriction.statusUniqueIdentifier = null;\r\n restriction.restrictionType = \"P\";\r\n restriction.states = this.getStates();\r\n restriction.statuses = this.getStatuses();\r\n restriction.processTypes = this.getProcessTypes();\r\n restriction.processSubTypes = this.getProcessSubTypes();\r\n restriction.reviewConfigurations = this.getReviewConfigurations();\r\n restriction.reviewTypes = this.getReviewTypes();\r\n restriction.assignmentClaims = this.getClaims();\r\n this.onObjectQueryModified(objectQuery);\r\n return restriction;\r\n }\r\n\r\n createNewOrGroup(objectQuery: Wars.Domain.Model.ObjectQuery, parent: Wars.Domain.Model.ObjectQueryRestriction): Wars.Domain.Model.ObjectQueryDisjunction {\r\n var restriction = this.createNewEntity(\"ObjectQueryDisjunction\", {});\r\n this.linkRestrictionParents(restriction, objectQuery, parent);\r\n restriction.restrictionType = \"D\";\r\n this.onObjectQueryModified(objectQuery);\r\n return restriction;\r\n }\r\n\r\n createNewAndGroup(objectQuery: Wars.Domain.Model.ObjectQuery, parent: Wars.Domain.Model.ObjectQueryRestriction): Wars.Domain.Model.ObjectQueryConjunction {\r\n var restriction = this.createNewEntity(\"ObjectQueryConjunction\", {});\r\n this.linkRestrictionParents(restriction, objectQuery, parent);\r\n restriction.restrictionType = \"C\";\r\n this.onObjectQueryModified(objectQuery);\r\n return restriction;\r\n }\r\n\r\n createNewInputSchema(objectQuery: Wars.Domain.Model.ObjectQuery): Wars.Domain.Model.ObjectSchema {\r\n var schema = this.createNewEntity(\"ObjectSchema\", {});\r\n //objectQuery.myInputObjectSchema = schema;\r\n //objectQuery.inputObjectSchema_id = schema.id;\r\n schema.uniqueIdentifier = UtilityService.generateGuidComb();\r\n schema.name = `${objectQuery.name} Input`;\r\n schema.isList = false;\r\n return schema;\r\n }\r\n\r\n createProjectionSchema(objectQuery: Wars.Domain.Model.ObjectQuery): Wars.Domain.Model.ObjectSchema {\r\n var schema = this.createNewEntity(\"ObjectSchema\", {});\r\n //objectQuery.myProjectionObjectSchema = schema;\r\n //objectQuery.projectionObjectSchema_id = schema.id;\r\n schema.uniqueIdentifier = UtilityService.generateGuidComb();\r\n schema.name = `${objectQuery.name} Output`;\r\n schema.isList = true;\r\n return schema;\r\n }\r\n\r\n createNewInputListSchema(objectQuery: Wars.Domain.Model.ObjectQuery, objectSchema: Wars.Domain.Model.ObjectSchema, name: string): Wars.Domain.Model.ObjectSchema {\r\n var schema = this.createNewEntity(\"ObjectSchema\", {});\r\n schema.uniqueIdentifier = UtilityService.generateGuidComb();\r\n schema.isList = true;\r\n schema.name = name;\r\n return schema;\r\n }\r\n\r\n createNewProjectionListSchema(objectQuery: Wars.Domain.Model.ObjectQuery, objectSchema: Wars.Domain.Model.ObjectSchema, name: string): Wars.Domain.Model.ObjectSchema {\r\n var schema = this.createNewEntity(\"ObjectSchema\", {});\r\n schema.uniqueIdentifier = UtilityService.generateGuidComb();\r\n schema.isList = true;\r\n schema.name = name;\r\n return schema;\r\n }\r\n\r\n createNewSchemaProperty(objectSchema: Wars.Domain.Model.ObjectSchema): Wars.Domain.Model.SchemaProperty {\r\n var property = this.createNewEntity(\"SchemaProperty\", {});\r\n property.objectSchema_id = objectSchema.id;\r\n property.parentObjectSchema = objectSchema;\r\n property.uniqueIdentifier = UtilityService.generateGuidComb();\r\n return property;\r\n }\r\n \r\n getAllObjectQueriesForProcessConfiguration(id: string): ng.IPromise {\r\n\r\n //.Left.JoinQueryOver(() => objectQuery.MyInputObjectSchema, () => inputSchema)\r\n //.Left.JoinQueryOver(() => inputSchema.Properties, () => inputSchemaProperty)\r\n //.Left.JoinQueryOver(() => inputSchemaProperty.TypeSchema, () => inputTypeSchema)\r\n //.Left.JoinQueryOver(() => objectQuery.MyProjectionObjectSchema, () => projectionSchema)\r\n //.Left.JoinQueryOver(() => projectionSchema.Properties, () => projectionSchemaProperty)\r\n //.Left.JoinQueryOver(() => projectionSchemaProperty.TypeSchema, () => projectionTypeSchema)\r\n //.Left.JoinQueryOver(() => objectQuery.Projections, () => objectQueryProjection)\r\n //.Left.JoinQueryOver(() => objectQueryProjection.ReportDataTreeItem, () => projectionTreeItem)\r\n //.Left.JoinQueryOver(() => projectionTreeItem.SchemaProperty)\r\n //.Left.JoinQueryOver(() => objectQuery.Restrictions)\r\n //.Left.JoinQueryOver(() => objectQuery.Predicates, () => objectQueryPredicate)\r\n //.Left.JoinQueryOver(() => objectQueryPredicate.LeftReportDataTreeItem)\r\n //.Left.JoinQueryOver(() => objectQueryPredicate.RightParameterTreeItem)\r\n //.Left.JoinQueryOver(() => objectQueryPredicate.MyObjectQuery)\r\n\r\n var expand = \"myInputObjectSchema.properties.typeSchema, \" +\r\n \"myProjectionObjectSchema.properties.typeSchema, \" +\r\n \"projections.reportDataTreeItem.schemaProperty, \" +\r\n \"restrictions, \" +\r\n \"predicates.leftReportDataTreeItem, \" +\r\n \"predicates.rightParameterTreeItem, \" +\r\n \"predicates.myObjectQuery\";\r\n\r\n \r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ObjectQueries\")\r\n .where(\"processConfiguration_id\", \"==\", id)\r\n .expand(expand);\r\n return this.executeQuery(query);\r\n }\r\n\r\n getProcessLevelObjectQueries(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ObjectQueries\")\r\n .where(\"processConfiguration_id\", \"==\", id);\r\n return this.executeQuery(query);\r\n }\r\n\r\n getAllObjectQueriesForSystemLevel(): ng.IPromise {\r\n var expand = \"myInputObjectSchema.properties.typeSchema, \" +\r\n \"myProjectionObjectSchema.properties.typeSchema, \" +\r\n \"projections.reportDataTreeItem.schemaProperty, \" +\r\n \"restrictions, \" +\r\n \"predicates.leftReportDataTreeItem, \" +\r\n \"predicates.rightParameterTreeItem, \" +\r\n \"predicates.myObjectQuery\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ObjectQueries\")\r\n .where(\"processConfiguration_id\", \"==\", null)\r\n .expand(expand);\r\n return this.executeQuery(query);\r\n }\r\n\r\n getReviewConfigurations(): Array {\r\n return Enumerable\r\n .from(this.reviewConfigurations)\r\n .select(i => new ObjectQueryStringTuple(i.name, i.uniqueIdentifier))\r\n .toArray();\r\n }\r\n\r\n getReviewTypes(): Array {\r\n var result = new Array();\r\n if (this.reviewConfigurations != null) {\r\n for (var i = 0; i < this.reviewConfigurations.length; i++) {\r\n if (this.reviewConfigurations[i].reviewTypes == null || this.reviewConfigurations[i].reviewTypes.length === 0) continue;\r\n for (var ii = 0; ii < this.reviewConfigurations[i].reviewTypes.length; ii++) {\r\n if (Enumerable.from(result).any(x => x.value === this.reviewConfigurations[i].reviewTypes[ii].uniqueIdentifier)) continue;\r\n result.push(new ObjectQueryStringTuple(`[${this.reviewConfigurations[i].reviewTypeCodeName}] ${this.reviewConfigurations[i].reviewTypes[ii].shortDescription}`, this.reviewConfigurations[i].reviewTypes[ii].uniqueIdentifier));\r\n }\r\n } \r\n }\r\n return result;\r\n }\r\n\r\n getClaims(): Array {\r\n return Enumerable\r\n .from(this.claims)\r\n .select(i => new ObjectQueryStringTuple(i.name, i.uniqueIdentifier))\r\n .toArray();\r\n }\r\n\r\n getProcessTypes(): Array {\r\n return Enumerable\r\n .from(this.processTypes)\r\n .select(i => new ObjectQueryStringTuple(i.name, i.id))\r\n .toArray();\r\n }\r\n\r\n getProcessSubTypes(): Array {\r\n return Enumerable\r\n .from(this.processSubTypes)\r\n .select(i => new ObjectQueryStringTuple(i.name, i.id))\r\n .toArray();\r\n }\r\n\r\n getCustomTransformers(): ng.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.extensibilityService.getCustomTransformers()\r\n .then((result) => {\r\n d.resolve(Enumerable.from(result.extensibleComponents).where(i => i.enabled).toArray());\r\n });\r\n return d.promise;\r\n }\r\n\r\n getStatuses(): Array {\r\n return Enumerable\r\n .from(this.statuses)\r\n .select(i => new ObjectQueryStringTuple(i.shortDescription, i.uniqueIdentifier))\r\n .toArray();\r\n }\r\n\r\n getStates(): Array {\r\n var result = new Array();\r\n for (var i = 0; i < this.statuses.length; i++) {\r\n var states = Enumerable\r\n .from(this.statuses[i].states)\r\n .select(x => new ObjectQueryStringTuple(`[${this.statuses[i].shortDescription}] ${x.shortDescription}`, x.uniqueIdentifier))\r\n .toArray();\r\n result.addRange(states);\r\n }\r\n return result;\r\n }\r\n\r\n loadConfig(id: string): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n if (id == null) {\r\n self.$http.get(\"api/ObjectQuery/ProcessStatusList\").then((result) => {\r\n if (result != null && result.data != null) {\r\n var statuses = result.data;\r\n self.statuses = >statuses;\r\n self.$http.get(\"api/ObjectQuery/ProcessTypeList\").then((result2) => {\r\n var processTypes = result2.data;\r\n self.processTypes = > processTypes;\r\n self.$http.get(\"api/ObjectQuery/ReviewConfigurationList\").then((result3) => {\r\n var reviewConfigurations = result3.data;\r\n self.reviewConfigurations = > reviewConfigurations;\r\n self.$http.get(\"api/ObjectQuery/AssignmentClaimList\").then((result4) => {\r\n var assignmentClaims = result4.data;\r\n self.claims = > assignmentClaims;\r\n self.$http.get(\"api/ObjectQuery/ProcessSubTypeList\").then((result5) => {\r\n var processSubTypes = result5.data;\r\n self.processSubTypes = > processSubTypes;\r\n d.resolve();\r\n });\r\n });\r\n });\r\n });\r\n }\r\n });\r\n } else {\r\n self.$http.get(`api/ObjectQuery/ProcessStatusList?processConfigurationId=${id}`).then((result) => {\r\n if (result != null && result.data != null) {\r\n var statuses = result.data;\r\n self.statuses = >statuses;\r\n self.$http.get(`api/ObjectQuery/ReviewConfigurationList?processConfigurationId=${id}`).then((result2) => {\r\n var reviewConfigurations = result2.data;\r\n self.reviewConfigurations = > reviewConfigurations;\r\n self.$http.get(`api/ObjectQuery/AssignmentClaimList?processConfigurationId=${id}`).then((result3) => {\r\n var assignmentClaims = result3.data;\r\n self.claims = > assignmentClaims;\r\n self.$http.get(\"api/ObjectQuery/ApiQueryList\").then((result4) => {\r\n var apiActions = result4.data;\r\n self.apiActions = > apiActions;\r\n self.$http.get(`api/ObjectQuery/ProcessSubTypeList?processConfigurationId=${id}`).then((result5) => {\r\n var processSubTypes = result5.data;\r\n self.processSubTypes = > processSubTypes;\r\n d.resolve();\r\n });\r\n });\r\n });\r\n });\r\n }\r\n }); \r\n }\r\n return d.promise;\r\n }\r\n\r\n private linkRestrictionParents(restriction: Wars.Domain.Model.ObjectQueryRestriction, objectQuery: Wars.Domain.Model.ObjectQuery, parent: Wars.Domain.Model.ObjectQueryRestriction) {\r\n restriction.myObjectQuery = objectQuery;\r\n restriction.objectQuery_id = objectQuery.id;\r\n if (parent != null) {\r\n restriction.myParentRestriction = parent;\r\n restriction.parentRestriction_id = parent.id;\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"ObjectQueryService\", [\"breeze\", \"$q\", \"$http\", \"extensibilityService\", \"deleteService\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ObjectSchemaService = /** @class */ (function (_super) {\r\n __extends(ObjectSchemaService, _super);\r\n function ObjectSchemaService(injectedBreeze, $q, schemaPropertyService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.schemaPropertyService = schemaPropertyService;\r\n return _this;\r\n }\r\n ObjectSchemaService.prototype.getObjectSchema = function (id) {\r\n return this.fetchById(id, \"ObjectSchema\");\r\n };\r\n ObjectSchemaService.prototype.getObjectSchemaExpanded = function (id) {\r\n var d = this.$q.defer();\r\n if (!id) {\r\n d.resolve(null);\r\n return d.promise;\r\n }\r\n var parameters = {\r\n objectSchemaId: id\r\n };\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ObjectSchemaExpanded\")\r\n .withParameters(parameters);\r\n this.executeQuery(query).then(function (groups) { return d.resolve(groups[0]); });\r\n return d.promise;\r\n };\r\n ObjectSchemaService.prototype.createNewObjectSchema = function () {\r\n var newObjectSchema = this.createNewEntity(\"ObjectSchema\");\r\n newObjectSchema.isList = false;\r\n newObjectSchema.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return newObjectSchema;\r\n };\r\n ObjectSchemaService.prototype.createNewListObjectSchema = function () {\r\n var newObjectSchema = this.createNewEntity(\"ObjectSchema\");\r\n newObjectSchema.isList = true;\r\n newObjectSchema.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return newObjectSchema;\r\n };\r\n ObjectSchemaService.prototype.validateObjectSchema = function (objectSchema) {\r\n var _this = this;\r\n var results = [];\r\n if (objectSchema && objectSchema.properties) {\r\n objectSchema.properties.forEach(function (property) {\r\n results = results.concat(_this.validateSchemaProperty(property));\r\n });\r\n }\r\n return results;\r\n };\r\n ObjectSchemaService.prototype.cloneObjectSchema = function (objectSchema, schemaPropertyId) {\r\n var _this = this;\r\n var obj = this.createNewObjectSchema();\r\n obj.name = objectSchema.name;\r\n obj.dataSource_id = objectSchema.dataSource_id;\r\n obj.formUniqueId = objectSchema.formUniqueId;\r\n obj.isList = objectSchema.isList;\r\n obj.clonedFromId = objectSchema.id;\r\n if (schemaPropertyId) {\r\n obj.schemaProperty_id = schemaPropertyId;\r\n }\r\n obj.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n objectSchema.properties.forEach(function (prop) {\r\n obj.properties.push(_this.cloneSchemaProperty(prop));\r\n });\r\n return obj;\r\n };\r\n ObjectSchemaService.prototype.cloneSchemaProperty = function (property) {\r\n var prop = this.schemaPropertyService.createNewSchemaProperty();\r\n prop.propertyType = property.propertyType;\r\n prop.name = property.name;\r\n prop.codeGroup_id = property.codeGroup_id;\r\n prop.isIndexed = property.isIndexed;\r\n prop.isSystemLevel = property.isSystemLevel;\r\n prop.scheduledResourceConfiguration_id = property.scheduledResourceConfiguration_id;\r\n prop.systemVariable_id = property.systemVariable_id;\r\n prop.type_id = property.type_id;\r\n prop.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n prop.clonedFromId = property.id;\r\n if (property.typeSchema) {\r\n prop.typeSchema = this.cloneObjectSchema(property.typeSchema, property.id);\r\n }\r\n return prop;\r\n };\r\n ObjectSchemaService.prototype.validateSchemaProperty = function (schemaProperty) {\r\n var results = [];\r\n if (services.UtilityService.isNullOrWhiteSpace(schemaProperty.name)) {\r\n results.push(\"The Name field cannot be empty.\");\r\n }\r\n if (schemaProperty.propertyType === null) {\r\n results.push(\"A Variable Type must be selected from the drop down.\");\r\n }\r\n if (schemaProperty.propertyType === 24 /* Code */ && schemaProperty.codeGroup === null) {\r\n results.push(\"A Code Group must be selected for Code Variable Types. Variable with missing code group: \" + schemaProperty.name ? schemaProperty.name : \"Un-Named\");\r\n }\r\n if (schemaProperty.typeSchema) {\r\n results = results.concat(this.validateObjectSchema(schemaProperty.typeSchema));\r\n }\r\n return results;\r\n };\r\n return ObjectSchemaService;\r\n }(services.DataService));\r\n services.ObjectSchemaService = ObjectSchemaService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService(\"ObjectSchemaService\", [\"breeze\", \"$q\", \"schemaPropertyService\"]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ObjectSchemaService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private schemaPropertyService: services.SchemaPropertyService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getObjectSchema(id: string): ng.IPromise {\r\n return this.fetchById(id, \"ObjectSchema\");\r\n }\r\n\r\n public getObjectSchemaExpanded(id: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n if (!id) {\r\n d.resolve(null);\r\n return d.promise;\r\n }\r\n\r\n var parameters = {\r\n objectSchemaId: id\r\n };\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ObjectSchemaExpanded\")\r\n .withParameters(parameters);\r\n\r\n this.executeQuery(query).then(\r\n (groups) => d.resolve(groups[0]));\r\n\r\n return d.promise;\r\n }\r\n\r\n public createNewObjectSchema(): warsApp.models.ObjectSchema {\r\n var newObjectSchema = this.createNewEntity(\"ObjectSchema\");\r\n newObjectSchema.isList = false;\r\n newObjectSchema.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return newObjectSchema;\r\n }\r\n\r\n public createNewListObjectSchema(): Wars.Domain.Model.ObjectSchema {\r\n var newObjectSchema = this.createNewEntity(\"ObjectSchema\");\r\n newObjectSchema.isList = true;\r\n newObjectSchema.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return newObjectSchema;\r\n }\r\n\r\n public validateObjectSchema(objectSchema: Wars.Domain.Model.ObjectSchema): string[] {\r\n var results = [];\r\n if (objectSchema && objectSchema.properties) {\r\n objectSchema.properties.forEach(property => {\r\n results = results.concat(this.validateSchemaProperty(property));\r\n });\r\n }\r\n return results;\r\n }\r\n\r\n public cloneObjectSchema(objectSchema: Wars.Domain.Model.ObjectSchema, schemaPropertyId?: string): warsApp.models.ObjectSchema {\r\n let obj = this.createNewObjectSchema();\r\n\r\n obj.name = objectSchema.name;\r\n obj.dataSource_id = objectSchema.dataSource_id;\r\n obj.formUniqueId = objectSchema.formUniqueId;\r\n obj.isList = objectSchema.isList;\r\n obj.clonedFromId = objectSchema.id;\r\n\r\n if (schemaPropertyId) {\r\n obj.schemaProperty_id = schemaPropertyId;\r\n }\r\n\r\n obj.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n\r\n objectSchema.properties.forEach(prop => {\r\n obj.properties.push(this.cloneSchemaProperty(prop));\r\n });\r\n\r\n return obj;\r\n }\r\n\r\n public cloneSchemaProperty(property: Wars.Domain.Model.SchemaProperty): warsApp.models.SchemaProperty {\r\n let prop = this.schemaPropertyService.createNewSchemaProperty();\r\n\r\n prop.propertyType = property.propertyType;\r\n prop.name = property.name;\r\n prop.codeGroup_id = property.codeGroup_id;\r\n prop.isIndexed = property.isIndexed;\r\n prop.isSystemLevel = property.isSystemLevel;\r\n prop.scheduledResourceConfiguration_id = property.scheduledResourceConfiguration_id;\r\n prop.systemVariable_id = property.systemVariable_id;\r\n prop.type_id = property.type_id;\r\n prop.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n prop.clonedFromId = property.id;\r\n\r\n if (property.typeSchema) {\r\n prop.typeSchema = this.cloneObjectSchema(property.typeSchema, property.id);\r\n }\r\n\r\n return prop;\r\n }\r\n\r\n private validateSchemaProperty(schemaProperty: Wars.Domain.Model.SchemaProperty): string[] {\r\n var results = [];\r\n if (UtilityService.isNullOrWhiteSpace(schemaProperty.name)) {\r\n results.push(\"The Name field cannot be empty.\");\r\n }\r\n if (schemaProperty.propertyType === null) {\r\n results.push(\"A Variable Type must be selected from the drop down.\");\r\n }\r\n if (schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Code && schemaProperty.codeGroup === null) {\r\n results.push(\"A Code Group must be selected for Code Variable Types. Variable with missing code group: \" + schemaProperty.name ? schemaProperty.name : \"Un-Named\");\r\n }\r\n if (schemaProperty.typeSchema) {\r\n results = results.concat(this.validateObjectSchema(schemaProperty.typeSchema));\r\n }\r\n return results;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"ObjectSchemaService\", [\"breeze\", \"$q\", \"schemaPropertyService\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var PaymentConfigurationService = /** @class */ (function (_super) {\r\n __extends(PaymentConfigurationService, _super);\r\n function PaymentConfigurationService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.logType = \"PaymentConfigurationService\";\r\n return _this;\r\n }\r\n PaymentConfigurationService.prototype.createNewPaymentConfig = function () {\r\n var newPaymentConfig = this.createNewEntity(\"PaymentConfiguration\");\r\n newPaymentConfig.showReceiptPage = false;\r\n var paymentAmountMapping = this.createNewEntity(\"PaymentInfoToFormProcessDataMapping\");\r\n paymentAmountMapping.paymentConfiguration_id = newPaymentConfig.id;\r\n paymentAmountMapping.isPaymentAmount = true;\r\n paymentAmountMapping.isPaymentDate = false;\r\n paymentAmountMapping.isPaymentUserId = false;\r\n var paymentDateMapping = this.createNewEntity(\"PaymentInfoToFormProcessDataMapping\");\r\n paymentDateMapping.paymentConfiguration_id = newPaymentConfig.id;\r\n paymentDateMapping.isPaymentAmount = false;\r\n paymentDateMapping.isPaymentDate = true;\r\n paymentDateMapping.isPaymentUserId = false;\r\n var paymentUserIdMapping = this.createNewEntity(\"PaymentInfoToFormProcessDataMapping\");\r\n paymentUserIdMapping.paymentConfiguration_id = newPaymentConfig.id;\r\n paymentUserIdMapping.isPaymentAmount = false;\r\n paymentUserIdMapping.isPaymentDate = false;\r\n paymentUserIdMapping.isPaymentUserId = true;\r\n newPaymentConfig.myMappings.push(paymentAmountMapping, paymentDateMapping, paymentUserIdMapping);\r\n return newPaymentConfig;\r\n };\r\n PaymentConfigurationService.prototype.isCompleteAndValid = function (paymentConfiguration) {\r\n return [];\r\n };\r\n PaymentConfigurationService.prototype.createNewCustomInfo = function (paymentConfigId) {\r\n var newCustomInfo = this.createNewEntity(\"PaymentCustomInformation\");\r\n newCustomInfo.paymentConfiguration_id = paymentConfigId;\r\n var customInfoMapping = this.createNewEntity(\"PaymentInfoToFormProcessDataMapping\");\r\n customInfoMapping.paymentConfiguration_id = paymentConfigId;\r\n customInfoMapping.customInfo = newCustomInfo;\r\n customInfoMapping.customInfo_id = newCustomInfo.id;\r\n customInfoMapping.isPaymentAmount = false;\r\n customInfoMapping.isPaymentDate = false;\r\n customInfoMapping.isPaymentUserId = false;\r\n return newCustomInfo;\r\n };\r\n return PaymentConfigurationService;\r\n }(services.DataService));\r\n services.PaymentConfigurationService = PaymentConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('PaymentConfigurationService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class PaymentConfigurationService extends services.DataService {\r\n private logType: string = \"PaymentConfigurationService\";\r\n\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http:angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createNewPaymentConfig(): Wars.Domain.Model.Payment.PaymentConfiguration {\r\n var newPaymentConfig = this.createNewEntity(\"PaymentConfiguration\");\r\n newPaymentConfig.showReceiptPage = false;\r\n\r\n var paymentAmountMapping = this.createNewEntity(\"PaymentInfoToFormProcessDataMapping\");\r\n paymentAmountMapping.paymentConfiguration_id = newPaymentConfig.id;\r\n paymentAmountMapping.isPaymentAmount = true;\r\n paymentAmountMapping.isPaymentDate = false;\r\n paymentAmountMapping.isPaymentUserId = false;\r\n\r\n\r\n var paymentDateMapping = this.createNewEntity(\"PaymentInfoToFormProcessDataMapping\");\r\n paymentDateMapping.paymentConfiguration_id = newPaymentConfig.id;\r\n paymentDateMapping.isPaymentAmount = false;\r\n paymentDateMapping.isPaymentDate = true;\r\n paymentDateMapping.isPaymentUserId = false;\r\n\r\n var paymentUserIdMapping = this.createNewEntity(\"PaymentInfoToFormProcessDataMapping\");\r\n paymentUserIdMapping.paymentConfiguration_id = newPaymentConfig.id;\r\n paymentUserIdMapping.isPaymentAmount = false;\r\n paymentUserIdMapping.isPaymentDate = false;\r\n paymentUserIdMapping.isPaymentUserId = true;\r\n\r\n newPaymentConfig.myMappings.push(paymentAmountMapping, paymentDateMapping, paymentUserIdMapping);\r\n\r\n return newPaymentConfig;\r\n }\r\n\r\n public isCompleteAndValid(paymentConfiguration: Wars.Domain.Model.Payment.PaymentConfiguration): Array {\r\n return [];\r\n }\r\n\r\n public createNewCustomInfo(paymentConfigId: string): Wars.Domain.Model.Payment.PaymentCustomInformation {\r\n var newCustomInfo = this.createNewEntity(\"PaymentCustomInformation\");\r\n newCustomInfo.paymentConfiguration_id = paymentConfigId;\r\n\r\n var customInfoMapping = this.createNewEntity(\"PaymentInfoToFormProcessDataMapping\");\r\n customInfoMapping.paymentConfiguration_id = paymentConfigId;\r\n customInfoMapping.customInfo = newCustomInfo;\r\n customInfoMapping.customInfo_id = newCustomInfo.id;\r\n customInfoMapping.isPaymentAmount = false;\r\n customInfoMapping.isPaymentDate = false;\r\n customInfoMapping.isPaymentUserId = false;\r\n\r\n return newCustomInfo;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('PaymentConfigurationService', ['breeze', '$q', '$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var PaymentService = /** @class */ (function (_super) {\r\n __extends(PaymentService, _super);\r\n function PaymentService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n PaymentService.prototype.getPaymentRequestDetails = function (processId, paymentConfigId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Payment/RequestDetails/\" + processId + \"/\" + paymentConfigId;\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n return PaymentService;\r\n }(services.HttpHandlerService));\r\n services.PaymentService = PaymentService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService(\"PaymentService\", [\"$http\"]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class PaymentService extends HttpHandlerService {\r\n\r\n constructor($http: ng.IHttpService)\r\n {\r\n super($http);\r\n }\r\n\r\n public getPaymentRequestDetails(processId: string, paymentConfigId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Payment/RequestDetails/\" + processId + \"/\" + paymentConfigId;\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.Payments.PaymentRequestDto) => {\r\n return result;\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"PaymentService\", [\"$http\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var PdfBindingService = /** @class */ (function (_super) {\r\n __extends(PdfBindingService, _super);\r\n function PdfBindingService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n PdfBindingService.prototype.createPdfBinding = function () {\r\n return this.createNewEntity(\"PdfBinding\");\r\n };\r\n PdfBindingService.prototype.createPdfBindingPage = function () {\r\n return this.createNewEntity(\"PdfBindingPage\");\r\n };\r\n PdfBindingService.prototype.getPdfBindings = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"PdfBindings\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n return PdfBindingService;\r\n }(services.DataService));\r\n services.PdfBindingService = PdfBindingService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('PdfBindingService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class PdfBindingService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createPdfBinding() : models.PdfBinding {\r\n return this.createNewEntity(\"PdfBinding\");\r\n }\r\n\r\n public createPdfBindingPage(): Wars.Domain.Model.PdfBindingPage {\r\n return this.createNewEntity(\"PdfBindingPage\");\r\n } \r\n\r\n public getPdfBindings(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"PdfBindings\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('PdfBindingService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ProcessActionService = /** @class */ (function (_super) {\r\n __extends(ProcessActionService, _super);\r\n function ProcessActionService(injectedBreeze, $q, $http, worflowService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.worflowService = worflowService;\r\n return _this;\r\n }\r\n ProcessActionService.prototype.getAllProcessActions = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessActions\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n ProcessActionService.prototype.createNewProcessAction = function (processConfigId) {\r\n var newProcessAction = this.createNewEntity(\"ProcessAction\");\r\n newProcessAction.name = \"New Process Action\";\r\n newProcessAction.processConfiguration_id = processConfigId;\r\n var newStartProcessActionWorkflowBlock = this.createNewEntity(\"StartProcessActionWorkflowBlock\");\r\n newStartProcessActionWorkflowBlock.blockType = 15 /* StartProcessAction */;\r\n newStartProcessActionWorkflowBlock.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newStartProcessActionWorkflowBlock.myProcessAction = newProcessAction;\r\n newStartProcessActionWorkflowBlock.isInitialWorkflowBlock = true;\r\n newStartProcessActionWorkflowBlock.name = \"Start\";\r\n newStartProcessActionWorkflowBlock.description = \"Entry point to the Process Action\";\r\n newProcessAction.myWorkflowBlocks.push(newStartProcessActionWorkflowBlock);\r\n return newProcessAction;\r\n };\r\n ProcessActionService.prototype.getProcessActionGroup = function (processActionId) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ProcessAction/' + processActionId).then(function (result) {\r\n var processActionGroupDto = result.data;\r\n var processActionGroup = new warsApp.models.ProcessActionGroup();\r\n var blocks = _this.worflowService.bindBlockList(processActionGroupDto.workflowBlocks);\r\n processActionGroup.intitialize(processActionGroupDto, blocks);\r\n d.resolve(processActionGroup);\r\n });\r\n return d.promise;\r\n };\r\n return ProcessActionService;\r\n }(services.DataService));\r\n services.ProcessActionService = ProcessActionService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ProcessActionService', ['breeze', '$q', '$http', 'workflowService']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ProcessActionService extends services.DataService {\r\n\r\n constructor(\r\n injectedBreeze: typeof breeze,\r\n $q: angular.IQService,\r\n private $http: angular.IHttpService,\r\n private worflowService: services.WorkflowService)\r\n {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getAllProcessActions(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessActions\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createNewProcessAction(processConfigId: string): Wars.Domain.Model.ProcessAction {\r\n var newProcessAction = this.createNewEntity(\"ProcessAction\");\r\n newProcessAction.name = \"New Process Action\";\r\n newProcessAction.processConfiguration_id = processConfigId;\r\n\r\n var newStartProcessActionWorkflowBlock = this.createNewEntity(\"StartProcessActionWorkflowBlock\");\r\n newStartProcessActionWorkflowBlock.blockType = Wars.Domain.Model.Codes.Enums.BlockType.StartProcessAction;\r\n newStartProcessActionWorkflowBlock.uniqueIdentifier = UtilityService.generateGuidComb();\r\n newStartProcessActionWorkflowBlock.myProcessAction = newProcessAction;\r\n newStartProcessActionWorkflowBlock.isInitialWorkflowBlock = true;\r\n newStartProcessActionWorkflowBlock.name = \"Start\";\r\n newStartProcessActionWorkflowBlock.description = \"Entry point to the Process Action\";\r\n\r\n newProcessAction.myWorkflowBlocks.push(newStartProcessActionWorkflowBlock);\r\n\r\n return newProcessAction;\r\n }\r\n\r\n public getProcessActionGroup(processActionId: string): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/ProcessAction/' + processActionId).then(\r\n (result: any) => {\r\n var processActionGroupDto: Wars.Domain.Model.Dtos.Workflow.ProcessActionGroupDto = result.data;\r\n var processActionGroup = new models.ProcessActionGroup();\r\n var blocks = this.worflowService.bindBlockList(processActionGroupDto.workflowBlocks);\r\n processActionGroup.intitialize(processActionGroupDto, blocks);\r\n d.resolve(processActionGroup);\r\n });\r\n\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ProcessActionService', ['breeze', '$q', '$http', 'workflowService']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ProcessConfigurationService = /** @class */ (function (_super) {\r\n __extends(ProcessConfigurationService, _super);\r\n function ProcessConfigurationService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.logType = \"ProcessConfigurationService\";\r\n return _this;\r\n }\r\n ProcessConfigurationService.prototype.createCondition = function (field) {\r\n var condition = (this.createNewEntity(\"Condition\", { field: field }));\r\n condition.expression = this.createNewEntity(\"GroupExpression\");\r\n services.WarsLogger.logDebug(\"Creating Condition\", this.logType, condition);\r\n return condition;\r\n };\r\n ProcessConfigurationService.prototype.createNewCondition = function () {\r\n var condition = this.createNewEntity(\"Condition\");\r\n condition.name = '';\r\n condition.expression = this.createGroupExpression();\r\n services.WarsLogger.logDebug(\"Creating New Condition\", this.logType, condition);\r\n return condition;\r\n };\r\n ProcessConfigurationService.prototype.createGroupExpression = function () {\r\n var exp = this.createNewEntity(\"GroupExpression\");\r\n exp.expressionType = 2 /* Group */;\r\n return exp;\r\n };\r\n ProcessConfigurationService.prototype.getRelatedProcessTypeClaims = function (processType) {\r\n var d = this.$q.defer();\r\n var p1 = breeze.Predicate.create('processType_id', '==', processType);\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(p1)\r\n .expand(\"myClaims\");\r\n this.executeQuery(query).then(function (r) {\r\n var processConfig = Enumerable.from(r).single(function (x) { return x.configurationStatus == 2 /* Active */; });\r\n d.resolve(processConfig.myClaims);\r\n });\r\n return d.promise;\r\n };\r\n ProcessConfigurationService.prototype.getById = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id);\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getProcessConfigurationEagerLoadConditions = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myConditions.expression, myConditions.tags');\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getProcessConfigurationEagerEditFormParameters = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myConditions.expression, myConditions.tags, myPaymentConfigurations');\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getProcessConfigurationEagerLoadCalculations = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myCalculations');\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getProcessConfigurationEagerLoadPaymentInfo = function (id) {\r\n var expand = \"myPaymentConfigurations.myCustomActionInputs.myTreeItem, \" +\r\n \"myPaymentConfigurations.myPaymentRequestFormValueLookup.myTreeItem, \" +\r\n \"myPaymentConfigurations.amountTreeItem, \" +\r\n \"myPaymentConfigurations.myMappings.treeItem, \" +\r\n \"myPaymentConfigurations.myMappings.customInfo, \" +\r\n \"myPaymentConfigurations.myPaymentCustomInformation.valueCalculation\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getProcessConfigurationWithForms = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myForms, myProcessType');\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getProcessConfigEagerLoadProcessType = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myProcessType');\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getProcessConfigurationForTree = function (id) {\r\n var expandString = \"myForms.mySteps.objectSchema, \" +\r\n \"myForms.formSchema.properties.typeSchema.properties.typeSchema.properties, \" +\r\n \"myCalculations.valueOperation, \" +\r\n \"myConditions, \" +\r\n \"myClaims, \" +\r\n \"myConstants, \" +\r\n \"myEmailGroups, \" +\r\n \"myStaticDocuments, \" +\r\n \"myTimeTrackerContainers.myTimeTracker, \" +\r\n \"myInterProcessApis.myOutputSchema.properties, \" +\r\n \"myCodeGroups.codes, \" +\r\n \"myRelatedClaimProcessTypes.relatedClaims\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand(expandString);\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getProcessConfigurationExpandFieldsAndEmailConfigs = function (id) {\r\n var expand = \"myForms.mySteps.formSections.fields.schemaProperty.codeGroup, \" +\r\n \"myEmailConfigurations.documents\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getWorkflowExpandFieldsAndPdfBindings = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myForms.mySteps.formSections.fields.schemaProperty.codeGroup, myPdfBindings');\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getExpandFields = function (id) {\r\n var expand = \"myForms.mySteps.objectSchema, \" +\r\n \"myForms.mySteps.formSections.fields.schemaProperty, \" +\r\n \"myForms.mySteps.formSections.fields.autoCompleteConfiguration.processType\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.getFieldsAndVariables = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myForms.mySteps.formSections.objectSchema, myForms.mySteps.formSections.fields.schemaProperty, processDataSchema.properties.typeSchema.properties');\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.loadProcessConfigurationStatusGroup = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where('id', '==', processConfigId)\r\n .expand('myStatusCodeGroup.myStatuses.myStates');\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.loadProcessConfigurationDocumentTypes = function (appConfigId) {\r\n var d = this.$q.defer();\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where('id', '==', appConfigId)\r\n .expand('documentTypeCodeGroup.codes');\r\n this.executeQuery(query).then(function (appConfigs) { return d.resolve(appConfigs[0]); });\r\n return d.promise;\r\n };\r\n ProcessConfigurationService.prototype.loadFieldGroup = function (field) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Fields\")\r\n .where('id', '==', field.id)\r\n .expand('schemaProperty.codeGroup.codes');\r\n this.executeQuery(query);\r\n };\r\n ProcessConfigurationService.prototype.loadFieldExcludes = function (field) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"Fields\")\r\n .where('id', '==', field.id)\r\n .expand(\"fieldExcludedStatuses.statusCode,fieldExcludedSystemCodes.systemCode, fieldExcludedStates.stateCode \");\r\n this.executeQuery(query);\r\n };\r\n ProcessConfigurationService.prototype.getScheduleResourceInstances = function (processConfigId) {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ProcessConfiguration/' + processConfigId + \"/ScheduleResourceInstances\").then(function (result) { return d.resolve(result.data); });\r\n return d.promise;\r\n };\r\n ProcessConfigurationService.prototype.getPermitSubTypeInfo = function (processConfigId) {\r\n var expand = \"mySubTypeConfiguration.myProcessSubTypes.myCreateSecurityMatrix, \" +\r\n \"mySubTypeConfiguration.myProcessSubTypes.myCreateProcessAction, \" +\r\n \"mySubTypeConfiguration.myProcessSubTypes.myProcessClaimToGrantToProcessCreator, \" +\r\n \"myStatusCodeGroup.myStatuses.myStates\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where('id', '==', processConfigId)\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n ProcessConfigurationService.prototype.version = function (id, versionName) {\r\n var _this = this;\r\n var params = {\r\n versionName: versionName\r\n };\r\n var handlerUrl = \"api/ProcessConfiguration/\" + id + \"/Version\";\r\n var result = this.$http.post(handlerUrl, params)\r\n .then(function (response) { return _this.handlerResponded(response, params); });\r\n return result;\r\n };\r\n ProcessConfigurationService.prototype.beginActivation = function (id) {\r\n var _this = this;\r\n var handlerUrl = \"api/ProcessConfiguration/\" + id + \"/BeginActivation\";\r\n var params = {};\r\n var result = this.$http.post(handlerUrl, params)\r\n .then(function (response) { return _this.handlerResponded(response, params); });\r\n return result;\r\n };\r\n ProcessConfigurationService.prototype.getTopLevelSchemaProperties = function (processConfigId) {\r\n var _this = this;\r\n var deferred = this.$q.defer();\r\n this.getFieldsAndVariables(processConfigId).then(function (processConfig) {\r\n var processSchemaProperties = _this.getTopLevelSchemaPropertiesInternal(processConfig);\r\n deferred.resolve(processSchemaProperties);\r\n });\r\n return deferred.promise;\r\n };\r\n ProcessConfigurationService.prototype.getProcessSchemaProperties = function (processConfigId) {\r\n var _this = this;\r\n var deferred = this.$q.defer();\r\n this.getFieldsAndVariables(processConfigId).then(function (processConfig) {\r\n var processSchemaProperties = _this.getProcessSchemaPropertiesInternal(processConfig);\r\n deferred.resolve(processSchemaProperties);\r\n });\r\n return deferred.promise;\r\n };\r\n ProcessConfigurationService.prototype.getTopLevelSchemaPropertiesInternal = function (processConfig) {\r\n var list = [];\r\n for (var formIndex = 0; formIndex < processConfig.myForms.length; formIndex++) {\r\n var currentForm = processConfig.myForms[formIndex];\r\n for (var stepIndex = 0; stepIndex < currentForm.mySteps.length; stepIndex++) {\r\n var currentStep = currentForm.mySteps[stepIndex];\r\n for (var sectionIndex = 0; sectionIndex < currentStep.formSections.length; sectionIndex++) {\r\n var currentSection = currentStep.formSections[sectionIndex];\r\n if (currentSection.objectSchema.isList)\r\n continue;\r\n for (var fieldIndex = 0; fieldIndex < currentSection.fields.length; fieldIndex++) {\r\n var currentField = currentSection.fields[fieldIndex];\r\n list.push(currentField.schemaProperty);\r\n }\r\n }\r\n }\r\n }\r\n if (processConfig.processDataSchema && processConfig.processDataSchema.properties) {\r\n list = list.concat(processConfig.processDataSchema.properties);\r\n }\r\n return list;\r\n };\r\n ProcessConfigurationService.prototype.getProcessSchemaPropertiesInternal = function (processConfig) {\r\n var list = [];\r\n for (var formIndex = 0; formIndex < processConfig.myForms.length; formIndex++) {\r\n var currentForm = processConfig.myForms[formIndex];\r\n for (var stepIndex = 0; stepIndex < currentForm.mySteps.length; stepIndex++) {\r\n var currentStep = currentForm.mySteps[stepIndex];\r\n for (var sectionIndex = 0; sectionIndex < currentStep.formSections.length; sectionIndex++) {\r\n var currentSection = currentStep.formSections[sectionIndex];\r\n for (var fieldIndex = 0; fieldIndex < currentSection.fields.length; fieldIndex++) {\r\n var currentField = currentSection.fields[fieldIndex];\r\n var currentSchemaProperty = currentField.schemaProperty;\r\n if (currentSchemaProperty.propertyType === 31 /* ProcessId */ ||\r\n currentSchemaProperty.propertyType === 32 /* ProcessList */) {\r\n list.push(currentSchemaProperty);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (processConfig.processDataSchema && processConfig.processDataSchema.properties) {\r\n list = list.concat(this.getProcessSchemaPropertiesRecursively(processConfig.processDataSchema.properties));\r\n }\r\n return list;\r\n };\r\n ProcessConfigurationService.prototype.getProcessSchemaPropertiesRecursively = function (schemaProperties) {\r\n var list = [];\r\n for (var topLevelIndex = 0; topLevelIndex < schemaProperties.length; topLevelIndex++) {\r\n var currentSchemaProperty = schemaProperties[topLevelIndex];\r\n if (currentSchemaProperty.typeSchema !== null) {\r\n list = list.concat(this.getProcessSchemaPropertiesRecursively(currentSchemaProperty.typeSchema.properties));\r\n }\r\n else {\r\n if (currentSchemaProperty.propertyType === 31 /* ProcessId */ ||\r\n currentSchemaProperty.propertyType === 32 /* ProcessList */) {\r\n list.push(currentSchemaProperty);\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n return ProcessConfigurationService;\r\n }(services.DataService));\r\n services.ProcessConfigurationService = ProcessConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ProcessConfigurationService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ProcessConfigurationService extends services.DataService {\r\n\r\n private logType: string = \"ProcessConfigurationService\";\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createCondition(field: Wars.Domain.Model.Field): models.Condition {\r\n var condition = (this.createNewEntity(\"Condition\", { field: field }));\r\n condition.expression = this.createNewEntity(\"GroupExpression\");\r\n services.WarsLogger.logDebug(\"Creating Condition\", this.logType, condition);\r\n return condition;\r\n }\r\n\r\n public createNewCondition(): models.Condition {\r\n var condition = this.createNewEntity(\"Condition\");\r\n condition.name = '';\r\n condition.expression = this.createGroupExpression();\r\n services.WarsLogger.logDebug(\"Creating New Condition\", this.logType, condition);\r\n return condition;\r\n }\r\n\r\n public createGroupExpression(): Wars.Domain.Model.Conditions.GroupExpression {\r\n var exp = this.createNewEntity(\"GroupExpression\");\r\n exp.expressionType = Wars.Domain.Model.Codes.Enums.ExpressionType.Group;\r\n\r\n return exp;\r\n }\r\n\r\n public getRelatedProcessTypeClaims(processType: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n var p1 = breeze.Predicate.create('processType_id', '==', processType);\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(p1)\r\n .expand(\"myClaims\");\r\n\r\n this.executeQuery(query).then(r => {\r\n var processConfig = Enumerable.from(r).single(x=>x.configurationStatus == Wars.Domain.Model.Codes.Enums.ConfigurationStatus.Active);\r\n d.resolve(processConfig.myClaims);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getById(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getProcessConfigurationEagerLoadConditions(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myConditions.expression, myConditions.tags');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getProcessConfigurationEagerEditFormParameters(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myConditions.expression, myConditions.tags, myPaymentConfigurations');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getProcessConfigurationEagerLoadCalculations(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myCalculations');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getProcessConfigurationEagerLoadPaymentInfo(id: string): ng.IPromise {\r\n var expand = \"myPaymentConfigurations.myCustomActionInputs.myTreeItem, \" +\r\n \"myPaymentConfigurations.myPaymentRequestFormValueLookup.myTreeItem, \" +\r\n \"myPaymentConfigurations.amountTreeItem, \" +\r\n \"myPaymentConfigurations.myMappings.treeItem, \" +\r\n \"myPaymentConfigurations.myMappings.customInfo, \" +\r\n \"myPaymentConfigurations.myPaymentCustomInformation.valueCalculation\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getProcessConfigurationWithForms(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myForms, myProcessType');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getProcessConfigEagerLoadProcessType(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myProcessType');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getProcessConfigurationForTree(id: string): ng.IPromise {\r\n var expandString = \"myForms.mySteps.objectSchema, \" +\r\n \"myForms.formSchema.properties.typeSchema.properties.typeSchema.properties, \" +\r\n \"myCalculations.valueOperation, \" +\r\n \"myConditions, \" +\r\n \"myClaims, \" +\r\n \"myConstants, \" +\r\n \"myEmailGroups, \" +\r\n \"myStaticDocuments, \" +\r\n \"myTimeTrackerContainers.myTimeTracker, \" +\r\n \"myInterProcessApis.myOutputSchema.properties, \" +\r\n \"myCodeGroups.codes, \" +\r\n \"myRelatedClaimProcessTypes.relatedClaims\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand(expandString);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getProcessConfigurationExpandFieldsAndEmailConfigs(id: string): ng.IPromise {\r\n var expand = \"myForms.mySteps.formSections.fields.schemaProperty.codeGroup, \" +\r\n \"myEmailConfigurations.documents\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getWorkflowExpandFieldsAndPdfBindings(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myForms.mySteps.formSections.fields.schemaProperty.codeGroup, myPdfBindings');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getExpandFields(id: string): ng.IPromise {\r\n var expand = \"myForms.mySteps.objectSchema, \" +\r\n \"myForms.mySteps.formSections.fields.schemaProperty, \" +\r\n \"myForms.mySteps.formSections.fields.autoCompleteConfiguration.processType\";\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getFieldsAndVariables(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurationsLazy\")\r\n .where(\"id\", \"==\", id)\r\n .expand('myForms.mySteps.formSections.objectSchema, myForms.mySteps.formSections.fields.schemaProperty, processDataSchema.properties.typeSchema.properties');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public loadProcessConfigurationStatusGroup(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where('id', '==', processConfigId)\r\n .expand('myStatusCodeGroup.myStatuses.myStates');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public loadProcessConfigurationDocumentTypes(appConfigId: string): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where('id', '==', appConfigId)\r\n .expand('documentTypeCodeGroup.codes');\r\n\r\n this.executeQuery(query).then(\r\n (appConfigs) => d.resolve(appConfigs[0]));\r\n\r\n return d.promise;\r\n }\r\n\r\n public loadFieldGroup(field: Wars.Domain.Model.Field) {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Fields\")\r\n .where('id', '==', field.id)\r\n .expand('schemaProperty.codeGroup.codes');\r\n\r\n this.executeQuery(query);\r\n }\r\n\r\n public loadFieldExcludes(field: Wars.Domain.Model.Field) {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"Fields\")\r\n .where('id', '==', field.id)\r\n .expand(\"fieldExcludedStatuses.statusCode,fieldExcludedSystemCodes.systemCode, fieldExcludedStates.stateCode \");\r\n\r\n this.executeQuery(query);\r\n }\r\n\r\n public getScheduleResourceInstances(processConfigId: string): ng.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ProcessConfiguration/' + processConfigId + \"/ScheduleResourceInstances\").then((result) => d.resolve(result.data));\r\n return d.promise;\r\n }\r\n\r\n public getPermitSubTypeInfo(processConfigId: string): ng.IPromise {\r\n var expand =\r\n \"mySubTypeConfiguration.myProcessSubTypes.myCreateSecurityMatrix, \" +\r\n \"mySubTypeConfiguration.myProcessSubTypes.myCreateProcessAction, \" +\r\n \"mySubTypeConfiguration.myProcessSubTypes.myProcessClaimToGrantToProcessCreator, \" +\r\n \"myStatusCodeGroup.myStatuses.myStates\";\r\n \r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessConfigurations\")\r\n .where('id', '==', processConfigId)\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public version(id: string, versionName: string): ng.IPromise {\r\n var params = {\r\n versionName: versionName\r\n };\r\n var handlerUrl = \"api/ProcessConfiguration/\" + id + \"/Version\";\r\n\r\n var result: ng.IPromise = this.$http.post(handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n\r\n return result;\r\n }\r\n\r\n public beginActivation(id: string): ng.IPromise {\r\n var handlerUrl = \"api/ProcessConfiguration/\" + id + \"/BeginActivation\";\r\n var params = {};\r\n var result: ng.IPromise = this.$http.post(handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n\r\n return result;\r\n }\r\n\r\n public getTopLevelSchemaProperties(processConfigId: string): ng.IPromise {\r\n var deferred = this.$q.defer();\r\n\r\n this.getFieldsAndVariables(processConfigId).then(\r\n (processConfig) => {\r\n var processSchemaProperties = this.getTopLevelSchemaPropertiesInternal(processConfig);\r\n deferred.resolve(processSchemaProperties);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n public getProcessSchemaProperties(processConfigId: string): ng.IPromise {\r\n var deferred = this.$q.defer();\r\n\r\n this.getFieldsAndVariables(processConfigId).then(\r\n (processConfig) => {\r\n var processSchemaProperties = this.getProcessSchemaPropertiesInternal(processConfig);\r\n deferred.resolve(processSchemaProperties);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n private getTopLevelSchemaPropertiesInternal(processConfig: Wars.Domain.Model.ProcessConfiguration): Wars.Domain.Model.SchemaProperty[] {\r\n var list = [];\r\n\r\n for (var formIndex = 0; formIndex < processConfig.myForms.length; formIndex++) {\r\n var currentForm = processConfig.myForms[formIndex];\r\n for (var stepIndex = 0; stepIndex < currentForm.mySteps.length; stepIndex++) {\r\n var currentStep = currentForm.mySteps[stepIndex];\r\n for (var sectionIndex = 0; sectionIndex < currentStep.formSections.length; sectionIndex++) {\r\n var currentSection = currentStep.formSections[sectionIndex];\r\n if (currentSection.objectSchema.isList) continue;\r\n for (var fieldIndex = 0; fieldIndex < currentSection.fields.length; fieldIndex++) {\r\n var currentField = currentSection.fields[fieldIndex];\r\n list.push(currentField.schemaProperty);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (processConfig.processDataSchema && processConfig.processDataSchema.properties) {\r\n list = list.concat(processConfig.processDataSchema.properties);\r\n }\r\n\r\n return list;\r\n }\r\n\r\n private getProcessSchemaPropertiesInternal(processConfig: Wars.Domain.Model.ProcessConfiguration): Wars.Domain.Model.SchemaProperty[] {\r\n var list = [];\r\n\r\n for (var formIndex = 0; formIndex < processConfig.myForms.length; formIndex++) {\r\n var currentForm = processConfig.myForms[formIndex];\r\n for (var stepIndex = 0; stepIndex < currentForm.mySteps.length; stepIndex++) {\r\n var currentStep = currentForm.mySteps[stepIndex];\r\n for (var sectionIndex = 0; sectionIndex < currentStep.formSections.length; sectionIndex++) {\r\n var currentSection = currentStep.formSections[sectionIndex];\r\n for (var fieldIndex = 0; fieldIndex < currentSection.fields.length; fieldIndex++) {\r\n var currentField = currentSection.fields[fieldIndex];\r\n let currentSchemaProperty = currentField.schemaProperty;\r\n if (currentSchemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.ProcessId ||\r\n currentSchemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.ProcessList) {\r\n list.push(currentSchemaProperty);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (processConfig.processDataSchema && processConfig.processDataSchema.properties) {\r\n list = list.concat(this.getProcessSchemaPropertiesRecursively(processConfig.processDataSchema.properties));\r\n }\r\n\r\n return list;\r\n }\r\n\r\n private getProcessSchemaPropertiesRecursively(schemaProperties: Wars.Domain.Model.SchemaProperty[]): Wars.Domain.Model.SchemaProperty[] {\r\n var list = [];\r\n\r\n for (var topLevelIndex = 0; topLevelIndex < schemaProperties.length; topLevelIndex++) {\r\n let currentSchemaProperty = schemaProperties[topLevelIndex];\r\n if (currentSchemaProperty.typeSchema !== null) {\r\n list = list.concat(this.getProcessSchemaPropertiesRecursively(currentSchemaProperty.typeSchema.properties));\r\n } else {\r\n if (currentSchemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.ProcessId ||\r\n currentSchemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.ProcessList) {\r\n list.push(currentSchemaProperty);\r\n }\r\n }\r\n }\r\n return list;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ProcessConfigurationService', ['breeze', '$q', '$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ProcessDocumentService = /** @class */ (function (_super) {\r\n __extends(ProcessDocumentService, _super);\r\n function ProcessDocumentService($http, $q) {\r\n var _this = _super.call(this, $http) || this;\r\n _this.$q = $q;\r\n return _this;\r\n }\r\n ProcessDocumentService.prototype.updateProcessDocuments = function (process, newDocuments, oldDocIds) {\r\n var defer = this.$q.defer();\r\n var newDocIds = Enumerable.from(newDocuments).select(function (i) { return i.id; }).toArray();\r\n if (process.documents && process.documents.length > 0) {\r\n // Remove old and any updated documents from current list\r\n process.documents = Enumerable.from(process.documents)\r\n .where(function (i) { return (!oldDocIds || oldDocIds.indexOf(i.id) === -1) && (!newDocIds || newDocIds.indexOf(i.id) === -1); })\r\n .toArray();\r\n }\r\n if (newDocuments && newDocuments.length > 0) {\r\n process.documents = process.documents.concat(newDocuments);\r\n }\r\n this.updateManageDocumentSections(process).then(function () {\r\n defer.resolve();\r\n });\r\n return defer.promise;\r\n };\r\n ProcessDocumentService.prototype.getDocumentById = function (process, id) {\r\n if (process && process.documents) {\r\n var match = Enumerable.from(process.documents).singleOrDefault(function (i) { return i.id === id; });\r\n if (match)\r\n return match;\r\n }\r\n return undefined;\r\n };\r\n ProcessDocumentService.prototype.updateManageDocumentSections = function (process) {\r\n var defer = this.$q.defer();\r\n this.handlerUrl = \"api/Process/\" + process.id + \"/DocumentManageSections\";\r\n var params = {};\r\n this.useGetHandler(params).then(function (processDto) {\r\n process.documentSections = processDto.documentSections;\r\n defer.resolve();\r\n });\r\n return defer.promise;\r\n };\r\n return ProcessDocumentService;\r\n }(services.HttpHandlerService));\r\n services.ProcessDocumentService = ProcessDocumentService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService(\"ProcessDocumentService\", [\"$http\", \"$q\"]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ProcessDocumentService extends HttpHandlerService {\r\n\r\n constructor($http: ng.IHttpService, private $q: ng.IQService) {\r\n super($http);\r\n }\r\n\r\n public updateProcessDocuments(\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n newDocuments: Wars.Domain.Model.Dtos.DocumentDto[],\r\n oldDocIds: string[]): ng.IPromise\r\n {\r\n var defer = this.$q.defer();\r\n\r\n var newDocIds = Enumerable.from(newDocuments).select(i => i.id).toArray();\r\n if (process.documents && process.documents.length > 0) {\r\n // Remove old and any updated documents from current list\r\n process.documents = Enumerable.from(process.documents)\r\n .where(i => (!oldDocIds || oldDocIds.indexOf(i.id) === -1) && (!newDocIds || newDocIds.indexOf(i.id) === -1))\r\n .toArray();\r\n }\r\n\r\n if (newDocuments && newDocuments.length > 0) {\r\n process.documents = process.documents.concat(newDocuments);\r\n }\r\n this.updateManageDocumentSections(process).then(() => {\r\n defer.resolve();\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n public getDocumentById(process: Wars.Domain.Model.Dtos.ProcessDto, id: string) : Wars.Domain.Model.Dtos.DocumentDto {\r\n if (process && process.documents) {\r\n var match = Enumerable.from(process.documents).singleOrDefault(i => i.id === id);\r\n if (match) return match;\r\n }\r\n return undefined;\r\n }\r\n\r\n public updateManageDocumentSections(process: Wars.Domain.Model.Dtos.ProcessDto): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n this.handlerUrl = \"api/Process/\" + process.id +\"/DocumentManageSections\";\r\n var params: any = {};\r\n\r\n this.useGetHandler(params).then((processDto: Wars.Domain.Model.Dtos.ProcessDto) => {\r\n process.documentSections = processDto.documentSections;\r\n defer.resolve();\r\n });\r\n\r\n return defer.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"ProcessDocumentService\", [\"$http\", \"$q\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ProcessEventConfigurationService = /** @class */ (function (_super) {\r\n __extends(ProcessEventConfigurationService, _super);\r\n function ProcessEventConfigurationService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n ProcessEventConfigurationService.prototype.getProcessEventConfigurations = function (processId) {\r\n var expand = \"myInitiateSecurityMatrix, \" +\r\n \"myViewSecurityMatrix, \" +\r\n \"myProcessAction, \" +\r\n \"myProcessConfiguration.myProcessType,\" +\r\n \"documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"documentConfiguration.myAvailableDocumentTypes.mySystemCode\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessEventConfigurations\")\r\n .where('processConfiguration_id', '==', processId)\r\n .expand(expand)\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n ProcessEventConfigurationService.prototype.createProcessEventConfiguration = function () {\r\n return (this.createNewEntity(\"ProcessEventConfiguration\"));\r\n };\r\n ProcessEventConfigurationService.prototype.createProcessEventConfigurationReso = function () {\r\n return (this.createNewEntity(\"ManageProcessEventConfigReso\"));\r\n };\r\n return ProcessEventConfigurationService;\r\n }(services.DataService));\r\n services.ProcessEventConfigurationService = ProcessEventConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ProcessEventConfigurationService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ProcessEventConfigurationService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getProcessEventConfigurations(processId?: string): angular.IPromise {\r\n const expand = \"myInitiateSecurityMatrix, \" +\r\n \"myViewSecurityMatrix, \" +\r\n \"myProcessAction, \" +\r\n \"myProcessConfiguration.myProcessType,\" +\r\n \"documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"documentConfiguration.myAvailableDocumentTypes.mySystemCode\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessEventConfigurations\")\r\n .where('processConfiguration_id', '==', processId)\r\n .expand(expand)\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createProcessEventConfiguration(): Wars.Domain.Model.ProcessEventConfiguration {\r\n return (this.createNewEntity(\"ProcessEventConfiguration\"));\r\n }\r\n\r\n public createProcessEventConfigurationReso(): Wars.Domain.Model.ManageProcessEventConfigReso {\r\n return (this.createNewEntity(\"ManageProcessEventConfigReso\"));\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ProcessEventConfigurationService', ['breeze', '$q', '$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ProcessHeaderService = /** @class */ (function (_super) {\r\n __extends(ProcessHeaderService, _super);\r\n function ProcessHeaderService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n ProcessHeaderService.prototype.getAllProcessHeaders = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessHeaders\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('securityMatrix')\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n ProcessHeaderService.prototype.createProcessHeader = function () {\r\n return this.createNewEntity(\"ProcessHeader\");\r\n };\r\n return ProcessHeaderService;\r\n }(services.DataService));\r\n services.ProcessHeaderService = ProcessHeaderService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ProcessHeaderService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ProcessHeaderService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getAllProcessHeaders(processConfigId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessHeaders\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('securityMatrix')\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n\r\n public createProcessHeader(): Wars.Domain.Model.ProcessHeader{\r\n return this.createNewEntity(\"ProcessHeader\");\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerService('ProcessHeaderService', ['breeze', '$q', '$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ProcessService = /** @class */ (function (_super) {\r\n __extends(ProcessService, _super);\r\n function ProcessService($q, $http, $rootScope, growl, userActionService, modalService) {\r\n var _this = _super.call(this, $http) || this;\r\n _this.$q = $q;\r\n _this.$http = $http;\r\n _this.$rootScope = $rootScope;\r\n _this.growl = growl;\r\n _this.userActionService = userActionService;\r\n _this.modalService = modalService;\r\n _this.NO_VALUE_ID = \"00000000-0000-0000-0000-000000000000\";\r\n return _this;\r\n }\r\n ProcessService.prototype.getCachedProcess = function (processId) {\r\n if (this.lastProcess && this.lastProcess.id === processId) {\r\n return this.lastProcess;\r\n }\r\n return null;\r\n };\r\n ProcessService.prototype.getProcessDto = function (processId) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n this.$http.get('./api/Process/' + processId)\r\n .then(function (result) {\r\n _this.lastProcess = result.data;\r\n if (_this.lastProcess != null) {\r\n d.resolve(_this.lastProcess);\r\n }\r\n else {\r\n _this.growl.error(\"Could not find Process: \" + processId, { ttl: 5000 });\r\n d.reject();\r\n }\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.getProcessName = function (processId) {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/Process/' + processId + \"/ProcessName\")\r\n .then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.runSystemAction = function (processId, systemActionId) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/Process/' + processId + '/SystemAction/' + systemActionId, null).then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.runProcessAction = function (processId, processActionId) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/Process/' + processId + '/ProcessAction/' + processActionId, null).then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.changeState = function (processId, stateCodeUniqueId) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/Process/' + processId + '/ChangeState/' + stateCodeUniqueId, null).then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.createNewProcess = function (processTypeId) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/Process/' + processTypeId + '/Process', undefined)\r\n .then(function (result) {\r\n var createProcessDto = result.data;\r\n d.resolve(createProcessDto);\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.createNewProcessWithSubType = function (processTypeId, processSubType) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/Process/' + processTypeId + '/SubType/' + processSubType + '/Process', undefined)\r\n .then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.showProcessSubTypeModal = function (createProcessDto, successCallback, failureCallback) {\r\n var userSelection = {};\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/processSubTypeModal.html\",\r\n controller: \"processSubTypeModalController\",\r\n size: 'lg',\r\n inputs: {\r\n createProcessDto: createProcessDto,\r\n userSelection: userSelection\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n // Only true if not a cancel\r\n if (result && result.cancel !== true && userSelection.subTypeSystemCodeUniqueId) {\r\n if (successCallback)\r\n successCallback((userSelection.subTypeSystemCodeUniqueId));\r\n }\r\n else {\r\n if (failureCallback)\r\n failureCallback();\r\n }\r\n });\r\n });\r\n };\r\n ProcessService.prototype.addReview = function (processId, reviewSetId, reviewUserId, dueDate, reviewType, assignedDate) {\r\n var d = this.$q.defer();\r\n var data = {\r\n id: processId,\r\n reviewSetId: reviewSetId,\r\n reviewUserId: reviewUserId,\r\n dueDate: dueDate,\r\n assignedDate: assignedDate\r\n };\r\n if (reviewType) {\r\n data.reviewTypeUniqueId = reviewType.uniqueIdentifier;\r\n }\r\n this.$http.post('./api/Process/AddReview', data)\r\n .then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.closeReview = function (processId, reviewSetId, reviewId) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n \"/ReviewSet/\" +\r\n reviewSetId +\r\n \"/Review/\" +\r\n reviewId +\r\n '/Close', null)\r\n .then(function (result) {\r\n d.resolve(result);\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.saveReviewComment = function (processId, reviewSetId, reviewId, comment) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n \"/ReviewSet/\" +\r\n reviewSetId +\r\n \"/Review/\" +\r\n reviewId +\r\n '/Comment', '\"' + comment + '\"')\r\n .then(function () {\r\n d.resolve();\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.updateReviewDocuments = function (processId, reviewSetId, reviewId, documentIds) {\r\n return this.$http.post('./api/Process/' + processId + \"/ReviewSet/\" + reviewSetId + \"/Review/\" + reviewId + '/Documents', documentIds);\r\n };\r\n ProcessService.prototype.executeUserAction = function (processId, userActionId, processActionWorkflowBlockId) {\r\n var self = this;\r\n var params = {\r\n processActionWorkflowBlockId: processActionWorkflowBlockId\r\n };\r\n this.handlerUrl = \"api/Process/\" + processId + \"/ExecuteUserAction/\" + userActionId;\r\n var promise = this.usePostHandler(params);\r\n promise.then(function (manageAppDto) { return self.displayDocumentsAndDownloads(manageAppDto); });\r\n return promise;\r\n };\r\n ProcessService.prototype.executeUserActionWithModel = function (processId, userActionId, model) {\r\n var self = this;\r\n var params = {\r\n comment: model.comment,\r\n documentIds: model.docIds,\r\n effectiveDateString: model.effectiveDate ? model.effectiveDate.toUTCString() : undefined,\r\n processActionWorkflowBlockId: model.processActionWorkflowBlockId\r\n };\r\n this.handlerUrl = \"api/Process/\" + processId + \"/ExecuteUserActionWithModel/\" + userActionId;\r\n //Randy - transient user action data preservation for validation error\r\n this.userActionService.storeTransientUserActionData(userActionId, model.comment, model.docIds, model.effectiveDate, model.processActionWorkflowBlockId);\r\n //Randy - end transient user action data preservation for validation error\r\n var promise = this.usePostHandler(params);\r\n promise.then(function (manageAppDto) { return self.displayDocumentsAndDownloads(manageAppDto); });\r\n return promise;\r\n };\r\n ProcessService.prototype.displayDocumentsAndDownloads = function (manageAppDto) {\r\n this.downloadDocuments(manageAppDto);\r\n this.showGrowlMessages(manageAppDto);\r\n };\r\n ProcessService.prototype.showGrowlMessages = function (processDto) {\r\n var _this = this;\r\n var clearUserActionTransientData = true;\r\n if (processDto.successMessages && processDto.successMessages.length > 0) {\r\n processDto.successMessages.forEach(function (message) { return _this.growl.success(message); });\r\n }\r\n if (processDto.infoMessages && processDto.infoMessages.length > 0) {\r\n processDto.infoMessages.forEach(function (message) { return _this.growl.info(message); });\r\n }\r\n if (processDto.warnMessages && processDto.warnMessages.length > 0) {\r\n processDto.warnMessages.forEach(function (message) { return _this.growl.warning(message); });\r\n }\r\n if (processDto.errorMessages && processDto.errorMessages.length > 0) {\r\n clearUserActionTransientData = false;\r\n processDto.errorMessages.forEach(function (message) { return _this.growl.error(message); });\r\n }\r\n if (processDto.invalidEffectiveDate) {\r\n clearUserActionTransientData = false;\r\n if (processDto.effectiveDateErrorMessage) {\r\n this.growl.error(processDto.effectiveDateErrorMessage);\r\n }\r\n else {\r\n var dateString = processDto.lastStateEffectiveDate;\r\n var lastStateDate = new Date(dateString);\r\n if (processDto.showTimeForInvalidEffective) {\r\n this.growl.error(\"This action cannot be set before the most recent state/status: \" +\r\n lastStateDate.toLocaleDateString() +\r\n \" - \" +\r\n lastStateDate.toLocaleTimeString());\r\n }\r\n else {\r\n this.growl.error(\"This action cannot be set before the most recent state/status: \" + lastStateDate.toLocaleDateString());\r\n }\r\n }\r\n }\r\n //Randy - transient user action data preservation for validation error\r\n if (clearUserActionTransientData) {\r\n this.userActionService.clearTransientUserActionData();\r\n }\r\n //Randy - end transient user action data preservation for validation error\r\n };\r\n ProcessService.prototype.downloadDocuments = function (manageProcessDto) {\r\n if (manageProcessDto.documentsToDownload && manageProcessDto.documentsToDownload.length > 0) {\r\n for (var index = 0; index < manageProcessDto.documentsToDownload.length; index++) {\r\n window.open(\"./api/document/\" + manageProcessDto.documentsToDownload[index]);\r\n }\r\n }\r\n // \r\n };\r\n ProcessService.prototype.deleteAssignment = function (processId, assignmentId) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n this.$http.post(\"./api/Process/\" + processId + \"/DeleteAssignment/\" + assignmentId, null)\r\n .then(function (r) {\r\n var result = r.data;\r\n if (result.process) {\r\n _this.$rootScope.$broadcast('ProcessChanged', result.process);\r\n }\r\n else {\r\n d.resolve();\r\n }\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.addAssignment = function (processId, newAssignment) {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n this.$http.post(\"./api/Process/\" + processId + \"/AddAssignment/\", newAssignment)\r\n .then(function (r) {\r\n var result = r.data;\r\n if (result.process) {\r\n _this.$rootScope.$broadcast('ProcessChanged', result.process);\r\n }\r\n else {\r\n d.resolve(result.assignment);\r\n }\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.removeReview = function (processId, reviewSetId, reviewId) {\r\n var d = this.$q.defer();\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n \"/ReviewSet/\" +\r\n reviewSetId +\r\n \"/Review/\" +\r\n reviewId +\r\n '/Remove', null)\r\n .then(function (r) {\r\n d.resolve(r);\r\n });\r\n return d.promise;\r\n };\r\n ProcessService.prototype.addProcessEvent = function (processId, model) {\r\n var params = model;\r\n this.handlerUrl = \"api/Process/\" + processId + \"/AddProcessEvent\";\r\n return this.usePostHandler(params);\r\n };\r\n ProcessService.prototype.isFieldUpdatable = function (process, processConfig, form, field) {\r\n // Ensure Form is in Visible Container\r\n if (!this.isFormInVisibleContainer(process, processConfig, form))\r\n return false;\r\n // Ensure Form is Updatable or Readonly (Readonly forms can have Field level security overrides to make certain fields updatable)\r\n if (!process.formsVisibilities ||\r\n !process.formsVisibilities[form.uniqueIdentifier] ||\r\n (process.formsVisibilities[form.uniqueIdentifier].formVisiblility !== 2 /* Updateable */ &&\r\n process.formsVisibilities[form.uniqueIdentifier].formVisiblility !== 1 /* ReadOnly */)) {\r\n return false;\r\n }\r\n var formVisibility = process.formsVisibilities[form.uniqueIdentifier];\r\n var formSection = field.myFormSection;\r\n var formStep = Enumerable.from(form.mySteps).single(function (i) { return i.id == formSection.formStep_id; });\r\n // Ensure Form Step is Visible\r\n if (formVisibility.hiddenSteps && formVisibility.hiddenSteps.indexOf(formStep.id) !== -1) {\r\n return false;\r\n }\r\n // Ensure Form Section is Visible\r\n if (formVisibility.hiddenGroups && formVisibility.hiddenGroups.indexOf(formSection.objectSchema.uniqueIdentifier) !== -1) {\r\n return false;\r\n }\r\n // Ensure Field is Updatable - A Field that is not in the fieldsVisiblity dictionary has no security restrictions\r\n var inFieldsVisibility = formVisibility.fieldsVisiblity &&\r\n formVisibility.fieldsVisiblity[field.schemaProperty.uniqueIdentifier];\r\n if (inFieldsVisibility && formVisibility.fieldsVisiblity[field.schemaProperty.uniqueIdentifier] !== 2 /* Updateable */) {\r\n return false;\r\n }\r\n // If not defined explicitly for the field then use the form visibility\r\n if (!inFieldsVisibility && process.formsVisibilities[form.uniqueIdentifier].formVisiblility !== 2 /* Updateable */) {\r\n return false;\r\n }\r\n // Now check the display conditions\r\n var pertinentConditionIds = [];\r\n if (field.condition_id) {\r\n pertinentConditionIds.push(field.condition_id);\r\n }\r\n if (formSection.condition_id) {\r\n pertinentConditionIds.push(formSection.condition_id);\r\n }\r\n if (formStep.condition_id) {\r\n pertinentConditionIds.push(formSection.condition_id);\r\n }\r\n for (var i = 0; i < pertinentConditionIds.length; i++) {\r\n if (process.conditionStates &&\r\n process.conditionStates.hasOwnProperty(pertinentConditionIds[i]) &&\r\n !process.conditionStates[pertinentConditionIds[i]]) {\r\n return false;\r\n }\r\n }\r\n // Now check readonly conditions\r\n var pertinentReadonlyConditionIds = [];\r\n if (field.readonlyCondition_id) {\r\n pertinentReadonlyConditionIds.push(field.readonlyCondition_id);\r\n }\r\n if (formSection.readonlyCondition_id) {\r\n pertinentReadonlyConditionIds.push(formSection.readonlyCondition_id);\r\n }\r\n for (var i = 0; i < pertinentReadonlyConditionIds.length; i++) {\r\n if (process.conditionStates &&\r\n process.conditionStates.hasOwnProperty(pertinentReadonlyConditionIds[i]) &&\r\n process.conditionStates[pertinentReadonlyConditionIds[i]]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n ProcessService.prototype.isFormInVisibleContainer = function (process, processConfig, form) {\r\n for (var i = 0; i < processConfig.myFormContainers.length; i++) {\r\n var currentFormContainer = processConfig.myFormContainers[i];\r\n if (process.containersVisibilities[currentFormContainer.uniqueIdentifier]) {\r\n var formIdsInContainer = Enumerable.from(currentFormContainer.containerItems).select(function (i) { return i.form_id; }).toArray();\r\n if (formIdsInContainer.indexOf(form.id) !== -1) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n ProcessService.prototype.processFormUpdateResults = function (process, updatedFields, conditionService, impactedConditionStates) {\r\n for (var i = 0; i < updatedFields.length; i++) {\r\n this.updateFormWithFieldUpdateResult(process, updatedFields[i]);\r\n }\r\n if (impactedConditionStates) {\r\n for (var propName in impactedConditionStates) {\r\n if (impactedConditionStates.hasOwnProperty(propName)) {\r\n process.conditionStates[propName] = impactedConditionStates[propName];\r\n }\r\n }\r\n }\r\n else {\r\n // Need to call the server if any conditions are dependent on the updated fields\r\n var updatedFieldIds = Enumerable.from(updatedFields).select(function (i) { return i.fieldUniqueId; }).toArray();\r\n var conditionsToExecute = [];\r\n if (process.propertyConditionDependencies) {\r\n for (var i = 0; i < updatedFields.length; i++) {\r\n if (process.propertyConditionDependencies[updatedFields[i].fieldUniqueId] &&\r\n process.propertyConditionDependencies[updatedFields[i].fieldUniqueId].conditions &&\r\n process.propertyConditionDependencies[updatedFields[i].fieldUniqueId].conditions.length > 0) {\r\n conditionsToExecute.addRange(process.propertyConditionDependencies[updatedFields[i].fieldUniqueId].conditions);\r\n }\r\n }\r\n }\r\n if (conditionsToExecute.length > 0) {\r\n conditionsToExecute = Enumerable.from(conditionsToExecute).distinct().toArray();\r\n conditionService.executeConditions(process.id, conditionsToExecute).then(function (conditionResults) {\r\n for (var i = 0; i < conditionResults.length; i++) {\r\n var result = conditionResults[i];\r\n process.conditionStates[result.conditionId] = result.conditionPassed;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n ProcessService.prototype.updateFormWithFieldUpdateResult = function (process, result) {\r\n if (process.formJson[result.formUniqueId] &&\r\n process.formJson[result.formUniqueId][result.formDataId]) {\r\n if (result.listUniqueId === this.NO_VALUE_ID) {\r\n if (process.formJson[result.formUniqueId][result.formDataId][result.fieldUniqueId] != result.value) {\r\n process.formJson[result.formUniqueId][result.formDataId][result.fieldUniqueId] = result.value;\r\n }\r\n }\r\n else {\r\n // Dealing with a list update\r\n var listObject = process.formJson[result.formUniqueId][result.formDataId][result.listUniqueId];\r\n if (!listObject) {\r\n listObject = [{ id: result.rowId }];\r\n process.formJson[result.formUniqueId][result.formDataId][result.listUniqueId] = listObject;\r\n }\r\n var row = undefined;\r\n for (var i = 0; i < listObject.length; i++) {\r\n var currentRow = listObject[i];\r\n if (currentRow.id === result.rowId) {\r\n row = currentRow;\r\n break;\r\n }\r\n }\r\n if (!row) {\r\n row = { id: result.rowId };\r\n listObject.push(row);\r\n }\r\n if (!row[result.fieldUniqueId] || row[result.fieldUniqueId] != result.value) {\r\n row[result.fieldUniqueId] = result.value;\r\n }\r\n }\r\n }\r\n };\r\n return ProcessService;\r\n }(services.HttpHandlerService));\r\n services.ProcessService = ProcessService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService(\"ProcessService\", [\"$q\", \"$http\", \"$rootScope\", \"growl\", \"userActionService\", \"ModalService\"]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ProcessService extends HttpHandlerService {\r\n\r\n private lastProcess: models.ProcessDto;\r\n readonly NO_VALUE_ID = \"00000000-0000-0000-0000-000000000000\";\r\n\r\n constructor(\r\n private $q: angular.IQService,\r\n private $http: angular.IHttpService,\r\n private $rootScope: angular.IRootScopeService,\r\n private growl: angular.growl.IGrowlService,\r\n public userActionService: services.UserActionService,\r\n private modalService: any)\r\n {\r\n super($http);\r\n }\r\n\r\n public getCachedProcess(processId) {\r\n if (this.lastProcess && this.lastProcess.id === processId) {\r\n return this.lastProcess;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getProcessDto(processId): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/Process/' + processId)\r\n .then(result => {\r\n this.lastProcess = result.data;\r\n if (this.lastProcess != null) {\r\n d.resolve(this.lastProcess);\r\n } else {\r\n this.growl.error(\"Could not find Process: \" + processId, { ttl: 5000 });\r\n d.reject();\r\n }\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getProcessName(processId): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/Process/' + processId + \"/ProcessName\")\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public runSystemAction(processId: string, systemActionId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' + processId + '/SystemAction/' + systemActionId, null).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public runProcessAction(processId: string, processActionId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' + processId + '/ProcessAction/' + processActionId, null).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public changeState(processId: string, stateCodeUniqueId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' + processId + '/ChangeState/' + stateCodeUniqueId, null).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public createNewProcess(processTypeId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' + processTypeId + '/Process', undefined)\r\n .then(result => {\r\n var createProcessDto = result.data;\r\n d.resolve(createProcessDto);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public createNewProcessWithSubType(processTypeId: string, processSubType: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' + processTypeId + '/SubType/' + processSubType + '/Process', undefined)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public showProcessSubTypeModal(\r\n createProcessDto: Wars.Domain.Model.Dtos.CreateProcessDto,\r\n successCallback?: (subTypeSystemCodeUniqueId: string) => void,\r\n failureCallback?: () => void): void {\r\n var userSelection: any = {};\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/processSubTypeModal.html\",\r\n controller: \"processSubTypeModalController\",\r\n size: 'lg',\r\n inputs: {\r\n createProcessDto: createProcessDto,\r\n userSelection: userSelection\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n // Only true if not a cancel\r\n if (result && result.cancel !== true && userSelection.subTypeSystemCodeUniqueId) {\r\n if (successCallback) successCallback((userSelection.subTypeSystemCodeUniqueId));\r\n } else {\r\n if (failureCallback) failureCallback();\r\n }\r\n });\r\n });\r\n }\r\n\r\n public addReview(processId: string,\r\n reviewSetId: string,\r\n reviewUserId: string,\r\n dueDate?: any,\r\n reviewType?: Wars.Domain.Model.Codes.SystemCode,\r\n assignedDate?:any): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n var data: any = {\r\n id: processId,\r\n reviewSetId: reviewSetId,\r\n reviewUserId: reviewUserId,\r\n dueDate: dueDate,\r\n assignedDate:assignedDate\r\n };\r\n\r\n if (reviewType) {\r\n data.reviewTypeUniqueId = reviewType.uniqueIdentifier;\r\n }\r\n\r\n this.$http.post('./api/Process/AddReview', data)\r\n .then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public closeReview(processId: string, reviewSetId: string, reviewId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n \"/ReviewSet/\" +\r\n reviewSetId +\r\n \"/Review/\" +\r\n reviewId +\r\n '/Close',\r\n null)\r\n .then((result) => {\r\n d.resolve(result);\r\n });\r\n\r\n\r\n return d.promise;\r\n }\r\n\r\n public saveReviewComment(processId: string, reviewSetId: string, reviewId: string, comment: string) {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n \"/ReviewSet/\" +\r\n reviewSetId +\r\n \"/Review/\" +\r\n reviewId +\r\n '/Comment',\r\n '\"' + comment + '\"')\r\n .then(() => {\r\n d.resolve();\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public updateReviewDocuments(processId: string, reviewSetId: string, reviewId: string, documentIds: string[]) {\r\n return this.$http.post('./api/Process/' + processId + \"/ReviewSet/\" + reviewSetId + \"/Review/\" + reviewId + '/Documents', documentIds);\r\n }\r\n\r\n public executeUserAction(processId: string, userActionId: string, processActionWorkflowBlockId: string): ng.IPromise {\r\n var self = this;\r\n var params: any = {\r\n processActionWorkflowBlockId: processActionWorkflowBlockId\r\n };\r\n this.handlerUrl = \"api/Process/\" + processId + \"/ExecuteUserAction/\" + userActionId;\r\n var promise = this.usePostHandler(params);\r\n promise.then((manageAppDto) => self.displayDocumentsAndDownloads(manageAppDto));\r\n return promise;\r\n }\r\n\r\n public executeUserActionWithModel(processId: string,\r\n userActionId: string,\r\n model: models.UserActionModalModel): ng.IPromise {\r\n var self = this;\r\n var params: any = {\r\n comment: model.comment,\r\n documentIds: model.docIds,\r\n effectiveDateString: model.effectiveDate ? model.effectiveDate.toUTCString() : undefined,\r\n processActionWorkflowBlockId: model.processActionWorkflowBlockId\r\n };\r\n\r\n this.handlerUrl = \"api/Process/\" + processId + \"/ExecuteUserActionWithModel/\" + userActionId;\r\n\r\n //Randy - transient user action data preservation for validation error\r\n this.userActionService.storeTransientUserActionData(userActionId, model.comment, model.docIds, model.effectiveDate, model.processActionWorkflowBlockId);\r\n //Randy - end transient user action data preservation for validation error\r\n\r\n var promise = this.usePostHandler(params);\r\n promise.then((manageAppDto) => self.displayDocumentsAndDownloads(manageAppDto));\r\n return promise;\r\n }\r\n\r\n handlerUrl: string;\r\n\r\n public displayDocumentsAndDownloads(manageAppDto: Wars.Domain.Model.Dtos.ProcessDto) {\r\n this.downloadDocuments(manageAppDto);\r\n this.showGrowlMessages(manageAppDto);\r\n }\r\n\r\n private showGrowlMessages(processDto: Wars.Domain.Model.Dtos.ProcessDto) {\r\n var clearUserActionTransientData = true;\r\n if (processDto.successMessages && processDto.successMessages.length > 0) {\r\n processDto.successMessages.forEach((message) => this.growl.success(message));\r\n }\r\n\r\n if (processDto.infoMessages && processDto.infoMessages.length > 0) {\r\n processDto.infoMessages.forEach((message) => this.growl.info(message));\r\n }\r\n\r\n if (processDto.warnMessages && processDto.warnMessages.length > 0) {\r\n processDto.warnMessages.forEach((message) => this.growl.warning(message));\r\n }\r\n\r\n if (processDto.errorMessages && processDto.errorMessages.length > 0) {\r\n clearUserActionTransientData = false;\r\n processDto.errorMessages.forEach((message) => this.growl.error(message));\r\n }\r\n\r\n if (processDto.invalidEffectiveDate) {\r\n clearUserActionTransientData = false;\r\n if (processDto.effectiveDateErrorMessage) {\r\n this.growl.error(processDto.effectiveDateErrorMessage);\r\n } else {\r\n var dateString = processDto.lastStateEffectiveDate;\r\n var lastStateDate: Date = new Date(dateString);\r\n\r\n if (processDto.showTimeForInvalidEffective) {\r\n this.growl.error(\"This action cannot be set before the most recent state/status: \" +\r\n lastStateDate.toLocaleDateString() +\r\n \" - \" +\r\n lastStateDate.toLocaleTimeString());\r\n } else {\r\n this.growl.error(\"This action cannot be set before the most recent state/status: \" + lastStateDate.toLocaleDateString());\r\n }\r\n }\r\n }\r\n\r\n //Randy - transient user action data preservation for validation error\r\n if (clearUserActionTransientData) {\r\n this.userActionService.clearTransientUserActionData();\r\n }\r\n //Randy - end transient user action data preservation for validation error\r\n }\r\n\r\n private downloadDocuments(manageProcessDto: Wars.Domain.Model.Dtos.ProcessDto) {\r\n if (manageProcessDto.documentsToDownload && manageProcessDto.documentsToDownload.length > 0) {\r\n for (var index = 0; index < manageProcessDto.documentsToDownload.length; index++) {\r\n window.open(\"./api/document/\" + manageProcessDto.documentsToDownload[index]);\r\n }\r\n }\r\n // \r\n }\r\n\r\n public deleteAssignment(processId: string, assignmentId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post(\"./api/Process/\" + processId + \"/DeleteAssignment/\" + assignmentId, null)\r\n .then(r => {\r\n var result = r.data;\r\n if (result.process) {\r\n this.$rootScope.$broadcast('ProcessChanged', result.process);\r\n } else {\r\n d.resolve();\r\n }\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public addAssignment(processId: string, newAssignment): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post(\"./api/Process/\" + processId + \"/AddAssignment/\", newAssignment)\r\n .then(r => {\r\n var result = r.data;\r\n if (result.process) {\r\n this.$rootScope.$broadcast('ProcessChanged', result.process);\r\n } else {\r\n d.resolve(result.assignment);\r\n }\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public removeReview(processId: string, reviewSetId: string, reviewId: string) {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post('./api/Process/' +\r\n processId +\r\n \"/ReviewSet/\" +\r\n reviewSetId +\r\n \"/Review/\" +\r\n reviewId +\r\n '/Remove',\r\n null)\r\n .then((r) => {\r\n d.resolve(r);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public addProcessEvent(processId: string, model: models.ProcessEventDto): ng.IPromise {\r\n var params = model;\r\n this.handlerUrl = \"api/Process/\" + processId + \"/AddProcessEvent\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public isFieldUpdatable(\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n processConfig: Wars.Domain.Model.ProcessConfiguration,\r\n form: Wars.Domain.Model.Form,\r\n field: Wars.Domain.Model.Field) {\r\n\r\n\r\n // Ensure Form is in Visible Container\r\n if (!this.isFormInVisibleContainer(process, processConfig, form)) return false;\r\n \r\n // Ensure Form is Updatable or Readonly (Readonly forms can have Field level security overrides to make certain fields updatable)\r\n if (!process.formsVisibilities ||\r\n !process.formsVisibilities[form.uniqueIdentifier] ||\r\n (process.formsVisibilities[form.uniqueIdentifier].formVisiblility !== Wars.Domain.Model.Codes.Enums.SecurityItemValue.Updateable &&\r\n process.formsVisibilities[form.uniqueIdentifier].formVisiblility !== Wars.Domain.Model.Codes.Enums.SecurityItemValue.ReadOnly))\r\n {\r\n return false;\r\n }\r\n\r\n var formVisibility = process.formsVisibilities[form.uniqueIdentifier];\r\n var formSection = field.myFormSection;\r\n var formStep = Enumerable.from(form.mySteps).single(i => i.id == formSection.formStep_id);\r\n\r\n // Ensure Form Step is Visible\r\n if (formVisibility.hiddenSteps && formVisibility.hiddenSteps.indexOf(formStep.id) !== -1) {\r\n return false;\r\n }\r\n\r\n // Ensure Form Section is Visible\r\n if (formVisibility.hiddenGroups && formVisibility.hiddenGroups.indexOf(formSection.objectSchema.uniqueIdentifier) !== -1) {\r\n return false;\r\n }\r\n\r\n \r\n // Ensure Field is Updatable - A Field that is not in the fieldsVisiblity dictionary has no security restrictions\r\n var inFieldsVisibility = formVisibility.fieldsVisiblity &&\r\n formVisibility.fieldsVisiblity[field.schemaProperty.uniqueIdentifier];\r\n\r\n\r\n if (inFieldsVisibility && formVisibility.fieldsVisiblity[field.schemaProperty.uniqueIdentifier] !== Wars.Domain.Model.Codes.Enums.SecurityItemValue.Updateable)\r\n {\r\n return false;\r\n }\r\n\r\n // If not defined explicitly for the field then use the form visibility\r\n if (!inFieldsVisibility && process.formsVisibilities[form.uniqueIdentifier].formVisiblility !== Wars.Domain.Model.Codes.Enums.SecurityItemValue.Updateable) {\r\n return false;\r\n }\r\n \r\n // Now check the display conditions\r\n var pertinentConditionIds = [];\r\n if (field.condition_id) {\r\n pertinentConditionIds.push(field.condition_id);\r\n }\r\n if (formSection.condition_id) {\r\n pertinentConditionIds.push(formSection.condition_id);\r\n }\r\n if (formStep.condition_id) {\r\n pertinentConditionIds.push(formSection.condition_id);\r\n }\r\n\r\n for (var i = 0; i < pertinentConditionIds.length; i++) {\r\n if (process.conditionStates &&\r\n process.conditionStates.hasOwnProperty(pertinentConditionIds[i]) &&\r\n !process.conditionStates[pertinentConditionIds[i]])\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n // Now check readonly conditions\r\n var pertinentReadonlyConditionIds = [];\r\n if (field.readonlyCondition_id) {\r\n pertinentReadonlyConditionIds.push(field.readonlyCondition_id);\r\n }\r\n if (formSection.readonlyCondition_id) {\r\n pertinentReadonlyConditionIds.push(formSection.readonlyCondition_id);\r\n }\r\n\r\n for (var i = 0; i < pertinentReadonlyConditionIds.length; i++) {\r\n if (process.conditionStates &&\r\n process.conditionStates.hasOwnProperty(pertinentReadonlyConditionIds[i]) &&\r\n process.conditionStates[pertinentReadonlyConditionIds[i]]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private isFormInVisibleContainer(\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n processConfig: Wars.Domain.Model.ProcessConfiguration,\r\n form: Wars.Domain.Model.Form): boolean\r\n {\r\n for (let i = 0; i < processConfig.myFormContainers.length; i++) {\r\n var currentFormContainer = processConfig.myFormContainers[i];\r\n if (process.containersVisibilities[currentFormContainer.uniqueIdentifier]) {\r\n var formIdsInContainer = Enumerable.from(currentFormContainer.containerItems).select(i => i.form_id).toArray();\r\n if (formIdsInContainer.indexOf(form.id) !== -1) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public processFormUpdateResults(\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n updatedFields: Wars.Domain.Model.Dtos.UpdatedFieldValueDto[],\r\n conditionService: services.ConditionService,\r\n impactedConditionStates?: Collections.Dictionary): void\r\n {\r\n for (let i = 0; i < updatedFields.length; i++) {\r\n this.updateFormWithFieldUpdateResult(process, updatedFields[i]);\r\n }\r\n\r\n if (impactedConditionStates) {\r\n for (var propName in impactedConditionStates) {\r\n if (impactedConditionStates.hasOwnProperty(propName)) {\r\n process.conditionStates[propName] = impactedConditionStates[propName];\r\n }\r\n }\r\n } else {\r\n // Need to call the server if any conditions are dependent on the updated fields\r\n var updatedFieldIds = Enumerable.from(updatedFields).select(i => i.fieldUniqueId).toArray();\r\n var conditionsToExecute = [];\r\n\r\n if (process.propertyConditionDependencies) {\r\n for (let i = 0; i < updatedFields.length; i++) {\r\n if (process.propertyConditionDependencies[updatedFields[i].fieldUniqueId] &&\r\n process.propertyConditionDependencies[updatedFields[i].fieldUniqueId].conditions &&\r\n process.propertyConditionDependencies[updatedFields[i].fieldUniqueId].conditions.length > 0)\r\n {\r\n conditionsToExecute.addRange(process.propertyConditionDependencies[updatedFields[i].fieldUniqueId].conditions);\r\n }\r\n }\r\n }\r\n\r\n if (conditionsToExecute.length > 0) {\r\n conditionsToExecute = Enumerable.from(conditionsToExecute).distinct().toArray();\r\n conditionService.executeConditions(process.id, conditionsToExecute).then(\r\n (conditionResults: Wars.Domain.Model.Dtos.ConditionResultDto[]) => {\r\n for (var i = 0; i < conditionResults.length; i++) {\r\n let result = conditionResults[i];\r\n process.conditionStates[result.conditionId] = result.conditionPassed;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n private updateFormWithFieldUpdateResult(\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n result: Wars.Domain.Model.Dtos.UpdatedFieldValueDto): void\r\n {\r\n if (process.formJson[result.formUniqueId] &&\r\n process.formJson[result.formUniqueId][result.formDataId]) {\r\n\r\n if (result.listUniqueId === this.NO_VALUE_ID) {\r\n if (process.formJson[result.formUniqueId][result.formDataId][result.fieldUniqueId] != result.value) {\r\n process.formJson[result.formUniqueId][result.formDataId][result.fieldUniqueId] = result.value;\r\n }\r\n } else {\r\n // Dealing with a list update\r\n var listObject = process.formJson[result.formUniqueId][result.formDataId][result.listUniqueId]; \r\n if (!listObject) {\r\n listObject = [{ id: result.rowId }];\r\n process.formJson[result.formUniqueId][result.formDataId][result.listUniqueId] = listObject;\r\n }\r\n\r\n var row = undefined;\r\n for (var i = 0; i < listObject.length; i++)\r\n {\r\n var currentRow = listObject[i];\r\n if (currentRow.id === result.rowId) {\r\n row = currentRow;\r\n break;\r\n }\r\n }\r\n\r\n if (!row) {\r\n row = { id: result.rowId };\r\n listObject.push(row);\r\n }\r\n\r\n if (!row[result.fieldUniqueId] || row[result.fieldUniqueId] != result.value) {\r\n row[result.fieldUniqueId] = result.value;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"ProcessService\", [\"$q\", \"$http\", \"$rootScope\", \"growl\", \"userActionService\", \"ModalService\"]);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ProcessSubTypeService = /** @class */ (function (_super) {\r\n __extends(ProcessSubTypeService, _super);\r\n function ProcessSubTypeService(injectedBreeze, $q, $http, securityMatrixService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.securityMatrixService = securityMatrixService;\r\n return _this;\r\n }\r\n ProcessSubTypeService.prototype.createConfig = function (processConfig) {\r\n var newProcessSubTypeConfiguration = this.createNewEntity(\"ProcessSubTypeConfiguration\");\r\n newProcessSubTypeConfiguration.header = \"Select Process Sub Type\";\r\n newProcessSubTypeConfiguration.dropdownLabel = \"Process Sub Type\";\r\n newProcessSubTypeConfiguration.buttonLabel = \"Create Process\";\r\n this.createNewSubType(newProcessSubTypeConfiguration);\r\n processConfig.mySubTypeConfiguration = newProcessSubTypeConfiguration;\r\n processConfig.subTypeConfiguration_id = newProcessSubTypeConfiguration.id;\r\n };\r\n ProcessSubTypeService.prototype.createNewSubType = function (processSubTypeConfiguration) {\r\n var newProcessSubType = this.createNewEntity(\"ProcessSubType\");\r\n newProcessSubType.name = \"New Sub Type\";\r\n newProcessSubType.displayName = \"\";\r\n newProcessSubType.isActive = true;\r\n newProcessSubType.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newProcessSubType.myProcessSubTypeConfiguration = processSubTypeConfiguration;\r\n newProcessSubType.processSubTypeConfiguration_id = processSubTypeConfiguration.id;\r\n var securityMatrix = this.securityMatrixService.createSecurityRow(false);\r\n var matrix = { \"00000000-0000-0000-0000-000000000000\": {\r\n alwaysVisible: true\r\n } };\r\n securityMatrix.matrixJson = JSON.stringify(matrix);\r\n newProcessSubType.myCreateSecurityMatrix = securityMatrix;\r\n newProcessSubType.securityMatrix_id = securityMatrix.id;\r\n processSubTypeConfiguration.myProcessSubTypes.push(newProcessSubType);\r\n return newProcessSubType;\r\n };\r\n ProcessSubTypeService.prototype.getExecutionProcessSubTypes = function () {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ProcessType/SubTypes').then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n };\r\n return ProcessSubTypeService;\r\n }(services.DataService));\r\n services.ProcessSubTypeService = ProcessSubTypeService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ProcessSubTypeService', ['breeze', '$q', '$http', 'securityMatrixService']);\r\n","/// \r\n\r\nmodule warsApp.services {\r\n import EntityQuery = breeze.EntityQuery;\r\n\r\n export class ProcessSubTypeService extends services.DataService {\r\n\r\n constructor(\r\n injectedBreeze: typeof breeze,\r\n $q: angular.IQService, private $http: angular.IHttpService,\r\n private securityMatrixService: services.SecurityMatrixService)\r\n {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createConfig(processConfig: Wars.Domain.Model.ProcessConfiguration): void {\r\n var newProcessSubTypeConfiguration = this.createNewEntity(\"ProcessSubTypeConfiguration\");\r\n newProcessSubTypeConfiguration.header = \"Select Process Sub Type\";\r\n newProcessSubTypeConfiguration.dropdownLabel = \"Process Sub Type\";\r\n newProcessSubTypeConfiguration.buttonLabel = \"Create Process\";\r\n\r\n this.createNewSubType(newProcessSubTypeConfiguration);\r\n\r\n processConfig.mySubTypeConfiguration = newProcessSubTypeConfiguration;\r\n processConfig.subTypeConfiguration_id = newProcessSubTypeConfiguration.id;\r\n }\r\n\r\n public createNewSubType(processSubTypeConfiguration: Wars.Domain.Model.ProcessSubTypeConfiguration): Wars.Domain.Model.ProcessSubType {\r\n var newProcessSubType = this.createNewEntity(\"ProcessSubType\");\r\n newProcessSubType.name = \"New Sub Type\";\r\n newProcessSubType.displayName = \"\";\r\n newProcessSubType.isActive = true;\r\n newProcessSubType.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n\r\n newProcessSubType.myProcessSubTypeConfiguration = processSubTypeConfiguration;\r\n newProcessSubType.processSubTypeConfiguration_id = processSubTypeConfiguration.id;\r\n\r\n var securityMatrix = this.securityMatrixService.createSecurityRow(false);\r\n var matrix = {\"00000000-0000-0000-0000-000000000000\": {\r\n alwaysVisible: true\r\n }};\r\n\r\n securityMatrix.matrixJson = JSON.stringify(matrix);\r\n\r\n newProcessSubType.myCreateSecurityMatrix = securityMatrix;\r\n newProcessSubType.securityMatrix_id = securityMatrix.id;\r\n\r\n processSubTypeConfiguration.myProcessSubTypes.push(newProcessSubType);\r\n\r\n return newProcessSubType;\r\n }\r\n\r\n\r\n public getExecutionProcessSubTypes(): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/ProcessType/SubTypes').then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n }\r\n}\r\n\r\n\r\nwarsApp.registerService('ProcessSubTypeService', ['breeze', '$q', '$http','securityMatrixService']);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ProcessTypeService = /** @class */ (function (_super) {\r\n __extends(ProcessTypeService, _super);\r\n function ProcessTypeService(injectedBreeze, $q, $http, processSubTypeService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.processSubTypeService = processSubTypeService;\r\n return _this;\r\n }\r\n ProcessTypeService.prototype.getActiveProcessTypesNonBreeze = function () {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ProcessType/ActiveProcessTypes').then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n };\r\n ProcessTypeService.prototype.getExecutionProcessTypes = function () {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ProcessType').then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n };\r\n ProcessTypeService.prototype.getExecutionProcessType = function (id) {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ProcessType/' + id).then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n };\r\n ProcessTypeService.prototype.getActiveProcessTypes = function () {\r\n var defer = this.$q.defer();\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .expand(\"processConfigurations\")\r\n .orderBy(\"name\");\r\n this.executeQuery(query).then(function (processTypes) {\r\n var activeProcessTypes = [];\r\n for (var i = 0; i < processTypes.length; i++) {\r\n var currentProcessType = processTypes[i];\r\n if (Enumerable.from(currentProcessType.processConfigurations).any(function (x) { return x.minorVersion != null && x.configurationStatus === 2 /* Active */; })) {\r\n activeProcessTypes.push(currentProcessType);\r\n }\r\n }\r\n defer.resolve(activeProcessTypes);\r\n });\r\n return defer.promise;\r\n };\r\n ProcessTypeService.prototype.getChildProcessTypes = function () {\r\n var predicate = new this.breezeModule.Predicate(\"isChildProcess\", \"==\", true)\r\n .and(\"isEmbedded\", \"==\", false);\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .where(predicate)\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n ProcessTypeService.prototype.getConfigurationChildProcesses = function (configurationId) {\r\n var d = this.$q.defer();\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ChildProcesses\");\r\n query = query.where(\"processConfiguration_id\", \"==\", configurationId);\r\n query = query.expand(\"processType.processConfigurations\")\r\n .orderBy(\"processType.name\");\r\n this.executeQuery(query).then(function (result) {\r\n var processTypes = [];\r\n result.forEach(function (childProcess) {\r\n processTypes.push(childProcess.processType);\r\n });\r\n d.resolve(processTypes);\r\n });\r\n return d.promise;\r\n };\r\n ProcessTypeService.prototype.getAllProcessTypes = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\");\r\n query = query.where(\"isEmbedded\", \"==\", false);\r\n query = query.expand(\"processConfigurations\")\r\n .orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n ProcessTypeService.prototype.getProcessTypeById = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .where(\"id\", \"==\", id);\r\n return this.fetch(query);\r\n };\r\n ProcessTypeService.prototype.copyProcessType = function (id) {\r\n var _this = this;\r\n var handlerUrl = \"api/ProcessType/\" + id + \"/Copy\";\r\n var result = this.$http.post(handlerUrl, undefined)\r\n .then(function (response) { return _this.handlerResponded(response, undefined); });\r\n return result;\r\n };\r\n ProcessTypeService.prototype.createProcessConfiguration = function (processType) {\r\n var processConfig = this.createNewEntity(\"ProcessConfiguration\", { myProcessType: processType });\r\n var statusCodeGroup = this.createNewEntity(\"StatusCodeGroup\");\r\n statusCodeGroup.processConfiguration_id = processConfig.id;\r\n statusCodeGroup.shortDescription = \"Process Level Status Group\";\r\n processConfig.myStatusCodeGroup = statusCodeGroup;\r\n processConfig.statusCodeGroup_id = statusCodeGroup.id;\r\n var processInitiatorClaim = this.createProcessInitiatorProcessClaimDefinition();\r\n processConfig.myClaims.push(processInitiatorClaim);\r\n processInitiatorClaim.processConfiguration_id = processConfig.id;\r\n this.processSubTypeService.createConfig(processConfig);\r\n this.createInitialStatusAndState(processConfig);\r\n return processConfig;\r\n };\r\n ProcessTypeService.prototype.createInitialStatusAndState = function (processConfig) {\r\n var newStatus = this.createNewEntity(\"StatusCode\");\r\n newStatus.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newStatus.isInitialStatus = true;\r\n newStatus.isSystemLevel = false;\r\n newStatus.shortDescription = \"Initial Status\";\r\n newStatus.myParentStatusGroup = processConfig.myStatusCodeGroup;\r\n newStatus.parentStatusCodeGroup_id = processConfig.statusCodeGroup_id;\r\n var newState = this.createNewEntity(\"StateCode\");\r\n newState.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newState.isInitialState = true;\r\n newState.isSystemLevel = false;\r\n newState.shortDescription = \"Initial State\";\r\n newState.myParentStatus = newStatus;\r\n newState.statusCode_id = newStatus.id;\r\n newStatus.myStates.push(newState);\r\n var stateInfo = this.createNewEntity(\"StateInfo\");\r\n stateInfo.myStateCode = newState;\r\n stateInfo.stateCode_id = newState.id;\r\n var stateWorkflowBlock = this.createNewEntity(\"StateWorkflowBlock\");\r\n stateWorkflowBlock.blockType = 0 /* State */;\r\n stateWorkflowBlock.name = \"Initial State\";\r\n stateWorkflowBlock.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n stateWorkflowBlock.isInitialWorkflowBlock = true;\r\n stateWorkflowBlock.myStatus = newStatus;\r\n stateWorkflowBlock.statusCode_id = newStatus.id;\r\n stateWorkflowBlock.stateInfo_id = stateInfo.id;\r\n stateWorkflowBlock.myStateInfo = stateInfo;\r\n newState.stateWorkflowBlockId = stateWorkflowBlock.id;\r\n newStatus.myWorkflowBlocks.push(stateWorkflowBlock);\r\n processConfig.myStatusCodeGroup.myStatuses.push(newStatus);\r\n };\r\n ProcessTypeService.prototype.createProcessInitiatorProcessClaimDefinition = function () {\r\n var claimDefinition = this.createNewEntity(\"ClaimDefinition\");\r\n claimDefinition.specialClaimTagType = 2 /* ProcessInitiator */;\r\n claimDefinition.maxAssignments = 1;\r\n claimDefinition.type = \"Process Initiator\";\r\n claimDefinition.valueAssignable = false;\r\n claimDefinition.valueType = 11 /* None */;\r\n claimDefinition.uniqueIdentifier = \"89877FB0-0816-4263-947D-0159B7CC7AD2\";\r\n return claimDefinition;\r\n };\r\n ProcessTypeService.prototype.createProcessType = function () {\r\n return this.createNewEntity(\"ProcessType\");\r\n };\r\n ProcessTypeService.prototype.createChildProcess = function () {\r\n return this.createNewEntity(\"ChildProcess\");\r\n };\r\n ProcessTypeService.prototype.getByIdEagerLoadAppConfigs = function (processTypeId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .where(\"id\", \"==\", processTypeId)\r\n .expand(\"processConfigurations\");\r\n return this.fetch(query);\r\n };\r\n ProcessTypeService.prototype.getActiveProcessTypeAndSecurity = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .expand(\"processConfigurations, processConfigurations.mySecurityMatrices\")\r\n .where(\"id\", \"==\", id)\r\n .orderBy(\"name\");\r\n return this.fetch(query);\r\n };\r\n return ProcessTypeService;\r\n }(services.DataService));\r\n services.ProcessTypeService = ProcessTypeService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ProcessTypeService', ['breeze', '$q', '$http', \"processSubTypeService\"]);\r\n","/// \r\n\r\nmodule warsApp.services {\r\n import EntityQuery = breeze.EntityQuery;\r\n\r\n export class ProcessTypeService extends services.DataService {\r\n\r\n constructor(\r\n injectedBreeze: typeof breeze,\r\n $q: angular.IQService,\r\n private $http: angular.IHttpService,\r\n private processSubTypeService: services.ProcessSubTypeService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getActiveProcessTypesNonBreeze(): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/ProcessType/ActiveProcessTypes').then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getExecutionProcessTypes(): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/ProcessType').then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getExecutionProcessType(id:string): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/ProcessType/'+id).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getActiveProcessTypes(): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .expand(\"processConfigurations\")\r\n .orderBy(\"name\");\r\n\r\n this.executeQuery(query).then((processTypes) => {\r\n var activeProcessTypes = [];\r\n for (var i = 0; i < processTypes.length; i++) {\r\n var currentProcessType = processTypes[i];\r\n if (Enumerable.from(currentProcessType.processConfigurations).any(x => x.minorVersion != null && x.configurationStatus === Wars.Domain.Model.Codes.Enums.ConfigurationStatus.Active)) {\r\n activeProcessTypes.push(currentProcessType);\r\n }\r\n }\r\n defer.resolve(activeProcessTypes);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n public getChildProcessTypes(): ng.IPromise {\r\n var predicate = new this.breezeModule.Predicate(\"isChildProcess\", \"==\", true)\r\n .and(\"isEmbedded\", \"==\", false);\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .where(predicate)\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n\r\n public getConfigurationChildProcesses(configurationId): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n let query = this.breezeModule.EntityQuery\r\n .from(\"ChildProcesses\");\r\n\r\n query = query.where(\"processConfiguration_id\", \"==\", configurationId);\r\n\r\n query = query.expand(\"processType.processConfigurations\")\r\n .orderBy(\"processType.name\");\r\n\r\n this.executeQuery(query).then(result => {\r\n var processTypes: Wars.Domain.Model.ProcessType[] = [];\r\n\r\n result.forEach(childProcess => {\r\n processTypes.push(((childProcess)).processType);\r\n });\r\n\r\n d.resolve(processTypes);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getAllProcessTypes(): ng.IPromise {\r\n let query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\");\r\n\r\n query = query.where(\"isEmbedded\", \"==\", false);\r\n\r\n query = query.expand(\"processConfigurations\")\r\n .orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getProcessTypeById(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .where(\"id\", \"==\", id);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public copyProcessType(id: string): ng.IPromise {\r\n var handlerUrl = \"api/ProcessType/\" + id + \"/Copy\";\r\n\r\n var result: ng.IPromise = this.$http.post(handlerUrl, undefined)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, undefined));\r\n\r\n return result;\r\n }\r\n\r\n public createProcessConfiguration(processType: Wars.Domain.Model.ProcessType): Wars.Domain.Model.ProcessConfiguration {\r\n var processConfig = this.createNewEntity(\"ProcessConfiguration\", { myProcessType: processType });\r\n var statusCodeGroup = this.createNewEntity(\"StatusCodeGroup\");\r\n\r\n statusCodeGroup.processConfiguration_id = processConfig.id;\r\n statusCodeGroup.shortDescription = \"Process Level Status Group\";\r\n\r\n processConfig.myStatusCodeGroup = statusCodeGroup;\r\n processConfig.statusCodeGroup_id = statusCodeGroup.id;\r\n\r\n var processInitiatorClaim = this.createProcessInitiatorProcessClaimDefinition();\r\n processConfig.myClaims.push(processInitiatorClaim);\r\n processInitiatorClaim.processConfiguration_id = processConfig.id;\r\n\r\n this.processSubTypeService.createConfig(processConfig);\r\n this.createInitialStatusAndState(processConfig);\r\n\r\n return processConfig;\r\n }\r\n\r\n private createInitialStatusAndState(processConfig: Wars.Domain.Model.ProcessConfiguration): void {\r\n var newStatus = this.createNewEntity(\"StatusCode\");\r\n newStatus.uniqueIdentifier = UtilityService.generateGuidComb();\r\n newStatus.isInitialStatus = true;\r\n newStatus.isSystemLevel = false;\r\n newStatus.shortDescription = \"Initial Status\";\r\n newStatus.myParentStatusGroup = processConfig.myStatusCodeGroup;\r\n newStatus.parentStatusCodeGroup_id = processConfig.statusCodeGroup_id;\r\n\r\n var newState = this.createNewEntity(\"StateCode\");\r\n newState.uniqueIdentifier = UtilityService.generateGuidComb();\r\n newState.isInitialState = true;\r\n newState.isSystemLevel = false;\r\n newState.shortDescription = \"Initial State\";\r\n newState.myParentStatus = newStatus;\r\n newState.statusCode_id = newStatus.id;\r\n newStatus.myStates.push(newState);\r\n\r\n var stateInfo = this.createNewEntity(\"StateInfo\");\r\n stateInfo.myStateCode = newState;\r\n stateInfo.stateCode_id = newState.id;\r\n\r\n var stateWorkflowBlock = this.createNewEntity(\"StateWorkflowBlock\");\r\n stateWorkflowBlock.blockType = Wars.Domain.Model.Codes.Enums.BlockType.State;\r\n stateWorkflowBlock.name = \"Initial State\";\r\n stateWorkflowBlock.uniqueIdentifier = UtilityService.generateGuidComb();\r\n stateWorkflowBlock.isInitialWorkflowBlock = true;\r\n stateWorkflowBlock.myStatus = newStatus;\r\n stateWorkflowBlock.statusCode_id = newStatus.id;\r\n stateWorkflowBlock.stateInfo_id = stateInfo.id;\r\n stateWorkflowBlock.myStateInfo = stateInfo;\r\n\r\n newState.stateWorkflowBlockId = stateWorkflowBlock.id;\r\n newStatus.myWorkflowBlocks.push(stateWorkflowBlock);\r\n\r\n processConfig.myStatusCodeGroup.myStatuses.push(newStatus);\r\n }\r\n\r\n private createProcessInitiatorProcessClaimDefinition(): Wars.Domain.Model.ClaimDefinition {\r\n var claimDefinition = this.createNewEntity(\"ClaimDefinition\");\r\n claimDefinition.specialClaimTagType = Wars.Domain.Model.Codes.Enums.SpecialClaimTag.ProcessInitiator;\r\n claimDefinition.maxAssignments = 1;\r\n claimDefinition.type = \"Process Initiator\";\r\n claimDefinition.valueAssignable = false;\r\n claimDefinition.valueType = Wars.Domain.Model.Codes.Enums.VariableType.None;\r\n claimDefinition.uniqueIdentifier = \"89877FB0-0816-4263-947D-0159B7CC7AD2\";\r\n return claimDefinition;\r\n }\r\n\r\n public createProcessType(): Wars.Domain.Model.ProcessType {\r\n return this.createNewEntity(\"ProcessType\");\r\n }\r\n public createChildProcess(): Wars.Domain.Model.ChildProcess {\r\n return this.createNewEntity(\"ChildProcess\");\r\n }\r\n\r\n public getByIdEagerLoadAppConfigs(processTypeId: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .where(\"id\", \"==\", processTypeId)\r\n .expand(\"processConfigurations\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getActiveProcessTypeAndSecurity(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"ProcessTypes\")\r\n .expand(\"processConfigurations, processConfigurations.mySecurityMatrices\")\r\n .where(\"id\", \"==\", id)\r\n .orderBy(\"name\");\r\n\r\n return this.fetch(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ProcessTypeService', ['breeze', '$q', '$http', \"processSubTypeService\"]);","/// \r\nmodule warsApp.services {\r\n export class ProcessValidationService {\r\n\r\n constructor(private processService: ProcessService) { }\r\n\r\n private validatePhoneNumber(value) {\r\n if (!value) return true;\r\n var phoneno = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;\r\n if (value.match(phoneno)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private validateEmail(email) {\r\n if (!email) return true;\r\n var re = /^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\r\n return re.test(email);\r\n }\r\n\r\n private validateUrl(value) {\r\n if (!value) return true;\r\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})).?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(value);\r\n }\r\n\r\n public validate(\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n forms: Wars.Domain.Model.Form[],\r\n processConfig: Wars.Domain.Model.ProcessConfiguration) {\r\n var returnObjects = [];\r\n\r\n forms.forEach(form => {\r\n var fields = Wars.Domain.Model.ProcessConfigurationUtilities.GetFields(form);\r\n\r\n for (var i = 0; i < fields.length; i++) {\r\n const currentField = fields[i];\r\n if (!currentField.schemaProperty.parentObjectSchema.isList) {\r\n this.validateField(process, processConfig, form, currentField, returnObjects);\r\n }\r\n }\r\n\r\n var sections = Enumerable.from(form.mySteps).selectMany(i => i.formSections).toArray();\r\n sections.forEach(section => {\r\n if (section.objectSchema.isList) {\r\n // Get current field value\r\n let currentFormDataId = Object.keys(process.formJson[form.uniqueIdentifier])[0];\r\n var list = process.formJson[form.uniqueIdentifier][currentFormDataId][section.objectSchema.uniqueIdentifier];\r\n\r\n if (list && list.length > 0) {\r\n var listId = section.objectSchema.uniqueIdentifier;\r\n for (var rowIndex = 0; rowIndex < list.length; rowIndex++) {\r\n var rowId = list[rowIndex].id;\r\n for (var fieldIndex = 0; fieldIndex < section.fields.length; fieldIndex++) {\r\n var listField = section.fields[fieldIndex];\r\n this.validateField(process, processConfig, form, listField, returnObjects, listId, rowId);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n\r\n return returnObjects;\r\n }\r\n\r\n private validateField(\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n processConfig: Wars.Domain.Model.ProcessConfiguration,\r\n form: Wars.Domain.Model.Form,\r\n field: Wars.Domain.Model.Field,\r\n returnObjects: Array,\r\n listId?: string,\r\n rowId?: string)\r\n {\r\n var value;\r\n\r\n // Only validate field if validation is configured for this field\r\n if (!field.regExPattern && !field.isRequired) return;\r\n\r\n // Only validate if form field is updatable\r\n if (!this.processService.isFieldUpdatable(process, processConfig, form, field)) return;\r\n\r\n // Get current field value\r\n let currentFormDataId = Object.keys(process.formJson[form.uniqueIdentifier])[0];\r\n\r\n if (listId !== undefined && rowId !== undefined) {\r\n var list : Array = process.formJson[form.uniqueIdentifier][currentFormDataId][listId];\r\n var row = Enumerable.from(list).singleOrDefault(i => i.id === rowId);\r\n if (row !== undefined) {\r\n value = row[field.schemaProperty.uniqueIdentifier];\r\n }\r\n } else {\r\n value = process.formJson[form.uniqueIdentifier][currentFormDataId][field.schemaProperty.uniqueIdentifier];\r\n }\r\n \r\n if (value == undefined) {\r\n value = \"\";\r\n }\r\n\r\n if (field.regExPattern) {\r\n const regEx = new RegExp(field.regExPattern);\r\n\r\n if (!value.match(regEx)) {\r\n let newObj = this.getErrorObj(form, field, rowId, field.regularExpressionFailureMessage);\r\n\r\n returnObjects.push(newObj);\r\n }\r\n }\r\n\r\n if (field.isRequired && value !== 0 && !value) {\r\n let newObj = this.getErrorObj(form, field, rowId, \"is required.\");\r\n\r\n returnObjects.push(newObj);\r\n }\r\n }\r\n\r\n private getErrorObj(\r\n form: Wars.Domain.Model.Form,\r\n field: Wars.Domain.Model.Field,\r\n rowId: string,\r\n message: string\r\n ) {\r\n let stepId = this.getStepIdOfField(form, field);\r\n let fieldName = field.schemaProperty.uniqueIdentifier;\r\n let label = field.schemaProperty.name;\r\n\r\n return {\r\n stepId: stepId,\r\n fieldId: fieldName,\r\n rowId: rowId,\r\n label: label,\r\n formId: form.uniqueIdentifier,\r\n message: message\r\n }; \r\n }\r\n\r\n public getStepIdOfField(form: Wars.Domain.Model.Form, field: Wars.Domain.Model.Field): string {\r\n\r\n if (form.mySteps) {\r\n for (var i = 0; i < form.mySteps.length; i++) {\r\n var currentStepId = form.mySteps[i].id;\r\n if (form.mySteps[i].formSections) {\r\n for (var x = 0; x < form.mySteps[i].formSections.length; x++) {\r\n if (field.formSection_id == form.mySteps[i].formSections[x].id) return currentStepId;\r\n }\r\n }\r\n }\r\n }\r\n return \"-13\";\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ProcessValidationService', [\"processService\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var QueryConfigurationService = /** @class */ (function (_super) {\r\n __extends(QueryConfigurationService, _super);\r\n function QueryConfigurationService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n QueryConfigurationService.prototype.createNewQueryParameter = function () {\r\n return this.createNewEntity(\"OperationParameter\");\r\n };\r\n QueryConfigurationService.prototype.createNewQueryConfiguration = function () {\r\n return this.createNewEntity(\"QueryConfiguration\");\r\n };\r\n QueryConfigurationService.prototype.getDataSources = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"DataSources\");\r\n if (id) {\r\n query = query.where(\"processConfiguration_id\", \"==\", id);\r\n }\r\n else {\r\n query = query.where(\"processConfiguration_id\", \"==\", null);\r\n }\r\n query = query.expand(\"operations.parameters.parmeterSchema\");\r\n return this.executeQuery(query);\r\n };\r\n QueryConfigurationService.prototype.getQueryConfiguration = function (id) {\r\n return this.fetchById(id, \"QueryConfiguration\");\r\n };\r\n QueryConfigurationService.prototype.getSchemaProperty = function (id) {\r\n return this.fetchById(id, \"SchemaProperty\");\r\n };\r\n QueryConfigurationService.prototype.getAllQueryConfigurations = function (processConfigId) {\r\n var expand = \"parameters.treeItem, \" +\r\n \"myDataOperation.resultSchema.properties, \" +\r\n \"myDataOperation.myDataSource.objectSchemas.properties\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"QueryConfigurations\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand(expand);\r\n return this.executeQuery(query);\r\n };\r\n return QueryConfigurationService;\r\n }(services.DataService));\r\n services.QueryConfigurationService = QueryConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('QueryConfigurationService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class QueryConfigurationService extends services.DataService {\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n\r\n }\r\n\r\n public createNewQueryParameter(): Wars.Domain.Model.OperationParameter{\r\n return this.createNewEntity(\"OperationParameter\");\r\n }\r\n\r\n public createNewQueryConfiguration(): Wars.Domain.Model.QueryConfiguration {\r\n return this.createNewEntity(\"QueryConfiguration\");\r\n }\r\n\r\n public getDataSources(id?: string): angular.IPromise {\r\n let query = this.breezeModule.EntityQuery\r\n .from(\"DataSources\");\r\n\r\n if (id) {\r\n query = query.where(\"processConfiguration_id\", \"==\", id);\r\n } else {\r\n query = query.where(\"processConfiguration_id\", \"==\", null);\r\n }\r\n\r\n query = query.expand(\"operations.parameters.parmeterSchema\");\r\n\r\n return this.executeQuery(query);\r\n\r\n }\r\n\r\n public getQueryConfiguration(id: string):angular.IPromise{\r\n return this.fetchById(id, \"QueryConfiguration\");\r\n }\r\n\r\n public getSchemaProperty(id: string): angular.IPromise {\r\n return this.fetchById(id, \"SchemaProperty\");\r\n }\r\n\r\n public getAllQueryConfigurations(processConfigId: string): angular.IPromise {\r\n var expand = \"parameters.treeItem, \" +\r\n \"myDataOperation.resultSchema.properties, \" +\r\n \"myDataOperation.myDataSource.objectSchemas.properties\";\r\n\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"QueryConfigurations\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand(expand);\r\n\r\n return this.executeQuery(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('QueryConfigurationService', ['breeze', '$q'])","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var RelatedClaimProcessTypeService = /** @class */ (function (_super) {\r\n __extends(RelatedClaimProcessTypeService, _super);\r\n function RelatedClaimProcessTypeService(breeze, $q, $http) {\r\n var _this = _super.call(this, breeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n RelatedClaimProcessTypeService.prototype.getRelatedClaims = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"RelatedClaimProcessTypes\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(\"relatedClaims, field.autoCompleteConfiguration.processType\");\r\n return this.executeQuery(query);\r\n };\r\n RelatedClaimProcessTypeService.prototype.createNewRelatedClaim = function () {\r\n return this.createNewEntity(\"RelatedClaim\");\r\n };\r\n RelatedClaimProcessTypeService.prototype.createNewRelatedClaimProcessType = function () {\r\n return this.createNewEntity(\"RelatedClaimProcessType\");\r\n };\r\n return RelatedClaimProcessTypeService;\r\n }(services.DataService));\r\n services.RelatedClaimProcessTypeService = RelatedClaimProcessTypeService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('RelatedClaimProcessTypeService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n export class RelatedClaimProcessTypeService extends DataService{\r\n\r\n constructor(breeze: any, $q: angular.IQService, private $http: angular.IHttpService) {\r\n super(breeze, $q);\r\n }\r\n\r\n public getRelatedClaims(processConfigurationId: string): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"RelatedClaimProcessTypes\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand(\"relatedClaims, field.autoCompleteConfiguration.processType\");\r\n\r\n return this.executeQuery(query); \r\n }\r\n\r\n public createNewRelatedClaim(): Wars.Domain.Model.RelatedClaim {\r\n return this.createNewEntity(\"RelatedClaim\");\r\n }\r\n\r\n\r\n public createNewRelatedClaimProcessType(): Wars.Domain.Model.RelatedClaimProcessType {\r\n return this.createNewEntity(\"RelatedClaimProcessType\");\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerService('RelatedClaimProcessTypeService', ['breeze','$q', '$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ReviewConfigurationService = /** @class */ (function (_super) {\r\n __extends(ReviewConfigurationService, _super);\r\n function ReviewConfigurationService(injectedBreeze, $q, $http) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n return _this;\r\n }\r\n ReviewConfigurationService.prototype.createReviewConfiguration = function () {\r\n var config = this.createNewEntity(\"ReviewConfiguration\");\r\n config.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return config;\r\n };\r\n ReviewConfigurationService.prototype.createReviewReminder = function () {\r\n return this.createNewEntity(\"ReviewReminder\");\r\n };\r\n ReviewConfigurationService.prototype.getExtensibleUserRepositories = function () {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ExtensibleComponent/GetExternalUserRepositories').then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n ReviewConfigurationService.prototype.getReviewConfigurations = function (processId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"ReviewConfigurationsLazy\");\r\n if (processId) {\r\n query = query.where('processConfiguration_id', '==', processId);\r\n }\r\n else {\r\n query = query.where('processConfiguration_id', '==', null);\r\n }\r\n query = query.expand(\"securityMatrix, \" +\r\n \"reviewReminders, \" +\r\n \"codeGroup.codes, \" +\r\n \"systemReviewGroup, \" +\r\n \"documentConfiguration, \" +\r\n \"canRemoveSecurityMatrix, \" +\r\n \"commentThreadConfiguration.canCommentSecurityMatrix, \" +\r\n \"commentThreadConfiguration.canDeleteSecurityMatrix, \" +\r\n \"commentThreadConfiguration.canAddDocumentSecurityMatrix, \" +\r\n \"commentThreadConfiguration.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"commentThreadConfiguration.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"commentThreadConfiguration.documentConfiguration.myAvailableDocumentTypes.mySystemCode, \" +\r\n \"commentThreadConfiguration.canViewDeletedCommentsSecurityMatrix, \" +\r\n \"commentThreadConfiguration.commentEmailConfiguration,\" +\r\n \"commentThreadConfiguration.canCommentSecurityMatrix\").orderBy(\"name\");\r\n return this.executeQuery(query);\r\n };\r\n return ReviewConfigurationService;\r\n }(services.DataService));\r\n services.ReviewConfigurationService = ReviewConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ReviewConfigurationService', ['breeze', '$q', '$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ReviewConfigurationService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService,private $http:angular.IHttpService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createReviewConfiguration(): Wars.Domain.Model.Reviews.ReviewConfiguration {\r\n var config = this.createNewEntity(\"ReviewConfiguration\");\r\n config.uniqueIdentifier = UtilityService.generateGuidComb();\r\n return config;\r\n }\r\n\r\n public createReviewReminder(): Wars.Domain.Model.Reviews.ReviewReminder{\r\n return this.createNewEntity(\"ReviewReminder\");\r\n }\r\n\r\n public getExtensibleUserRepositories(): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get('./api/ExtensibleComponent/GetExternalUserRepositories').then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public getReviewConfigurations(processId?: string): angular.IPromise {\r\n let query = this.breezeModule.EntityQuery\r\n .from(\"ReviewConfigurationsLazy\");\r\n\r\n if (processId) {\r\n query = query.where('processConfiguration_id', '==', processId);\r\n } else {\r\n\r\n query = query.where('processConfiguration_id', '==', null);\r\n }\r\n query = query.expand(\"securityMatrix, \" +\r\n \"reviewReminders, \" +\r\n \"codeGroup.codes, \" +\r\n \"systemReviewGroup, \" +\r\n \"documentConfiguration, \" +\r\n \"canRemoveSecurityMatrix, \" +\r\n \"commentThreadConfiguration.canCommentSecurityMatrix, \" +\r\n \"commentThreadConfiguration.canDeleteSecurityMatrix, \" +\r\n \"commentThreadConfiguration.canAddDocumentSecurityMatrix, \" +\r\n \"commentThreadConfiguration.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"commentThreadConfiguration.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"commentThreadConfiguration.documentConfiguration.myAvailableDocumentTypes.mySystemCode, \" +\r\n \"commentThreadConfiguration.canViewDeletedCommentsSecurityMatrix, \" +\r\n \"commentThreadConfiguration.commentEmailConfiguration,\" +\r\n \"commentThreadConfiguration.canCommentSecurityMatrix\").orderBy(\"name\");\r\n\r\n return this.executeQuery(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ReviewConfigurationService', ['breeze', '$q', '$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var ReviewGroupService = /** @class */ (function (_super) {\r\n __extends(ReviewGroupService, _super);\r\n function ReviewGroupService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n ReviewGroupService.prototype.createNewReviewGroup = function () {\r\n var newReviewGroup = this.createNewEntity(\"ReviewGroup\");\r\n return newReviewGroup;\r\n };\r\n return ReviewGroupService;\r\n }(services.DataService));\r\n services.ReviewGroupService = ReviewGroupService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('ReviewGroupService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class ReviewGroupService extends services.DataService {\r\n \r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createNewReviewGroup(): Wars.Domain.Model.Reviews.ReviewGroup {\r\n var newReviewGroup = this.createNewEntity(\"ReviewGroup\");\r\n return newReviewGroup;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('ReviewGroupService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var SchemaPropertyService = /** @class */ (function (_super) {\r\n __extends(SchemaPropertyService, _super);\r\n function SchemaPropertyService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n SchemaPropertyService.prototype.getSchemaProperty = function (id) {\r\n return this.fetchById(id, \"SchemaProperty\");\r\n };\r\n SchemaPropertyService.prototype.getSchemaPropertyByUniqueId = function (id) {\r\n var d = this.$q.defer();\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SchemaProperties\")\r\n .where('uniqueIdentifier', '==', id);\r\n this.executeQuery(query).then(function (r) {\r\n //TODO: Change this to work with the current SchemaProperty\r\n d.resolve(r[0]);\r\n });\r\n return d.promise;\r\n };\r\n SchemaPropertyService.prototype.createNewSchemaProperty = function () {\r\n var newSchemaProperty = this.createNewEntity(\"SchemaProperty\");\r\n newSchemaProperty.isIndexed = false;\r\n newSchemaProperty.required = false;\r\n newSchemaProperty.isSystemLevel = false;\r\n newSchemaProperty.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return newSchemaProperty;\r\n };\r\n return SchemaPropertyService;\r\n }(services.DataService));\r\n services.SchemaPropertyService = SchemaPropertyService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('SchemaPropertyService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class SchemaPropertyService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getSchemaProperty(id: string): ng.IPromise {\r\n return this.fetchById(id, \"SchemaProperty\");\r\n }\r\n\r\n public getSchemaPropertyByUniqueId(id: string): ng.IPromise {\r\n var d = this.$q.defer();\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SchemaProperties\")\r\n .where('uniqueIdentifier', '==', id);\r\n\r\n this.executeQuery(query).then(r => {\r\n //TODO: Change this to work with the current SchemaProperty\r\n d.resolve(r[0]);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public createNewSchemaProperty(): models.SchemaProperty {\r\n var newSchemaProperty = this.createNewEntity(\"SchemaProperty\");\r\n newSchemaProperty.isIndexed = false;\r\n newSchemaProperty.required = false;\r\n newSchemaProperty.isSystemLevel = false;\r\n newSchemaProperty.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n return newSchemaProperty;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('SchemaPropertyService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var SecurityMatrixService = /** @class */ (function (_super) {\r\n __extends(SecurityMatrixService, _super);\r\n function SecurityMatrixService(injectedBreeze, $q, $http, modalService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$http = $http;\r\n _this.modalService = modalService;\r\n return _this;\r\n }\r\n SecurityMatrixService.prototype.createSecurityMatrix = function (isSystemLevel, alwaysVisible) {\r\n var obj = this.internalCreateSecurityMatrix(isSystemLevel, alwaysVisible);\r\n obj.matrixType = 1 /* HideOrShow */;\r\n obj.usesAnotherSecurityMatrix = false;\r\n return obj;\r\n };\r\n SecurityMatrixService.prototype.internalCreateSecurityMatrix = function (isSystemLevel, alwaysVisible) {\r\n var obj = this.createNewEntity(\"SecurityMatrix\");\r\n obj.isSystemLevel = isSystemLevel;\r\n obj.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n if (alwaysVisible) {\r\n obj.alwaysVisible = alwaysVisible;\r\n }\r\n else {\r\n obj.alwaysVisible = false;\r\n }\r\n return obj;\r\n };\r\n SecurityMatrixService.prototype.getSystemLevelSecurityMatrices = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SecurityMatrixs\")\r\n .where('systemLevel_id', '!=', null);\r\n return this.executeQuery(query);\r\n };\r\n SecurityMatrixService.prototype.getProcessConfigurationSecurityMatrices = function (processConfigurationId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SecurityMatrices\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand('claimBindings');\r\n return this.executeQuery(query);\r\n };\r\n SecurityMatrixService.prototype.createAdvancedSecurityMatrix = function (isSystemLevel, alwaysVisible) {\r\n var obj = this.internalCreateSecurityMatrix(isSystemLevel, alwaysVisible);\r\n obj.matrixType = 2 /* HideOrReadOnlyOrUpdateable */;\r\n obj.usesAnotherSecurityMatrix = false;\r\n return obj;\r\n };\r\n SecurityMatrixService.prototype.createSecurityRow = function (isSystemLevel, alwaysVisible) {\r\n var obj = this.internalCreateSecurityMatrix(isSystemLevel, alwaysVisible);\r\n obj.matrixType = 3 /* SecurityRow */;\r\n obj.usesAnotherSecurityMatrix = false;\r\n return obj;\r\n };\r\n SecurityMatrixService.prototype.createSecurityRowWithSubTypes = function (isSystemLevel, alwaysVisible) {\r\n var obj = this.internalCreateSecurityMatrix(isSystemLevel, alwaysVisible);\r\n obj.matrixType = 4 /* SecurityRowWithSubType */;\r\n obj.usesAnotherSecurityMatrix = false;\r\n return obj;\r\n };\r\n SecurityMatrixService.prototype.openSecurityMatrixModal = function (securityMatrix, processConfigurationId, currentStateUniqueId) {\r\n var self = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/securityMatrixModal.html\",\r\n controller: \"securityMatrixModalController\",\r\n inputs: {\r\n processConfigurationId: processConfigurationId,\r\n securityMatrix: securityMatrix,\r\n currentStateUniqueId: currentStateUniqueId\r\n }\r\n })\r\n .then(function (modal) {\r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n $('.modal-backdrop')\r\n .each(function () {\r\n $(this).remove();\r\n });\r\n if (result) {\r\n self.saveAllChanges();\r\n }\r\n else {\r\n self.rejectChanges();\r\n }\r\n });\r\n });\r\n };\r\n SecurityMatrixService.prototype.getSecurityMatrixView = function (securityMatrixId) {\r\n var _this = this;\r\n var params = {};\r\n var handlerUrl = \"api/SecurityMatrix/\" + securityMatrixId + \"/View\";\r\n var result = this.$http.get(handlerUrl, params)\r\n .then(function (response) { return _this.handlerResponded(response, params); });\r\n return result;\r\n };\r\n SecurityMatrixService.prototype.openViewSecurityMatrixModal = function (securityMatrixId) {\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/viewSecurityMatrixModal.html\",\r\n controller: \"viewSecurityMatrixModalController\",\r\n size: 'lg',\r\n inputs: {\r\n securityMatrixId: securityMatrixId\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) { });\r\n });\r\n };\r\n SecurityMatrixService.prototype.handlerResponded = function (response, params) {\r\n response.data.requestParams = params;\r\n return response.data;\r\n };\r\n return SecurityMatrixService;\r\n }(services.DataService));\r\n services.SecurityMatrixService = SecurityMatrixService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('SecurityMatrixService', ['breeze', '$q', \"$http\", 'ModalService']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class SecurityMatrixService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService, private $http: angular.IHttpService, private modalService: any) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createSecurityMatrix(isSystemLevel: boolean, alwaysVisible?: boolean): Wars.Domain.Model.SecurityMatrix {\r\n let obj = this.internalCreateSecurityMatrix(isSystemLevel, alwaysVisible);\r\n obj.matrixType = Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrShow;\r\n obj.usesAnotherSecurityMatrix = false;\r\n return obj;\r\n }\r\n\r\n private internalCreateSecurityMatrix(isSystemLevel: boolean, alwaysVisible?: boolean): Wars.Domain.Model.SecurityMatrix {\r\n var obj = this.createNewEntity(\"SecurityMatrix\");\r\n obj.isSystemLevel = isSystemLevel;\r\n obj.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n if (alwaysVisible) {\r\n obj.alwaysVisible = alwaysVisible;\r\n } else {\r\n obj.alwaysVisible = false;\r\n }\r\n return obj;\r\n }\r\n\r\n public getSystemLevelSecurityMatrices(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SecurityMatrixs\")\r\n .where('systemLevel_id', '!=', null);\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public getProcessConfigurationSecurityMatrices(processConfigurationId: string): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SecurityMatrices\")\r\n .where('processConfiguration_id', '==', processConfigurationId)\r\n .expand('claimBindings');\r\n\r\n return this.executeQuery(query);\r\n }\r\n\r\n public createAdvancedSecurityMatrix(isSystemLevel: boolean, alwaysVisible?: boolean): Wars.Domain.Model.SecurityMatrix {\r\n let obj = this.internalCreateSecurityMatrix(isSystemLevel, alwaysVisible);\r\n\r\n obj.matrixType = Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrReadOnlyOrUpdateable;\r\n obj.usesAnotherSecurityMatrix = false;\r\n\r\n return obj;\r\n }\r\n\r\n public createSecurityRow(isSystemLevel: boolean, alwaysVisible?: boolean): Wars.Domain.Model.SecurityMatrix {\r\n let obj = this.internalCreateSecurityMatrix(isSystemLevel, alwaysVisible);\r\n\r\n obj.matrixType = Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRow;\r\n obj.usesAnotherSecurityMatrix = false;\r\n\r\n return obj;\r\n }\r\n\r\n public createSecurityRowWithSubTypes(isSystemLevel: boolean,alwaysVisible?: boolean): Wars.Domain.Model.SecurityMatrix {\r\n let obj = this.internalCreateSecurityMatrix(isSystemLevel, alwaysVisible);\r\n\r\n obj.matrixType = Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRowWithSubType;\r\n obj.usesAnotherSecurityMatrix = false;\r\n\r\n return obj;\r\n }\r\n\r\n public openSecurityMatrixModal(securityMatrix: Wars.Domain.Model.SecurityMatrix,\r\n processConfigurationId: string,\r\n currentStateUniqueId?: string) {\r\n var self = this;\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/securityMatrixModal.html\",\r\n controller: \"securityMatrixModalController\",\r\n inputs: {\r\n processConfigurationId: processConfigurationId,\r\n securityMatrix: securityMatrix,\r\n currentStateUniqueId: currentStateUniqueId\r\n }\r\n })\r\n .then(modal => {\r\n modal.element.modal();\r\n\r\n modal.close.then(result => {\r\n $('.modal-backdrop')\r\n .each(function() {\r\n $(this).remove();\r\n });\r\n\r\n if (result) {\r\n self.saveAllChanges();\r\n } else {\r\n self.rejectChanges();\r\n }\r\n });\r\n });\r\n }\r\n\r\n public getSecurityMatrixView(securityMatrixId: string): ng.IPromise {\r\n var params: any = {};\r\n var handlerUrl = \"api/SecurityMatrix/\" + securityMatrixId + \"/View\";\r\n\r\n var result: ng.IPromise = this.$http.get(handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n\r\n return result;\r\n }\r\n\r\n public openViewSecurityMatrixModal(securityMatrixId: string) {\r\n \r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/viewSecurityMatrixModal.html\",\r\n controller: \"viewSecurityMatrixModalController\",\r\n size: 'lg',\r\n inputs: {\r\n securityMatrixId: securityMatrixId\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {});\r\n });\r\n }\r\n\r\n public handlerResponded(response: any, params: any): any {\r\n response.data.requestParams = params;\r\n return response.data;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('SecurityMatrixService', ['breeze', '$q', \"$http\", 'ModalService']);","/// \r\n\r\ninterface SignalR {\r\n\r\n serverHub: any;\r\n}\r\n\r\nmodule warsApp.services {\r\n \r\n export interface ISignalrService {\r\n getConnectionId(): string;\r\n stopConnection(notifyServerHubOfDisconnect: boolean): void;\r\n listen(controllerScope: angular.IScope): angular.IPromise;\r\n broadcast(controllerScope: angular.IScope): angular.IPromise;\r\n }\r\n\r\n export interface IBroadcaster {\r\n enterProcess(processId: string, addToGroup: boolean): void;\r\n }\r\n\r\n export interface IListener {\r\n onClientReceivedWarsNotification(callback: any): void;\r\n onSignalGroupOfProcessDataUpdate(callback: any): void;\r\n }\r\n \r\n export class SignalrService implements ISignalrService {\r\n \r\n private scope = this.$rootScope.$new();\r\n private qService: angular.IQService;\r\n private localStorageService: any;\r\n private hub = $.connection.serverHub;\r\n private tryingToReconnect = false;\r\n \r\n constructor(private $rootScope: angular.IRootScopeService, $q: angular.IQService, localStorageService: any) {\r\n var self = this;\r\n self.qService = $q;\r\n self.localStorageService = localStorageService;\r\n }\r\n\r\n //destroys the listener when the controller scope is destroyed\r\n private destroyListener(controllerScope, cb) {\r\n controllerScope.$on(\"$destroy\", () => {\r\n cb();\r\n });\r\n }\r\n\r\n private initialize(): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n if ($.connection.hub.state === SignalR.ConnectionState.Disconnected) {\r\n\r\n //disconnected, so spin the connection\r\n self.startConnection()\r\n .then(() => {\r\n //connection started, so resolve\r\n d.resolve();\r\n },\r\n (reason) => {\r\n //connection not started due to not authenticated, so reject\r\n console.error(reason);\r\n d.reject();\r\n });\r\n } else if ($.connection.hub.state === SignalR.ConnectionState.Connecting ||\r\n $.connection.hub.state === SignalR.ConnectionState.Reconnecting) {\r\n $.connection.hub.stateChanged((state) => {\r\n if (state.newState === SignalR.ConnectionState.Connected) {\r\n //starting connection was started, so resolve\r\n d.resolve();\r\n } else {\r\n //the state change was to a non-started state, so reject\r\n console.error(`The new state of the connection was expected to be 'Connected' (1) but was ${state.newState}`);\r\n d.reject();\r\n }\r\n });\r\n }\r\n if ($.connection.hub.state === SignalR.ConnectionState.Connected) {\r\n d.resolve();\r\n }\r\n return d.promise;\r\n }\r\n \r\n private startConnection(): angular.IPromise {\r\n var self = this;\r\n var d = this.qService.defer();\r\n if ($.connection.hub.state === SignalR.ConnectionState.Connected) {\r\n d.resolve();\r\n return d.promise;\r\n }\r\n var authData = self.localStorageService.get(\"authorizationData\");\r\n if (!authData) {\r\n d.reject(\"Authorization data is required to establish a connection\");\r\n return d.promise;\r\n } \r\n //signalr listener for signal logging configuration\r\n self.hub.client.signalConfigureLogging = (log: boolean) => {\r\n $.connection.hub.logging = log;\r\n }\r\n //signalr listener for server side log actions\r\n self.hub.client.signalServerSideActionLogged = (source, message, level, url, sessionId) => {\r\n if (source !== \"NHibernate.SQL\") {\r\n var msg = source + \" - \" + message;\r\n if (url != null) msg += `\\nURL: ${url}`;\r\n if (sessionId) msg += ` - Session ID: ${sessionId}`;\r\n if (level === \"FATAL\") {\r\n console.error(`Fatal !! - ${msg}`);\r\n } else if (level === \"ERROR\") {\r\n console.error(msg);\r\n } else if (level === \"WARN\") {\r\n console.warn(msg);\r\n } else if (level === \"INFO\") {\r\n console.info(msg);\r\n } else if (level === \"DEBUG\") {\r\n console.debug(msg);\r\n }\r\n } else {\r\n var groupName = \"NHibernate Log Entry\";\r\n if (url) groupName += ` - URL: ${url}`;\r\n if (sessionId) groupName += ` - Session ID: ${sessionId}`;\r\n console.groupCollapsed(groupName);\r\n console.debug(message);\r\n console.groupEnd();\r\n }\r\n }\r\n //signalr listener for signal to log out of all client instances\r\n self.hub.client.signalClientLoggedOutToLogOutAllClientInstances = () => {\r\n //emit the event on rootscope\r\n self.scope.$emit(\"onSignalClientLoggedOutToLogOutAllClientInstances\");\r\n }\r\n //signalr listener for signal when a client has received a wars notification \r\n self.hub.client.signalClientReceivedWarsNotification = (notificationCount) => {\r\n //emit the event on rootscope\r\n self.scope.$emit(\"onSignalClientReceivedWarsNotification\", notificationCount);\r\n }\r\n //signalr listener for signal when a client has updated field data on a process \r\n self.hub.client.signalGroupOfProcessDataUpdate = (updatingUser: string, fieldDataToUpdate: any) => {\r\n //emit the event on rootscope\r\n console.debug(`SIGNALR NOTIFICATION ISSUE - Received process data update signal from ${updatingUser}`);\r\n self.scope.$emit(\"onSignalGroupOfProcessDataUpdate\", updatingUser, fieldDataToUpdate);\r\n }\r\n //add the bearer token to the querystring to hydrate the http context user on connection start\r\n $.connection.hub.qs = `bearer_token=${authData.token}`;\r\n //spin the connection\r\n $.connection.hub.start().done(() => {\r\n $.connection.hub.reconnecting(() => {\r\n self.tryingToReconnect = true;\r\n });\r\n $.connection.hub.reconnected(() => {\r\n self.tryingToReconnect = false;\r\n });\r\n $.connection.hub.disconnected(() => {\r\n if (self.tryingToReconnect) {\r\n //IMPORTANT: if a transport error occurs and a connection is closed, a new connection ID will be generated on a new call to connection.hub.start(). This can cause errors or unexpected behavior\r\n //for certain processes that register connections for groups (e.g. the enterProcess() broadcaster)\r\n //temporary notification of a legitimate timeout / connection refused (i.e. server goes down) - we need to determine the best 'real' response to this condition, like logging the user out.\r\n console.log(\"SignalR connection has timed out and cannot be restarted. A new connection start will be attempted which if successful will result in a new connection ID for this client\");\r\n }\r\n });\r\n self.hub.server.onConfigureLogging();\r\n d.resolve();\r\n });\r\n return d.promise;\r\n }\r\n\r\n getConnectionId(): string {\r\n //if connected, return the connection ID, else return an empty string\r\n return $.connection.hub.state === SignalR.ConnectionState.Connected\r\n ? $.connection.hub.id\r\n : \"\";\r\n }\r\n\r\n stopConnection(notifyServerHubOfDisconnect:boolean): void {\r\n //if not disconnected, stop the connection\r\n if ($.connection.hub.state !== SignalR.ConnectionState.Disconnected) {\r\n $.connection.hub.stop(true, notifyServerHubOfDisconnect);\r\n }\r\n }\r\n \r\n //BROADCASTERS - implement custom broadcasters for events you would like to signal the server on\r\n //----------------------------------------------------------------------------------------------\r\n \r\n broadcast(controllerScope: angular.IScope): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.initialize().then(() => {\r\n var result: IBroadcaster = {\r\n //broadcaster method to register a client connection in a process group for future listening of process data changes\r\n enterProcess(processId: string, addToGroup: boolean): void {\r\n if (addToGroup) {\r\n self.hub.server.onEnterProcess(processId); \r\n }\r\n //remove the client from the process group when the client's scope is destroyed \r\n controllerScope.$on(\"$destroy\", () => {\r\n if (addToGroup) {\r\n self.hub.server.onExitProcess(processId); \r\n }\r\n });\r\n }\r\n }\r\n d.resolve(result);\r\n });\r\n return d.promise;\r\n } \r\n \r\n //LISTENERS - implement custom listeners to register callbacks on when notified by the server\r\n //NOTE: each one of these will need a matching SignalR listener with rootscope.$emit in the startConnection() method above\r\n //------------------------------------------------------------------------------------------------------------------------\r\n \r\n listen(controllerScope: angular.IScope): angular.IPromise {\r\n var self = this;\r\n var d = self.qService.defer();\r\n self.initialize().then(() => {\r\n var result: IListener = {\r\n //listener method for new notifications received\r\n onClientReceivedWarsNotification(callback: any): void {\r\n var cb = self.scope.$on(\"onSignalClientReceivedWarsNotification\", (object, notificationCount) => {\r\n controllerScope.$apply(callback(notificationCount));\r\n });\r\n self.destroyListener(controllerScope, cb);\r\n }, //listener method for process data updates\r\n onSignalGroupOfProcessDataUpdate(callback: any): void {\r\n var cb = self.scope.$on(\"onSignalGroupOfProcessDataUpdate\", (object, updatingUser, fieldDataToUpdate) => {\r\n controllerScope.$apply(callback(updatingUser, fieldDataToUpdate));\r\n });\r\n self.destroyListener(controllerScope, cb);\r\n }\r\n }\r\n d.resolve(result);\r\n });\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"SignalrService\", [\"$rootScope\", \"$q\", \"localStorageService\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var SiteConfigurationService = /** @class */ (function (_super) {\r\n __extends(SiteConfigurationService, _super);\r\n function SiteConfigurationService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n SiteConfigurationService.prototype.getSiteConfigurationForConfiguration = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/ContentManagement/SiteConfiguration/GetSiteConfigurationForConfiguration\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n SiteConfigurationService.prototype.getSiteConfigurationForExecution = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/ContentManagement/SiteConfiguration/GetSiteConfigurationForExecution\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n SiteConfigurationService.prototype.addSiteConfiguration = function (siteConfiguration) {\r\n var params = siteConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/SiteConfiguration/AddSiteConfiguration\";\r\n return this.usePostHandler(params);\r\n };\r\n SiteConfigurationService.prototype.updateSiteConfiguration = function (siteConfiguration) {\r\n var params = siteConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/SiteConfiguration/UpdateSiteConfiguration\";\r\n return this.usePostHandler(params);\r\n };\r\n return SiteConfigurationService;\r\n }(services.HttpHandlerService));\r\n services.SiteConfigurationService = SiteConfigurationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('SiteConfigurationService', ['$http']);\r\n","/// \r\nmodule warsApp.services {\r\n export class SiteConfigurationService extends HttpHandlerService {\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public getSiteConfigurationForConfiguration(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ContentManagement/SiteConfiguration/GetSiteConfigurationForConfiguration\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.SiteConfigurationDto) => {\r\n return result;\r\n });\r\n }\r\n\r\n public getSiteConfigurationForExecution(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ContentManagement/SiteConfiguration/GetSiteConfigurationForExecution\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.SiteConfigurationDto) => {\r\n return result;\r\n });\r\n }\r\n\r\n public addSiteConfiguration(siteConfiguration: Wars.Domain.Model.Dtos.SiteConfigurationDto): ng.IPromise {\r\n var params = siteConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/SiteConfiguration/AddSiteConfiguration\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateSiteConfiguration(siteConfiguration: Wars.Domain.Model.Dtos.SiteConfigurationDto): ng.IPromise {\r\n var params = siteConfiguration;\r\n this.handlerUrl = \"api/ContentManagement/SiteConfiguration/UpdateSiteConfiguration\";\r\n return this.usePostHandler(params);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('SiteConfigurationService', ['$http'])","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var SiteInitializationService = /** @class */ (function (_super) {\r\n __extends(SiteInitializationService, _super);\r\n function SiteInitializationService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n SiteInitializationService.prototype.getEditiableContentPages = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/SiteInitialization/GetEditableContentPages\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n SiteInitializationService.prototype.getRoute = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/SiteInitialization/GetRoute\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n SiteInitializationService.prototype.getMenuItems = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/SiteInitialization/GetMenuItems\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n return SiteInitializationService;\r\n }(services.HttpHandlerService));\r\n services.SiteInitializationService = SiteInitializationService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('SiteInitializationService', ['$http']);\r\n","/// \r\nmodule warsApp.services {\r\n export class SiteInitializationService extends HttpHandlerService {\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public getEditiableContentPages(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/SiteInitialization/GetEditableContentPages\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.ContentPageDto[]) => {\r\n return result;\r\n });\r\n }\r\n\r\n public getRoute(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/SiteInitialization/GetRoute\";\r\n return this.useGetHandler(params).then(\r\n (result: string) => {\r\n return result;\r\n });\r\n }\r\n\r\n public getMenuItems(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/SiteInitialization/GetMenuItems\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.MenuItemDto[]) => {\r\n return result;\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('SiteInitializationService', ['$http'])","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var StatusAndStateService = /** @class */ (function (_super) {\r\n __extends(StatusAndStateService, _super);\r\n function StatusAndStateService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n StatusAndStateService.prototype.createNewSystemStatusCodeGroup = function () {\r\n var newStatusCodeGroup = this.createNewEntity(\"StatusCodeGroup\");\r\n return newStatusCodeGroup;\r\n };\r\n StatusAndStateService.prototype.createNewStatus = function () {\r\n var newStatus = this.createNewEntity(\"StatusCode\");\r\n newStatus.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newStatus.isInitialStatus = false;\r\n newStatus.isSystemLevel = true;\r\n return newStatus;\r\n };\r\n StatusAndStateService.prototype.createNewState = function () {\r\n var newState = this.createNewEntity(\"StateCode\");\r\n newState.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newState.isInitialState = false;\r\n newState.isSystemLevel = true;\r\n return newState;\r\n };\r\n StatusAndStateService.prototype.getStatusAndStatesByProcessConfig = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"StatusCodeGroups\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand(\"myStatuses.myStates\");\r\n return (this.fetch(query));\r\n };\r\n StatusAndStateService.prototype.getStatusCodeGroup = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"StatusCodeGroups\")\r\n .where(\"id\", \"==\", id)\r\n .expand(\"myStatuses.myStates\");\r\n return this.fetch(query);\r\n };\r\n return StatusAndStateService;\r\n }(services.DataService));\r\n services.StatusAndStateService = StatusAndStateService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('StatusAndStateService', ['breeze', '$q']);\r\n","/// \r\n\r\nmodule warsApp.services {\r\n\r\n export class StatusAndStateService extends services.DataService {\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createNewSystemStatusCodeGroup(): Wars.Domain.Model.Statuses.StatusCodeGroup {\r\n var newStatusCodeGroup = this.createNewEntity(\"StatusCodeGroup\");\r\n return newStatusCodeGroup;\r\n }\r\n\r\n public createNewStatus(): Wars.Domain.Model.Statuses.StatusCode {\r\n var newStatus = this.createNewEntity(\"StatusCode\");\r\n newStatus.uniqueIdentifier = UtilityService.generateGuidComb();\r\n newStatus.isInitialStatus = false;\r\n newStatus.isSystemLevel = true;\r\n return newStatus;\r\n }\r\n\r\n createNewState(): Wars.Domain.Model.Statuses.StateCode {\r\n var newState = this.createNewEntity(\"StateCode\");\r\n newState.uniqueIdentifier = UtilityService.generateGuidComb();\r\n newState.isInitialState = false;\r\n newState.isSystemLevel = true;\r\n return newState;\r\n }\r\n\r\n public getStatusAndStatesByProcessConfig(processConfigId: string):ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"StatusCodeGroups\")\r\n .where(\"processConfiguration_id\", \"==\", processConfigId)\r\n .expand(\"myStatuses.myStates\");\r\n\r\n return (this.fetch(query)) as any;\r\n }\r\n\r\n public getStatusCodeGroup(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"StatusCodeGroups\")\r\n .where(\"id\", \"==\", id)\r\n .expand(\"myStatuses.myStates\");\r\n\r\n return this.fetch(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('StatusAndStateService', ['breeze', '$q'])","/// \r\nmodule warsApp.services {\r\n \r\n\r\n export class StatusGroupService {\r\n \r\n constructor(private $q: angular.IQService, private $http:angular.IHttpService) {\r\n }\r\n\r\n public getProcessStates(id: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ProcessConfiguration/' + id + '/Statuses').then(r => {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public getProcessStatesWithDetails(id: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.get('./api/ProcessConfiguration/' + id + '/Statuses/AllData').then(r => {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('StatusGroupService', ['$q','$http']);","/// \r\nmodule warsApp.services {\r\n\r\n export class FormSectionService{\r\n public splitFields(group: Wars.Domain.Model.FormSection) {\r\n var currentIndex = -1;\r\n var wasPreviousSplit = false;\r\n (group).splitFields = [];\r\n var sortedFields = Enumerable.from(group.fields).orderBy(x => x.position).toArray();\r\n\r\n for (var i = 0; i < sortedFields.length; i++) {\r\n var field = sortedFields[i];\r\n if (wasPreviousSplit) {\r\n var split = (group).splitFields[currentIndex];\r\n split.push(field);\r\n }\r\n else {\r\n var item = [];\r\n item.push(field);\r\n (group).splitFields.push(item);\r\n currentIndex++;\r\n }\r\n\r\n if (field.isSplitRow) {\r\n wasPreviousSplit = true;\r\n } else {\r\n wasPreviousSplit = false;\r\n }\r\n }\r\n\r\n (group).splitFields.forEach(s => {\r\n if (s.length > 1) {\r\n s.forEach(f => {\r\n (f).isInSplitRow = true;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}\r\nwarsApp.registerService('FormSectionService', []);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var SubTypeGroupService = /** @class */ (function (_super) {\r\n __extends(SubTypeGroupService, _super);\r\n function SubTypeGroupService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n SubTypeGroupService.prototype.createNewSubTypeGroup = function () {\r\n var newSubTypeGroup = this.createNewEntity(\"SystemSubTypeGroup\");\r\n return newSubTypeGroup;\r\n };\r\n return SubTypeGroupService;\r\n }(services.DataService));\r\n services.SubTypeGroupService = SubTypeGroupService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('SubTypeGroupService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class SubTypeGroupService extends services.DataService {\r\n \r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createNewSubTypeGroup(): Wars.Domain.Model.SystemSubTypeGroup {\r\n var newSubTypeGroup = this.createNewEntity(\"SystemSubTypeGroup\");\r\n return newSubTypeGroup;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('SubTypeGroupService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var SystemActionService = /** @class */ (function (_super) {\r\n __extends(SystemActionService, _super);\r\n function SystemActionService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n SystemActionService.prototype.createNewSystemAction = function () {\r\n var newSystemAction = this.createNewEntity(\"SystemAction\");\r\n return newSystemAction;\r\n };\r\n return SystemActionService;\r\n }(services.DataService));\r\n services.SystemActionService = SystemActionService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('SystemActionService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class SystemActionService extends services.DataService {\r\n \r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createNewSystemAction(): Wars.Domain.Model.SystemAction {\r\n var newSystemAction = this.createNewEntity(\"SystemAction\");\r\n return newSystemAction;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('SystemActionService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var SystemCodeService = /** @class */ (function (_super) {\r\n __extends(SystemCodeService, _super);\r\n function SystemCodeService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n SystemCodeService.prototype.getSystemCode = function (id) {\r\n return this.fetchById(id, \"SystemCode\");\r\n };\r\n SystemCodeService.prototype.getSystemCodesByCodeGroupId = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemCode\")\r\n .where(\"parentCodeGroup_id\", \"==\", id);\r\n return this.executeQuery(query);\r\n };\r\n return SystemCodeService;\r\n }(services.DataService));\r\n services.SystemCodeService = SystemCodeService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('SystemCodeService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n\r\n export class SystemCodeService extends services.DataService {\r\n\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getSystemCode(id: string): ng.IPromise {\r\n return this.fetchById(id, \"SystemCode\");\r\n }\r\n\r\n public getSystemCodesByCodeGroupId(id: string): ng.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemCode\")\r\n .where(\"parentCodeGroup_id\", \"==\", id);\r\n\r\n return this.executeQuery(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('SystemCodeService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var SystemLevelService = /** @class */ (function (_super) {\r\n __extends(SystemLevelService, _super);\r\n function SystemLevelService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n SystemLevelService.prototype.getSystemLevel = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getMostSystemLevelInfo = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevelsLazy\")\r\n .expand(\"variableSchema, myConstants, myClaims, myEmailGroups, myStaticDocuments, myCalculations.valueOperation, myTimeTrackers, myClaimGroups\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelConstants = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myConstants\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelJsonDictionaryStores = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myJsonDictionaryStores\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelMapConfigurations = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myMapConfigurations.layers, myMapConfigurations.defaultLayer\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelObjectQueries = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myObjectQueries.myProjectionObjectSchema.properties.typeSchema.properties, myObjectQueries.myInputObjectSchema.properties\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelSecurityMatrices = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"mySecurityMatrices.claimBindings\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelVariables = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"variableSchema.properties\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelClaims = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myClaims\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelClaimsWithGrantAuthorizations = function () {\r\n var expand = \"myClaims.claimGrantAuthorities.myGrantClaimDefinition, \" +\r\n \"myClaims.claimGrantAuthorities.claimGrantAuthorityValues, \" +\r\n \"myClaims.claimGrantAuthorities.claimGrantRestrictionValues\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getUserRepositoryConfigurations = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myUserRepositoryConfigurations\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelEmailGroups = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myEmailGroups.myEmailAddresses, myEmailGroups\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemEmailConfigurations = function () {\r\n var expand = \"myEmailConfigurations, \" +\r\n \"myEmailConfigurations.recipients.claim, \" +\r\n \"myEmailConfigurations.carbonCopies, \" +\r\n \"myEmailConfigurations.blindCarbonCopies, \" +\r\n \"myEmailConfigurations.documents\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelBatchJobs = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand('myBatchJobConfigurations, myBatchJobConfigurations.parameters, myBatchJobConfigurations.parameters.treeItem');\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelApiConfigurations = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand('myApiConfigurations.parameters');\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelStaticDocuments = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myStaticDocuments\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelCalculations = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myCalculations\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelPaymentInfo = function () {\r\n var expand = \"myPaymentConfigurations.myCustomActionInputs.myTreeItem, \" +\r\n \"myPaymentConfigurations.myPaymentRequestFormValueLookup.myTreeItem, \" +\r\n \"myPaymentConfigurations.myPaymentCustomInformation.valueCalculation, \" +\r\n \"myPaymentConfigurations.myMappings.treeItem, \" +\r\n \"myPaymentConfigurations.myMappings.customInfo, \" +\r\n \"myPaymentConfigurations.amountTreeItem\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelQueryConfigurations = function () {\r\n var expand = \"myQueryConfigurations.parameters.treeItem, \" +\r\n \"myQueryConfigurations.myDataOperation.resultSchema.properties, \" +\r\n \"myQueryConfigurations.myDataOperation.myDataSource.objectSchemas.properties\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelCodes = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myCodeGroups.codes\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelDocumentConfiguration = function () {\r\n var expand = \"systemDocumentConfiguration.documentTypeCodeGroup.codes, \" +\r\n \"myDocumentConfigurations.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"myDocumentConfigurations.canSecureDocumentSecurityMatrix, \" +\r\n \"myDocumentConfigurations.myAvailableDocumentTypes.mySystemCode\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevelsLazy\")\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelStatusesAndStates = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"statusCodeGroup.myStatuses.myStates\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelClaimGroups = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myClaimGroups\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelReviewGroups = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myReviewGroups, myCodeGroups\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelSubTypeGroups = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"mySubTypeGroups\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelSystemActions = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"mySystemActions\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelFormContainerAssociations = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myFormContainerAssociations\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelTimeTrackers = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myTimeTrackers.myTimePeriods, myTimeTrackers.myClockStates, statusCodeGroup.myStatuses.myStates\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelProcessEvents = function () {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myProcessEventConfigurations\");\r\n return this.fetch(query);\r\n };\r\n SystemLevelService.prototype.getSystemLevelProcessEventConfigurations = function () {\r\n var expand = \"myProcessEventConfigurations.myInitiateSecurityMatrix, \" +\r\n \"myProcessEventConfigurations.myViewSecurityMatrix, \" +\r\n \"myProcessEventConfigurations.mySystemAction, \" +\r\n \"myProcessEventConfigurations.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"myProcessEventConfigurations.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"myProcessEventConfigurations.documentConfiguration.myAvailableDocumentTypes.mySystemCode\";\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n return this.fetch(query);\r\n };\r\n return SystemLevelService;\r\n }(services.DataService));\r\n services.SystemLevelService = SystemLevelService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('SystemLevelService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class SystemLevelService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getSystemLevel() {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getMostSystemLevelInfo(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevelsLazy\")\r\n .expand(\"variableSchema, myConstants, myClaims, myEmailGroups, myStaticDocuments, myCalculations.valueOperation, myTimeTrackers, myClaimGroups\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelConstants(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myConstants\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelJsonDictionaryStores(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myJsonDictionaryStores\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelMapConfigurations(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myMapConfigurations.layers, myMapConfigurations.defaultLayer\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelObjectQueries(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myObjectQueries.myProjectionObjectSchema.properties.typeSchema.properties, myObjectQueries.myInputObjectSchema.properties\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelSecurityMatrices(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"mySecurityMatrices.claimBindings\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelVariables(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"variableSchema.properties\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelClaims(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myClaims\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelClaimsWithGrantAuthorizations(): angular.IPromise {\r\n var expand = \"myClaims.claimGrantAuthorities.myGrantClaimDefinition, \" +\r\n \"myClaims.claimGrantAuthorities.claimGrantAuthorityValues, \" +\r\n \"myClaims.claimGrantAuthorities.claimGrantRestrictionValues\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getUserRepositoryConfigurations(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myUserRepositoryConfigurations\");\r\n\r\n return this.fetch(query);\r\n } \r\n\r\n public getSystemLevelEmailGroups(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myEmailGroups.myEmailAddresses, myEmailGroups\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemEmailConfigurations(): angular.IPromise {\r\n var expand = \"myEmailConfigurations, \" +\r\n \"myEmailConfigurations.recipients.claim, \" +\r\n \"myEmailConfigurations.carbonCopies, \" +\r\n \"myEmailConfigurations.blindCarbonCopies, \" +\r\n \"myEmailConfigurations.documents\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelBatchJobs(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand('myBatchJobConfigurations, myBatchJobConfigurations.parameters, myBatchJobConfigurations.parameters.treeItem');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelApiConfigurations(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand('myApiConfigurations.parameters');\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelStaticDocuments(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myStaticDocuments\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelCalculations(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myCalculations\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelPaymentInfo(): angular.IPromise {\r\n var expand = \"myPaymentConfigurations.myCustomActionInputs.myTreeItem, \" +\r\n \"myPaymentConfigurations.myPaymentRequestFormValueLookup.myTreeItem, \" +\r\n \"myPaymentConfigurations.myPaymentCustomInformation.valueCalculation, \" +\r\n \"myPaymentConfigurations.myMappings.treeItem, \" +\r\n \"myPaymentConfigurations.myMappings.customInfo, \" +\r\n \"myPaymentConfigurations.amountTreeItem\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelQueryConfigurations(): angular.IPromise {\r\n var expand = \"myQueryConfigurations.parameters.treeItem, \" +\r\n \"myQueryConfigurations.myDataOperation.resultSchema.properties, \" +\r\n \"myQueryConfigurations.myDataOperation.myDataSource.objectSchemas.properties\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelCodes(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myCodeGroups.codes\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelDocumentConfiguration(): angular.IPromise {\r\n var expand =\r\n \"systemDocumentConfiguration.documentTypeCodeGroup.codes, \" +\r\n \"myDocumentConfigurations.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"myDocumentConfigurations.canSecureDocumentSecurityMatrix, \" +\r\n \"myDocumentConfigurations.myAvailableDocumentTypes.mySystemCode\";\r\n \r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevelsLazy\")\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelStatusesAndStates(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"statusCodeGroup.myStatuses.myStates\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelClaimGroups(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myClaimGroups\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelReviewGroups(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myReviewGroups, myCodeGroups\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelSubTypeGroups(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"mySubTypeGroups\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelSystemActions(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"mySystemActions\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelFormContainerAssociations(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myFormContainerAssociations\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelTimeTrackers(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myTimeTrackers.myTimePeriods, myTimeTrackers.myClockStates, statusCodeGroup.myStatuses.myStates\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelProcessEvents(): angular.IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(\"myProcessEventConfigurations\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public getSystemLevelProcessEventConfigurations(): angular.IPromise {\r\n const expand = \"myProcessEventConfigurations.myInitiateSecurityMatrix, \" +\r\n \"myProcessEventConfigurations.myViewSecurityMatrix, \" +\r\n \"myProcessEventConfigurations.mySystemAction, \" +\r\n \"myProcessEventConfigurations.documentConfiguration.canDownloadSecureDocumentSecurityMatrix, \" +\r\n \"myProcessEventConfigurations.documentConfiguration.canSecureDocumentSecurityMatrix, \" +\r\n \"myProcessEventConfigurations.documentConfiguration.myAvailableDocumentTypes.mySystemCode\";\r\n\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"SystemLevels\")\r\n .expand(expand);\r\n\r\n return this.fetch(query);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('SystemLevelService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var TagService = /** @class */ (function (_super) {\r\n __extends(TagService, _super);\r\n function TagService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n TagService.prototype.getTagsLike = function (tagType) {\r\n var query;\r\n if (tagType === 0 /* Condition */) {\r\n query = this.breezeModule.EntityQuery\r\n .from(\"Tags\")\r\n .where(\"condition_id\", \"!=\", null);\r\n return this.executeQuery(query);\r\n }\r\n if (tagType === 1 /* Calculation */) {\r\n query = this.breezeModule.EntityQuery\r\n .from(\"Tags\")\r\n .where(\"calculation_id\", \"!=\", null);\r\n return this.executeQuery(query);\r\n }\r\n if (tagType === 2 /* Query */) {\r\n query = this.breezeModule.EntityQuery\r\n .from(\"Tags\")\r\n .where(\"queryConfiguration_id\", \"!=\", null);\r\n return this.executeQuery(query);\r\n }\r\n return null;\r\n };\r\n TagService.prototype.createTag = function () {\r\n return this.createNewEntity(\"Tag\");\r\n };\r\n return TagService;\r\n }(services.DataService));\r\n services.TagService = TagService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('TagService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n import Predicate = breeze.Predicate;\r\n\r\n export class TagService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public getTagsLike(tagType: Wars.Domain.Model.Codes.Enums.TagType): angular.IPromise {\r\n let query;\r\n if (tagType === Wars.Domain.Model.Codes.Enums.TagType.Condition) {\r\n query = this.breezeModule.EntityQuery\r\n .from(\"Tags\")\r\n .where(\"condition_id\", \"!=\", null);\r\n return this.executeQuery(query);\r\n }\r\n if (tagType === Wars.Domain.Model.Codes.Enums.TagType.Calculation) {\r\n query = this.breezeModule.EntityQuery\r\n .from(\"Tags\")\r\n .where(\"calculation_id\", \"!=\", null);\r\n return this.executeQuery(query);\r\n }\r\n if (tagType === Wars.Domain.Model.Codes.Enums.TagType.Query) {\r\n query = this.breezeModule.EntityQuery\r\n .from(\"Tags\")\r\n .where(\"queryConfiguration_id\", \"!=\", null);\r\n return this.executeQuery(query);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public createTag(): Wars.Domain.Model.Tag{\r\n return this.createNewEntity(\"Tag\");\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerService('TagService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var TimeTrackerService = /** @class */ (function (_super) {\r\n __extends(TimeTrackerService, _super);\r\n function TimeTrackerService(injectedBreeze, $q) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.$q = $q;\r\n return _this;\r\n }\r\n TimeTrackerService.prototype.createTimePeriod = function (timeTracker) {\r\n var timePeriod = this.createNewEntity(\"TimePeriod\");\r\n timePeriod.timeTracker_id = timeTracker.id;\r\n return timePeriod;\r\n };\r\n TimeTrackerService.prototype.createTimeTrackerContainer = function (processConfigId) {\r\n var timeTrackerContainer = this\r\n .createNewEntity(\"TimeTrackerContainer\");\r\n timeTrackerContainer.processConfiguration_id = processConfigId;\r\n timeTrackerContainer.isIndexed = false;\r\n return timeTrackerContainer;\r\n };\r\n TimeTrackerService.prototype.createTimeTracker = function () {\r\n var timeTracker = this.createNewEntity(\"TimeTracker\");\r\n timeTracker.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n timeTracker.timeType = 3 /* Days */;\r\n timeTracker.useBusinessHours = false;\r\n timeTracker.sortOrder = 0;\r\n return timeTracker;\r\n };\r\n TimeTrackerService.prototype.getTimeTrackerContainersByProcess = function (processConfigId) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"TimeTrackerContainers\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('myTimeTracker.myTimePeriods, myTimeTracker.myClockStates')\r\n .orderBy(\"myTimeTracker.name\");\r\n return (this.executeQuery(query));\r\n };\r\n TimeTrackerService.prototype.getTimeTracker = function (id) {\r\n return this.fetchById(id, \"TimeTracker\");\r\n };\r\n TimeTrackerService.prototype.getTimeTrackerStringValue = function (json) {\r\n // TODO: Need to pull configured timezone into this somehow \r\n var timeTrackerObj = JSON.parse(json);\r\n if (timeTrackerObj.ClockStatus === 1 /* Running */) {\r\n var currentDate = new Date();\r\n var milleseconds = Math.floor(currentDate - new Date(timeTrackerObj.DateTimeClockValueLastChanged));\r\n var seconds = Math.floor(milleseconds / 1000);\r\n var minutes = Math.floor(seconds / 60);\r\n var hours = Math.floor(minutes / 60);\r\n var days = Math.floor(hours / 24);\r\n if (timeTrackerObj.TimeType === 3 /* Days */) {\r\n return timeTrackerObj.TimeElapsedLastCalculated + days;\r\n }\r\n else if (timeTrackerObj.TimeType === 2 /* Hours */) {\r\n // TODO: When we implement minutes figure this out\r\n return timeTrackerObj.TimeElapsedLastCalculated + hours;\r\n }\r\n else if (timeTrackerObj.TimeType === 1 /* Minutes */) {\r\n // TODO: When we implement minutes figure this out\r\n return timeTrackerObj.TimeElapsedLastCalculated + minutes;\r\n }\r\n }\r\n return timeTrackerObj.TimeElapsedLastCalculated;\r\n };\r\n TimeTrackerService.prototype.createClockState = function () {\r\n return (this.createNewEntity(\"ClockState\"));\r\n };\r\n return TimeTrackerService;\r\n }(services.DataService));\r\n services.TimeTrackerService = TimeTrackerService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('TimeTrackerService', ['breeze', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n export class TimeTrackerService extends services.DataService {\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n this.$q = $q;\r\n }\r\n\r\n public createTimePeriod(timeTracker: Wars.Domain.Model.Workflow.TimeTracker): Wars.Domain.Model.Workflow.\r\n TimePeriod {\r\n var timePeriod = this.createNewEntity(\"TimePeriod\");\r\n timePeriod.timeTracker_id = timeTracker.id;\r\n\r\n return timePeriod;\r\n }\r\n\r\n public createTimeTrackerContainer(processConfigId: string): Wars.Domain.Model.Workflow.TimeTrackerContainer {\r\n var timeTrackerContainer = this\r\n .createNewEntity(\"TimeTrackerContainer\");\r\n timeTrackerContainer.processConfiguration_id = processConfigId;\r\n timeTrackerContainer.isIndexed = false;\r\n\r\n return timeTrackerContainer;\r\n }\r\n\r\n public createTimeTracker(): Wars.Domain.Model.Workflow.TimeTracker {\r\n var timeTracker = this.createNewEntity(\"TimeTracker\");\r\n timeTracker.uniqueIdentifier = UtilityService.generateGuidComb();\r\n timeTracker.timeType = Wars.Domain.Model.Workflow.TimeType.Days;\r\n timeTracker.useBusinessHours = false;\r\n timeTracker.sortOrder = 0;\r\n return timeTracker;\r\n }\r\n\r\n public getTimeTrackerContainersByProcess(processConfigId: string): ng.\r\n IPromise {\r\n const query = this.breezeModule.EntityQuery\r\n .from(\"TimeTrackerContainers\")\r\n .where('processConfiguration_id', '==', processConfigId)\r\n .expand('myTimeTracker.myTimePeriods, myTimeTracker.myClockStates')\r\n .orderBy(\"myTimeTracker.name\");\r\n\r\n return (this.executeQuery(query));\r\n }\r\n\r\n public getTimeTracker(id: string): ng.IPromise {\r\n return this.fetchById(id, \"TimeTracker\");\r\n }\r\n\r\n public getTimeTrackerStringValue(json: string): number{\r\n // TODO: Need to pull configured timezone into this somehow \r\n\r\n var timeTrackerObj = JSON.parse(json);\r\n\r\n if (timeTrackerObj.ClockStatus === Wars.Domain.Model.Codes.Enums.ClockStatus.Running) {\r\n let currentDate: any = new Date();\r\n let milleseconds = Math.floor(currentDate - new Date(timeTrackerObj.DateTimeClockValueLastChanged));\r\n let seconds = Math.floor(milleseconds / 1000);\r\n var minutes = Math.floor(seconds / 60);\r\n var hours = Math.floor(minutes / 60);\r\n var days = Math.floor(hours / 24);\r\n\r\n if (timeTrackerObj.TimeType === Wars.Domain.Model.Workflow.TimeType.Days) {\r\n return timeTrackerObj.TimeElapsedLastCalculated + days;\r\n }\r\n else if (timeTrackerObj.TimeType === Wars.Domain.Model.Workflow.TimeType.Hours) {\r\n // TODO: When we implement minutes figure this out\r\n return timeTrackerObj.TimeElapsedLastCalculated + hours;\r\n }\r\n else if (timeTrackerObj.TimeType === Wars.Domain.Model.Workflow.TimeType.Minutes) {\r\n // TODO: When we implement minutes figure this out\r\n return timeTrackerObj.TimeElapsedLastCalculated + minutes; \r\n }\r\n }\r\n\r\n return timeTrackerObj.TimeElapsedLastCalculated;\r\n }\r\n\r\n public createClockState(): Wars.Domain.Model.Clocks.ClockState {\r\n return (this.createNewEntity(\"ClockState\"));\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('TimeTrackerService', ['breeze', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var TimeZoneService = /** @class */ (function (_super) {\r\n __extends(TimeZoneService, _super);\r\n function TimeZoneService($http) {\r\n return _super.call(this, $http) || this;\r\n }\r\n TimeZoneService.prototype.getValidServerTimeZones = function () {\r\n var params = {};\r\n this.handlerUrl = \"api/TimeZone/TimeZones\";\r\n return this.useGetHandler(params).then(function (result) {\r\n return result;\r\n });\r\n };\r\n return TimeZoneService;\r\n }(services.HttpHandlerService));\r\n services.TimeZoneService = TimeZoneService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('TimeZoneService', ['$http']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class TimeZoneService extends HttpHandlerService {\r\n\r\n constructor($http: ng.IHttpService) {\r\n super($http);\r\n }\r\n\r\n public getValidServerTimeZones(): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/TimeZone/TimeZones\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.TimeZoneDto[]) => {\r\n return result;\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('TimeZoneService', ['$http']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var TreeItemLookupService = /** @class */ (function (_super) {\r\n __extends(TreeItemLookupService, _super);\r\n function TreeItemLookupService(injectedBreeze, $q) {\r\n return _super.call(this, injectedBreeze, $q) || this;\r\n }\r\n TreeItemLookupService.prototype.createTreeItemLookupEntry = function () {\r\n return this.createNewEntity(\"TreeItemLookup\");\r\n };\r\n return TreeItemLookupService;\r\n }(services.DataService));\r\n services.TreeItemLookupService = TreeItemLookupService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('TreeItemLookupService', [\"breeze\", \"$q\"]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class TreeItemLookupService extends services.DataService {\r\n\r\n constructor(injectedBreeze: typeof breeze, $q: angular.IQService) {\r\n super(injectedBreeze, $q);\r\n }\r\n\r\n public createTreeItemLookupEntry(): Wars.Domain.Model.TreeItemLookup {\r\n return this.createNewEntity(\"TreeItemLookup\");\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('TreeItemLookupService', [\"breeze\", \"$q\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var TreeItemService = /** @class */ (function (_super) {\r\n __extends(TreeItemService, _super);\r\n function TreeItemService(injectedBreeze, $q, utilityService) {\r\n var _this = _super.call(this, injectedBreeze, $q) || this;\r\n _this.utilityService = utilityService;\r\n return _this;\r\n }\r\n TreeItemService.prototype.getTreeItem = function (id) {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"TreeItems\")\r\n .where(\"id\", \"==\", id)\r\n .expand(\"schemaProperty, calculation.inputSchema.properties, condition, constantValue, formStep, claim\");\r\n return this.fetch(query);\r\n };\r\n TreeItemService.prototype.createTreeItem = function (isSystemLevel) {\r\n return this.createNewEntity(\"TreeItem\", { isSystemLevel: isSystemLevel });\r\n };\r\n return TreeItemService;\r\n }(services.DataService));\r\n services.TreeItemService = TreeItemService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('TreeItemService', ['breeze', '$q', 'utilityService']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class TreeItemService extends services.DataService {\r\n\r\n private utilityService: services.UtilityService;\r\n\r\n constructor(\r\n injectedBreeze: typeof breeze,\r\n $q: angular.IQService,\r\n utilityService: services.UtilityService) {\r\n super(injectedBreeze, $q);\r\n this.utilityService = utilityService;\r\n }\r\n\r\n public getTreeItem(id: string): angular.IPromise {\r\n var query = this.breezeModule.EntityQuery\r\n .from(\"TreeItems\")\r\n .where(\"id\", \"==\", id)\r\n .expand(\"schemaProperty, calculation.inputSchema.properties, condition, constantValue, formStep, claim\");\r\n\r\n return this.fetch(query);\r\n }\r\n\r\n public createTreeItem(isSystemLevel: boolean): Wars.Domain.Model.TreeItem {\r\n return this.createNewEntity(\"TreeItem\", {isSystemLevel: isSystemLevel});\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('TreeItemService', ['breeze', '$q', 'utilityService']);","/// \r\nmodule warsApp.services {\r\n\r\n export class TreeService {\r\n\r\n public static relatedClaimLookup: Wars.Domain.Model.Dtos.RelatedClaimDto[];\r\n private detailedTreeItemNameCache: any;\r\n private millisecondsToCache: number;\r\n private slatedForCacheRemoval: any;\r\n\r\n constructor(\r\n private treeItemService: services.TreeItemService,\r\n private fieldService: services.FieldService,\r\n private calculationService: services.CalculationService,\r\n private conditionService: services.ConditionService,\r\n private constantService: services.ConstantService,\r\n private emailGroupService: services.EmailGroupService,\r\n private formStepService: services.FormStepService,\r\n private claimDefinitionService: services.ClaimDefinitionService,\r\n private objectSchemaService: services.ObjectSchemaService,\r\n private schemaPropertyService: services.SchemaPropertyService,\r\n private interProcessApiService: services.InterProcessApiService,\r\n private staticDocumentService: services.ManageStaticDocumentsService,\r\n private $q: angular.IQService,\r\n private queryConfigurationService: services.QueryConfigurationService,\r\n private timeTrackerService: services.TimeTrackerService,\r\n private systemCodeService: services.SystemCodeService,\r\n private claimGroupService: services.ClaimGroupService,\r\n private $timeout: ng.ITimeoutService,\r\n private $http: ng.IHttpService)\r\n {\r\n this.detailedTreeItemNameCache = {};\r\n this.millisecondsToCache = 5 * 60 * 1000;\r\n this.slatedForCacheRemoval = {};\r\n }\r\n\r\n public getTreeConfigurationItem(): models.TreeConfigurationItem {\r\n return directives.ProcessConfigurationTree.getDecodedTreeItem(false);\r\n }\r\n\r\n public clearDragValue(): void {\r\n directives.ProcessConfigurationTree.getDecodedTreeItem(false);\r\n }\r\n\r\n public createTreeItemFromItemDropped(dataLoadCallback?: () => void): Wars.Domain.Model.TreeItem {\r\n var treeConfig = this.getTreeConfigurationItem();\r\n return this.createTreeItemFromConfig(treeConfig, dataLoadCallback);\r\n }\r\n\r\n public createTreeItemFromConfig(treeConfig: models.TreeConfigurationItem, dataLoadCallback?: () => void): Wars.Domain.Model.TreeItem {\r\n var dataLoadedFunction = (treeItem: Wars.Domain.Model.TreeItem) => {\r\n if (treeItem.placeholder === null || treeItem.placeholder === undefined) {\r\n treeItem.variableType = this.getTreeItemVariableType(treeItem);\r\n }\r\n if (dataLoadCallback) dataLoadCallback();\r\n }\r\n\r\n var newTreeItem = this.treeItemService.createTreeItem(treeConfig.isSystemLevel);\r\n newTreeItem.isList = treeConfig.isList !== undefined && treeConfig.isList;\r\n newTreeItem.isClaimWithValue = treeConfig.isClaimWithValue;\r\n newTreeItem.itemSource = treeConfig.treeItemSource;\r\n newTreeItem.variableType = treeConfig.variableType;\r\n newTreeItem.complexObjectProperty = treeConfig.complexObjectProperty;\r\n\r\n if (treeConfig.staticDocumentId) {\r\n newTreeItem.staticDocument_id = treeConfig.staticDocumentId;\r\n this.staticDocumentService.getStaticDocumentById(treeConfig.staticDocumentId).then(\r\n (documentMetaData) => {\r\n newTreeItem.staticDocument = documentMetaData;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.stepId) {\r\n newTreeItem.formStep_id = treeConfig.stepId;\r\n this.formStepService.fetchFormStep(treeConfig.stepId).then(\r\n (step) => {\r\n newTreeItem.formStep = step;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.claimId) {\r\n newTreeItem.claim_id = treeConfig.claimId;\r\n this.claimDefinitionService.getById(treeConfig.claimId).then(\r\n (claim) => {\r\n newTreeItem.claim = claim;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.processDataId) {\r\n newTreeItem.schemaProperty_id = treeConfig.processDataId;\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.processDataId).then(\r\n (processDataSchema) => {\r\n newTreeItem.schemaProperty = processDataSchema;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.conditionId) {\r\n newTreeItem.condition_id = treeConfig.conditionId;\r\n this.conditionService.getCondition(treeConfig.conditionId).then(\r\n (condition) => {\r\n newTreeItem.condition = condition;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.calculationId) {\r\n newTreeItem.calculation_id = treeConfig.calculationId;\r\n this.calculationService.getCalculation(treeConfig.calculationId).then(\r\n (calculation) => {\r\n newTreeItem.calculation = calculation;\r\n\r\n var deferred = this.$q.defer();\r\n\r\n newTreeItem.calculation.entityAspect.loadNavigationProperty(\"inputSchema\").then(() => {\r\n newTreeItem.calculation.inputSchema.entityAspect.loadNavigationProperty(\"properties\").then(() => {\r\n deferred.resolve();\r\n });\r\n });\r\n\r\n this.$q.all([\r\n newTreeItem.calculation.entityAspect.loadNavigationProperty(\"valueOperation\"),\r\n deferred.promise\r\n ]).then(() => {\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n });\r\n }\r\n\r\n if (treeConfig.constantId) {\r\n newTreeItem.constantValue_id = treeConfig.constantId;\r\n this.constantService.getConstant(treeConfig.constantId).then(\r\n (constantValue) => {\r\n newTreeItem.constantValue = constantValue;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.emailGroupId) {\r\n newTreeItem.emailGroup_id = treeConfig.emailGroupId;\r\n this.emailGroupService.getById(treeConfig.emailGroupId).then(\r\n (emailGroup) => {\r\n newTreeItem.emailGroup = emailGroup;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.queryId) {\r\n newTreeItem.queryConfiguration_id = treeConfig.queryId;\r\n\r\n this.$q.all([\r\n this.queryConfigurationService.getQueryConfiguration(treeConfig.queryId).then(\r\n (queryConfiguration) => {\r\n newTreeItem.queryConfiguration = queryConfiguration;\r\n }),\r\n this.queryConfigurationService.getSchemaProperty(treeConfig.schemaPropertyId).then(\r\n (schemaProperty) => {\r\n newTreeItem.schemaProperty = schemaProperty;\r\n })\r\n ]).then(() => {\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n else if (treeConfig.relatedClaimProcessTypeId) {\r\n newTreeItem.relatedClaimProcessType_id = treeConfig.relatedClaimProcessTypeId;\r\n newTreeItem.claimDefinitionUniqueId = treeConfig.claimUniqueId;\r\n dataLoadedFunction(newTreeItem);\r\n }\r\n else if (treeConfig.interProcessApiId) {\r\n newTreeItem.interProcessApi_id = treeConfig.interProcessApiId;\r\n newTreeItem.schemaProperty_id = treeConfig.schemaPropertyId;\r\n this.$q.all([\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then(\r\n (schemaProperty) => {\r\n newTreeItem.schemaProperty = schemaProperty;\r\n }),\r\n this.interProcessApiService.getInterProcessApi(treeConfig.interProcessApiId).then(\r\n (interProcessApi) => {\r\n newTreeItem.interProcessApi = interProcessApi;\r\n })\r\n ]).then(() => {\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n else if (treeConfig.schemaPropertyId) {\r\n newTreeItem.schemaProperty_id = treeConfig.schemaPropertyId;\r\n\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then(\r\n (schemaProperty) => {\r\n newTreeItem.schemaProperty = schemaProperty;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.listPropertyId) {\r\n newTreeItem.schemaProperty_id = treeConfig.listPropertyId;\r\n newTreeItem.objectSchema_id = treeConfig.listSectionId;\r\n\r\n var schemaPropertyPromise = this.schemaPropertyService.getSchemaProperty(treeConfig.listPropertyId);\r\n schemaPropertyPromise.then(\r\n (schemaProperty) => {\r\n newTreeItem.schemaProperty = schemaProperty;\r\n });\r\n var objectSchemaPromise = this.objectSchemaService.getObjectSchema(treeConfig.listSectionId);\r\n objectSchemaPromise.then(\r\n (objectSchema) => {\r\n newTreeItem.objectSchema = objectSchema;\r\n });\r\n\r\n this.$q.all([schemaPropertyPromise, objectSchemaPromise]).then(() => {\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.placeholder !== undefined) {\r\n newTreeItem.variableType = treeConfig.variableType;\r\n newTreeItem.placeholder = treeConfig.placeholder;\r\n newTreeItem.userClaimDefinition_id = treeConfig.userClaimDefinitionId;\r\n\r\n this.$timeout(() => {\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.timeTrackerId !== undefined) {\r\n newTreeItem.variableType = treeConfig.variableType;\r\n newTreeItem.timeTracker_id = treeConfig.timeTrackerId;\r\n this.timeTrackerService.getTimeTracker(treeConfig.timeTrackerId).then(\r\n (timeTracker) => {\r\n newTreeItem.timeTracker = timeTracker;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.systemCodeId !== undefined) {\r\n newTreeItem.variableType = treeConfig.variableType;\r\n newTreeItem.systemCode_id = treeConfig.systemCodeId;\r\n this.systemCodeService.getSystemCode(treeConfig.systemCodeId)\r\n .then((systemCode) => {\r\n newTreeItem.systemCode = systemCode;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n if (treeConfig.claimGroupId !== undefined) {\r\n newTreeItem.variableType = treeConfig.variableType;\r\n newTreeItem.claimGroup_id = treeConfig.claimGroupId;\r\n this.claimGroupService.getGlaimGroup(treeConfig.claimGroupId)\r\n .then((claimGroup) => {\r\n newTreeItem.claimGroup = claimGroup;\r\n dataLoadedFunction(newTreeItem);\r\n });\r\n }\r\n\r\n return newTreeItem;\r\n }\r\n\r\n public getParentDisplayIcon(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Calculation) {\r\n return \"glyphicon-superscript\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Claim) {\r\n return \"glyphicon-lock\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.RelatedClaim) {\r\n return \"glyphicon-lock\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Condition) {\r\n return \"glyphicon-copyright-mark\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Constant) {\r\n return \"glyphicon-wrench\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Document) {\r\n return \"glyphicon-file\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.EmailGroup) {\r\n return \"glyphicon-envelope\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField) {\r\n return \"glyphicon-pencil\";\r\n }\r\n //TODO: add OperationParameter\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Query) {\r\n return \"glyphicon-certificate\";\r\n }\r\n //TODO: add Step\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable) {\r\n return \"glyphicon-floppy-disk\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.InterProcessApi) {\r\n return \"glyphicon glyphicon-road\";\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getParentDisplayName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Calculation) {\r\n return \"Calculation\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Claim) {\r\n return \"Claim\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.RelatedClaim) {\r\n return \"Related Claim\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Condition) {\r\n return \"Condition\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Constant) {\r\n return \"Constant\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Document) {\r\n return \"Document\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.EmailGroup) {\r\n return \"Email Group\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField) {\r\n return \"Form Field\";\r\n }\r\n //TODO: add OperationParameter\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Query) {\r\n return treeItem.queryConfiguration ? treeItem.queryConfiguration.name : \"\";\r\n }\r\n //TODO: add Step\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable) {\r\n return \"Variable\";\r\n }\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.InterProcessApi) {\r\n return \"Inter-Process API\";\r\n }\r\n if (treeItem.placeholder !== null) {\r\n return \"Placeholder\";\r\n }\r\n if (treeItem.systemCode_id !== null) {\r\n return \"Code\";\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getDetailedDisplayName(treeItem: Wars.Domain.Model.TreeItem): ng.IPromise {\r\n var defer = this.$q.defer();\r\n\r\n if (treeItem === undefined || treeItem === null) {\r\n defer.resolve(\"\");\r\n }\r\n else if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField ||\r\n treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable) {\r\n\r\n if (treeItem.schemaProperty_id !== undefined && treeItem.schemaProperty_id !== null) {\r\n\r\n var cachedValue = this.detailedTreeItemNameCache[treeItem.schemaProperty_id];\r\n if (cachedValue !== undefined) {\r\n defer.resolve(cachedValue);\r\n } else {\r\n // Not in cache go get it\r\n var handlerUrl = \"api/Tree/DetailedTreeItemDisplay/\" + treeItem.id;\r\n var params = {};\r\n this.$http.get(handlerUrl, params).then(\r\n (response: any) => {\r\n var result = this.handlerResponded(response, params);\r\n\r\n // Only do the caching thing if not empty\r\n if (result !== undefined && result !== null && result !== \"\") {\r\n this.detailedTreeItemNameCache[treeItem.schemaProperty_id] = result;\r\n\r\n // Only slate this for cache removal if not already slated for removal\r\n if (!this.slatedForCacheRemoval.hasOwnProperty(treeItem.schemaProperty_id)) {\r\n this.slatedForCacheRemoval[treeItem.schemaProperty_id] = true;\r\n this.$timeout(() => {\r\n delete this.detailedTreeItemNameCache[treeItem.schemaProperty_id];\r\n delete this.slatedForCacheRemoval[treeItem.schemaProperty_id];\r\n },\r\n this.millisecondsToCache);\r\n }\r\n }\r\n defer.resolve(result);\r\n });\r\n }\r\n } else {\r\n defer.resolve(\"\");\r\n }\r\n } else {\r\n var displayName = this.getDisplayName(treeItem);\r\n defer.resolve(displayName);\r\n }\r\n\r\n return defer.promise;\r\n }\r\n\r\n public getDisplayName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (treeItem === undefined || treeItem === null) return \"\";\r\n var levelIndicator = treeItem.isSystemLevel ? \"System\" : \"Process\";\r\n if (treeItem.itemSource === Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField) {\r\n return this.getDisplayNameBasic(treeItem);\r\n } else {\r\n return this.getDisplayNameBasic(treeItem) + '(' + levelIndicator + ')';\r\n }\r\n }\r\n\r\n public getDisplayNameBasic(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n\r\n if (treeItem.interProcessApi) {\r\n return treeItem.interProcessApi.name + \" - \" + treeItem.schemaProperty.name;\r\n }\r\n if (treeItem.staticDocument) {\r\n return treeItem.staticDocument.name;\r\n }\r\n if (treeItem.formStep) {\r\n return treeItem.formStep.objectSchema.name;\r\n }\r\n if (treeItem.claim) {\r\n return treeItem.claim.type;\r\n }\r\n if (treeItem.claimDefinitionUniqueId) {\r\n var match = Enumerable.from(TreeService.relatedClaimLookup).firstOrDefault(i => i.uniqueIdentifier === treeItem.claimDefinitionUniqueId);\r\n return match ? match.claimName : \"Could not find in Related Claim Lookup\";\r\n }\r\n if (treeItem.condition) {\r\n return treeItem.condition.name;\r\n }\r\n if (treeItem.calculation) {\r\n return treeItem.calculation.name;\r\n }\r\n if (treeItem.constantValue) {\r\n return treeItem.constantValue.name;\r\n }\r\n if (treeItem.schemaProperty) {\r\n if (treeItem.complexObjectProperty != null) {\r\n return this.getComplexObjectDisplayName(treeItem.schemaProperty.name, treeItem);\r\n }\r\n return treeItem.schemaProperty.name;\r\n }\r\n if (treeItem.queryConfiguration) {\r\n return treeItem.queryConfiguration.name;\r\n }\r\n if (treeItem.objectSchema) {\r\n return treeItem.objectSchema.name;\r\n }\r\n if (treeItem.emailGroup) {\r\n return treeItem.emailGroup.name;\r\n }\r\n if (treeItem.timeTracker) {\r\n return treeItem.timeTracker.name;\r\n }\r\n if (treeItem.placeholder !== undefined) {\r\n switch (treeItem.placeholder) {\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.CurrentYear:\r\n return \"Current Year\";\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.ProcessIdentifier:\r\n return \"Process Identifier\";\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.ProcessType:\r\n return \"Process Type\";\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.CurrentDateTime:\r\n return this.getComplexObjectDisplayName(\"Current Date Time\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.CurrentUser:\r\n return this.getComplexObjectDisplayName(\"Current User\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.ProcessInitiator:\r\n return this.getComplexObjectDisplayName(\"Process Initiator\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.NewLine:\r\n return \"New Line\";\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.Space:\r\n return \"Space\";\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.Tab:\r\n return \"Tab\";\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.Empty:\r\n return \"Empty\";\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.CurrentStatus:\r\n return this.getComplexObjectDisplayName(\"Current Status\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.CurrentSubType:\r\n return this.getComplexObjectDisplayName(\"Current SubType\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.CurrentState:\r\n return this.getComplexObjectDisplayName(\"Current State\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.UserAction:\r\n return this.getComplexObjectDisplayName(\"Most Recent User Action\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.ProcessEvent:\r\n return this.getComplexObjectDisplayName(\"Current Process Event\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.Assignment:\r\n return this.getComplexObjectDisplayName(\"Current Assignment\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.Review:\r\n return this.getComplexObjectDisplayName(\"Current Review\", treeItem);\r\n case Wars.Domain.Model.Codes.Enums.Placeholder.AllSelectedDocuments:\r\n return \"All Selected Documents\";\r\n }\r\n }\r\n\r\n if (treeItem.systemCode) {\r\n return this.getComplexObjectDisplayName(treeItem.systemCode.shortDescription, treeItem);\r\n }\r\n if (treeItem.claimGroup) {\r\n return \"Claim Group - \" + treeItem.claimGroup.name;\r\n }\r\n\r\n return \"getDisplayName() for this tree item type is In-Work\";\r\n }\r\n\r\n private getComplexObjectDisplayName(prefix: string, treeItem: Wars.Domain.Model.TreeItem): string {\r\n switch (treeItem.complexObjectProperty) {\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Id:\r\n return prefix;\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_FirstName:\r\n return prefix + \": First Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_MiddleName:\r\n return prefix + \": Middle Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_LastName:\r\n return prefix + \": Last Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_UserName:\r\n return prefix + \": User Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_FullName:\r\n return prefix + \": Full Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Email:\r\n return prefix + \": User Email\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Company:\r\n return prefix + \": User Company\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_PhoneNumber:\r\n return prefix + \": Phone Number\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Position:\r\n return prefix + \": Position\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_ExternalSystemId:\r\n return prefix + \": External System Id\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Claims:\r\n return prefix + \": Claims\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_ClaimValues:\r\n return prefix + \": Claim Values\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_Id:\r\n return prefix;\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_ShortDescription:\r\n return prefix + \": Short Description\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_LongDescription:\r\n return prefix + \": Long Description\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_EffectiveDate:\r\n return prefix + \": Effective Date\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.SubType_Id:\r\n return prefix;\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.SubType_DisplayName:\r\n return prefix + \": Display Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.SubType_Name:\r\n return prefix + \": Name\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_Id:\r\n return prefix;\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_ShortDescription:\r\n return prefix + \": Short Description\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_LongDescription:\r\n return prefix + \": Long Description\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_EffectiveDate:\r\n return prefix + \": Effective Date\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_Id:\r\n return prefix;\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_ShortDescription:\r\n return prefix + \": Short Description\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_LongDescription:\r\n return prefix + \": Long Description\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_Id:\r\n return prefix;\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_Code_Id:\r\n return prefix + \": Resource Code\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_Code_ShortDescription:\r\n return prefix + \": Short Description\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_Code_LongDescription:\r\n return prefix + \": Long Description\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_BeginDate:\r\n return prefix + \": Begin Date\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_EndDate:\r\n return prefix + \": End Date\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheudledResource_IsBooked:\r\n return prefix + \": Is Booked\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_DateTime:\r\n return prefix;\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortDate:\r\n return prefix + \": Short Date\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongDate:\r\n return prefix + \": Long Date\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortDateShortTime:\r\n return prefix + \": Short Date/Short Time\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortDateLongTime:\r\n return prefix + \": Short Date/Long Time\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongDateShortTime:\r\n return prefix + \": Long Date/Short Time\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongDateLongTime:\r\n return prefix + \": Long Date/Long Time\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortTime:\r\n return prefix + \": Short Time\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongTime:\r\n return prefix + \": Long Time\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.UserAction_Comment:\r\n return prefix + \": Comment\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.UserAction_Documents:\r\n return prefix + \": Documents\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.UserAction_EffectiveDate:\r\n return prefix + \": Effective Date\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ProcessEvent_Comment:\r\n return prefix + \": Comment\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ProcessEvent_Documents:\r\n return prefix + \": Documents\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Id:\r\n return prefix + \": Assignment\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Id:\r\n return prefix + \": Assignee\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_FirstName:\r\n return prefix + \": Assignee First Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_MiddleName:\r\n return prefix + \": Assignee Middle Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_LastName:\r\n return prefix + \": Assignee Last Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_FullName:\r\n return prefix + \": Assignee Full Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Email:\r\n return prefix + \": Assignee Email\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Company:\r\n return prefix + \": Assignee Company\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_PhoneNumber:\r\n return prefix + \": Assignee Phone Number\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Position:\r\n return prefix + \": Assignee Position\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Claims:\r\n return prefix + \": Assignee Claims\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_ClaimValues:\r\n return prefix + \": Assignee Claim Values\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Id:\r\n return prefix + \": Assignor\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_FirstName:\r\n return prefix + \": Assignor First Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_MiddleName:\r\n return prefix + \": Assignor Middle Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_LastName:\r\n return prefix + \": Assignor Last Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_FullName:\r\n return prefix + \": Assignor Full Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Email:\r\n return prefix + \": Assignor Email\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Company:\r\n return prefix + \": Assignor Company\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_PhoneNumber:\r\n return prefix + \": Assignor Phone Number\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Position:\r\n return prefix + \": Assignor Position\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Claims:\r\n return prefix + \": Assignor Claims\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_ClaimValues:\r\n return prefix + \": Assignor Claim Values\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_AssignedUser_Id:\r\n return prefix + \": Assignee\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_FirstName:\r\n return prefix + \": Assignee First Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_MiddleName:\r\n return prefix + \": Assignee Middle Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_LastName:\r\n return prefix + \": Assignee Last Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_FullName:\r\n return prefix + \": Assignee Full Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_Email:\r\n return prefix + \": Assignee Email\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_Company:\r\n return prefix + \": Assignee Company\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_PhoneNumber:\r\n return prefix + \": Assignee Phone Number\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_Position:\r\n return prefix + \": Assignee Position\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_Claims:\r\n return prefix + \": Assignee Claims\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_ClaimValues:\r\n return prefix + \": Assignee Claim Values\";\r\n\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_AssignorUser_Id:\r\n return prefix + \": Assignor\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_FirstName:\r\n return prefix + \": Assignor First Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_MiddleName:\r\n return prefix + \": Assignor Middle Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_LastName:\r\n return prefix + \": Assignor Last Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_FullName:\r\n return prefix + \": Assignor Full Name\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_Email:\r\n return prefix + \": Assignor Email\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_Company:\r\n return prefix + \": Assignor Company\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_PhoneNumber:\r\n return prefix + \": Assignor Phone Number\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_Position:\r\n return prefix + \": Assignor Position\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_Claims:\r\n return prefix + \": Assignor Claims\";\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_ClaimValues:\r\n return prefix + \": Assignor Claim Values\";\r\n\r\n case Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Comment:\r\n return prefix + \": Comment\";\r\n }\r\n return \"Unknown\";\r\n }\r\n\r\n public getTreeItemVariableType(treeItem: Wars.Domain.Model.TreeItem): Wars.Domain.Model.Codes.Enums.VariableType {\r\n if (!treeItem) return undefined;\r\n\r\n if (treeItem.complexObjectProperty && treeItem.variableType !== null && treeItem.variableType != undefined) {\r\n return treeItem.variableType;\r\n }\r\n\r\n if (treeItem.schemaProperty) {\r\n return treeItem.schemaProperty.propertyType;\r\n }\r\n else if (treeItem.calculation) {\r\n return treeItem.calculation.valueOperation.variableType;\r\n }\r\n else if (treeItem.condition) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Boolean;\r\n }\r\n else if (treeItem.constantValue || treeItem.staticDocument || treeItem.emailGroup) {\r\n return treeItem.constantValue.variableType;\r\n }\r\n else if (treeItem.systemCode || treeItem.claim) {\r\n return treeItem.variableType;\r\n }\r\n else if (treeItem.timeTracker) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n } else if (treeItem.claimGroup) {\r\n return Wars.Domain.Model.Codes.Enums.VariableType.ClaimGroup;\r\n }\r\n else if (treeItem.relatedClaimProcessType_id) {\r\n // List of users with the claim\r\n return Wars.Domain.Model.Codes.Enums.VariableType.List;\r\n }\r\n else {\r\n alert(\"Still need to implement getTreeItemVariableType for this tree item type\");\r\n }\r\n }\r\n\r\n public doesTreeItemHaveParameters(treeItem: Wars.Domain.Model.TreeItem): boolean {\r\n if (treeItem.calculation && treeItem.calculation.inputSchema && treeItem.calculation.inputSchema.properties && treeItem.calculation.inputSchema.properties.length > 0) return true;\r\n return false;\r\n }\r\n\r\n public getVariableTypeForField(field: Wars.Domain.Model.Field): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n switch (field.type) {\r\n case Wars.Domain.Model.Codes.Enums.FieldType.TextBox:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.TextArea:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.PhoneNumber:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Zipcode:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Url:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.EmailAddress:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.String);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.RadioButton:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Dropdown:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.Code);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.CheckBox:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.Boolean);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.AutoComplete:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.ProcessId);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Number:\r\n d.resolve(field.decimalPlaces && field.decimalPlaces > 0\r\n ? Wars.Domain.Model.Codes.Enums.VariableType.Decimal\r\n : Wars.Domain.Model.Codes.Enums.VariableType.Integer);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Date:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.Date);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Time:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.Time);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Currency:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Percentage:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.Decimal);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.DocumentUpload:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.Document);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Label:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.RichText:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.CustomButton:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.CustomDiv:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.StaticDocument:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Payment:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.CalculationField:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.StateChange:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Map:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.MapFunction:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.GisWorkflow:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.GisQueryGrid:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.None);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.ScheduledResource:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.ScheduledResource);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Status:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.Status);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.ProcessActionButton:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.ProcessAction);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.State:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.State);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.MultiSelectStatus:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.MultiSelectStatus);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.MultiSelectState:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.MultiSelectState);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Feature:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.Feature);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.ApiGrid:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.ProcessList);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.ProcessType:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.ProcessType);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.SubType:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.SubType);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.UserSelector:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.User);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.ClaimGroup:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.Claim);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.ReviewGroup:\r\n d.resolve(Wars.Domain.Model.Codes.Enums.VariableType.ReviewConfiguration);\r\n break;\r\n default:\r\n d.resolve(undefined);\r\n }\r\n return d.promise;\r\n }\r\n\r\n public getRelatedClaimLookup(): ng.IPromise {\r\n var handlerUrl = \"api/Tree/RelatedClaims\";\r\n var params = {};\r\n var result: ng.IPromise = this.$http.post(handlerUrl, params)\r\n .then((response: any): ng.IPromise => this.handlerResponded(response, params));\r\n\r\n return result;\r\n }\r\n\r\n private handlerResponded(response: any, params: any): any {\r\n response.data.requestParams = params;\r\n return response.data;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('TreeService', [\r\n 'treeItemService', 'fieldService', 'calculationService', 'conditionService', 'constantService', 'emailGroupService', 'formStepService', 'claimDefinitionService',\r\n 'objectSchemaService', 'schemaPropertyService', \"interProcessApiService\", 'manageStaticDocumentsService', '$q', 'queryConfigurationService', 'timeTrackerService',\r\n 'systemCodeService', 'claimGroupService', '$timeout', \"$http\"\r\n]);","/// \r\nmodule warsApp.services {\r\n\r\n export class UserActionTransientDataDto {\r\n public userActionId: string;\r\n public comment: string;\r\n public docIds: string[];\r\n public effectiveDate: Date;\r\n public processActionWorkflowBlockId: string;\r\n public documents: Wars.Domain.Model.Dtos.DocumentDto[];\r\n }\r\n\r\n export class UserActionService {\r\n\r\n private userActionId: string;\r\n private comment: string;\r\n private docIds: string[];\r\n private effectiveDate: Date;\r\n private processActionWorkflowBlockId: string;\r\n private documents: Wars.Domain.Model.Dtos.DocumentDto[];\r\n\r\n constructor() { }\r\n\r\n public storeTransientUserActionData(userActionId: string, comment: string, docIds: string[], effectiveDate: Date, processActionWorkflowBlockId: string): void {\r\n var self = this;\r\n self.comment = comment;\r\n self.docIds = docIds;\r\n self.effectiveDate = effectiveDate;\r\n self.processActionWorkflowBlockId = processActionWorkflowBlockId;\r\n self.userActionId = userActionId;\r\n }\r\n\r\n public updateDocuments(documents: Wars.Domain.Model.Dtos.DocumentDto[]) {\r\n var self = this;\r\n self.documents = documents;\r\n }\r\n\r\n public getTransientUserActionData(userActionId: string): UserActionTransientDataDto {\r\n var self = this;\r\n if (self.userActionId === userActionId) {\r\n var dto = new UserActionTransientDataDto();\r\n dto.userActionId = self.userActionId;\r\n dto.comment = self.comment;\r\n dto.docIds = self.docIds;\r\n dto.effectiveDate = self.effectiveDate;\r\n dto.processActionWorkflowBlockId = self.processActionWorkflowBlockId;\r\n dto.documents = self.documents;\r\n //self.clearTransientUserActionData();\r\n return dto;\r\n }\r\n self.clearTransientUserActionData();\r\n return null;\r\n }\r\n \r\n public clearTransientUserActionData() {\r\n var self = this;\r\n self.comment = undefined;\r\n self.docIds = undefined;\r\n self.effectiveDate = undefined;\r\n self.processActionWorkflowBlockId = undefined;\r\n self.userActionId = undefined;\r\n self.documents = [];\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"UserActionService\", []);","/// \r\n\r\nmodule warsApp.services {\r\n\r\n export class UserAdministrationService {\r\n \r\n public apiBaseRoute = \"./api/UserAdministration/\";\r\n \r\n constructor(\r\n private $http: ng.IHttpService,\r\n private $q: angular.IQService)\r\n {\r\n \r\n }\r\n\r\n public getUsers(userProviders): angular.IPromise {\r\n var self = this;\r\n var d = this.$q.defer();\r\n var tags = Enumerable.from(userProviders).select(i => (i).tag).toArray();\r\n this.$http.post(self.apiBaseRoute + \"GetUsers\", {providers: tags}).then(result => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public getUserGrantAuthorizations(): angular.IPromise {\r\n var self = this;\r\n var d = this.$q.defer();\r\n this.$http.get(self.apiBaseRoute + \"GetUserGrantAuthorizations\").then(result => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public getUserProviders(): angular.IPromise {\r\n var self = this;\r\n var d = this.$q.defer();\r\n this.$http.get(self.apiBaseRoute + \"GetUserProviders\").then(result => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public addUser(user): angular.IPromise {\r\n var self = this;\r\n var d = this.$q.defer();\r\n this.$http.post(self.apiBaseRoute + \"AddUser\", user).then(result => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public removeClaim(claimId): angular.IPromise {\r\n var self = this;\r\n var d = this.$q.defer();\r\n this.$http.post(self.apiBaseRoute + \"RemoveClaim\", { claimId: claimId }).then(result => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public addUserNewClaim(user): angular.IPromise {\r\n var self = this;\r\n var d = this.$q.defer();\r\n this.$http.post(self.apiBaseRoute + \"AddUserNewClaim\", user).then(result => {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n }\r\n \r\n }\r\n}\r\n\r\nwarsApp.registerService('UserAdministrationService', ['$http', '$q']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var UserService = /** @class */ (function (_super) {\r\n __extends(UserService, _super);\r\n function UserService($http, $q, localStorageService) {\r\n var _this = _super.call(this, $http) || this;\r\n _this.$http = $http;\r\n _this.$q = $q;\r\n _this.localStorageService = localStorageService;\r\n _this.userNameHashTable = {};\r\n _this.allQueryIssued = false;\r\n return _this;\r\n }\r\n UserService.prototype.setLoggedInUserId = function (userId) {\r\n this.loggedInUserId = userId;\r\n };\r\n UserService.prototype.setImpersonationUserId = function (userId) {\r\n this.impersonationUserId = userId;\r\n };\r\n UserService.prototype.clearImpersonationUserId = function () {\r\n this.impersonationUserId = undefined;\r\n };\r\n UserService.prototype.isCurrentlyImpersonating = function () {\r\n return this.impersonationUserId !== undefined;\r\n };\r\n UserService.prototype.getLoggedInUserId = function () {\r\n return this.impersonationUserId ? this.impersonationUserId : this.loggedInUserId;\r\n };\r\n UserService.prototype.getCurrentUser = function () {\r\n var data = this.localStorageService.get(\"authorizationData\");\r\n if (data) {\r\n return (data);\r\n }\r\n return null;\r\n };\r\n UserService.prototype.getUser = function (userId) {\r\n var d = this.$q.defer();\r\n this.$http.get(\"./api/Account/GetUser/\" + userId).then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n };\r\n UserService.prototype.getCurrentUserClaims = function (processConfigId) {\r\n var d = this.$q.defer();\r\n this.$http.get(\"./api/claims/UserClaims/\" + processConfigId)\r\n .then(function (claims) {\r\n d.resolve(claims.data);\r\n });\r\n return d.promise;\r\n };\r\n UserService.prototype.searchUsers = function (searchCriteria) {\r\n var d = this.$q.defer();\r\n if (searchCriteria.userRepository && searchCriteria.userRepository !== \"\") {\r\n this.$http.get(\"./api/Account/SearchExternalAccounts/\" + searchCriteria.userName + \"/\" + searchCriteria.userRepository).then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n }\r\n else {\r\n this.$http.get(\"./api/Account/SearchAccounts/\" + searchCriteria.userName).then(function (r) {\r\n d.resolve(r.data);\r\n });\r\n }\r\n return d.promise;\r\n };\r\n UserService.prototype.addExternalUser = function (userSearchDto) {\r\n var d = this.$q.defer();\r\n this.$http.post(\"./api/Account/AddExternalAccount\", userSearchDto).then(function (result) {\r\n d.resolve(result.data);\r\n });\r\n return d.promise;\r\n };\r\n return UserService;\r\n }(services.HttpHandlerService));\r\n services.UserService = UserService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService(\"UserService\", [\"$http\", \"$q\", \"localStorageService\",]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class UserService extends HttpHandlerService {\r\n\r\n private userNameHashTable: HashTable = {};\r\n private allQueryIssued = false;\r\n private loggedInUserId: string;\r\n private impersonationUserId: string;\r\n\r\n constructor(private $http: ng.IHttpService, private $q: angular.IQService, private localStorageService: any) {\r\n super($http);\r\n }\r\n\r\n public setLoggedInUserId(userId: string): void {\r\n this.loggedInUserId = userId;\r\n }\r\n\r\n public setImpersonationUserId(userId: string): void {\r\n this.impersonationUserId = userId;\r\n }\r\n\r\n public clearImpersonationUserId(): void {\r\n this.impersonationUserId = undefined;\r\n }\r\n\r\n public isCurrentlyImpersonating(): boolean {\r\n return this.impersonationUserId !== undefined;\r\n }\r\n\r\n public getLoggedInUserId(): string {\r\n return this.impersonationUserId ? this.impersonationUserId : this.loggedInUserId;\r\n }\r\n\r\n public getCurrentUser(): models.User {\r\n var data = this.localStorageService.get(\"authorizationData\");\r\n if (data) {\r\n return (data);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getUser(userId: string) : ng.IPromise {\r\n var d = this.$q.defer();\r\n this.$http.get(\"./api/Account/GetUser/\" + userId).then(r => {\r\n d.resolve(r.data);\r\n });\r\n return d.promise;\r\n }\r\n\r\n public getCurrentUserClaims(processConfigId: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.get(\"./api/claims/UserClaims/\" + processConfigId)\r\n .then(claims => {\r\n d.resolve(claims.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public searchUsers(searchCriteria: models.UserSearchCriteria): ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n if (searchCriteria.userRepository && searchCriteria.userRepository !== \"\") {\r\n this.$http.get(\"./api/Account/SearchExternalAccounts/\" + searchCriteria.userName + \"/\" + searchCriteria.userRepository).then(r => {\r\n d.resolve(r.data);\r\n });\r\n } else {\r\n this.$http.get(\"./api/Account/SearchAccounts/\" + searchCriteria.userName ).then(r => {\r\n d.resolve(r.data);\r\n }); \r\n }\r\n\r\n return d.promise;\r\n }\r\n\r\n public addExternalUser(userSearchDto:Wars.Domain.Model.Dtos.UserSearchDto):ng.IPromise {\r\n var d = this.$q.defer();\r\n\r\n this.$http.post(\"./api/Account/AddExternalAccount\", userSearchDto).then(result => {\r\n d.resolve(result.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService(\"UserService\", [\"$http\", \"$q\", \"localStorageService\",]);","/// \r\nmodule warsApp.services {\r\n export class VariableTypeService {\r\n public constructor(private $filter: angular.IFilterService) {\r\n\r\n }\r\n public format(input: string, variableType: Wars.Domain.Model.Codes.Enums.VariableType): string {\r\n let returnValue = input;\r\n\r\n switch (variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.String:\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Code:\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Boolean:\r\n returnValue = input == true || input === \"True\" || input === \"true\" ? \"Yes\" : \"No\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Date:\r\n returnValue = this.$filter('date')(this.convertStringToDate(input), 'shortDate');\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Status:\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.State:\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.DateTime:\r\n returnValue = this.$filter('date')(this.convertStringToDate(input), 'short');\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Time:\r\n returnValue = this.$filter('date')(this.convertStringToDate(input), 'shortTime');\r\n break;\r\n }\r\n //console.log(returnValue);\r\n return returnValue;\r\n }\r\n\r\n private convertStringToDate(stringValue: string): Date {\r\n var d = new Date(stringValue);\r\n var validDate = false;\r\n if (Object.prototype.toString.call(d) === \"[object Date]\") {\r\n if (!isNaN(d.getTime())) { // d.valueOf() could also work\r\n validDate = true;\r\n }\r\n }\r\n if (validDate) {\r\n return d;\r\n }\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('VariableTypeService', ['$filter'])","/// \r\nmodule warsApp.services {\r\n declare var Snap: any;\r\n\r\n export class WorkflowDrawingService {\r\n\r\n private logType: string = \"WorkflowDrawingService\";\r\n\r\n public static CalculateStarPoints(centerCoordinate: models.Coordinate, arms: number, outerRadius: number, innerRadius: number): Array {\r\n var results: Array = [];\r\n\r\n var angle = Math.PI / arms;\r\n\r\n for (var i = 0; i <= 2 * arms; i++) {\r\n // Use outer or inner radius depending on what iteration we are in.\r\n var r = (i & 1) == 0 ? outerRadius : innerRadius;\r\n\r\n var currX = centerCoordinate.x + Math.cos(i * angle) * r;\r\n var currY = centerCoordinate.y + Math.sin(i * angle) * r;\r\n\r\n results.push(currX);\r\n results.push(currY);\r\n }\r\n\r\n return results;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n public changeViewBoxSizeAndOffset(\r\n paper: Snap.Paper,\r\n xOffset: number,\r\n yOffset: number,\r\n width: number,\r\n height: number): void\r\n {\r\n if (!paper) return;\r\n paper.attr({ viewBox: xOffset + ' ' + yOffset + ' ' + width + ' ' + height });\r\n }\r\n\r\n public drawModel(workflowDrawingInstance: models.WorkflowDrawingInstance, initialBlock: models.IWorkflowBlock): models.Coordinate {\r\n\r\n if (!initialBlock) return;\r\n \r\n var currentBlock: models.IWorkflowBlock;\r\n var previousBlock: models.IWorkflowBlock;\r\n\r\n workflowDrawingInstance.blockLocations = new Array();\r\n workflowDrawingInstance.lineLocations = new Array();\r\n workflowDrawingInstance.inBetweenDropZones = new Array();\r\n var currentYesBranchBlockLocations = new Array();\r\n\r\n // start with initial state and work through the relationships\r\n var initialCoordinate = new models.Coordinate(0, 0);\r\n var workflowBlockGroup = initialBlock.draw(workflowDrawingInstance.paper, initialCoordinate);\r\n initialBlock.addTitleToGroup(workflowBlockGroup);\r\n workflowBlockGroup.attr({ \"data-class\": \"workflowBlockGroup\" });\r\n\r\n workflowDrawingInstance.blockLocations.push(new models.WorkflowBlockLocation(initialBlock, initialCoordinate));\r\n \r\n var previousPosition = initialCoordinate;\r\n previousBlock = initialBlock;\r\n var currentlyDrawingNoBranch = false;\r\n var currentlyDrawingNonZeroIndexMultipleOutputToBlock = false;\r\n\r\n var todoDownDirectionBranchStack: Array = new Array();\r\n var todoRightDirectionBranchStack: Array = new Array();\r\n var currentGotoId = models.WorkflowBlockManager.initialGotoId;\r\n \r\n // now continue on with the next block\r\n if (initialBlock.toBlocks[0]) {\r\n currentBlock = initialBlock.toBlocks[0];\r\n for (let i = initialBlock.toBlocks.length - 1; i > 0 ; i--) {\r\n todoRightDirectionBranchStack.push(new models.PendingWorkflowItem(initialBlock, initialBlock.toBlocks[i]));\r\n }\r\n }\r\n\r\n while (currentBlock) {\r\n // Get the draw coordinates\r\n var newCoordinate = this.calculateDrawCoordinates(\r\n workflowDrawingInstance,\r\n currentBlock,\r\n previousPosition,\r\n currentlyDrawingNoBranch,\r\n currentlyDrawingNonZeroIndexMultipleOutputToBlock,\r\n currentYesBranchBlockLocations);\r\n\r\n var pending = new models.PendingWorkflowItem(previousBlock, currentBlock);\r\n WarsLogger.logDebug(\"Adding \" + currentBlock.typeName + \" to branch at (\" + newCoordinate.x + \", \" + newCoordinate.y + \")\", \"WorkflowDrawingService\");\r\n currentYesBranchBlockLocations.push(new models.WorkflowItemAwaitingDrawing(pending, newCoordinate));\r\n\r\n var newGotoCoordinate: models.Coordinate;\r\n\r\n if (currentBlock.type !== Wars.Domain.Model.Codes.Enums.BlockType.Goto) {\r\n // Add yes and no blocks to todo stacks\r\n if (currentBlock.toBlocks[0]) {\r\n if (this.doesWorkflowBlockAlreadyExist(\r\n workflowDrawingInstance,\r\n currentBlock.toBlocks[0],\r\n todoDownDirectionBranchStack.concat(todoRightDirectionBranchStack),\r\n currentYesBranchBlockLocations))\r\n {\r\n let newGotoWorkflowBlock = new models.GotoWorkflowBlock((currentGotoId++).toString(), currentBlock.toBlocks[0] ? currentBlock.toBlocks[0].label : \"Go To\");\r\n newGotoWorkflowBlock.toBlock = currentBlock.toBlocks[0];\r\n newGotoWorkflowBlock.setDrawingInstance(workflowDrawingInstance);\r\n currentBlock.toBlocks[0] = newGotoWorkflowBlock;\r\n }\r\n todoDownDirectionBranchStack.push(new models.PendingWorkflowItem(currentBlock, currentBlock.toBlocks[0]));\r\n }\r\n for (let i = currentBlock.toBlocks.length - 1; i > 0; i--) {\r\n if (currentBlock.toBlocks[i]) {\r\n if (this.doesWorkflowBlockAlreadyExist(\r\n workflowDrawingInstance,\r\n currentBlock.toBlocks[i],\r\n todoDownDirectionBranchStack.concat(todoRightDirectionBranchStack),\r\n currentYesBranchBlockLocations))\r\n {\r\n let newGotoWorkflowBlock = new models.GotoWorkflowBlock((currentGotoId++).toString(), currentBlock.toBlocks[i] ? currentBlock.toBlocks[i].label : \"Go To\");\r\n newGotoWorkflowBlock.toBlock = currentBlock.toBlocks[i];\r\n newGotoWorkflowBlock.setDrawingInstance(workflowDrawingInstance);\r\n currentBlock.toBlocks[i] = newGotoWorkflowBlock;\r\n }\r\n todoRightDirectionBranchStack.push(new models.PendingWorkflowItem(currentBlock, currentBlock.toBlocks[i]));\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n // Set up next current block by taking off the end of the array - draw yes branches first\r\n if (todoDownDirectionBranchStack.length > 0) {\r\n let todoItem = todoDownDirectionBranchStack.pop();\r\n currentBlock = todoItem.pendingWorkflowBlock;\r\n currentlyDrawingNoBranch = false;\r\n currentlyDrawingNonZeroIndexMultipleOutputToBlock = false;\r\n previousBlock = todoItem.sourceWorkflowBlock;\r\n previousPosition = this.getPositionOfPreviouslyProcessedWorkflowBlock(workflowDrawingInstance, currentYesBranchBlockLocations, previousBlock.id);\r\n }\r\n else if (todoRightDirectionBranchStack.length > 0) {\r\n let todoItem = todoRightDirectionBranchStack.pop();\r\n currentBlock = todoItem.pendingWorkflowBlock;\r\n if (todoItem.sourceIsMultipleOutputAndPendingIsNotFirstToBlock()) {\r\n currentlyDrawingNoBranch = false;\r\n currentlyDrawingNonZeroIndexMultipleOutputToBlock = true;\r\n } else {\r\n currentlyDrawingNoBranch = true;\r\n currentlyDrawingNonZeroIndexMultipleOutputToBlock = false;\r\n }\r\n previousBlock = todoItem.sourceWorkflowBlock;\r\n previousPosition = this.getPositionOfPreviouslyProcessedWorkflowBlock(workflowDrawingInstance, currentYesBranchBlockLocations, previousBlock.id);\r\n\r\n this.drawBranch(workflowDrawingInstance, currentYesBranchBlockLocations);\r\n currentYesBranchBlockLocations = [];\r\n }\r\n else {\r\n currentBlock = undefined;\r\n this.drawBranch(workflowDrawingInstance, currentYesBranchBlockLocations);\r\n currentYesBranchBlockLocations = [];\r\n }\r\n }\r\n\r\n for (let i = 0; i < workflowDrawingInstance.blockLocations.length; i++) {\r\n workflowDrawingInstance.blockLocations[i].workflowBlock.entireWorkflowDrawComplete();\r\n }\r\n for (let i = 0; i < workflowDrawingInstance.blockLocations.length; i++) {\r\n workflowDrawingInstance.blockLocations[i].workflowBlock.entireWorkflowDrawComplete2();\r\n } \r\n \r\n // Using a set timeout with 2 here b/c I have set timeouts inside the entireWorkflowDrawComplete() calls above that fit the title in the shape based on rendered size.\r\n setTimeout(() => workflowDrawingInstance.paper.attr({ opacity: 1 }), 2);\r\n\r\n var maxXCoordinate = Enumerable.from(workflowDrawingInstance.blockLocations).max(i => i.coordinate.x);\r\n var maxYCoordinate = Enumerable.from(workflowDrawingInstance.blockLocations).max(i => i.coordinate.y);\r\n\r\n return new models.Coordinate(maxXCoordinate, maxYCoordinate);\r\n }\r\n\r\n private calculateDrawCoordinates(\r\n workflowDrawingInstance: models.WorkflowDrawingInstance,\r\n currentBlock: models.IWorkflowBlock,\r\n previousPosition: models.Coordinate,\r\n currentlyDrawingNoBranch: boolean,\r\n currentlyDrawingNonZeroIndexMultipleOutputToBlock: boolean,\r\n currentYesBranchBlockLocations: models.WorkflowItemAwaitingDrawing[]): warsApp.models.Coordinate\r\n {\r\n // Derive new coordinate based on whether we are drawing a yes or no branch\r\n var newCoordinate: warsApp.models.Coordinate;\r\n\r\n var onlyCheckDrawingSpot = currentBlock.getOutputType() == Wars.Domain.Model.Codes.Enums.BlockOutputType.None ||\r\n currentBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.Goto;\r\n\r\n if (currentlyDrawingNoBranch) {\r\n newCoordinate = new models.Coordinate(previousPosition.x + 1, previousPosition.y)\r\n let spaceIsNotAvailable = false;\r\n do {\r\n if (onlyCheckDrawingSpot) {\r\n spaceIsNotAvailable = this.isGridSpotOccupied(workflowDrawingInstance, newCoordinate);\r\n } else {\r\n spaceIsNotAvailable = this.isSpecifiedSpotOrSpotBelowOccupied(workflowDrawingInstance, newCoordinate);\r\n }\r\n if (spaceIsNotAvailable) {\r\n newCoordinate.x = newCoordinate.x + 1;\r\n }\r\n } while (spaceIsNotAvailable)\r\n\r\n }\r\n else if (currentlyDrawingNonZeroIndexMultipleOutputToBlock) {\r\n newCoordinate = new models.Coordinate(previousPosition.x + 1, previousPosition.y + 1)\r\n let spaceIsNotAvailable = false;\r\n do {\r\n if (onlyCheckDrawingSpot) {\r\n spaceIsNotAvailable = this.isGridSpotOccupied(workflowDrawingInstance, newCoordinate);\r\n } else {\r\n spaceIsNotAvailable = this.isSpecifiedSpotOrSpotBelowOccupied(workflowDrawingInstance, newCoordinate);\r\n }\r\n if (spaceIsNotAvailable) {\r\n newCoordinate.x = newCoordinate.x + 1;\r\n }\r\n } while (spaceIsNotAvailable)\r\n }\r\n else {\r\n newCoordinate = new warsApp.models.Coordinate(previousPosition.x, previousPosition.y + 1);\r\n let spaceIsNotAvailable = false;\r\n do {\r\n if (onlyCheckDrawingSpot) {\r\n spaceIsNotAvailable = this.isGridSpotOccupied(workflowDrawingInstance, newCoordinate);\r\n } else {\r\n spaceIsNotAvailable = this.isSpecifiedSpotOrSpotBelowOccupied(workflowDrawingInstance, newCoordinate);\r\n }\r\n\r\n if (spaceIsNotAvailable) {\r\n this.shiftYesBranchToTheRightOne(currentYesBranchBlockLocations);\r\n newCoordinate.x = newCoordinate.x + 1;\r\n }\r\n } while (spaceIsNotAvailable)\r\n }\r\n return newCoordinate;\r\n }\r\n\r\n // Private Helper Methods\r\n // ===================================================================================================================\r\n private reDraw(workflowDrawingInstance: models.WorkflowDrawingInstance) : void {\r\n workflowDrawingInstance.reDraw();\r\n }\r\n\r\n private isGridSpotOccupied(workflowDrawingInstance: models.WorkflowDrawingInstance, gridCoordinate: models.Coordinate): boolean {\r\n var isBlockAtSpecifiedLocation = Enumerable.from(workflowDrawingInstance.blockLocations).any(i => i.coordinate.equals(gridCoordinate));\r\n var isLineAtSpecifiedLocation = Enumerable.from(workflowDrawingInstance.lineLocations).any(i => i.equals(gridCoordinate));\r\n var spotIsOccupied = isBlockAtSpecifiedLocation || isLineAtSpecifiedLocation;\r\n if (spotIsOccupied) {\r\n var endPartOfMsg = isBlockAtSpecifiedLocation ? \" block.\" : \" line.\";\r\n WarsLogger.logDebug('The current spot is occupied: (' + gridCoordinate.x + ', ' + gridCoordinate.y + \") by a\" + endPartOfMsg, this.logType);\r\n\r\n }\r\n return spotIsOccupied;\r\n }\r\n\r\n private isGridSpotBelowOccupied(workflowDrawingInstance: models.WorkflowDrawingInstance, gridCoordinate: models.Coordinate): boolean {\r\n var belowCoordinate = new models.Coordinate(gridCoordinate.x, gridCoordinate.y + 1);\r\n return this.isGridSpotOccupied(workflowDrawingInstance, belowCoordinate);\r\n }\r\n\r\n private isSpecifiedSpotOrSpotBelowOccupied(workflowDrawingInstance: models.WorkflowDrawingInstance, gridCoordinate: models.Coordinate): boolean {\r\n return this.isGridSpotOccupied(workflowDrawingInstance, gridCoordinate) || this.isGridSpotBelowOccupied(workflowDrawingInstance,gridCoordinate);\r\n }\r\n\r\n private shiftYesBranchToTheRightOne(currentYesBranchBlockLocations: Array): void {\r\n WarsLogger.logDebug(\"Shifting branch to the right by one.\", this.logType);\r\n for (var i = 0; i < currentYesBranchBlockLocations.length; i++) {\r\n var coordinate = currentYesBranchBlockLocations[i].coordinate;\r\n currentYesBranchBlockLocations[i].coordinate = new models.Coordinate(coordinate.x + 1, coordinate.y);\r\n var typeName = currentYesBranchBlockLocations[i].pendingWorkflowItem.pendingWorkflowBlock.typeName\r\n WarsLogger.logDebug(\"Workflow Block of type: \" + typeName + \" is being moved 1 to the right to (\" + (coordinate.x + 1) + \", \" + coordinate.y + \")\", this.logType);\r\n }\r\n }\r\n\r\n private getPositionOfPreviouslyProcessedWorkflowBlock(\r\n workflowDrawingInstance: models.WorkflowDrawingInstance,\r\n currentYesBranchBlockLocations: Array,\r\n previousBlockId: string): models.Coordinate\r\n {\r\n var previousBlockLocation = Enumerable.from(workflowDrawingInstance.blockLocations).singleOrDefault(i => i.workflowBlock.id === previousBlockId);\r\n if (previousBlockLocation) return previousBlockLocation.coordinate;\r\n var inWorkBlockLocation = Enumerable.from(currentYesBranchBlockLocations).singleOrDefault(i => i.pendingWorkflowItem.pendingWorkflowBlock.id == previousBlockId);\r\n if (inWorkBlockLocation) return inWorkBlockLocation.coordinate;\r\n return undefined;\r\n }\r\n\r\n private drawBranch(workflowDrawingInstance: models.WorkflowDrawingInstance, currentYesBranchBlockLocations: Array): void {\r\n WarsLogger.logDebug(\"Drawing workflow branch for \" + currentYesBranchBlockLocations.length + \" items.\", this.logType);\r\n var workflowBlockGroup: Snap.Element;\r\n for (var i = 0; i < currentYesBranchBlockLocations.length; i++) {\r\n var currentBlock = currentYesBranchBlockLocations[i].pendingWorkflowItem.pendingWorkflowBlock;\r\n var coordinate = currentYesBranchBlockLocations[i].coordinate;\r\n // Draw the block\r\n workflowBlockGroup = currentBlock.draw(workflowDrawingInstance.paper, coordinate);\r\n currentBlock.addTitleToGroup(workflowBlockGroup);\r\n workflowBlockGroup.attr({ \"data-class\": \"workflowBlockGroup\" });\r\n\r\n WarsLogger.logDebug(\"Drawing workflow block for \" + currentBlock.typeName + \" at \" + coordinate.x + \", \" + coordinate.y, this.logType);\r\n workflowDrawingInstance.blockLocations.push(new models.WorkflowBlockLocation(currentBlock, coordinate));\r\n\r\n // Draw the arrow\r\n this.drawArrow(workflowDrawingInstance, currentYesBranchBlockLocations[i].pendingWorkflowItem.sourceWorkflowBlock, currentBlock);\r\n \r\n // Draw the in between drop zone\r\n var currentIndex = workflowDrawingInstance.inBetweenDropZones.length;\r\n\r\n var dropZone = this.drawInBetweenDropZone(\r\n workflowDrawingInstance,\r\n currentYesBranchBlockLocations[i].pendingWorkflowItem.sourceWorkflowBlock,\r\n currentBlock,\r\n currentIndex);\r\n\r\n if (dropZone !== undefined) workflowDrawingInstance.inBetweenDropZones.push(dropZone);\r\n }\r\n }\r\n\r\n private drawArrow(\r\n workflowDrawingInstance: models.WorkflowDrawingInstance,\r\n fromWorkflowBlock: models.IWorkflowBlock,\r\n toWorkflowBlock: models.IWorkflowBlock): void\r\n {\r\n var fromCoordinate = Enumerable.from(workflowDrawingInstance.blockLocations).single(i => i.workflowBlock.id === fromWorkflowBlock.id).coordinate;\r\n var toCoordinate = Enumerable.from(workflowDrawingInstance.blockLocations).single(i => i.workflowBlock.id === toWorkflowBlock.id).coordinate;\r\n\r\n var blockWidth = fromWorkflowBlock.blockWidth;\r\n var blockHeight = fromWorkflowBlock.blockHeight;\r\n\r\n var element: Snap.Element;\r\n\r\n if (fromCoordinate.x === toCoordinate.x) {\r\n // Simple down arrow\r\n var xDeparturePoint = (fromCoordinate.x * blockWidth) + (fromWorkflowBlock.blockWidth / 2);\r\n var yDeparturePoint = ((fromCoordinate.y + 1) * blockHeight) - fromWorkflowBlock.getBottomPadding();\r\n\r\n var xArrivalPoint = (toCoordinate.x * blockWidth) + (blockWidth / 2);\r\n var yArrivalPoint = (toCoordinate.y * blockHeight) + toWorkflowBlock.getTopPadding() - 1;\r\n\r\n element = workflowDrawingInstance.paper.polyline([xDeparturePoint, yDeparturePoint, xArrivalPoint, yArrivalPoint]);\r\n element.attr(workflowDrawingInstance.settings.lineAttributes);\r\n\r\n if (fromWorkflowBlock.getOutputType() == Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo) {\r\n var yesLabel = workflowDrawingInstance.paper.text(xDeparturePoint + 5, yDeparturePoint + 10, 'YES');\r\n yesLabel.attr({ class: 'arrow-label' });\r\n workflowDrawingInstance.lines.append(yesLabel);\r\n }\r\n \r\n this.drawArrowTip(workflowDrawingInstance, new warsApp.models.Coordinate(xArrivalPoint, yArrivalPoint), 0);\r\n } else if (fromCoordinate.y === toCoordinate.y) {\r\n // Simple to the right arrow\r\n var xDeparturePoint = ((fromCoordinate.x + 1) * blockWidth) - fromWorkflowBlock.getRightPadding();\r\n var yDeparturePoint = (fromCoordinate.y * blockHeight) + (blockHeight / 2);\r\n\r\n var xArrivalPoint = (toCoordinate.x * blockWidth) + toWorkflowBlock.getLeftPadding() - 1;\r\n var yArrivalPoint = (toCoordinate.y * blockHeight) + (blockHeight / 2);\r\n\r\n element = workflowDrawingInstance.paper.polyline([xDeparturePoint, yDeparturePoint, xArrivalPoint, yArrivalPoint]);\r\n element.attr(workflowDrawingInstance.settings.lineAttributes);\r\n\r\n if (fromWorkflowBlock.getOutputType() == Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo) {\r\n var noLabel = workflowDrawingInstance.paper.text(xDeparturePoint + 5, yDeparturePoint - 5, 'NO');\r\n noLabel.attr({ class: 'arrow-label' });\r\n workflowDrawingInstance.lines.append(noLabel);\r\n }\r\n\r\n this.drawArrowTip(workflowDrawingInstance, new warsApp.models.Coordinate(xArrivalPoint, yArrivalPoint), 270);\r\n }\r\n else {\r\n // Must be arrow to the right and down - always departs in the middle of another line (the straight down line).\r\n var xDeparturePoint = (fromCoordinate.x * blockWidth) + (blockWidth/2);\r\n var yDeparturePoint = (fromCoordinate.y + 1) * blockHeight - 10;\r\n\r\n var xMidPoint = (toCoordinate.x * blockWidth) + (blockWidth / 2);\r\n var yMidPoint = yDeparturePoint;\r\n\r\n var xArrivalPoint = xMidPoint;\r\n var yArrivalPoint = (toCoordinate.y * blockHeight) + toWorkflowBlock.getTopPadding() ;\r\n\r\n element = workflowDrawingInstance.paper.polyline([xDeparturePoint, yDeparturePoint, xMidPoint, yMidPoint, xArrivalPoint, yArrivalPoint]);\r\n element.attr(workflowDrawingInstance.settings.lineAttributes);\r\n\r\n this.drawArrowTip(workflowDrawingInstance, new warsApp.models.Coordinate(xArrivalPoint, yArrivalPoint), 0);\r\n }\r\n\r\n // This ensures the lines are behind other elements.\r\n workflowDrawingInstance.lines.append(element);\r\n\r\n for (var i = fromCoordinate.x + 1; i < toCoordinate.x; i++) {\r\n WarsLogger.logDebug(\"Adding a new line location: \" + i + \", \" + toCoordinate.y, this.logType);\r\n workflowDrawingInstance.lineLocations.push(new models.Coordinate(i, toCoordinate.y));\r\n }\r\n }\r\n\r\n /// 0 rotation is pointing down, 270 is pointing right\r\n private drawArrowTip(\r\n workflowDrawingInstance: models.WorkflowDrawingInstance,\r\n originVertice: models.Coordinate,\r\n rotation: number,\r\n isFeedbackLoop?: boolean,\r\n isToggleEnabled?: boolean): Snap.Element\r\n {\r\n var xFirstVertice: number;\r\n var yFirstVertice: number;\r\n\r\n var lineThicknessOffset = isFeedbackLoop ? 4.5 : 0.75;\r\n var smallOffset = isFeedbackLoop ? 10 : 5;\r\n var largeOffset = isFeedbackLoop ? 20 : 10;\r\n\r\n // Account for widths in lines themselves\r\n if (rotation === 0) {\r\n xFirstVertice = originVertice.x;\r\n yFirstVertice = originVertice.y + lineThicknessOffset + 1;\r\n }\r\n else if (rotation === 90) {\r\n xFirstVertice = originVertice.x - lineThicknessOffset - 1;\r\n yFirstVertice = originVertice.y;\r\n }\r\n else if (rotation === 270) {\r\n xFirstVertice = originVertice.x + lineThicknessOffset + 1;\r\n yFirstVertice = originVertice.y;\r\n }\r\n\r\n var xSecondVertice = xFirstVertice + smallOffset;\r\n var ySecondVertice = yFirstVertice - largeOffset;\r\n\r\n var xThridVertice = xFirstVertice - smallOffset;\r\n var ySecondVertice = yFirstVertice - largeOffset;\r\n\r\n var verticies = new Array();\r\n\r\n verticies.push(xFirstVertice);\r\n verticies.push(yFirstVertice);\r\n\r\n verticies.push(xSecondVertice);\r\n verticies.push(ySecondVertice);\r\n\r\n verticies.push(xThridVertice);\r\n verticies.push(ySecondVertice);\r\n\r\n verticies.push(xFirstVertice);\r\n verticies.push(yFirstVertice);\r\n\r\n var arrowTip = workflowDrawingInstance.paper.polyline(verticies);\r\n if (isFeedbackLoop) {\r\n if (isToggleEnabled) {\r\n arrowTip.attr(workflowDrawingInstance.settings.toggleEnabledfeedbackArrowAttributes);\r\n } else {\r\n arrowTip.attr(workflowDrawingInstance.settings.feedbackArrowAttributes);\r\n }\r\n } else {\r\n arrowTip.attr(workflowDrawingInstance.settings.arrowAttributes);\r\n }\r\n\r\n // Now apply rotation\r\n var matrix = new Snap.Matrix();\r\n matrix.rotate(rotation, xFirstVertice, yFirstVertice);\r\n arrowTip.transform(matrix);\r\n\r\n // This ensures the arrow tips are behind other elements.\r\n if (isFeedbackLoop) {\r\n workflowDrawingInstance.feedbackLines.append(arrowTip);\r\n } else {\r\n workflowDrawingInstance.lines.append(arrowTip);\r\n }\r\n\r\n return arrowTip;\r\n }\r\n\r\n private drawInBetweenDropZone(workflowDrawingInstance: models.WorkflowDrawingInstance,\r\n fromWorkflowBlock: models.IWorkflowBlock,\r\n toWorkflowBlock: models.IWorkflowBlock,\r\n index: number): Snap.Element\r\n {\r\n if (fromWorkflowBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.State) return undefined;\r\n if (fromWorkflowBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.Goto) return undefined;\r\n if (toWorkflowBlock.type === Wars.Domain.Model.Codes.Enums.BlockType.DropZone) return undefined;\r\n\r\n var fromCoordinate = Enumerable.from(workflowDrawingInstance.blockLocations).single(i => i.workflowBlock.id === fromWorkflowBlock.id).coordinate;\r\n var toCoordinate = Enumerable.from(workflowDrawingInstance.blockLocations).single(i => i.workflowBlock.id === toWorkflowBlock.id).coordinate;\r\n\r\n var blockWidth = fromWorkflowBlock.blockWidth;\r\n var blockHeight = fromWorkflowBlock.blockHeight;\r\n\r\n var dropZone: Snap.Element;\r\n var x: number;\r\n var y: number;\r\n var inBetweenWidth = 10;\r\n var attributes = {\r\n \"class\": \"in-between-drop-zone\",\r\n \"data-class\": \"in-between-drop-zone\",\r\n \"data-from-id\": fromWorkflowBlock.id,\r\n \"data-to-id\": toWorkflowBlock.id,\r\n \"data-index\": index\r\n }\r\n\r\n if (fromCoordinate.x === toCoordinate.x) {\r\n // Simple down arrow\r\n x = (fromCoordinate.x * blockWidth) + inBetweenWidth;\r\n y = (toCoordinate.y * blockHeight) - inBetweenWidth;\r\n\r\n dropZone = workflowDrawingInstance.paper.rect(x, y, blockWidth - (2 * inBetweenWidth), 2 * inBetweenWidth);\r\n dropZone.attr(attributes);\r\n } else if (fromCoordinate.y === toCoordinate.y) {\r\n // Simple to the right arrow\r\n x = (toCoordinate.x * blockWidth) - inBetweenWidth;\r\n y = (toCoordinate.y * blockHeight) + inBetweenWidth;\r\n\r\n dropZone = workflowDrawingInstance.paper.rect(x, y, 2 * inBetweenWidth, blockHeight - (2 * inBetweenWidth));\r\n dropZone.attr(attributes);\r\n } else {\r\n // Must be arrow to the right and down - always departs in the middle of another line (the straight down line).\r\n x = (toCoordinate.x * blockWidth) + inBetweenWidth;\r\n y = (toCoordinate.y * blockHeight) - inBetweenWidth;\r\n\r\n dropZone = workflowDrawingInstance.paper.rect(x, y, blockWidth - (2 * inBetweenWidth), 2 * inBetweenWidth);\r\n dropZone.attr(attributes);\r\n }\r\n return dropZone;\r\n }\r\n\r\n public drawFeedbackArrow(workflowDrawingInstance: models.WorkflowDrawingInstance,\r\n fromWorkflowBlock: models.IWorkflowBlock,\r\n toWorkflowBlock: models.IWorkflowBlock,\r\n toggleEnabled: boolean): Snap.Element {\r\n\r\n if (!toWorkflowBlock) return;\r\n\r\n var line: Snap.Element;\r\n var arrowTip: Snap.Element;\r\n\r\n var shortenDistanceToAccountForLineThickness = 4;\r\n var verticalOffsetFromGridline = 5;\r\n\r\n var fromCoordinate = Enumerable.from(workflowDrawingInstance.blockLocations).single(i => i.workflowBlock.id === fromWorkflowBlock.id).coordinate;\r\n var toCoordinate = Enumerable.from(workflowDrawingInstance.blockLocations).single(i => i.workflowBlock.id === toWorkflowBlock.id).coordinate;\r\n\r\n var blockWidth = fromWorkflowBlock.blockWidth;\r\n var blockHeight = fromWorkflowBlock.blockHeight;\r\n\r\n var x : number;\r\n var y: number;\r\n var arrowRotation: number;\r\n\r\n var lineCoordinates: Array = [];\r\n\r\n if (fromCoordinate.x <= toCoordinate.x) {\r\n // Draw arrow to the right\r\n x = ((fromCoordinate.x + 1) * blockWidth) - fromWorkflowBlock.getRightPadding();\r\n y = (fromCoordinate.y * blockHeight) + (blockHeight / 2);\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n\r\n if (fromCoordinate.y == toCoordinate.y) {\r\n if (this.areAnyWorkflowBlockBetweenTwoCoordinates(workflowDrawingInstance, fromCoordinate, toCoordinate)) {\r\n var originY = y;\r\n var raisedY = y = (fromCoordinate.y * blockHeight);\r\n\r\n var raiseX = (fromCoordinate.x + 1) * blockWidth;\r\n var dropX = (toCoordinate.x) * blockWidth;\r\n var destinationX = (toCoordinate.x) * blockWidth + toWorkflowBlock.getLeftPadding();\r\n\r\n lineCoordinates.push(raiseX);\r\n lineCoordinates.push(originY);\r\n\r\n lineCoordinates.push(raiseX);\r\n lineCoordinates.push(raisedY);\r\n\r\n lineCoordinates.push(dropX);\r\n lineCoordinates.push(raisedY);\r\n\r\n lineCoordinates.push(dropX);\r\n lineCoordinates.push(originY);\r\n\r\n lineCoordinates.push(destinationX);\r\n lineCoordinates.push(originY);\r\n\r\n // Reset so arrow head is in correct place\r\n x = destinationX;\r\n y = originY;\r\n } else {\r\n // straight to the right X spots \r\n x = (toCoordinate.x * blockWidth) + toWorkflowBlock.getLeftPadding();\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n }\r\n arrowRotation = 270;\r\n }\r\n else {\r\n x = x + fromWorkflowBlock.getRightPadding(); \r\n\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n \r\n y = (toCoordinate.y * blockHeight) + (blockHeight / 2);\r\n \r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n\r\n var endsGoingLeft = fromCoordinate.x == toCoordinate.x;\r\n if (endsGoingLeft) {\r\n x = x - toWorkflowBlock.getRightPadding() + verticalOffsetFromGridline;\r\n arrowRotation = 90;\r\n } else {\r\n var numberOfSkippedXCoordinates = toCoordinate.x - fromCoordinate.x - 1;\r\n var additionalXOffset = numberOfSkippedXCoordinates * blockWidth;\r\n x = x + toWorkflowBlock.getLeftPadding() + additionalXOffset - verticalOffsetFromGridline;\r\n arrowRotation = 270;\r\n }\r\n\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n }\r\n } else {\r\n // Draw arrow to the left\r\n arrowRotation = 90;\r\n\r\n var originX = (fromCoordinate.x * blockWidth) + fromWorkflowBlock.getLeftPadding();\r\n x = originX;\r\n var originY = (fromCoordinate.y * blockHeight) + (blockHeight / 2);\r\n y = originY;\r\n \r\n lineCoordinates.push(originX);\r\n lineCoordinates.push(originY);\r\n\r\n if (fromCoordinate.y == toCoordinate.y) {\r\n if (this.areAnyWorkflowBlockBetweenTwoCoordinates(workflowDrawingInstance, fromCoordinate, toCoordinate)) {\r\n var raisedY = (fromCoordinate.y * blockHeight);\r\n\r\n var raiseX = (fromCoordinate.x) * blockWidth;\r\n var dropX = (toCoordinate.x + 1) * blockWidth;\r\n var destinationX = (toCoordinate.x + 1) * blockWidth - toWorkflowBlock.getRightPadding();\r\n\r\n lineCoordinates.push(raiseX);\r\n lineCoordinates.push(originY);\r\n\r\n lineCoordinates.push(raiseX);\r\n lineCoordinates.push(raisedY);\r\n\r\n lineCoordinates.push(dropX);\r\n lineCoordinates.push(raisedY);\r\n \r\n lineCoordinates.push(dropX);\r\n lineCoordinates.push(originY);\r\n\r\n lineCoordinates.push(destinationX);\r\n lineCoordinates.push(originY);\r\n\r\n // Reset so arrow head is in correct place\r\n x = destinationX;\r\n y = originY;\r\n }\r\n else {\r\n // straight to the left X spots \r\n x = ((toCoordinate.x + 1) * blockWidth) - toWorkflowBlock.getRightPadding() + shortenDistanceToAccountForLineThickness;\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n }\r\n } else {\r\n var goingUp = toCoordinate.y < fromCoordinate.y;\r\n \r\n var straightAcrossToLeftFromOrigin = new models.Coordinate(toCoordinate.x, fromCoordinate.y);\r\n var straightUpOrDownFromOrigin = new models.Coordinate(fromCoordinate.x, toCoordinate.y);\r\n var raiseOrLowerCoordinateOffset = goingUp ? 0 : 1;\r\n\r\n if (!this.areAnyWorkflowBlockBetweenTwoCoordinates(workflowDrawingInstance, fromCoordinate, straightAcrossToLeftFromOrigin)) {\r\n x = ((straightAcrossToLeftFromOrigin.x + 1) * blockWidth);\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(originY);\r\n\r\n y = toCoordinate.y * blockHeight + (blockHeight / 2);\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n\r\n x = ((straightAcrossToLeftFromOrigin.x + 1) * blockWidth) - toWorkflowBlock.getRightPadding() + shortenDistanceToAccountForLineThickness;\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n } else if (!this.areAnyWorkflowBlockBetweenTwoCoordinates(workflowDrawingInstance, straightUpOrDownFromOrigin, toCoordinate)) {\r\n x = x - fromWorkflowBlock.getLeftPadding();\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n\r\n y = toCoordinate.y * blockHeight + (blockHeight / 2);\r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n\r\n x = ((toCoordinate.x + 1) * blockWidth) - toWorkflowBlock.getRightPadding() + shortenDistanceToAccountForLineThickness; \r\n lineCoordinates.push(x);\r\n lineCoordinates.push(y);\r\n } else {\r\n var firstRaiseX = fromCoordinate.x * blockWidth;\r\n var secondRaiseX = (toCoordinate.x + 1) * blockWidth;\r\n var destinationX = secondRaiseX - toWorkflowBlock.getRightPadding() + shortenDistanceToAccountForLineThickness;\r\n\r\n var firstRaiseY = ((fromCoordinate.y + raiseOrLowerCoordinateOffset) * blockHeight) - verticalOffsetFromGridline;\r\n var destinationY = (toCoordinate.y * blockHeight) + (blockHeight / 2);\r\n\r\n lineCoordinates.push(firstRaiseX);\r\n lineCoordinates.push(originY);\r\n\r\n lineCoordinates.push(firstRaiseX);\r\n lineCoordinates.push(firstRaiseY);\r\n\r\n lineCoordinates.push(secondRaiseX);\r\n lineCoordinates.push(firstRaiseY);\r\n\r\n lineCoordinates.push(secondRaiseX);\r\n lineCoordinates.push(destinationY);\r\n\r\n lineCoordinates.push(destinationX);\r\n lineCoordinates.push(destinationY);\r\n\r\n // Reset so arrow head is in correct place\r\n x = destinationX;\r\n y = destinationY;\r\n }\r\n }\r\n }\r\n\r\n line = workflowDrawingInstance.paper.polyline(lineCoordinates);\r\n if (toggleEnabled) {\r\n line.attr(workflowDrawingInstance.settings.toggleEnabledfeedbackLineAttributes);\r\n } else {\r\n line.attr(workflowDrawingInstance.settings.feedbackLineAttributes);\r\n }\r\n\r\n var arrowCoordinate = new models.Coordinate(x, y);\r\n var tip = this.drawArrowTip(workflowDrawingInstance, arrowCoordinate, arrowRotation, true, toggleEnabled);\r\n var group = workflowDrawingInstance.paper.group(line, tip);\r\n\r\n // This ensures the lines are behind other elements and thus do not mess up the hover targets.\r\n workflowDrawingInstance.feedbackLines.append(group);\r\n\r\n return group;\r\n }\r\n\r\n private areAnyWorkflowBlockBetweenTwoCoordinates(\r\n workflowDrawingInstance: models.WorkflowDrawingInstance,\r\n startCoordinate: models.Coordinate,\r\n endCoordinate: models.Coordinate): boolean\r\n {\r\n var collision = false;\r\n var blockCoordinates = Enumerable.from(workflowDrawingInstance.blockLocations).select(i => i.coordinate).toArray();\r\n\r\n if (startCoordinate.x === endCoordinate.x) {\r\n var minY = Math.min(startCoordinate.y, endCoordinate.y);\r\n var maxY = Math.max(startCoordinate.y, endCoordinate.y);\r\n \r\n for (var yIndex = minY + 1; yIndex < maxY; yIndex++) {\r\n var testCoordinate = new models.Coordinate(startCoordinate.x, yIndex);\r\n if (Enumerable.from(blockCoordinates).any(i => i.equals(testCoordinate))) {\r\n collision = true;\r\n break;\r\n }\r\n }\r\n return collision;\r\n }\r\n else if (startCoordinate.y === endCoordinate.y) {\r\n var minX = Math.min(startCoordinate.x, endCoordinate.x);\r\n var maxX = Math.max(startCoordinate.x, endCoordinate.x);\r\n for (var xIndex = minX + 1; xIndex < maxX; xIndex++) {\r\n var testCoordinate = new models.Coordinate(xIndex, startCoordinate.y);\r\n if (Enumerable.from(blockCoordinates).any(i => i.equals(testCoordinate))) {\r\n collision = true;\r\n break;\r\n }\r\n }\r\n return collision;\r\n }\r\n else {\r\n // Only return false if start and end are either straight across or straight up and down from each other.\r\n return true;\r\n }\r\n }\r\n\r\n private doesWorkflowBlockAlreadyExist(\r\n workflowDrawingInstance: models.WorkflowDrawingInstance,\r\n workflowBlock: warsApp.models.IWorkflowBlock,\r\n pendingBlocks: models.PendingWorkflowItem[],\r\n workflowItemsAwaitingDrawing: models.WorkflowItemAwaitingDrawing[])\r\n {\r\n return Enumerable.from(workflowDrawingInstance.blockLocations).any(i => i.workflowBlock.id === workflowBlock.id) ||\r\n Enumerable.from(pendingBlocks).any(i => i.pendingWorkflowBlock.id === workflowBlock.id) ||\r\n Enumerable.from(workflowItemsAwaitingDrawing).any(i => i.pendingWorkflowItem.pendingWorkflowBlock.id == workflowBlock.id);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('WorkflowDrawingService', []);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var WorkflowService = /** @class */ (function (_super) {\r\n __extends(WorkflowService, _super);\r\n function WorkflowService($http, $q, $rootScope, $window, $location, documentService, modalService) {\r\n var _this = _super.call(this, $http) || this;\r\n _this.$q = $q;\r\n _this.$rootScope = $rootScope;\r\n _this.$window = $window;\r\n _this.$location = $location;\r\n _this.documentService = documentService;\r\n _this.modalService = modalService;\r\n _this.logType = \"WorkflowService\";\r\n return _this;\r\n //this.newWorkflowVersionCreated = false;\r\n }\r\n WorkflowService.prototype.getStatuses = function (processConfigId) {\r\n var params = {};\r\n this.handlerUrl = \"api/ProcessConfiguration/\" + processConfigId + \"/Statuses\";\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getAllStatusGroups = function (processConfigId) {\r\n var _this = this;\r\n var params = {};\r\n this.handlerUrl = \"api/ProcessConfiguration/\" + processConfigId + \"/Statuses\";\r\n return this.useGetHandler(params).then(function (result) {\r\n var processStatusGroupResult = new warsApp.models.StatusGroupResult();\r\n processStatusGroupResult.processStatusGroups = _this.bindGroupList(result.statusGroups);\r\n processStatusGroupResult.isReadonly = result.isReadonly;\r\n return processStatusGroupResult;\r\n });\r\n };\r\n WorkflowService.prototype.getAllStatusGroupsWithAdditionalInfo = function (processConfigId) {\r\n var _this = this;\r\n var params = {};\r\n this.handlerUrl = \"api/ProcessConfiguration/\" + processConfigId + \"/Statuses/AllData\";\r\n return this.useGetHandler(params).then(function (result) {\r\n var processStatusGroupResult = new warsApp.models.StatusGroupResult();\r\n processStatusGroupResult.processStatusGroups = _this.bindGroupList(result.statusGroups);\r\n processStatusGroupResult.isReadonly = result.isReadonly;\r\n return processStatusGroupResult;\r\n });\r\n };\r\n WorkflowService.prototype.addNewStatus = function (newStatus, processConfigId) {\r\n var _this = this;\r\n this.handlerUrl = \"api/ProcessConfiguration/\" + processConfigId + \"/Status\";\r\n return this.usePostHandler(newStatus).then(function (result) {\r\n return _this.bindGroupItem(result);\r\n });\r\n };\r\n WorkflowService.prototype.updateStatus = function (statusCodeId, status) {\r\n var _this = this;\r\n this.handlerUrl = \"api/Workflow/Status/\" + statusCodeId + \"/Update\";\r\n return this.usePostHandler(status).then(function (result) {\r\n return _this.bindGroupItem(result);\r\n });\r\n };\r\n WorkflowService.prototype.getStatusChangeDto = function (statusChangeId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/StatusChange/\" + statusChangeId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getUserActionDto = function (userActionId) {\r\n var _this = this;\r\n var deferred = this.$q.defer();\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/UserAction/\" + userActionId;\r\n this.useGetHandler(params).then(function (userActionDto) {\r\n if (userActionDto.documentConfigurationId) {\r\n _this.documentService.getDocumentConfiguration(userActionDto.documentConfigurationId).then(function (docConfig) {\r\n userActionDto.documentConfiguration = docConfig;\r\n deferred.resolve(userActionDto);\r\n });\r\n }\r\n else {\r\n deferred.resolve(userActionDto);\r\n }\r\n });\r\n return deferred.promise;\r\n };\r\n WorkflowService.prototype.getMessageDto = function (messageId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/Message/\" + messageId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getCreatePdfDto = function (createPdfId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/CreatePdf/\" + createPdfId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getCopyDto = function (copyId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/Copy/\" + copyId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getSetDataDto = function (setDataId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/SetData/\" + setDataId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getAssignClaimDto = function (assignClaimId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/AssignClaim/\" + assignClaimId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getSendEmailDto = function (sendEmailId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/SendEmail/\" + sendEmailId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getStateDto = function (stateId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/State/\" + stateId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getConditionDto = function (conditionId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/Condition/\" + conditionId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getValidateDto = function (validateId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/Validate/\" + validateId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getCalculateDto = function (calculateId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/Calculate/\" + calculateId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getBookResourceDto = function (bookResourceId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/BookResource/\" + bookResourceId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getRemoveResourceDto = function (removeResourceId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/RemoveResource/\" + removeResourceId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getReturnFromProcessActionDto = function (returnFromProcessActionId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/ReturnFromProcessAction/\" + returnFromProcessActionId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getProcessActionDto = function (processActionId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/ProcessAction/\" + processActionId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getSystemActionDto = function (systemActionId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/SystemAction/\" + systemActionId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getChangeStateDto = function (changeStateId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/ChangeState/\" + changeStateId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getGotoStateDto = function (gotoStateId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/GotoState/\" + gotoStateId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getOutputOrder = function (workflowBlockId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/OutputOrder/\" + workflowBlockId;\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.updateOutputOrder = function (dto) {\r\n var params = dto;\r\n this.handlerUrl = \"api/Workflow/UpdateOutputOrder\";\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.createNewWorkflowBlock = function (blockType, statusCodeId, processActionId, connectionsDto) {\r\n var _this = this;\r\n var params = {\r\n statusCodeId: statusCodeId,\r\n processActionId: processActionId,\r\n blockType: blockType,\r\n name: warsApp.models.WorkflowBlockManager.getWorkflowBlockNameByType(blockType),\r\n addContext: connectionsDto\r\n };\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock\";\r\n return this.usePostHandler(params).then(function (workflowBlock) { return _this.bindBlockItem(workflowBlock); });\r\n };\r\n WorkflowService.prototype.createNewWorkflowBlockInBetween = function (addContext) {\r\n var _this = this;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/InBetween\";\r\n return this.usePostHandler(addContext).then(function (workflowBlock) { return _this.bindBlockItem(workflowBlock); });\r\n };\r\n WorkflowService.prototype.updateStatusChange = function (workflowBlock) {\r\n var params = workflowBlock.statusChangeDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/StatusChange/\" + workflowBlock.statusChangeId;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateUserAction = function (workflowBlock) {\r\n var _this = this;\r\n if (!this.documentService.hasChanges()) {\r\n return this.updateUserActionInternal(workflowBlock);\r\n }\r\n var deferred = this.$q.defer();\r\n this.documentService.saveAllChanges(function () {\r\n _this.updateUserActionInternal(workflowBlock).then(function (name) {\r\n deferred.resolve(name);\r\n }, function (failureReason) {\r\n deferred.reject(failureReason);\r\n });\r\n });\r\n return deferred.promise;\r\n };\r\n WorkflowService.prototype.updateUserActionInternal = function (workflowBlock) {\r\n var params = angular.copy(workflowBlock.userActionDto);\r\n if (!params.commentAllowed)\r\n params.commentRequired = false;\r\n if (!params.attachmentAllowed)\r\n params.attachmentRequired = false;\r\n params.documentConfiguration = null;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/UserAction/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateMessage = function (workflowBlock) {\r\n var params = workflowBlock.messageDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Message/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateCreatePdf = function (workflowBlock) {\r\n var params = workflowBlock.createPdfDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/CreatePdf/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateCopy = function (workflowBlock) {\r\n var params = workflowBlock.copyDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Copy/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateSetData = function (workflowBlock) {\r\n var params = workflowBlock.setDataDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/SetData/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateAssignClaim = function (workflowBlock) {\r\n var params = workflowBlock.assignClaimDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/AssignClaim/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateSendEmail = function (workflowBlock) {\r\n var params = workflowBlock.sendEmailDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/SendEmail/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateState = function (workflowBlock) {\r\n var params = workflowBlock.stateDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/State/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateCondition = function (workflowBlock) {\r\n var params = workflowBlock.conditionDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Condition/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateValidate = function (workflowBlock) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Validate/\" + workflowBlock.id;\r\n return this.usePostHandler(workflowBlock.validateDto);\r\n };\r\n WorkflowService.prototype.updateCalculate = function (workflowBlock) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Calculate/\" + workflowBlock.id;\r\n return this.usePostHandler(workflowBlock.calculateDto);\r\n };\r\n WorkflowService.prototype.updateScheduledResource = function (workflowBlockId, dto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/UpdateScheduledResource/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n };\r\n WorkflowService.prototype.updateReturnFromProcessAction = function (workflowBlockId, dto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/ReturnFromProcessAction/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n };\r\n WorkflowService.prototype.updateProcessAction = function (workflowBlockId, dto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/ProcessAction/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n };\r\n WorkflowService.prototype.updateSystemAction = function (workflowBlockId, dto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/SystemAction/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n };\r\n WorkflowService.prototype.updateChangeState = function (workflowBlockId, dto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/ChangeState/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n };\r\n WorkflowService.prototype.updateGotoState = function (workflowBlockId, dto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/GotoState/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n };\r\n WorkflowService.prototype.deleteWorkflowBlock = function (id, fromBlockId, isGotoBlock, gotoBlockToBlockId) {\r\n var params = {\r\n fromBlockId: fromBlockId,\r\n gotoBlockToBlockId: gotoBlockToBlockId\r\n };\r\n this.handlerUrl = isGotoBlock ? \"api/Workflow/WorkflowBlock/Delete/Goto/\" : \"api/Workflow/WorkflowBlock/Delete/\" + id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.updateGotoBlock = function (fromBlock, toBlock, isTo, isYes, isNo, multiOutputIndex) {\r\n var params = {\r\n toBlockId: toBlock ? toBlock.id : undefined,\r\n isTo: isTo,\r\n isYes: isYes,\r\n isNo: isNo,\r\n multiOutputIndex: multiOutputIndex\r\n };\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Update/\" + fromBlock.id;\r\n return this.usePostHandler(params);\r\n };\r\n WorkflowService.prototype.getProcessData = function (processConfigId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/\" + processConfigId + \"/Variables\";\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.validateStatusGroup = function (statusCodeId) {\r\n var params = {};\r\n this.handlerUrl = \"api/Workflow/StatusGroup/\" + statusCodeId + \"/ValidationIssues\";\r\n return this.useGetHandler(params);\r\n };\r\n WorkflowService.prototype.getAlwaysShowGotoArrowsSetting = function () {\r\n try {\r\n if (this.alwaysShowGotoArrows !== undefined)\r\n return this.alwaysShowGotoArrows;\r\n this.alwaysShowGotoArrows = localStorage.getItem(\"WARS_AlwaysShowGotoArrows\") === \"yes\";\r\n return this.alwaysShowGotoArrows;\r\n }\r\n catch (exception) {\r\n services.WarsLogger.logError(exception, this.logType);\r\n this.alwaysShowGotoArrows = false;\r\n return false;\r\n }\r\n };\r\n WorkflowService.prototype.setAlwaysShowGotoArrowsSetting = function (showGotoArrows) {\r\n try {\r\n this.alwaysShowGotoArrows = showGotoArrows;\r\n localStorage.setItem(\"WARS_AlwaysShowGotoArrows\", showGotoArrows ? \"yes\" : \"no\");\r\n }\r\n catch (exception) {\r\n services.WarsLogger.logError(exception, this.logType);\r\n }\r\n };\r\n WorkflowService.prototype.addOrRemoveFeedbackArrowLines = function () {\r\n var lineElements = Snap.selectAll(\".toggle-enabled-feedback-arrow\");\r\n if (this.alwaysShowGotoArrows) {\r\n for (var i = 0; i < lineElements.length; i++) {\r\n var element = lineElements[i];\r\n element.animate({ opacity: '1' }, 300);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < lineElements.length; i++) {\r\n var element = lineElements[i];\r\n element.attr({ opacity: '0' });\r\n }\r\n }\r\n var arrowElements = Snap.selectAll(\".toggle-enabled-feedback-arrow-tip\");\r\n if (this.alwaysShowGotoArrows) {\r\n for (var i = 0; i < arrowElements.length; i++) {\r\n var element = arrowElements[i];\r\n element.animate({ opacity: '1' }, 300);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < arrowElements.length; i++) {\r\n var element = arrowElements[i];\r\n element.attr({ opacity: '0' });\r\n }\r\n }\r\n };\r\n WorkflowService.prototype.showOutputOrderModal = function (workflowBlock, isReadonly) {\r\n var _this = this;\r\n var model = {\r\n workflowBlock: workflowBlock,\r\n isReadonly: false,\r\n dto: undefined\r\n };\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_outputOrderSettingsModal.html\",\r\n controller: \"outputOrderSettingsModalController\",\r\n inputs: {\r\n model: model\r\n }\r\n }).then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n _this.updateOutputOrder(model.dto).then(function (orderedDestinationIds) {\r\n var currentToBlocks = model.workflowBlock.toBlocks;\r\n var gotos = Enumerable.from(currentToBlocks).where(function (i) { return i.type === 98 /* Goto */; }).toArray();\r\n model.workflowBlock.toBlocks = [];\r\n model.workflowBlock.toBlockIds = [];\r\n for (var i = 0; i < currentToBlocks.length; i++) {\r\n if (currentToBlocks[i].type === 99 /* DropZone */) {\r\n model.workflowBlock.toBlockIds.push(currentToBlocks[i].id);\r\n model.workflowBlock.toBlocks.push(currentToBlocks[i]);\r\n }\r\n else {\r\n var firstOrDefault = Enumerable.from(currentToBlocks).firstOrDefault(function (x) { return x.id === orderedDestinationIds[i]; });\r\n if (firstOrDefault) {\r\n model.workflowBlock.toBlockIds.push(orderedDestinationIds[i]);\r\n model.workflowBlock.toBlocks.push(firstOrDefault);\r\n }\r\n else {\r\n var gotoMatch = Enumerable.from(gotos).first(function (x) { return x.toBlocks[0].id === orderedDestinationIds[i]; });\r\n model.workflowBlock.toBlockIds.push(gotoMatch[i]);\r\n model.workflowBlock.toBlocks.push(gotoMatch);\r\n }\r\n }\r\n }\r\n _this.$rootScope.$broadcast('re-draw-workflow');\r\n });\r\n }\r\n });\r\n });\r\n };\r\n WorkflowService.prototype.bindGroupItem = function (item) {\r\n var blocks = this.bindBlockList(item.workflowBlocks);\r\n var processStatusGroup = new warsApp.models.ProcessStatusGroup();\r\n processStatusGroup.intitialize(item, blocks);\r\n return processStatusGroup;\r\n };\r\n WorkflowService.prototype.bindGroupList = function (list) {\r\n var processStatusGroups = [];\r\n if (!list)\r\n return processStatusGroups;\r\n for (var i = 0; i < list.length; i++) {\r\n processStatusGroups.push(this.bindGroupItem(list[i]));\r\n }\r\n return processStatusGroups;\r\n };\r\n WorkflowService.prototype.bindBlockItem = function (item) {\r\n switch (item.blockType) {\r\n case 2 /* Condition */:\r\n var conditionBlock = new warsApp.models.ConditionWorkflowBlock(item.id, item.name);\r\n conditionBlock.setQuickLinkInfo(item.componentId, this);\r\n this.setCommonProperties(conditionBlock, item);\r\n if (item.myConditionDto)\r\n conditionBlock.populateDto(item.myConditionDto);\r\n return conditionBlock;\r\n case 3 /* Message */:\r\n var messageBlock = new warsApp.models.MessageWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(messageBlock, item);\r\n if (item.myMessageDto)\r\n messageBlock.populateDto(item.myMessageDto);\r\n return messageBlock;\r\n case 0 /* State */:\r\n var stateBlock = new warsApp.models.StateWorkflowBlock(item.id, item.name, item.isInitialWorkflowBlock);\r\n this.setCommonProperties(stateBlock, item);\r\n if (item.myStateDto)\r\n stateBlock.populateDto(item.myStateDto);\r\n return stateBlock;\r\n case 4 /* StatusChange */:\r\n var statusChangeBlock = new warsApp.models.StatusChangeWorkflowBlock(item.id, item.name);\r\n statusChangeBlock.statusChangeId = item.statusChangeId;\r\n statusChangeBlock.toStatusGroupId = item.toStatusGroupId;\r\n this.setCommonProperties(statusChangeBlock, item);\r\n return statusChangeBlock;\r\n case 5 /* CustomAction */:\r\n var systemActionBlock = new warsApp.models.CustomActionWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(systemActionBlock, item);\r\n return systemActionBlock;\r\n case 1 /* UserAction */:\r\n var userActionBlock = new warsApp.models.UserActionWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(userActionBlock, item);\r\n if (item.myUserActionDto)\r\n userActionBlock.populateDto(item.myUserActionDto);\r\n return userActionBlock;\r\n case 19 /* Copy */:\r\n var copyBlock = new warsApp.models.CopyWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(copyBlock, item);\r\n if (item.myCopyDto)\r\n copyBlock.populateDto(item.myCopyDto);\r\n return copyBlock;\r\n case 20 /* SetData */:\r\n var setDataBlock = new warsApp.models.SetDataWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(setDataBlock, item);\r\n if (item.mySetDataDto)\r\n setDataBlock.populateDto(item.mySetDataDto);\r\n return setDataBlock;\r\n case 21 /* AssignClaim */:\r\n var assignClaimBlock = new warsApp.models.AssignClaimWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(assignClaimBlock, item);\r\n if (item.myAssignClaimDto)\r\n assignClaimBlock.populateDto(item.myAssignClaimDto);\r\n return assignClaimBlock;\r\n case 6 /* Validate */:\r\n var validate = new warsApp.models.ValidateWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(validate, item);\r\n if (item.myValidateDto)\r\n validate.populateDto(item.myValidateDto);\r\n return validate;\r\n case 7 /* CreatePdfAction */:\r\n var createPdf = new warsApp.models.CreatePdfWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(createPdf, item);\r\n if (item.myCreatePdfDto)\r\n createPdf.populateDto(item.myCreatePdfDto);\r\n return createPdf;\r\n case 8 /* SendEmailAction */:\r\n var sendEmail = new warsApp.models.SendEmailWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(sendEmail, item);\r\n if (item.mySendEmailDto)\r\n sendEmail.populateDto(item.mySendEmailDto);\r\n return sendEmail;\r\n case 9 /* CalculateAction */:\r\n var calculate = new warsApp.models.CalculateWorkflowBlock(item.id, item.name);\r\n calculate.setQuickLinkInfo(item.componentId, this);\r\n this.setCommonProperties(calculate, item);\r\n if (item.myCalculateDto)\r\n calculate.populateDto(item.myCalculateDto);\r\n return calculate;\r\n case 11 /* BookResource */:\r\n var bookResource = new warsApp.models.BookResourceWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(bookResource, item);\r\n if (item.myScheduledResourceDto)\r\n bookResource.populateDto(item.myScheduledResourceDto);\r\n return bookResource;\r\n case 12 /* RemoveResource */:\r\n var removeResource = new warsApp.models.RemoveResourceWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(removeResource, item);\r\n if (item.myScheduledResourceDto)\r\n removeResource.populateDto(item.myScheduledResourceDto);\r\n return removeResource;\r\n case 15 /* StartProcessAction */:\r\n var startProcessAction = new warsApp.models.StartProcessActionWorkflowBlock(item.id, item.name, item.isInitialWorkflowBlock);\r\n this.setCommonProperties(startProcessAction, item);\r\n if (item.myStartProcessActionDto)\r\n startProcessAction.populateDto(item.myStartProcessActionDto);\r\n return startProcessAction;\r\n case 16 /* ReturnFromProcessAction */:\r\n var returnFromProcessAction = new warsApp.models.ReturnFromProcessActionWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(returnFromProcessAction, item);\r\n if (item.myReturnFromProcessActionDto)\r\n returnFromProcessAction.populateDto(item.myReturnFromProcessActionDto);\r\n return returnFromProcessAction;\r\n case 13 /* ProcessAction */:\r\n var processAction = new warsApp.models.ProcessActionWorkflowBlock(item.id, item.name);\r\n processAction.setQuickLinkInfo(item.componentId, this);\r\n this.setCommonProperties(processAction, item);\r\n if (item.myProcessActionDto)\r\n processAction.populateDto(item.myProcessActionDto);\r\n return processAction;\r\n case 17 /* SystemAction */:\r\n var systemAction = new warsApp.models.SystemActionWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(systemAction, item);\r\n if (item.mySystemActionDto)\r\n systemAction.populateDto(item.mySystemActionDto);\r\n return systemAction;\r\n case 14 /* ChangeState */:\r\n var changeState = new warsApp.models.ChangeStateWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(changeState, item);\r\n if (item.myChangeStateDto)\r\n changeState.populateDto(item.myChangeStateDto);\r\n return changeState;\r\n case 18 /* GotoState */:\r\n var gotoState = new warsApp.models.GotoStateWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(gotoState, item);\r\n if (item.myGotoStateDto)\r\n gotoState.populateDto(item.myGotoStateDto);\r\n return gotoState;\r\n default:\r\n throw \"Invalid workflow block type: \" + item.blockType;\r\n }\r\n };\r\n WorkflowService.prototype.quickLink = function (workflowBlock) {\r\n var _this = this;\r\n if (!workflowBlock.componentId)\r\n return;\r\n var url = undefined;\r\n switch (workflowBlock.type) {\r\n case 13 /* ProcessAction */:\r\n url = this.getQuickLinkUrl(\"ProcessActions\", workflowBlock.componentId);\r\n break;\r\n case 9 /* CalculateAction */:\r\n url = this.getQuickLinkUrl(\"Calculations\", workflowBlock.componentId);\r\n break;\r\n case 2 /* Condition */:\r\n url = this.getQuickLinkUrl(\"Conditions\", workflowBlock.componentId);\r\n break;\r\n }\r\n if (!url)\r\n return;\r\n this.$rootScope.$apply(function () { return _this.$window.open(url, \"_blank\"); });\r\n };\r\n WorkflowService.prototype.getQuickLinkUrl = function (componentUrlPart, componentId) {\r\n var currentLocation = this.$location.absUrl();\r\n var marker = \"/Manage/\";\r\n var indexOf = currentLocation.indexOf(marker);\r\n var url = currentLocation.substr(0, indexOf + marker.length - 1) + \"/\" + componentUrlPart + \"/\" + componentId;\r\n return url;\r\n };\r\n WorkflowService.prototype.setCommonProperties = function (workflowBlock, item) {\r\n workflowBlock.processActionId = item.processActionId;\r\n workflowBlock.statusCodeId = item.statusCodeId;\r\n workflowBlock.description = item.description;\r\n };\r\n WorkflowService.prototype.bindBlockList = function (list) {\r\n var workflowBlocks = [];\r\n if (!list)\r\n return workflowBlocks;\r\n for (var i = 0; i < list.length; i++) {\r\n var workflowBlock = this.bindBlockItem(list[i]);\r\n workflowBlock.toBlockIds = list[i].toBlockIds;\r\n workflowBlocks.push(workflowBlock);\r\n }\r\n this.tieUpRelationShips(workflowBlocks);\r\n return workflowBlocks;\r\n };\r\n WorkflowService.prototype.tieUpRelationShips = function (workflowBlocks) {\r\n for (var i = 0; i < workflowBlocks.length; i++) {\r\n var currentBlock = workflowBlocks[i];\r\n var outputType = currentBlock.getOutputType();\r\n switch (outputType) {\r\n case 0 /* Single */:\r\n var singleOutputBlock = currentBlock;\r\n if (singleOutputBlock.toBlockIds && singleOutputBlock.toBlockIds.length > 0)\r\n singleOutputBlock.toBlock = Enumerable.from(workflowBlocks).singleOrDefault(function (i) { return i.id === singleOutputBlock.toBlockIds[0]; });\r\n break;\r\n case 1 /* Multiple */:\r\n var multipleOutputBlock = currentBlock;\r\n for (var index = 0; index < multipleOutputBlock.toBlockIds.length; index++) {\r\n var currentToId = multipleOutputBlock.toBlockIds[index];\r\n var match = Enumerable.from(workflowBlocks).singleOrDefault(function (i) { return i.id === currentToId; });\r\n if (match)\r\n multipleOutputBlock.toBlocks.push(match);\r\n }\r\n case 2 /* YesNo */:\r\n var yesNoBlock = currentBlock;\r\n if (yesNoBlock.toBlockIds && yesNoBlock.toBlockIds.length > 0)\r\n yesNoBlock.yesBlock = Enumerable.from(workflowBlocks).singleOrDefault(function (i) { return i.id === yesNoBlock.toBlockIds[0]; });\r\n if (yesNoBlock.toBlockIds && yesNoBlock.toBlockIds.length > 1)\r\n yesNoBlock.noBlock = Enumerable.from(workflowBlocks).singleOrDefault(function (i) { return i.id === yesNoBlock.toBlockIds[1]; });\r\n break;\r\n case 3 /* None */:\r\n break;\r\n default:\r\n }\r\n }\r\n };\r\n WorkflowService.prototype.createNewDataOperation = function (dto) {\r\n if (!dto.mySetDataOperations) {\r\n dto.mySetDataOperations = [];\r\n }\r\n var newSetDataOperation = this.createNewSetDataOperationInternal(dto.mySetDataOperations.length);\r\n dto.mySetDataOperations.push(newSetDataOperation);\r\n return newSetDataOperation;\r\n };\r\n WorkflowService.prototype.createNewListDataOperation = function (dto) {\r\n if (!dto.mySetListDataOperations) {\r\n dto.mySetListDataOperations = [];\r\n }\r\n var newSetDataOperation = this.createNewSetDataOperationInternal(dto.mySetListDataOperations.length);\r\n dto.mySetListDataOperations.push(newSetDataOperation);\r\n return newSetDataOperation;\r\n };\r\n WorkflowService.prototype.createNewSetDataOperationInternal = function (executionOrder) {\r\n var newSetDataOperation = {\r\n id: services.UtilityService.generateGuidComb(),\r\n executionOrder: executionOrder,\r\n operationDataType: undefined,\r\n clearDataType: undefined,\r\n formId: undefined,\r\n listObjectSchema_id: undefined,\r\n fielSchemaProperty_id: undefined,\r\n setDataType: undefined,\r\n sourceTreeItem_id: undefined,\r\n destinationTreeItem_id: undefined,\r\n mySetListDataOperations: [],\r\n parentSetDataOperation_id: undefined\r\n };\r\n return newSetDataOperation;\r\n };\r\n return WorkflowService;\r\n }(services.HttpHandlerService));\r\n services.WorkflowService = WorkflowService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('WorkflowService', ['$http', \"$q\", \"$rootScope\", \"$window\", \"$location\", \"documentService\", \"ModalService\"]);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class WorkflowService extends HttpHandlerService {\r\n private logType = \"WorkflowService\";\r\n\r\n private alwaysShowGotoArrows: boolean;\r\n public newWorkflowVersionCreated: boolean;\r\n\r\n constructor(\r\n $http: ng.IHttpService,\r\n private $q: ng.IQService,\r\n private $rootScope: ng.IRootScopeService,\r\n private $window: ng.IWindowService,\r\n private $location: ng.ILocationService,\r\n private documentService: services.DocumentService,\r\n private modalService: any) {\r\n super($http);\r\n //this.newWorkflowVersionCreated = false;\r\n }\r\n\r\n public getStatuses(processConfigId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ProcessConfiguration/\" + processConfigId + \"/Statuses\";\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getAllStatusGroups(processConfigId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ProcessConfiguration/\" + processConfigId + \"/Statuses\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.Workflow.StatusGroupsDto) => {\r\n var processStatusGroupResult = new models.StatusGroupResult();\r\n processStatusGroupResult.processStatusGroups = this.bindGroupList(result.statusGroups);\r\n processStatusGroupResult.isReadonly = result.isReadonly;\r\n return processStatusGroupResult;\r\n });\r\n }\r\n\r\n public getAllStatusGroupsWithAdditionalInfo(processConfigId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/ProcessConfiguration/\" + processConfigId + \"/Statuses/AllData\";\r\n return this.useGetHandler(params).then(\r\n (result: Wars.Domain.Model.Dtos.Workflow.StatusGroupsDto) => {\r\n var processStatusGroupResult = new models.StatusGroupResult();\r\n processStatusGroupResult.processStatusGroups = this.bindGroupList(result.statusGroups);\r\n processStatusGroupResult.isReadonly = result.isReadonly;\r\n return processStatusGroupResult;\r\n });\r\n }\r\n\r\n public addNewStatus(newStatus: Wars.Domain.Model.Dtos.Workflow.StatusDto, processConfigId: string): ng.IPromise {\r\n this.handlerUrl = \"api/ProcessConfiguration/\" + processConfigId + \"/Status\";\r\n return this.usePostHandler(newStatus).then(\r\n (result: Wars.Domain.Model.Dtos.Workflow.StatusDto) => {\r\n return this.bindGroupItem(result);\r\n });\r\n }\r\n\r\n public updateStatus(statusCodeId: string, status: Wars.Domain.Model.Dtos.Workflow.StatusDto): ng.IPromise {\r\n\r\n this.handlerUrl = \"api/Workflow/Status/\" + statusCodeId + \"/Update\";\r\n return this.usePostHandler(status).then(\r\n (result: Wars.Domain.Model.Dtos.Workflow.StatusDto) => {\r\n return this.bindGroupItem(result);\r\n });\r\n }\r\n\r\n public getStatusChangeDto(statusChangeId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/StatusChange/\" + statusChangeId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getUserActionDto(userActionId: string): ng.IPromise {\r\n var deferred = this.$q.defer();\r\n\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/UserAction/\" + userActionId;\r\n this.useGetHandler(params).then(\r\n (userActionDto: Wars.Domain.Model.Dtos.Workflow.UserActionDto) => {\r\n if (userActionDto.documentConfigurationId) {\r\n this.documentService.getDocumentConfiguration(userActionDto.documentConfigurationId).then(\r\n (docConfig) => {\r\n userActionDto.documentConfiguration = docConfig;\r\n deferred.resolve(userActionDto);\r\n });\r\n } else {\r\n deferred.resolve(userActionDto);\r\n }\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n public getMessageDto(messageId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/Message/\" + messageId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getCreatePdfDto(createPdfId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/CreatePdf/\" + createPdfId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getCopyDto(copyId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/Copy/\" + copyId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getSetDataDto(setDataId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/SetData/\" + setDataId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getAssignClaimDto(assignClaimId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/AssignClaim/\" + assignClaimId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getSendEmailDto(sendEmailId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/SendEmail/\" + sendEmailId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getStateDto(stateId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/State/\" + stateId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getConditionDto(conditionId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/Condition/\" + conditionId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getValidateDto(validateId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/Validate/\" + validateId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getCalculateDto(calculateId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/Calculate/\" + calculateId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getBookResourceDto(bookResourceId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/BookResource/\" + bookResourceId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getRemoveResourceDto(removeResourceId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/RemoveResource/\" + removeResourceId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getReturnFromProcessActionDto(returnFromProcessActionId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/ReturnFromProcessAction/\" + returnFromProcessActionId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getProcessActionDto(processActionId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/ProcessAction/\" + processActionId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getSystemActionDto(systemActionId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/SystemAction/\" + systemActionId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getChangeStateDto(changeStateId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/ChangeState/\" + changeStateId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getGotoStateDto(gotoStateId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/GotoState/\" + gotoStateId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getOutputOrder(workflowBlockId: string): ng.IPromise {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/OutputOrder/\" + workflowBlockId;\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public updateOutputOrder(dto: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockOutputOrderDto) : ng.IPromise {\r\n var params = dto;\r\n this.handlerUrl = \"api/Workflow/UpdateOutputOrder\";\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public createNewWorkflowBlock(\r\n blockType: number,\r\n statusCodeId: string,\r\n processActionId: string,\r\n connectionsDto: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockAddContextDto): ng.IPromise\r\n {\r\n var params = {\r\n statusCodeId: statusCodeId,\r\n processActionId: processActionId,\r\n blockType: blockType,\r\n name: models.WorkflowBlockManager.getWorkflowBlockNameByType(blockType),\r\n addContext: connectionsDto\r\n };\r\n\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock\";\r\n return this.usePostHandler(params).then((workflowBlock) => this.bindBlockItem(workflowBlock));\r\n }\r\n\r\n public createNewWorkflowBlockInBetween(addContext: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockAddInBetweenContextDto): ng.IPromise {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/InBetween\";\r\n return this.usePostHandler(addContext).then((workflowBlock) => this.bindBlockItem(workflowBlock));\r\n }\r\n\r\n public updateStatusChange(workflowBlock: models.StatusChangeWorkflowBlock) {\r\n var params = workflowBlock.statusChangeDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/StatusChange/\" + workflowBlock.statusChangeId;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateUserAction(workflowBlock: models.UserActionWorkflowBlock) : ng.IPromise {\r\n if (!this.documentService.hasChanges()) {\r\n return this.updateUserActionInternal(workflowBlock);\r\n }\r\n\r\n var deferred = this.$q.defer();\r\n\r\n this.documentService.saveAllChanges(() => {\r\n this.updateUserActionInternal(workflowBlock).then(\r\n (name: string) => {\r\n deferred.resolve(name);\r\n },\r\n (failureReason) => {\r\n deferred.reject(failureReason);\r\n });\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n private updateUserActionInternal(workflowBlock: models.UserActionWorkflowBlock): ng.IPromise {\r\n var params = angular.copy(workflowBlock.userActionDto);\r\n if (!params.commentAllowed) params.commentRequired = false;\r\n if (!params.attachmentAllowed) params.attachmentRequired = false;\r\n params.documentConfiguration = null;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/UserAction/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n}\r\n\r\n public updateMessage(workflowBlock: models.MessageWorkflowBlock) {\r\n var params = workflowBlock.messageDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Message/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateCreatePdf(workflowBlock: models.CreatePdfWorkflowBlock) {\r\n var params = workflowBlock.createPdfDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/CreatePdf/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateCopy(workflowBlock: models.CopyWorkflowBlock) {\r\n var params = workflowBlock.copyDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Copy/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateSetData(workflowBlock: models.SetDataWorkflowBlock) {\r\n var params = workflowBlock.setDataDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/SetData/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateAssignClaim(workflowBlock: models.AssignClaimWorkflowBlock) {\r\n var params = workflowBlock.assignClaimDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/AssignClaim/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateSendEmail(workflowBlock: models.SendEmailWorkflowBlock) {\r\n var params = workflowBlock.sendEmailDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/SendEmail/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateState(workflowBlock: models.StateWorkflowBlock) {\r\n var params = workflowBlock.stateDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/State/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateCondition(workflowBlock: models.ConditionWorkflowBlock) {\r\n var params = workflowBlock.conditionDto;\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Condition/\" + workflowBlock.id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateValidate(workflowBlock: models.ValidateWorkflowBlock) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Validate/\" + workflowBlock.id;\r\n return this.usePostHandler(workflowBlock.validateDto);\r\n }\r\n\r\n public updateCalculate(workflowBlock: models.CalculateWorkflowBlock) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Calculate/\" + workflowBlock.id;\r\n return this.usePostHandler(workflowBlock.calculateDto);\r\n }\r\n\r\n public updateScheduledResource(workflowBlockId: string, dto: Wars.Domain.Model.Dtos.Workflow.ScheduledResourceDto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/UpdateScheduledResource/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n }\r\n\r\n public updateReturnFromProcessAction(workflowBlockId: string, dto: Wars.Domain.Model.Dtos.Workflow.ReturnFromProcessActionDto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/ReturnFromProcessAction/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n }\r\n\r\n public updateProcessAction(workflowBlockId: string, dto: Wars.Domain.Model.Dtos.Workflow.ProcessActionDto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/ProcessAction/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n }\r\n\r\n public updateSystemAction(workflowBlockId: string, dto: Wars.Domain.Model.Dtos.Workflow.SystemActionDto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/SystemAction/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n }\r\n\r\n public updateChangeState(workflowBlockId: string, dto: Wars.Domain.Model.Dtos.Workflow.ChangeStateDto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/ChangeState/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n }\r\n\r\n public updateGotoState(workflowBlockId: string, dto: Wars.Domain.Model.Dtos.Workflow.GotoStateDto) {\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/GotoState/\" + workflowBlockId;\r\n return this.usePostHandler(dto);\r\n }\r\n\r\n public deleteWorkflowBlock(id: string, fromBlockId: string, isGotoBlock: boolean, gotoBlockToBlockId?: number): ng.IPromise {\r\n var params = {\r\n fromBlockId: fromBlockId,\r\n gotoBlockToBlockId: gotoBlockToBlockId\r\n };\r\n this.handlerUrl = isGotoBlock ? \"api/Workflow/WorkflowBlock/Delete/Goto/\" : \"api/Workflow/WorkflowBlock/Delete/\" + id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public updateGotoBlock(\r\n fromBlock: models.IWorkflowBlock,\r\n toBlock: models.IWorkflowBlock,\r\n isTo: boolean,\r\n isYes: boolean,\r\n isNo: boolean,\r\n multiOutputIndex: number): ng.IPromise {\r\n var params = {\r\n toBlockId: toBlock ? toBlock.id : undefined,\r\n isTo: isTo,\r\n isYes: isYes,\r\n isNo: isNo,\r\n multiOutputIndex: multiOutputIndex\r\n };\r\n this.handlerUrl = \"api/Workflow/WorkflowBlock/Update/\" + fromBlock.id;\r\n return this.usePostHandler(params);\r\n }\r\n\r\n public getProcessData(processConfigId: string) {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/\" + processConfigId + \"/Variables\";\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public validateStatusGroup(statusCodeId: string) {\r\n var params: any = {};\r\n this.handlerUrl = \"api/Workflow/StatusGroup/\" + statusCodeId + \"/ValidationIssues\";\r\n return this.useGetHandler(params);\r\n }\r\n\r\n public getAlwaysShowGotoArrowsSetting(): boolean {\r\n try {\r\n if (this.alwaysShowGotoArrows !== undefined) return this.alwaysShowGotoArrows;\r\n this.alwaysShowGotoArrows = localStorage.getItem(\"WARS_AlwaysShowGotoArrows\") === \"yes\";\r\n return this.alwaysShowGotoArrows;\r\n } catch (exception) {\r\n services.WarsLogger.logError(exception, this.logType);\r\n this.alwaysShowGotoArrows = false;\r\n return false;\r\n }\r\n }\r\n\r\n public setAlwaysShowGotoArrowsSetting(showGotoArrows: boolean): void {\r\n try {\r\n this.alwaysShowGotoArrows = showGotoArrows;\r\n localStorage.setItem(\"WARS_AlwaysShowGotoArrows\", showGotoArrows ? \"yes\" : \"no\");\r\n } catch (exception) {\r\n services.WarsLogger.logError(exception, this.logType);\r\n }\r\n }\r\n\r\n public addOrRemoveFeedbackArrowLines(): void {\r\n var lineElements = Snap.selectAll(\".toggle-enabled-feedback-arrow\");\r\n\r\n if (this.alwaysShowGotoArrows) {\r\n for (let i = 0; i < lineElements.length; i++) {\r\n const element: Snap.Element = lineElements[i];\r\n element.animate({ opacity: '1' }, 300);\r\n }\r\n } else {\r\n for (let i = 0; i < lineElements.length; i++) {\r\n const element: Snap.Element = lineElements[i];\r\n element.attr({ opacity: '0' });\r\n }\r\n }\r\n\r\n var arrowElements = Snap.selectAll(\".toggle-enabled-feedback-arrow-tip\");\r\n\r\n if (this.alwaysShowGotoArrows) {\r\n for (let i = 0; i < arrowElements.length; i++) {\r\n const element: Snap.Element = arrowElements[i];\r\n element.animate({ opacity: '1' }, 300);\r\n }\r\n } else {\r\n for (let i = 0; i < arrowElements.length; i++) {\r\n const element: Snap.Element = arrowElements[i];\r\n element.attr({ opacity: '0' });\r\n }\r\n }\r\n }\r\n\r\n public showOutputOrderModal(workflowBlock: models.IWorkflowBlock, isReadonly: boolean) {\r\n var model: models.OutputOrderModel = {\r\n workflowBlock: workflowBlock,\r\n isReadonly: false, // TODO: fix this later\r\n dto: undefined\r\n };\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/workflow/_outputOrderSettingsModal.html\",\r\n controller: \"outputOrderSettingsModalController\",\r\n inputs: {\r\n model: model\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n if (result) {\r\n this.updateOutputOrder(model.dto).then(\r\n (orderedDestinationIds) => {\r\n var currentToBlocks = model.workflowBlock.toBlocks;\r\n var gotos = Enumerable.from(currentToBlocks).where(i => i.type === Wars.Domain.Model.Codes.Enums.BlockType.Goto).toArray();\r\n \r\n model.workflowBlock.toBlocks = [];\r\n model.workflowBlock.toBlockIds = [];\r\n\r\n for (var i = 0; i < currentToBlocks.length; i++) {\r\n if (currentToBlocks[i].type === Wars.Domain.Model.Codes.Enums.BlockType.DropZone) {\r\n model.workflowBlock.toBlockIds.push(currentToBlocks[i].id);\r\n model.workflowBlock.toBlocks.push(currentToBlocks[i]);\r\n } else {\r\n var firstOrDefault = Enumerable.from(currentToBlocks).firstOrDefault(x => x.id === orderedDestinationIds[i]);\r\n if (firstOrDefault) {\r\n model.workflowBlock.toBlockIds.push(orderedDestinationIds[i]);\r\n model.workflowBlock.toBlocks.push(firstOrDefault);\r\n } else {\r\n var gotoMatch = Enumerable.from(gotos).first(x => x.toBlocks[0].id === orderedDestinationIds[i]);\r\n model.workflowBlock.toBlockIds.push(gotoMatch[i]);\r\n model.workflowBlock.toBlocks.push(gotoMatch);\r\n }\r\n }\r\n }\r\n\r\n this.$rootScope.$broadcast('re-draw-workflow');\r\n });\r\n } \r\n });\r\n });\r\n }\r\n\r\n private bindGroupItem(item: Wars.Domain.Model.Dtos.Workflow.StatusDto): models.ProcessStatusGroup {\r\n var blocks = this.bindBlockList(item.workflowBlocks);\r\n var processStatusGroup = new models.ProcessStatusGroup();\r\n processStatusGroup.intitialize(item, blocks);\r\n return processStatusGroup;\r\n }\r\n\r\n private bindGroupList(list: any): models.ProcessStatusGroup [] {\r\n var processStatusGroups: models.ProcessStatusGroup[] = [];\r\n if (!list) return processStatusGroups;\r\n\r\n for (var i = 0; i < list.length; i++) {\r\n processStatusGroups.push(this.bindGroupItem(list[i]));\r\n }\r\n\r\n return processStatusGroups;\r\n }\r\n\r\n private bindBlockItem(item: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockDto) : models.IWorkflowBlock {\r\n switch (item.blockType) {\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Condition:\r\n var conditionBlock = new models.ConditionWorkflowBlock(item.id, item.name);\r\n conditionBlock.setQuickLinkInfo(item.componentId, this);\r\n this.setCommonProperties(conditionBlock, item);\r\n if (item.myConditionDto) conditionBlock.populateDto(item.myConditionDto);\r\n return conditionBlock;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Message:\r\n var messageBlock = new models.MessageWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(messageBlock, item);\r\n if (item.myMessageDto) messageBlock.populateDto(item.myMessageDto);\r\n return messageBlock;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.State:\r\n var stateBlock = new models.StateWorkflowBlock(item.id, item.name, item.isInitialWorkflowBlock);\r\n this.setCommonProperties(stateBlock, item);\r\n if (item.myStateDto) stateBlock.populateDto(item.myStateDto);\r\n return stateBlock;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.StatusChange:\r\n var statusChangeBlock = new models.StatusChangeWorkflowBlock(item.id, item.name);\r\n statusChangeBlock.statusChangeId = item.statusChangeId;\r\n statusChangeBlock.toStatusGroupId = item.toStatusGroupId;\r\n this.setCommonProperties(statusChangeBlock, item);\r\n return statusChangeBlock;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CustomAction:\r\n var systemActionBlock = new models.CustomActionWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(systemActionBlock, item);\r\n return systemActionBlock;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.UserAction:\r\n var userActionBlock = new models.UserActionWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(userActionBlock, item);\r\n if (item.myUserActionDto) userActionBlock.populateDto(item.myUserActionDto);\r\n return userActionBlock;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Copy:\r\n var copyBlock = new models.CopyWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(copyBlock, item);\r\n if (item.myCopyDto) copyBlock.populateDto(item.myCopyDto);\r\n return copyBlock;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SetData:\r\n var setDataBlock = new models.SetDataWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(setDataBlock, item);\r\n if (item.mySetDataDto) setDataBlock.populateDto(item.mySetDataDto);\r\n return setDataBlock;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.AssignClaim:\r\n var assignClaimBlock = new models.AssignClaimWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(assignClaimBlock, item);\r\n if (item.myAssignClaimDto) assignClaimBlock.populateDto(item.myAssignClaimDto);\r\n return assignClaimBlock;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Validate:\r\n var validate = new models.ValidateWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(validate, item);\r\n if (item.myValidateDto) validate.populateDto(item.myValidateDto);\r\n return validate;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CreatePdfAction:\r\n var createPdf = new models.CreatePdfWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(createPdf, item);\r\n if (item.myCreatePdfDto) createPdf.populateDto(item.myCreatePdfDto);\r\n return createPdf;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SendEmailAction:\r\n var sendEmail = new models.SendEmailWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(sendEmail, item);\r\n if (item.mySendEmailDto) sendEmail.populateDto(item.mySendEmailDto);\r\n return sendEmail;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction:\r\n var calculate = new models.CalculateWorkflowBlock(item.id, item.name);\r\n calculate.setQuickLinkInfo(item.componentId, this);\r\n this.setCommonProperties(calculate, item);\r\n if (item.myCalculateDto) calculate.populateDto(item.myCalculateDto);\r\n return calculate;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.BookResource:\r\n var bookResource = new models.BookResourceWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(bookResource, item);\r\n if (item.myScheduledResourceDto) bookResource.populateDto(item.myScheduledResourceDto);\r\n return bookResource;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.RemoveResource:\r\n var removeResource = new models.RemoveResourceWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(removeResource, item);\r\n if (item.myScheduledResourceDto) removeResource.populateDto(item.myScheduledResourceDto);\r\n return removeResource;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.StartProcessAction:\r\n var startProcessAction = new models.StartProcessActionWorkflowBlock(item.id, item.name, item.isInitialWorkflowBlock);\r\n this.setCommonProperties(startProcessAction, item);\r\n if (item.myStartProcessActionDto) startProcessAction.populateDto(item.myStartProcessActionDto);\r\n return startProcessAction;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ReturnFromProcessAction:\r\n var returnFromProcessAction = new models.ReturnFromProcessActionWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(returnFromProcessAction, item);\r\n if (item.myReturnFromProcessActionDto) returnFromProcessAction.populateDto(item.myReturnFromProcessActionDto);\r\n return returnFromProcessAction;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction:\r\n var processAction = new models.ProcessActionWorkflowBlock(item.id, item.name);\r\n processAction.setQuickLinkInfo(item.componentId, this);\r\n this.setCommonProperties(processAction, item);\r\n if (item.myProcessActionDto) processAction.populateDto(item.myProcessActionDto);\r\n return processAction;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.SystemAction:\r\n var systemAction = new models.SystemActionWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(systemAction, item);\r\n if (item.mySystemActionDto) systemAction.populateDto(item.mySystemActionDto);\r\n return systemAction;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ChangeState:\r\n var changeState = new models.ChangeStateWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(changeState, item);\r\n if (item.myChangeStateDto) changeState.populateDto(item.myChangeStateDto);\r\n return changeState;\r\n\r\n case Wars.Domain.Model.Codes.Enums.BlockType.GotoState:\r\n var gotoState = new models.GotoStateWorkflowBlock(item.id, item.name);\r\n this.setCommonProperties(gotoState, item);\r\n if (item.myGotoStateDto) gotoState.populateDto(item.myGotoStateDto);\r\n return gotoState;\r\n\r\n default:\r\n throw \"Invalid workflow block type: \" + item.blockType;\r\n }\r\n }\r\n\r\n public quickLink(workflowBlock: models.IWorkflowBlock): void {\r\n if (!workflowBlock.componentId) return;\r\n var url = undefined;\r\n switch (workflowBlock.type) {\r\n case Wars.Domain.Model.Codes.Enums.BlockType.ProcessAction:\r\n url = this.getQuickLinkUrl(\"ProcessActions\", workflowBlock.componentId);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.CalculateAction:\r\n url = this.getQuickLinkUrl(\"Calculations\", workflowBlock.componentId);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockType.Condition:\r\n url = this.getQuickLinkUrl(\"Conditions\", workflowBlock.componentId);\r\n break;\r\n }\r\n if (!url) return;\r\n this.$rootScope.$apply(() => this.$window.open(url, \"_blank\"));\r\n }\r\n\r\n private getQuickLinkUrl(componentUrlPart: string, componentId: string) {\r\n const currentLocation = this.$location.absUrl();\r\n const marker = \"/Manage/\";\r\n const indexOf = currentLocation.indexOf(marker);\r\n const url = currentLocation.substr(0, indexOf + marker.length - 1) + \"/\" + componentUrlPart + \"/\" + componentId;\r\n return url;\r\n }\r\n\r\n private setCommonProperties(workflowBlock: models.IWorkflowBlock, item: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockDto) : void {\r\n workflowBlock.processActionId = item.processActionId;\r\n workflowBlock.statusCodeId = item.statusCodeId;\r\n workflowBlock.description = item.description;\r\n }\r\n\r\n public bindBlockList(list: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockDto[]) : models.IWorkflowBlock[] {\r\n var workflowBlocks: models.IWorkflowBlock[] = [];\r\n if (!list) return workflowBlocks;\r\n\r\n for (var i = 0; i < list.length; i++) {\r\n var workflowBlock = this.bindBlockItem(list[i]);\r\n workflowBlock.toBlockIds = list[i].toBlockIds;\r\n workflowBlocks.push(workflowBlock);\r\n }\r\n\r\n this.tieUpRelationShips(workflowBlocks);\r\n\r\n return workflowBlocks;\r\n }\r\n\r\n private tieUpRelationShips(workflowBlocks: models.IWorkflowBlock[]) : void {\r\n for (var i = 0; i < workflowBlocks.length; i++) {\r\n var currentBlock = workflowBlocks[i];\r\n var outputType = currentBlock.getOutputType();\r\n switch (outputType) {\r\n case Wars.Domain.Model.Codes.Enums.BlockOutputType.Single:\r\n var singleOutputBlock = currentBlock;\r\n if (singleOutputBlock.toBlockIds && singleOutputBlock.toBlockIds.length > 0)\r\n singleOutputBlock.toBlock = Enumerable.from(workflowBlocks).singleOrDefault(i => i.id === singleOutputBlock.toBlockIds[0]);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockOutputType.Multiple:\r\n var multipleOutputBlock = currentBlock;\r\n for (var index = 0; index < multipleOutputBlock.toBlockIds.length; index++) {\r\n var currentToId = multipleOutputBlock.toBlockIds[index];\r\n var match = Enumerable.from(workflowBlocks).singleOrDefault(i => i.id === currentToId);\r\n if (match) multipleOutputBlock.toBlocks.push(match);\r\n }\r\n case Wars.Domain.Model.Codes.Enums.BlockOutputType.YesNo:\r\n var yesNoBlock = currentBlock;\r\n if (yesNoBlock.toBlockIds && yesNoBlock.toBlockIds.length > 0)\r\n yesNoBlock.yesBlock = Enumerable.from(workflowBlocks).singleOrDefault(i => i.id === yesNoBlock.toBlockIds[0]);\r\n if (yesNoBlock.toBlockIds && yesNoBlock.toBlockIds.length > 1)\r\n yesNoBlock.noBlock = Enumerable.from(workflowBlocks).singleOrDefault(i => i.id === yesNoBlock.toBlockIds[1]);\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.BlockOutputType.None:\r\n break;\r\n \r\n default:\r\n }\r\n }\r\n }\r\n\r\n public createNewDataOperation(dto: Wars.Domain.Model.Dtos.Workflow.SetDataDto): Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto {\r\n if (!dto.mySetDataOperations) {\r\n dto.mySetDataOperations = [];\r\n }\r\n\r\n var newSetDataOperation = this.createNewSetDataOperationInternal(dto.mySetDataOperations.length);\r\n\r\n dto.mySetDataOperations.push(newSetDataOperation);\r\n\r\n return newSetDataOperation;\r\n }\r\n\r\n public createNewListDataOperation(dto: Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto): Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto {\r\n if (!dto.mySetListDataOperations) {\r\n dto.mySetListDataOperations = [];\r\n }\r\n\r\n var newSetDataOperation = this.createNewSetDataOperationInternal(dto.mySetListDataOperations.length);\r\n\r\n dto.mySetListDataOperations.push(newSetDataOperation);\r\n\r\n return newSetDataOperation;\r\n }\r\n\r\n private createNewSetDataOperationInternal(executionOrder: number): Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto {\r\n var newSetDataOperation = {\r\n id: UtilityService.generateGuidComb(),\r\n executionOrder: executionOrder,\r\n operationDataType: undefined,\r\n clearDataType: undefined,\r\n formId: undefined,\r\n listObjectSchema_id: undefined,\r\n fielSchemaProperty_id: undefined,\r\n setDataType: undefined,\r\n sourceTreeItem_id: undefined,\r\n destinationTreeItem_id: undefined,\r\n mySetListDataOperations: [],\r\n parentSetDataOperation_id: undefined\r\n };\r\n return newSetDataOperation;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('WorkflowService', ['$http', \"$q\", \"$rootScope\", \"$window\", \"$location\", \"documentService\", \"ModalService\"]);","/// \r\nmodule warsApp.services {\r\n export interface IResponseInterceptor {\r\n response: Function;\r\n responseError: Function;\r\n }\r\n\r\n export interface IRequestInterceptor {\r\n request: Function;\r\n requestError: Function;\r\n }\r\n\r\n export class BreezeInterceptor implements IResponseInterceptor {\r\n public static factory( growl: angular.growl.IGrowlService,\r\n $q: ng.IQService) {\r\n return new BreezeInterceptor(growl,$q);\r\n }\r\n\r\n constructor( private growl: angular.growl.IGrowlService,\r\n private $q: ng.IQService) {\r\n }\r\n\r\n public response = (responseSuccess): ng.IPromise => {\r\n if (responseSuccess.status === 200 && responseSuccess.data != null && responseSuccess.data.Errors != null) {\r\n for (var i = 0; i < responseSuccess.data.Errors.length; i++) {\r\n console.info(responseSuccess.data.Errors[i]);\r\n this.growl.error(responseSuccess.data.Errors[i].ErrorMessage);\r\n }\r\n }\r\n return responseSuccess;\r\n }\r\n\r\n public responseError = (responseFailure): ng.IPromise => {\r\n return this.$q.reject(responseFailure);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('BreezeInterceptor', ['growl', '$q']);","angular.module(\"warsApp.factories\").factory('clearGrowlMessagesInterceptor', ['growl',\r\n function (growl) {\r\n return {\r\n request: function (config) {\r\n //growl.deleteAllMessages();\r\n return config;\r\n }\r\n };\r\n}]);","angular.module(\"warsApp.factories\").factory('configurationInterceptor', [\"$location\", function ($location) {\r\n \r\n return {\r\n request: function (config) {\r\n if (config.method === \"GET\") return config;\r\n // Using a post for the get codes call\r\n if (config.url.indexOf(\"/api/Code/GetCodes\") !== -1) return config;\r\n\r\n var absoluteUrl = $location.absUrl();\r\n if (absoluteUrl.match(/#\\/ProcessConfiguration\\/[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\\/Manage/)) {\r\n var firstGuidRegEx = /([a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12})/i;\r\n var match = firstGuidRegEx.exec(absoluteUrl);\r\n\r\n var processConfiguration = match ? match[1] : null;\r\n\r\n if (processConfiguration) {\r\n config.headers[\"Wars-Configuration-Update\"] = processConfiguration;\r\n }\r\n }\r\n\r\n return config;\r\n }\r\n };\r\n}]);","angular.module(\"warsApp.factories\").factory('errorResponseInterceptor', ['$q', 'growl', function ($q, growl) {\r\n var badRequest = 400;\r\n var unauthorized = 401;\r\n var forbidden = 403;\r\n var pageNotFound = 404;\r\n\r\n var responseInterceptor = {\r\n 'responseError': function (rejection) {\r\n if (rejection.status !== badRequest &&\r\n rejection.status !== unauthorized &&\r\n rejection.status !== forbidden && \r\n rejection.status !== pageNotFound)\r\n {\r\n if (rejection.data && typeof rejection.data == \"string\" && rejection.data.indexOf(\"has been versioned and therefore is not editable\") !== -1)\r\n {\r\n growl.addServerMessages([\r\n {\r\n severity: 'error',\r\n title: 'Application Error',\r\n text: \"This Process Configuration has already been versioned and cannot be modified. Please navigate to the new In-Work Process Configuration for this Process Type.\"\r\n }\r\n ]);\r\n } else {\r\n growl.addServerMessages([ { severity: 'error', title: 'Application Error', text: \"An unexpected error has occurred.\" } ]);\r\n }\r\n }\r\n return $q.reject(rejection);\r\n }\r\n };\r\n return responseInterceptor;\r\n}]);","angular.module(\"warsApp.factories\").factory('$exceptionHandler', ['$log', function ($log) {\r\n\r\n return function (exception, cause) {\r\n try {\r\n var logContext = { stack: exception.stack, cause: cause };\r\n warsApp.services.WarsLogger.logError(exception.message + \"\\n\\n\" + exception.stack, \"$exceptionHandler\", logContext);\r\n $log.error(exception, cause)\r\n }\r\n catch (loggingError) {\r\n // For Developers - log the log-failure.\r\n $log.warn(\"Error logging failed\");\r\n $log.log(loggingError);\r\n }\r\n };\r\n}]);\r\n\r\n// Now catch anything outside of the angular pipeline\r\nwindow.onerror = function (message, url, lineNumber) {\r\n try {\r\n var logContext = {\r\n url: url,\r\n lineNumber: lineNumber\r\n };\r\n warsApp.services.WarsLogger.logError(message, \"window.onerror\", logContext);\r\n } catch (ex) {\r\n return false;\r\n }\r\n return true;\r\n}; ","angular.module(\"warsApp.factories\").factory('noCacheInterceptor', function () {\r\n return {\r\n request: function (config) {\r\n if (config.method == 'GET') {\r\n if (!config.url.toLowerCase().endsWith('.html')) {\r\n var separator = config.url.indexOf('?') === -1 ? '?' : '&';\r\n config.url = config.url + separator + 'noCache=' + new Date().getTime();\r\n }\r\n }\r\n\r\n return config;\r\n }\r\n };\r\n});","angular.module(\"warsApp.factories\").factory('recursionHelper', ['$compile', function ($compile) {\r\n return {\r\n /**\r\n * Manually compiles the element, fixing the recursion loop.\r\n * @param element\r\n * @param [link] A post-link function, or an object with function(s) registered via pre and post properties.\r\n * @returns An object containing the linking functions.\r\n */\r\n compile: function (element, link) {\r\n // Normalize the link parameter\r\n if (angular.isFunction(link)) {\r\n link = { post: link };\r\n }\r\n // Break the recursion loop by removing the contents\r\n var contents = element.contents().remove();\r\n var compiledContents;\r\n return {\r\n pre: (link && link.pre) ? link.pre : null,\r\n /**\r\n * Compiles and re-adds the contents\r\n */\r\n post: function (scope, element) {\r\n // Compile the contents\r\n if (!compiledContents) {\r\n compiledContents = $compile(contents);\r\n }\r\n // Re-add the compiled contents to the element\r\n compiledContents(scope, function (clone) {\r\n element.append(clone);\r\n });\r\n\r\n // Call the post-linking function, if any\r\n if (link && link.post) {\r\n link.post.apply(null, arguments);\r\n }\r\n }\r\n };\r\n }\r\n };\r\n}]);","angular.module(\"warsApp.factories\").factory(\"requestTransformer\", function () {\r\n\r\n var isObject = function(itemUnderTest) {\r\n return typeof itemUnderTest == \"object\" && itemUnderTest !== null;\r\n };\r\n\r\n var setUndefinedVariablesToNullRecursively = function(object) {\r\n for (var propertyKey in object) {\r\n if (isObject(object[propertyKey])) {\r\n setUndefinedVariablesToNullRecursively(object[propertyKey]);\r\n }\r\n if (object[propertyKey] === undefined) {\r\n object[propertyKey] = null;\r\n }\r\n }\r\n };\r\n\r\n var propertyNamesToScrub = [];\r\n\r\n var scrubDataRecursively = function (object) {\r\n for (var propertyKey in object) {\r\n if (propertyNamesToScrub.indexOf(propertyKey) != -1) {\r\n delete object[propertyKey];\r\n }\r\n else if (isObject(object[propertyKey])) {\r\n scrubDataRecursively(object[propertyKey]);\r\n }\r\n }\r\n };\r\n\r\n var factory = {};\r\n\r\n // Had issues with MVC model binding being too ambitious and binding a single property that was sent up to multiple action method argument objects. \r\n // Adding this transform request before the default request transformer ensures undefined properties and changed to null properties and \r\n // thus posted to the server. This ensures that MVC will model bind these objects as null and not try to find any sub properties that match\r\n // anything else posted.\r\n factory.setUndefinedVariablesToNull = function(payload) {\r\n var deepCopy = angular.copy(payload);\r\n setUndefinedVariablesToNullRecursively(deepCopy);\r\n return deepCopy;\r\n };\r\n\r\n factory.scrubDataFromPost = function(payload) {\r\n var deepCopy = angular.copy(payload);\r\n scrubDataRecursively(deepCopy);\r\n return deepCopy;\r\n }\r\n\r\n return factory;\r\n});","angular.module(\"warsApp.factories\").factory('timeZoneInterceptor', function () {\r\n var timeZoneName = undefined;\r\n\r\n return {\r\n request: function (config) {\r\n\r\n if (timeZoneName === undefined) {\r\n timeZoneName = warsApp.DateTimeHelper.GetLongTimeZoneName();\r\n }\r\n\r\n config.headers['Client-Time-Zone-Name'] = timeZoneName;\r\n return config;\r\n }\r\n };\r\n});","/// \r\nmodule warsApp.directives {\r\n export interface IBaseFormScope extends ng.IScope {\r\n formConfiguration: Wars.Domain.Model.Form;\r\n isConfigureMode: boolean;\r\n showSlider: boolean;\r\n moveStepAvailable: boolean;\r\n process: models.ProcessDto;\r\n processConfigurationId: string;\r\n formDataId: string;\r\n parentFormId: string;\r\n model: BaseFormModel;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n }\r\n}\r\n\r\nmodule warsApp.directives {\r\n\r\n export abstract class BaseForm implements IDirective {\r\n public link($scope: any, element: JQuery, attrs: ng.IAttributes) {\r\n\r\n }\r\n\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n process: \"=\",\r\n processConfigurationId: \"=\",\r\n isConfigureMode: \"=\",\r\n formConfiguration: \"=\",\r\n formDataId: \"=\",\r\n parentFormId: \"=\",\r\n processConfiguration: \"=\"\r\n };\r\n }\r\n\r\n export abstract class BaseFormModel {\r\n public formData: any;\r\n //public form: any;\r\n public isReadOnly: boolean;\r\n public isConfigureMode: boolean;\r\n public showSlider: boolean;\r\n public isStepAvailable: boolean;\r\n public currentStep: Wars.Domain.Model.FormStep;\r\n public formConfiguration: Wars.Domain.Model.Form;\r\n public currentStepIndex: number;\r\n public isFieldChangedProcessAction: boolean;\r\n protected previousSaveJson: string;\r\n protected customStepFunctions: any;\r\n public fields: Wars.Domain.Model.Field[];\r\n public moveStepAvailable: boolean;\r\n public showHtml: boolean;\r\n public showJavascript = false;\r\n public showPreview = false;\r\n public isEditMode = true;\r\n public showCustomCode = false;\r\n public editor: AceAjax.Editor;\r\n public selectedFunction: Wars.Domain.Model.FormCodeFunction;\r\n public apiActions: Wars.Domain.Model.ApiAction[];\r\n public filteredApiActions: Wars.Domain.Model.ApiAction[];\r\n public processTypes: Wars.Domain.Model.ProcessType[];\r\n public selectedApiAction: Wars.Domain.Model.ApiAction;\r\n\r\n constructor(\r\n protected angularLoader: services.AngularLoadService,\r\n protected formSectionService: services.FormSectionService,\r\n protected modalService: any,\r\n protected $http: angular.IHttpService,\r\n protected dataSourceService: services.DataSourceService,\r\n protected formService: services.FormService,\r\n public process: warsApp.models.ProcessDto,\r\n protected formDataService: services.FormDataService,\r\n protected growl: angular.growl.IGrowlService,\r\n protected formCodeFunctionService: Services.FormCodeFunctionService,\r\n private customDivService: services.CustomDivService,\r\n protected manageProcessDataConfigurationService: services.ManageProcessDataConfigurationService,\r\n private apiConfigurationService: services.ApiActionService,\r\n protected securityMatrixService: services.SecurityMatrixService,\r\n protected deleteService:services.DeleteService,\r\n private scope: angular.IScope,\r\n public formDataId?: string) {\r\n\r\n }\r\n\r\n protected abstract setupImplementedForm();\r\n\r\n public setupForm() {\r\n this.setupImplementedForm();\r\n\r\n if (this.process && this.formDataId) {\r\n this.setFormData();\r\n this.setReadOnly();\r\n }\r\n }\r\n\r\n protected setReadOnly() {\r\n var visibility: Wars.Domain.Model.Dtos.FormVisibility =\r\n this.process.formsVisibilities[this.formConfiguration.uniqueIdentifier];\r\n\r\n if (visibility.formVisiblility === Wars.Domain.Model.Codes.Enums.SecurityItemValue.Updateable ||\r\n visibility.formVisiblility === Wars.Domain.Model.Codes.Enums.SecurityItemValue.Show) {\r\n this.isReadOnly = false;\r\n //console.log(\"Set Readonly\");\r\n } else {\r\n this.isReadOnly = true;\r\n //console.log(\"Set Readonly\");\r\n }\r\n }\r\n\r\n protected setFormData() {\r\n if (this.formConfiguration.formType === Wars.Domain.Model.Codes.Enums.FormType.Manage &&\r\n !Enumerable.from(this.formConfiguration.myManageSections).any(m => m.manageSectionType ===\r\n Wars.Domain.Model.Codes.Enums.ManageSectionType.EmbeddedForm))\r\n return;\r\n\r\n if (!this.formDataId)\r\n return;\r\n\r\n let formUniqueId = this.parentFormId ? this.parentFormId : this.formConfiguration.uniqueIdentifier;\r\n let self = this;\r\n if (this.process &&\r\n this.process.formJson &&\r\n (Object.keys(this.process.formJson).length > 0 || Object.keys(this.process.formJson).length > 0) &&\r\n this.formConfiguration.uniqueIdentifier &&\r\n this.formDataId) {\r\n if (this.formDataId) {\r\n\r\n if (this.process.formJson[formUniqueId] && this.process.formJson[formUniqueId][this.formDataId]) {\r\n this.formData = this.process.formJson[formUniqueId][this.formDataId];\r\n return;\r\n } else {\r\n this.formData = {};\r\n }\r\n } else {\r\n this.formData = {};\r\n }\r\n } else {\r\n this.formData = {};\r\n if (!this.process) {\r\n return;\r\n }\r\n }\r\n\r\n if (!this.process.formJson[formUniqueId]) {\r\n this.process.formJson[formUniqueId] = {};\r\n }\r\n\r\n this.process.formJson[formUniqueId][this.formDataId] = this.formData;\r\n }\r\n\r\n public setupProcess() {\r\n if (this.formConfiguration && this.formDataId) {\r\n this.setFormData();\r\n }\r\n }\r\n\r\n private runFunctions(loadFunctions) {\r\n loadFunctions.forEach(f => {\r\n let args = ['processId', 'formId', 'formDataId', f.javascript];\r\n let myFunc = Function.apply(null, args);\r\n\r\n myFunc(this.process.id, this.formConfiguration.id, this.formDataId);\r\n });\r\n }\r\n\r\n protected loadStepJavascript() {\r\n if (!this.process || !this.process.customStepFunctions)\r\n return;\r\n\r\n/* this.formConfiguration.urlDependencies.forEach(url => {\r\n if (url.type == Wars.Domain.Model.Codes.Enums.UrlDependencyType.Javascript) {\r\n this.angularLoader.loadScript(url.url);\r\n } else {\r\n this.angularLoader.loadCSS(url.url);\r\n }\r\n });*/\r\n\r\n var functions: Wars.Domain.Model.Dtos.CustomFunctionDto[] =\r\n this.process.customStepFunctions[this.currentStep.id];\r\n\r\n if (functions) {\r\n var loadFunctions = Enumerable.from(functions)\r\n .where(f => f.customCodeType === Wars.Domain.Model.Codes.Enums.CustomCodeType.Load)\r\n .toArray();\r\n\r\n let customDivCount = Enumerable.from(this.currentStep.formSections)\r\n .selectMany(f => f.fields)\r\n .where(f => f.type === Wars.Domain.Model.Codes.Enums.FieldType.CustomDiv)\r\n .count();\r\n\r\n if (customDivCount > 0) {\r\n this.customDivService.registerDivLoadedHandler(this.currentStep.id,\r\n (count) => {\r\n if (count >= customDivCount) {\r\n this.customDivService.unregisterDivLoadedHandler(this.currentStep.id);\r\n this.customDivService.resetCounter();\r\n this.runFunctions(loadFunctions);\r\n }\r\n });\r\n } else {\r\n this.runFunctions(loadFunctions);\r\n }\r\n }\r\n //if (this.currentStep.isCustomStep) {\r\n // this.currentStep.urlDependencies.forEach(url => {\r\n // if (url.type == Wars.Domain.Model.Codes.Enums.UrlDependencyType.Javascript) {\r\n // this.angularLoader.loadScript(url.url);\r\n // } else {\r\n // this.angularLoader.loadCSS(url.url);\r\n // }\r\n // });\r\n\r\n // if (!this.customStepFunctions[this.currentStep.id]) {\r\n // var functionStr = \"(\" + this.currentStep.javascript + \")\";\r\n // this.customStepFunctions[this.currentStep.id] = eval(functionStr)();\r\n // }\r\n // //TODO: This is a hack fix after the demo\r\n // setTimeout(() => this.customStepFunctions[this.currentStep.id].stepLoaded(this.formConfiguration, () => { }, this.isReadOnly), 1599);\r\n //}\r\n }\r\n\r\n public loadFieldsConditions() {\r\n this.fields = [];\r\n if (!this.process || !this.currentStep.formSections)\r\n return;\r\n\r\n if (this.currentStep.formSections) {\r\n for (var i = 0; i < this.currentStep.formSections.length; i++) {\r\n var formSection = this.currentStep.formSections[i];\r\n\r\n if (formSection.objectSchema.isList && !this.process.id) {\r\n if (!this.formData) {\r\n this.formData = {};\r\n }\r\n\r\n this.formData[formSection.objectSchema.uniqueIdentifier] = [];\r\n }\r\n\r\n if (formSection.fields) {\r\n for (var x = 0; x < formSection.fields.length; x++) {\r\n if (formSection.fields[x].condition_id == null)\r\n continue;\r\n\r\n this.fields.push(formSection.fields[x]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public fieldBlurred(model: any) {\r\n\r\n }\r\n\r\n public save(callback?: any) {\r\n if (this.isConfigureMode) {\r\n this.formService.saveAllChanges(callback);\r\n }\r\n }\r\n\r\n protected loadStepUrls() {\r\n this.currentStep.entityAspect.loadNavigationProperty(\"urlDependencies\");\r\n }\r\n\r\n public setupFormSchema() {\r\n this.formService.setupFormSchema(this.formConfiguration);\r\n }\r\n\r\n public addGroup() {\r\n var formSection: warsApp.models.FormSection = this.formService.createFormSection(this.currentStep);\r\n formSection.position = this.currentStep.formSections.length + 1;\r\n formSection.formSectionDisplayType = Wars.Domain.Model.Codes.Enums.FormSectionDisplayType.Panel;\r\n formSection.formSectionType = Wars.Domain.Model.Codes.Enums.FormSectionType.Standard;\r\n\r\n formSection.securityMatrix = this.securityMatrixService.createSecurityMatrix(false, true);\r\n formSection.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n\r\n formSection.objectSchema.name = \"Group Heading\";\r\n formSection.objectSchema.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n formSection.isVisible = true;\r\n\r\n var self = this;\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/addGroup.html\",\r\n controller: \"addFormSectionController\",\r\n size: 'lg',\r\n inputs: {\r\n formSection: formSection,\r\n form: self.formConfiguration\r\n }\r\n }).then(modal => {\r\n modal.element.modal();\r\n\r\n modal.close.then(result => {\r\n $('.modal-backdrop').each(function() {\r\n $(this).remove();\r\n });\r\n\r\n if (result) {\r\n if (formSection.formSectionType === Wars.Domain.Model.Codes.Enums.FormSectionType.List) {\r\n formSection.objectSchema.isList = true;\r\n }\r\n\r\n this.currentStep.formSections.push(formSection);\r\n\r\n this.setGroupParentObjectSchema(formSection);\r\n self.save();\r\n } else {\r\n self.formService.rejectChanges();\r\n }\r\n });\r\n });\r\n\r\n }\r\n\r\n\r\n public htmlSelected() {\r\n this.showHtml = true;\r\n this.showJavascript = false;\r\n this.showPreview = false;\r\n }\r\n\r\n public javascriptSelected() {\r\n this.showHtml = false;\r\n this.showJavascript = true;\r\n this.showPreview = false;\r\n }\r\n\r\n public previewSelected() {\r\n this.showHtml = false;\r\n this.showJavascript = false;\r\n this.showPreview = true;\r\n\r\n }\r\n\r\n protected setGroupParentObjectSchema(formSection: Wars.Domain.Model.FormSection) {\r\n /*let newProp = this.dataSourceService.createNewSchemaProperty();\r\n newProp.name = formSection.objectSchema.name;\r\n newProp.typeSchema = formSection.objectSchema;\r\n newProp.propertyType = formSection.objectSchema.isList\r\n ? Wars.Domain.Model.Codes.Enums.VariableType.List\r\n : Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n*/\r\n //this.currentStep.objectSchema.properties.push(newProp);\r\n //newProp.parentObjectSchema = this.currentStep.objectSchema;\r\n this.formService.setupFormSchema(this.formConfiguration);\r\n\r\n this.save(() => {\r\n //formSection.objectSchema.parentProperty = newProp;\r\n this.save();\r\n });\r\n }\r\n\r\n\r\n public formSectionSort($item: Wars.Domain.Model.FormSection,\r\n $partFrom: Wars.Domain.Model.FormSection[],\r\n $partTo,\r\n $indexFrom,\r\n $indexTo,\r\n $modal) {\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(z => z.position).toArray();\r\n\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n\r\n $item.position = $indexTo;\r\n\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].position = Enumerable.from(arrayCopy).indexOf(i => i.id == numberId);\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public manageSectionSort($item: Wars.Domain.Model.ManageSection,\r\n $partFrom: Wars.Domain.Model.ManageSection[],\r\n $partTo,\r\n $indexFrom,\r\n $indexTo,\r\n $modal) {\r\n\r\n var aaaa = 0;\r\n\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(z => z.position).toArray();\r\n\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n\r\n $item.position = $indexTo;\r\n\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].position = Enumerable.from(arrayCopy).indexOf(i => i.id == numberId);\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public parentFormId: string;\r\n }\r\n\r\n export class BaseFormController implements IController {\r\n constructor(\r\n protected scope: IBaseFormScope) {\r\n var self = this;\r\n\r\n self.scope.model.formConfiguration = self.scope.formConfiguration;\r\n self.scope.model.isConfigureMode = self.scope.isConfigureMode;\r\n self.scope.model.formDataId = self.scope.formDataId;\r\n self.scope.model.parentFormId = self.scope.parentFormId;\r\n\r\n\r\n this.scope.$watch('formConfiguration',\r\n (newvalue, oldValue) => {\r\n self.scope.model.formConfiguration = self.scope.formConfiguration;\r\n if (self.scope.formConfiguration) {\r\n self.scope.model.setupForm();\r\n }\r\n });\r\n\r\n this.scope.$watch('process',\r\n (newvalue, oldValue) => {\r\n if (newvalue == oldValue)\r\n return;\r\n\r\n self.scope.model.process = self.scope.process;\r\n if (self.scope.process) {\r\n self.scope.model.isFieldChangedProcessAction = (self.scope.process as any).isFieldChangedProcessAction;\r\n self.scope.model.setupProcess();\r\n self.scope.model.setupForm();\r\n }\r\n });\r\n\r\n this.scope.$watch('formDataId',\r\n () => {\r\n self.scope.model.formDataId = self.scope.formDataId;\r\n self.scope.model.setupProcess();\r\n });\r\n }\r\n }\r\n}","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var BaseForm = /** @class */ (function () {\r\n function BaseForm() {\r\n this.controllerAs = 'controller';\r\n this.restrict = 'E';\r\n this.scope = {\r\n process: \"=\",\r\n processConfigurationId: \"=\",\r\n isConfigureMode: \"=\",\r\n formConfiguration: \"=\",\r\n formDataId: \"=\",\r\n parentFormId: \"=\",\r\n processConfiguration: \"=\"\r\n };\r\n }\r\n BaseForm.prototype.link = function ($scope, element, attrs) {\r\n };\r\n return BaseForm;\r\n }());\r\n directives.BaseForm = BaseForm;\r\n var BaseFormModel = /** @class */ (function () {\r\n function BaseFormModel(angularLoader, formSectionService, modalService, $http, dataSourceService, formService, process, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiConfigurationService, securityMatrixService, deleteService, scope, formDataId) {\r\n this.angularLoader = angularLoader;\r\n this.formSectionService = formSectionService;\r\n this.modalService = modalService;\r\n this.$http = $http;\r\n this.dataSourceService = dataSourceService;\r\n this.formService = formService;\r\n this.process = process;\r\n this.formDataService = formDataService;\r\n this.growl = growl;\r\n this.formCodeFunctionService = formCodeFunctionService;\r\n this.customDivService = customDivService;\r\n this.manageProcessDataConfigurationService = manageProcessDataConfigurationService;\r\n this.apiConfigurationService = apiConfigurationService;\r\n this.securityMatrixService = securityMatrixService;\r\n this.deleteService = deleteService;\r\n this.scope = scope;\r\n this.formDataId = formDataId;\r\n this.showJavascript = false;\r\n this.showPreview = false;\r\n this.isEditMode = true;\r\n this.showCustomCode = false;\r\n }\r\n BaseFormModel.prototype.setupForm = function () {\r\n this.setupImplementedForm();\r\n if (this.process && this.formDataId) {\r\n this.setFormData();\r\n this.setReadOnly();\r\n }\r\n };\r\n BaseFormModel.prototype.setReadOnly = function () {\r\n var visibility = this.process.formsVisibilities[this.formConfiguration.uniqueIdentifier];\r\n if (visibility.formVisiblility === 2 /* Updateable */ ||\r\n visibility.formVisiblility === 3 /* Show */) {\r\n this.isReadOnly = false;\r\n //console.log(\"Set Readonly\");\r\n }\r\n else {\r\n this.isReadOnly = true;\r\n //console.log(\"Set Readonly\");\r\n }\r\n };\r\n BaseFormModel.prototype.setFormData = function () {\r\n if (this.formConfiguration.formType === 2 /* Manage */ &&\r\n !Enumerable.from(this.formConfiguration.myManageSections).any(function (m) { return m.manageSectionType ===\r\n 5 /* EmbeddedForm */; }))\r\n return;\r\n if (!this.formDataId)\r\n return;\r\n var formUniqueId = this.parentFormId ? this.parentFormId : this.formConfiguration.uniqueIdentifier;\r\n var self = this;\r\n if (this.process &&\r\n this.process.formJson &&\r\n (Object.keys(this.process.formJson).length > 0 || Object.keys(this.process.formJson).length > 0) &&\r\n this.formConfiguration.uniqueIdentifier &&\r\n this.formDataId) {\r\n if (this.formDataId) {\r\n if (this.process.formJson[formUniqueId] && this.process.formJson[formUniqueId][this.formDataId]) {\r\n this.formData = this.process.formJson[formUniqueId][this.formDataId];\r\n return;\r\n }\r\n else {\r\n this.formData = {};\r\n }\r\n }\r\n else {\r\n this.formData = {};\r\n }\r\n }\r\n else {\r\n this.formData = {};\r\n if (!this.process) {\r\n return;\r\n }\r\n }\r\n if (!this.process.formJson[formUniqueId]) {\r\n this.process.formJson[formUniqueId] = {};\r\n }\r\n this.process.formJson[formUniqueId][this.formDataId] = this.formData;\r\n };\r\n BaseFormModel.prototype.setupProcess = function () {\r\n if (this.formConfiguration && this.formDataId) {\r\n this.setFormData();\r\n }\r\n };\r\n BaseFormModel.prototype.runFunctions = function (loadFunctions) {\r\n var _this = this;\r\n loadFunctions.forEach(function (f) {\r\n var args = ['processId', 'formId', 'formDataId', f.javascript];\r\n var myFunc = Function.apply(null, args);\r\n myFunc(_this.process.id, _this.formConfiguration.id, _this.formDataId);\r\n });\r\n };\r\n BaseFormModel.prototype.loadStepJavascript = function () {\r\n var _this = this;\r\n if (!this.process || !this.process.customStepFunctions)\r\n return;\r\n /* this.formConfiguration.urlDependencies.forEach(url => {\r\n if (url.type == Wars.Domain.Model.Codes.Enums.UrlDependencyType.Javascript) {\r\n this.angularLoader.loadScript(url.url);\r\n } else {\r\n this.angularLoader.loadCSS(url.url);\r\n }\r\n });*/\r\n var functions = this.process.customStepFunctions[this.currentStep.id];\r\n if (functions) {\r\n var loadFunctions = Enumerable.from(functions)\r\n .where(function (f) { return f.customCodeType === 1 /* Load */; })\r\n .toArray();\r\n var customDivCount_1 = Enumerable.from(this.currentStep.formSections)\r\n .selectMany(function (f) { return f.fields; })\r\n .where(function (f) { return f.type === 24 /* CustomDiv */; })\r\n .count();\r\n if (customDivCount_1 > 0) {\r\n this.customDivService.registerDivLoadedHandler(this.currentStep.id, function (count) {\r\n if (count >= customDivCount_1) {\r\n _this.customDivService.unregisterDivLoadedHandler(_this.currentStep.id);\r\n _this.customDivService.resetCounter();\r\n _this.runFunctions(loadFunctions);\r\n }\r\n });\r\n }\r\n else {\r\n this.runFunctions(loadFunctions);\r\n }\r\n }\r\n //if (this.currentStep.isCustomStep) {\r\n // this.currentStep.urlDependencies.forEach(url => {\r\n // if (url.type == Wars.Domain.Model.Codes.Enums.UrlDependencyType.Javascript) {\r\n // this.angularLoader.loadScript(url.url);\r\n // } else {\r\n // this.angularLoader.loadCSS(url.url);\r\n // }\r\n // });\r\n // if (!this.customStepFunctions[this.currentStep.id]) {\r\n // var functionStr = \"(\" + this.currentStep.javascript + \")\";\r\n // this.customStepFunctions[this.currentStep.id] = eval(functionStr)();\r\n // }\r\n // //TODO: This is a hack fix after the demo\r\n // setTimeout(() => this.customStepFunctions[this.currentStep.id].stepLoaded(this.formConfiguration, () => { }, this.isReadOnly), 1599);\r\n //}\r\n };\r\n BaseFormModel.prototype.loadFieldsConditions = function () {\r\n this.fields = [];\r\n if (!this.process || !this.currentStep.formSections)\r\n return;\r\n if (this.currentStep.formSections) {\r\n for (var i = 0; i < this.currentStep.formSections.length; i++) {\r\n var formSection = this.currentStep.formSections[i];\r\n if (formSection.objectSchema.isList && !this.process.id) {\r\n if (!this.formData) {\r\n this.formData = {};\r\n }\r\n this.formData[formSection.objectSchema.uniqueIdentifier] = [];\r\n }\r\n if (formSection.fields) {\r\n for (var x = 0; x < formSection.fields.length; x++) {\r\n if (formSection.fields[x].condition_id == null)\r\n continue;\r\n this.fields.push(formSection.fields[x]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n BaseFormModel.prototype.fieldBlurred = function (model) {\r\n };\r\n BaseFormModel.prototype.save = function (callback) {\r\n if (this.isConfigureMode) {\r\n this.formService.saveAllChanges(callback);\r\n }\r\n };\r\n BaseFormModel.prototype.loadStepUrls = function () {\r\n this.currentStep.entityAspect.loadNavigationProperty(\"urlDependencies\");\r\n };\r\n BaseFormModel.prototype.setupFormSchema = function () {\r\n this.formService.setupFormSchema(this.formConfiguration);\r\n };\r\n BaseFormModel.prototype.addGroup = function () {\r\n var _this = this;\r\n var formSection = this.formService.createFormSection(this.currentStep);\r\n formSection.position = this.currentStep.formSections.length + 1;\r\n formSection.formSectionDisplayType = 1 /* Panel */;\r\n formSection.formSectionType = 1 /* Standard */;\r\n formSection.securityMatrix = this.securityMatrixService.createSecurityMatrix(false, true);\r\n formSection.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n formSection.objectSchema.name = \"Group Heading\";\r\n formSection.objectSchema.uniqueIdentifier = warsApp.services.UtilityService.generateGuidComb();\r\n formSection.isVisible = true;\r\n var self = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/addGroup.html\",\r\n controller: \"addFormSectionController\",\r\n size: 'lg',\r\n inputs: {\r\n formSection: formSection,\r\n form: self.formConfiguration\r\n }\r\n }).then(function (modal) {\r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n $('.modal-backdrop').each(function () {\r\n $(this).remove();\r\n });\r\n if (result) {\r\n if (formSection.formSectionType === 2 /* List */) {\r\n formSection.objectSchema.isList = true;\r\n }\r\n _this.currentStep.formSections.push(formSection);\r\n _this.setGroupParentObjectSchema(formSection);\r\n self.save();\r\n }\r\n else {\r\n self.formService.rejectChanges();\r\n }\r\n });\r\n });\r\n };\r\n BaseFormModel.prototype.htmlSelected = function () {\r\n this.showHtml = true;\r\n this.showJavascript = false;\r\n this.showPreview = false;\r\n };\r\n BaseFormModel.prototype.javascriptSelected = function () {\r\n this.showHtml = false;\r\n this.showJavascript = true;\r\n this.showPreview = false;\r\n };\r\n BaseFormModel.prototype.previewSelected = function () {\r\n this.showHtml = false;\r\n this.showJavascript = false;\r\n this.showPreview = true;\r\n };\r\n BaseFormModel.prototype.setGroupParentObjectSchema = function (formSection) {\r\n var _this = this;\r\n /*let newProp = this.dataSourceService.createNewSchemaProperty();\r\n newProp.name = formSection.objectSchema.name;\r\n newProp.typeSchema = formSection.objectSchema;\r\n newProp.propertyType = formSection.objectSchema.isList\r\n ? Wars.Domain.Model.Codes.Enums.VariableType.List\r\n : Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n */\r\n //this.currentStep.objectSchema.properties.push(newProp);\r\n //newProp.parentObjectSchema = this.currentStep.objectSchema;\r\n this.formService.setupFormSchema(this.formConfiguration);\r\n this.save(function () {\r\n //formSection.objectSchema.parentProperty = newProp;\r\n _this.save();\r\n });\r\n };\r\n BaseFormModel.prototype.formSectionSort = function ($item, $partFrom, $partTo, $indexFrom, $indexTo, $modal) {\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(function (z) { return z.position; }).toArray();\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n $item.position = $indexTo;\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].position = Enumerable.from(arrayCopy).indexOf(function (i) { return i.id == numberId; });\r\n }\r\n this.save();\r\n };\r\n BaseFormModel.prototype.manageSectionSort = function ($item, $partFrom, $partTo, $indexFrom, $indexTo, $modal) {\r\n var aaaa = 0;\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(function (z) { return z.position; }).toArray();\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n $item.position = $indexTo;\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].position = Enumerable.from(arrayCopy).indexOf(function (i) { return i.id == numberId; });\r\n }\r\n this.save();\r\n };\r\n return BaseFormModel;\r\n }());\r\n directives.BaseFormModel = BaseFormModel;\r\n var BaseFormController = /** @class */ (function () {\r\n function BaseFormController(scope) {\r\n this.scope = scope;\r\n var self = this;\r\n self.scope.model.formConfiguration = self.scope.formConfiguration;\r\n self.scope.model.isConfigureMode = self.scope.isConfigureMode;\r\n self.scope.model.formDataId = self.scope.formDataId;\r\n self.scope.model.parentFormId = self.scope.parentFormId;\r\n this.scope.$watch('formConfiguration', function (newvalue, oldValue) {\r\n self.scope.model.formConfiguration = self.scope.formConfiguration;\r\n if (self.scope.formConfiguration) {\r\n self.scope.model.setupForm();\r\n }\r\n });\r\n this.scope.$watch('process', function (newvalue, oldValue) {\r\n if (newvalue == oldValue)\r\n return;\r\n self.scope.model.process = self.scope.process;\r\n if (self.scope.process) {\r\n self.scope.model.isFieldChangedProcessAction = self.scope.process.isFieldChangedProcessAction;\r\n self.scope.model.setupProcess();\r\n self.scope.model.setupForm();\r\n }\r\n });\r\n this.scope.$watch('formDataId', function () {\r\n self.scope.model.formDataId = self.scope.formDataId;\r\n self.scope.model.setupProcess();\r\n });\r\n }\r\n return BaseFormController;\r\n }());\r\n directives.BaseFormController = BaseFormController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nimport Services = warsApp.services;\r\n\r\nmodule warsApp.directives {\r\n export interface IBaseFieldSectionScope extends ng.IScope {\r\n formSection: warsApp.models.FormSection;\r\n form: Wars.Domain.Model.Form;\r\n processConfigurationId: string;\r\n formData: any;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n formId: string;\r\n formDataId: string;\r\n isConfigureMode: boolean;\r\n isEditMode: boolean;\r\n showSlider: boolean;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration\r\n }\r\n\r\n export abstract class FieldBaseModel {\r\n constructor(protected $scope: IBaseFieldSectionScope,\r\n protected modalService: any,\r\n protected formSectionService: Services.FormSectionService,\r\n protected formService: Services.FormService,\r\n protected deleteService: services.DeleteService) { }\r\n\r\n public deleteField(field: Wars.Domain.Model.Field) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"Field\",\r\n field.id,\r\n \"Field\",\r\n () => {\r\n for (var i = 0; i < this.$scope.formSection.fields.length; i++) {\r\n if (field.position < this.$scope.formSection.fields[i].position) {\r\n this.$scope.formSection.fields[i].position -= 1;\r\n }\r\n }\r\n\r\n this.formSectionService.splitFields(this.$scope.formSection);\r\n this.formService.setupFormSchema(this.$scope.form);\r\n this.formService.saveAllChanges();\r\n });\r\n }\r\n\r\n public editField(field: Wars.Domain.Model.Field) {\r\n this.formService.editField(field,\r\n this.$scope.formSection,\r\n this.$scope.processConfiguration,\r\n this.$scope.form);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.directives {\r\n export interface IFormSectionScope extends IBaseFieldSectionScope {\r\n save: any;\r\n copyGroup: any;\r\n addField: any;\r\n deleteGroup: any;\r\n fieldSort: any;\r\n step: Wars.Domain.Model.FormStep;\r\n formName: string;\r\n editFormColumns: (fs: models.FormSection) => void;\r\n parentFormId: string;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n isHidden: boolean;\r\n formType: Wars.Domain.Model.Codes.Enums.FormType;\r\n form: Wars.Domain.Model.Form;\r\n editSecurityMatrix() : void;\r\n moveSection(formSection: Wars.Domain.Model.FormSection) : void;\r\n userActionInitiated: (u: any) => void;\r\n }\r\n\r\n export abstract class BaseGroup implements IDirective {\r\n constructor(private formService: services.FormService,\r\n private dataSourceService: services.DataSourceService,\r\n private formSectionService: services.FormSectionService,\r\n private modalService: any) {\r\n\r\n }\r\n\r\n private $scope: IFormSectionScope;\r\n\r\n public abstract link($scope: IFormSectionScope, element: JQuery, attrs: ng.IAttributes);\r\n\r\n public fieldSort($item: Wars.Domain.Model.Field,\r\n $partFrom: Wars.Domain.Model.Field[],\r\n $partTo,\r\n $indexFrom,\r\n $indexTo,\r\n $modal) {\r\n }\r\n\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n showSlider: \"=\",\r\n formSection: \"=\",\r\n process: \"=\",\r\n isReadOnly: \"=\",\r\n fieldBlurred: \"=\",\r\n processConfigurationId: \"=\",\r\n formData: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\",\r\n processId: \"=\",\r\n step: \"=\",\r\n formName: \"=\",\r\n parentFormId: \"=\",\r\n processConfiguration: \"=\",\r\n form: \"=\",\r\n formType: \"=\"\r\n };\r\n }\r\n\r\n export class BaseGroupController {\r\n constructor(private $scope: IFormSectionScope,\r\n private formService: services.FormService,\r\n private dataSourceService: services.DataSourceService,\r\n private formSectionService: services.FormSectionService,\r\n private modalService: any,\r\n private deleteService: services.DeleteService,\r\n private securityMatrixService: services.SecurityMatrixService) {\r\n\r\n this.$scope.addField = () => this.intenalAddField();\r\n this.$scope.deleteGroup = (g) => this.internalDeleteGroup(g);\r\n this.$scope.fieldSort = (a, b, c, d, e, f) => this.intenalFieldSort(a, b, c, d, e, f);\r\n this.$scope.copyGroup = () => this.internalCopyGroup();\r\n this.$scope.save = () => this.internalSave();\r\n this.$scope.editFormColumns = (fs) => this.editFormColumns(fs);\r\n this.$scope.editSecurityMatrix = () => this.editSecurityMatrix();\r\n this.$scope.moveSection = (formSection: Wars.Domain.Model.FormSection) => this.moveSection(formSection);\r\n\r\n this.setVisibility();\r\n }\r\n\r\n private editSecurityMatrix() {\r\n if (!this.$scope.formSection.securityMatrix_id) {\r\n var newSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false, true);\r\n this.$scope.formSection.securityMatrix = newSecurityMatrix;\r\n this.$scope.formSection.securityMatrix_id = newSecurityMatrix.id;\r\n }\r\n this.securityMatrixService.openSecurityMatrixModal(this.$scope.formSection.securityMatrix, this.$scope.processConfigurationId);\r\n }\r\n\r\n private moveSection(formSection: Wars.Domain.Model.FormSection) {\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/_formChangeModal.html\",\r\n controller: \"formChangeModalController\",\r\n inputs: {\r\n formSection: formSection,\r\n form: this.$scope.form,\r\n processConfigId: this.$scope.processConfigurationId,\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => { });\r\n });\r\n }\r\n \r\n\r\n private setVisibility() {\r\n if (!this.$scope.isConfigureMode && this.$scope.formSection.condition) {\r\n if (this.$scope.process.conditionStates[this.$scope.formSection.condition_id]) {\r\n this.$scope.isHidden = false;\r\n } else {\r\n this.$scope.isHidden = true;\r\n }\r\n }\r\n }\r\n\r\n private internalSave() {\r\n this.formService.saveAllChanges();\r\n }\r\n\r\n private internalDeleteGroup(formSection: Wars.Domain.Model.FormSection) {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\"FormSection\",\r\n formSection.id,\r\n \"\",\r\n () => {\r\n this.$scope.step.formSections.remove(formSection);\r\n this.formService.setupFormSchema(this.$scope.form);\r\n this.formService.saveAllChanges();\r\n });\r\n //this.formService.deleteFormSection(formSection, this.$scope.step);\r\n }\r\n\r\n\r\n public intenalFieldSort($item: Wars.Domain.Model.Field,\r\n $partFrom: Wars.Domain.Model.Field[],\r\n $partTo,\r\n $indexFrom,\r\n $indexTo,\r\n $modal) {\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(z => z.position).toArray();\r\n\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n\r\n $item.position = $indexTo;\r\n\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].position = Enumerable.from(arrayCopy).indexOf(i => i.id === numberId);\r\n }\r\n\r\n this.$scope.save();\r\n //var formSection = Enumerable.from(this.$scope.step.formSections).single(s => s.id === $item.formSection_id);\r\n this.formSectionService.splitFields(this.$scope.formSection);\r\n }\r\n\r\n public editFormColumns(formSection: models.FormSection) {\r\n var self = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/formGridModal.html\",\r\n controller: \"formGridModalController\",\r\n size: 'lg',\r\n inputs: {\r\n formSection: formSection,\r\n processConfigurationId: this.$scope.processConfigurationId\r\n }\r\n })\r\n .then(modal => {\r\n modal.element.modal();\r\n\r\n modal.close.then(result => {\r\n $('.modal-backdrop')\r\n .each(function() {\r\n $(this).remove();\r\n });\r\n\r\n if (result) {\r\n self.$scope.save();\r\n } else {\r\n self.formService.rejectChanges();\r\n }\r\n });\r\n });\r\n }\r\n\r\n private internalCopyGroup() {\r\n var newGroup = this.formService.createFormSection(this.$scope.step);\r\n\r\n newGroup.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n\r\n newGroup.objectSchema.name = this.$scope.formSection.objectSchema.name;\r\n newGroup.description = this.$scope.formSection.description;\r\n newGroup.isVisible = this.$scope.formSection.isVisible;\r\n newGroup.formSectionDisplayType = this.$scope.formSection.formSectionDisplayType;\r\n newGroup.formSectionType = this.$scope.formSection.formSectionType;\r\n\r\n this.$scope.step.formSections.push(newGroup);\r\n\r\n newGroup.position = this.$scope.step.formSections.length - 1;\r\n this.formService.saveAllChanges(() => {\r\n for (var i = 0; i < this.$scope.formSection.fields.length; i++) {\r\n var copyField = this.$scope.formSection.fields[i];\r\n\r\n var newField = this.formService.createField(newGroup);\r\n newField.schemaProperty = this.dataSourceService.createNewSchemaProperty();\r\n\r\n newField.schemaProperty.uniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newField.schemaProperty.name = copyField.schemaProperty.name;\r\n newField.schemaProperty.propertyType = copyField.schemaProperty.propertyType;\r\n newField.schemaProperty.isIndexed = copyField.schemaProperty.isIndexed;;\r\n newField.schemaProperty.required = copyField.schemaProperty.required;;\r\n\r\n newField.securityMatrix = this.securityMatrixService.createAdvancedSecurityMatrix(false, true);\r\n\r\n newField.position = copyField.position;\r\n newField.type = copyField.type;\r\n newField.description = copyField.description;\r\n newField.schemaProperty.isIndexed = copyField.schemaProperty.isIndexed;\r\n newField.schemaProperty.required = copyField.schemaProperty.required;\r\n newField.placeholder = copyField.placeholder;\r\n newField.showDescription = copyField.showDescription;\r\n newField.isShownInTable = copyField.isShownInTable;\r\n newField.isSplitRow = copyField.isSplitRow;\r\n newField.decimalPlaces = copyField.decimalPlaces;\r\n newField.labelSize = copyField.labelSize;\r\n newField.maxValue = copyField.maxValue;\r\n newField.showDescription = copyField.showDescription;\r\n newField.showHistory = copyField.showHistory;\r\n newField.showUserDetails = copyField.showUserDetails;\r\n newField.disallowEmptyValue = copyField.disallowEmptyValue;\r\n newField.isRequired = copyField.isRequired;\r\n\r\n this.formService.setFieldPropertySchemaParent(this.$scope.step,\r\n newGroup,\r\n newField.schemaProperty,\r\n this.$scope.form);\r\n\r\n newGroup.fields.push(newField);\r\n }\r\n\r\n this.formSectionService.splitFields(newGroup);\r\n this.$scope.save();\r\n });\r\n }\r\n\r\n private intenalAddField() {\r\n var newField = this.formService.createField(this.$scope.formSection);\r\n\r\n newField.position = this.$scope.formSection.fields.length;\r\n newField.type = Wars.Domain.Model.Codes.Enums.FieldType.TextBox;\r\n\r\n newField.schemaProperty = this.dataSourceService.createNewSchemaProperty();\r\n newField.schemaProperty.name = \"Field Label\";\r\n newField.schemaProperty.isIndexed = false;\r\n newField.schemaProperty.required = true;\r\n newField.schemaProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n\r\n newField.securityMatrix = this.securityMatrixService.createAdvancedSecurityMatrix(false, true);\r\n\r\n newField.showDescription = false;\r\n newField.showHistory = false;\r\n newField.showUserDetails = false;\r\n newField.isShownInTable = false;\r\n newField.labelSize = 3;\r\n newField.isSplitRow = false;\r\n newField.maxTextLength = 4000;\r\n newField.textAreaRows = 5;\r\n newField.myFormSection = this.$scope.formSection;\r\n\r\n this.$scope.formSection.fields.push(newField);\r\n\r\n this.formService.setupFormSchema(this.$scope.form);\r\n\r\n this.formService.saveAllChanges();\r\n\r\n this.formService.editField(newField,\r\n this.$scope.formSection,\r\n this.$scope.processConfiguration,\r\n this.$scope.form);\r\n }\r\n }\r\n}","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var BaseOnePageFormModel = /** @class */ (function (_super) {\r\n __extends(BaseOnePageFormModel, _super);\r\n function BaseOnePageFormModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BaseOnePageFormModel.prototype.internalSetupForm = function () {\r\n var _this = this;\r\n if (this.formConfiguration.mySteps.length > 0) {\r\n this.currentStepIndex = 0;\r\n this.currentStep = this.formConfiguration.mySteps[0];\r\n if (this.currentStep.formSections) {\r\n this.currentStep.formSections.forEach(function (fs) {\r\n _this.formSectionService.splitFields(fs);\r\n });\r\n }\r\n //this.loadStepUrls();\r\n }\r\n else {\r\n if (this.isConfigureMode) {\r\n var newStep = this.formService.createFormStep(this.formConfiguration);\r\n newStep.position = this.formConfiguration.mySteps.length;\r\n newStep.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n newStep.objectSchema.name = \"Single Page\";\r\n this.formConfiguration.mySteps.push(newStep);\r\n //console.log(\"Adding Step\");\r\n this.currentStep = newStep;\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return BaseOnePageFormModel;\r\n }(directives.BaseFormModel));\r\n directives.BaseOnePageFormModel = BaseOnePageFormModel;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\n","/// \r\nmodule warsApp.directives {\r\n\r\n export abstract class BaseOnePageFormModel extends BaseFormModel {\r\n\r\n protected internalSetupForm() {\r\n if (this.formConfiguration.mySteps.length > 0) {\r\n this.currentStepIndex = 0;\r\n this.currentStep = this.formConfiguration.mySteps[0];\r\n\r\n if (this.currentStep.formSections) {\r\n this.currentStep.formSections.forEach(fs => {\r\n this.formSectionService.splitFields(fs);\r\n });\r\n }\r\n //this.loadStepUrls();\r\n } else {\r\n if (this.isConfigureMode) {\r\n let newStep = this.formService.createFormStep(this.formConfiguration);\r\n newStep.position = this.formConfiguration.mySteps.length;\r\n newStep.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n newStep.objectSchema.name = \"Single Page\";\r\n\r\n this.formConfiguration.mySteps.push(newStep);\r\n //console.log(\"Adding Step\");\r\n\r\n this.currentStep = newStep;\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.directives {\r\n export interface IApiGridScope extends angular.IScope {\r\n processId: string;\r\n processConfigurationId: string;\r\n apiGridConfiguration: Wars.Domain.Model.ApiGridConfiguration;\r\n apiRows: any;\r\n filteredRows: any;\r\n formData: any;\r\n fieldUniqueId: string;\r\n selectionChanged: any;\r\n checkboxChanged: any;\r\n isConfigureMode: boolean;\r\n sortColumn: any;\r\n sort: any;\r\n filterChanged: any;\r\n filter: any;\r\n getClockValue:any;\r\n runSystemAction: any;\r\n hideSection: boolean;\r\n openSystemActionConfirmation: any;\r\n closeSystemActionConfirmation: any;\r\n }\r\n\r\n export class ApiGrid implements IDirective {\r\n public constructor(private upload: any, private $timeout: angular.ITimeoutService, private formDataService: services.FormDataService) {\r\n\r\n }\r\n\r\n public link($scope: IApiGridScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/apiGrid.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", '$rootScope', 'apiGridService','timeTrackerService','processService', ApiGridController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n processId: \"=\",\r\n apiGridConfiguration: \"=\",\r\n processConfigurationId: \"=\",\r\n formData: \"=\",\r\n fieldUniqueId: \"=\",\r\n selectionChanged: \"=\",\r\n isConfigureMode: \"=\",\r\n hideSection: \"=\",\r\n isReadonly: \"=\"\r\n };\r\n }\r\n\r\n\r\n export class ApiGridController {\r\n constructor(private $scope: IApiGridScope, private $rootScope: angular.IRootScopeService, private apiGridService: services.ApiGridService, private timeTrackerService: services.TimeTrackerService,\r\n private processService:services.ProcessService) {\r\n $scope.checkboxChanged = (r) => this.checkboxChanged(r);\r\n $scope.sortColumn = (c) => this.sort(c);\r\n $scope.filterChanged = (c) => this.filterChanged(c);\r\n $scope.filter = {};\r\n $scope.getClockValue = (c) => this.getClockValue(c);\r\n $scope.runSystemAction = (s, p) => this.runSystemAction(s, p);\r\n $scope.openSystemActionConfirmation = (a, c, p) => this.openSystemActionConfirmation(a, c, p);\r\n $scope.closeSystemActionConfirmation = (a) => this.closeSystemActionConfirmation(a);\r\n\r\n //console.log(this.$scope.apiGridConfiguration);\r\n\r\n $scope.sort = {\r\n column: \"\",\r\n descending: false\r\n };\r\n\r\n\r\n if (!this.$scope.isConfigureMode) {\r\n //listen for the broadcast from form clear to remove the user bound to the picker\r\n var cb = $rootScope.$on('RefreshApiGrid',\r\n (event, data) => {\r\n if (this.$scope.apiGridConfiguration.objectQuery.myInputObjectSchema != null &&\r\n this.$scope.apiGridConfiguration.objectQuery.myInputObjectSchema.properties.length === 1 &&\r\n this.$scope.apiGridConfiguration.objectQuery.myInputObjectSchema.properties[0].propertyType === Wars.Domain.Model.Codes.Enums.VariableType.ProcessId) {\r\n if (data === this.$scope.apiGridConfiguration.id) {\r\n this.getGridResults(); \r\n }\r\n } \r\n });\r\n //destroy the listener on scope destroy to avoid memory leak\r\n $scope.$on(\"$destroy\",\r\n () => {\r\n cb();\r\n });\r\n this.getGridResults();\r\n \r\n }\r\n }\r\n\r\n private getGridResults() {\r\n this.apiGridService.getApiGridResult(\r\n this.$scope.processId,\r\n this.$scope.processConfigurationId,\r\n this.$scope.apiGridConfiguration.id,\r\n this.$scope.fieldUniqueId\r\n ).then(rows => {\r\n\r\n var processIdColumn = Enumerable.from(this.$scope.apiGridConfiguration.columns)\r\n .singleOrDefault(c => c.name == \"_ProcessId\");\r\n\r\n if (this.$scope.formData) {\r\n var dataArray = this.$scope.formData[this.$scope.fieldUniqueId];\r\n if (!dataArray) {\r\n dataArray = [];\r\n }\r\n rows.forEach(r => {\r\n dataArray.forEach(element => {\r\n if (r[processIdColumn.schemaPropertyUniqueId] === element) {\r\n r.isSelected = true;\r\n }\r\n });\r\n });\r\n\r\n var itemsToRemove = [];\r\n dataArray.forEach(e => {\r\n if (!Enumerable.from(rows).any(r => r[processIdColumn.schemaPropertyUniqueId] === e)) {\r\n itemsToRemove.push(e);\r\n }\r\n });\r\n\r\n if (itemsToRemove.length > 0) {\r\n itemsToRemove.forEach(i => {\r\n dataArray.remove(i);\r\n });\r\n\r\n if (this.$scope.selectionChanged) {\r\n this.$scope.selectionChanged();\r\n }\r\n }\r\n }\r\n \r\n\r\n rows.forEach(r => {\r\n if (!r['_processId'] && processIdColumn) {\r\n r['_processId'] = r[processIdColumn.schemaPropertyUniqueId];\r\n }\r\n });\r\n\r\n this.$scope.apiRows = rows;\r\n //console.log(rows);\r\n this.$scope.filteredRows = rows;\r\n\r\n if (!rows || rows.length == 0) {\r\n //this.$scope.hideSection = true;\r\n } else {\r\n this.$scope.hideSection =false; \r\n }\r\n });\r\n }\r\n\r\n private runSystemAction(systemActionId:string,processId: string) {\r\n this.processService.runSystemAction(processId, systemActionId).then(r => {\r\n this.getGridResults();\r\n });\r\n }\r\n\r\n private openSystemActionConfirmation(apiGridConfig: any, column: any, processId: any) {\r\n apiGridConfig.showConfirm = true;\r\n apiGridConfig.actionColumn = column;\r\n apiGridConfig.actionProcessId = processId;\r\n }\r\n\r\n private closeSystemActionConfirmation(apiGridConfig: any) {\r\n apiGridConfig.showConfirm = false;\r\n apiGridConfig.actionColumn = null;\r\n apiGridConfig.actionProcessId = null;\r\n }\r\n\r\n private sort(column: string) {\r\n var sort = this.$scope.sort;\r\n\r\n if (sort.column == column) {\r\n sort.descending = !sort.descending;\r\n } else {\r\n sort.column = column;\r\n sort.descending = false;\r\n }\r\n\r\n var isDateTimeColumn = Enumerable.from(this.$scope.filteredRows).any(x => x[column].isDateTime);\r\n\r\n if (sort.descending) {\r\n if (isDateTimeColumn) {\r\n this.$scope.filteredRows = Enumerable.from(this.$scope.filteredRows).orderBy(x => x[column].dateTimeValue).toArray();\r\n } else {\r\n this.$scope.filteredRows = Enumerable.from(this.$scope.filteredRows).orderBy(x => x[column]).toArray();\r\n }\r\n } else {\r\n if (isDateTimeColumn) {\r\n this.$scope.filteredRows = Enumerable.from(this.$scope.filteredRows).orderByDescending(x => x[column].dateTimeValue).toArray();\r\n } else {\r\n this.$scope.filteredRows = Enumerable.from(this.$scope.filteredRows).orderByDescending(x => x[column]).toArray();\r\n }\r\n }\r\n }\r\n\r\n private filterChanged(uniqueId: string) {\r\n let isFirst = true;\r\n let rows = this.$scope.apiRows;\r\n\r\n for (var propName in this.$scope.filter) {\r\n if (this.$scope.filter[propName]) {\r\n rows = Enumerable.from(rows).where(r => new String(r[propName]).toLowerCase().startsWith((this.$scope.filter[propName]).toLowerCase())).toArray();\r\n }\r\n }\r\n this.$scope.filteredRows = rows;\r\n }\r\n\r\n private checkboxChanged(row) {\r\n var dataArray = this.$scope.formData[this.$scope.fieldUniqueId];\r\n\r\n if (!dataArray) {\r\n dataArray = [];\r\n }\r\n\r\n if (row.isSelected) {\r\n dataArray = dataArray.filter(processId => {\r\n return row._processId !== processId;\r\n });\r\n dataArray.push(row._processId);\r\n }\r\n else {\r\n dataArray = dataArray.filter(processId => {\r\n return row._processId !== processId;\r\n });\r\n }\r\n\r\n this.$scope.formData[this.$scope.fieldUniqueId] = dataArray;\r\n if (this.$scope.selectionChanged) {\r\n this.$scope.selectionChanged();\r\n }\r\n\r\n //console.log(dataArray);\r\n }\r\n\r\n private getClockValue(clockJson: any) {\r\n return this.timeTrackerService.getTimeTrackerStringValue(clockJson);\r\n }\r\n }\r\n\r\n}\r\nwarsApp.registerDirective('ApiGrid', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface ICalculationEditorScope extends ng.IScope {\r\n model: CalculationEditorModel;\r\n processConfigurationId: string;\r\n reloadTree: boolean;\r\n calculation: Wars.Domain.Model.Calculations.Calculation;\r\n isReadonly: boolean;\r\n togglePreviewMode: () => void;\r\n codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n }\r\n\r\n export class CalculationEditor implements IDirective {\r\n public link($scope: ICalculationEditorScope, element: JQuery, attrs: ng.IAttributes, controller: CalculationEditorController) { }\r\n public templateUrl = './app/views/directives/calculate/calculationEditor.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', '$q', 'calculationService', \"systemLevelService\", \"manageSystemCodesService\", 'tagService', CalculationEditorController];\r\n public controllerAs = 'controller'; \r\n public scope: any = {\r\n processConfigurationId: \"=\",\r\n calculation: \"=\",\r\n isReadonly: '='\r\n };\r\n }\r\n\r\n export class CalculationEditorModel {\r\n private calculationService: services.CalculationService;\r\n\r\n public treeData: any;\r\n public processConfigurationId: string;\r\n public excludeItem: models.TreeConfigurationItem;\r\n public tags: string[];\r\n public calculationTags: string[];\r\n public $q: ng.IQService;\r\n\r\n constructor(\r\n public calculation: Wars.Domain.Model.Calculations.Calculation,\r\n processConfigurationId: string,\r\n public schemaChangedCallback: () => void,\r\n calculationService: services.CalculationService,\r\n private tagService: services.TagService,\r\n $q: ng.IQService)\r\n {\r\n this.calculation = calculation;\r\n this.processConfigurationId = processConfigurationId;\r\n this.calculationService = calculationService;\r\n this.excludeItem = new models.TreeConfigurationItem();\r\n this.excludeItem.calculationId = this.calculation.id;\r\n this.$q = $q;\r\n }\r\n\r\n public addTag(tag) {\r\n var newTag = this.tagService.createTag();\r\n newTag.tagName = tag.text;\r\n newTag.tagType = Wars.Domain.Model.Codes.Enums.TagType.Condition;\r\n newTag.calculation_id = null;\r\n newTag.calculation_id = this.calculation.id;\r\n newTag.queryConfiguration_id = null;\r\n newTag.myCalculation = this.calculation;\r\n\r\n this.calculation.tags.push(newTag);\r\n }\r\n\r\n public removeTag(tag) {\r\n this.calculation.tags.forEach(t => {\r\n if (t.tagName === tag.text) {\r\n t.entityAspect.setDeleted();\r\n }\r\n });\r\n }\r\n\r\n public searchTags(query: string) {\r\n var queryLength = query.length;\r\n var deferred = this.$q.defer();\r\n var returnTags = Enumerable.from(this.calculationTags)\r\n .where(i => i.substring(0, queryLength) === query)\r\n .toArray();\r\n deferred.resolve(returnTags);\r\n return deferred.promise;\r\n }\r\n }\r\n\r\n export class CalculationEditorController implements IController {\r\n\r\n constructor(\r\n private $scope: ICalculationEditorScope,\r\n $q: ng.IQService,\r\n calculationService: services.CalculationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private manageCodeService: services.ManageSystemCodesService,\r\n tagService: services.TagService)\r\n {\r\n var schemaChangedFunction = () => {\r\n $scope.reloadTree = true;\r\n }\r\n \r\n $scope.model = new CalculationEditorModel($scope.calculation, $scope.processConfigurationId, schemaChangedFunction, calculationService, tagService, $q);\r\n\r\n $scope.model.calculationTags = [];\r\n tagService.getTagsLike(Wars.Domain.Model.Codes.Enums.TagType.Calculation)\r\n .then(result => {\r\n $scope.model.calculationTags = Enumerable.from(result).select(i => i.tagName).distinct().toArray();\r\n });\r\n\r\n $scope.$watch(\"calculation\", (newCalculation: Wars.Domain.Model.Calculations.Calculation) => {\r\n $scope.model.calculation = newCalculation;\r\n $scope.model.tags = [];\r\n $scope.model.excludeItem.calculationId = newCalculation.id;\r\n $scope.reloadTree = true;\r\n $scope.model.calculation.tags.forEach(t => {\r\n $scope.model.tags.push(t.tagName);\r\n });\r\n });\r\n\r\n var listenerCallback = $scope.$on('operand-type-changed', () => {\r\n $scope.model.calculation.valueOperation.variableType = services.CalculationService.getValueOperationVariableType($scope.model.calculation.valueOperation);\r\n });\r\n\r\n $scope.$on(\"$destroy\", () => {\r\n listenerCallback();\r\n });\r\n\r\n $scope.togglePreviewMode = () => {\r\n $scope.isReadonly = !$scope.isReadonly;\r\n }\r\n\r\n this.loadCodes();\r\n }\r\n\r\n private loadCodes(): void {\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n (systemLevel) => {\r\n this.$scope.codeGroups = systemLevel.myCodeGroups;\r\n if (this.$scope.processConfigurationId) {\r\n this.manageCodeService.getAllCodesForProcessConfiguration(this.$scope.processConfigurationId).then(\r\n (codeGroups) => {\r\n this.$scope.codeGroups = this.$scope.codeGroups.concat(codeGroups);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('CalculationEditor', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IComplexOperandScope extends IOperandScope {\r\n getOperand(): Wars.Domain.Model.Calculations.ComplexOperand;\r\n }\r\n\r\n export class ComplexOperand implements IDirective {\r\n public templateUrl: string = './app/views/directives/calculate/complexOperand.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', 'calculationService', ComplexOperandController];\r\n public controllerAs = 'controller';\r\n public scope: boolean = true; // False is use parents scope - True is create inherited scope from parents scope\r\n\r\n public link($scope: IComplexOperandScope, element: JQuery, attrs: ng.IAttributes, controller: ComplexOperandController) { }\r\n }\r\n\r\n export class ComplexOperandController implements IController {\r\n\r\n constructor(\r\n private $scope: IComplexOperandScope,\r\n private calculationService: services.CalculationService)\r\n {\r\n // Public methods using lambdas to preserve this\r\n this.$scope.getOperand = () => this.getOperandInternal();\r\n }\r\n\r\n private getOperandInternal(): Wars.Domain.Model.Calculations.ComplexOperand {\r\n return (this.$scope.getOperation().operands[this.$scope.operandIndex]);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ComplexOperand', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IDeletePopoverScope extends angular.IScope {\r\n model: models.DeletePopoverModel;\r\n templateUrl: string;\r\n deleteCallback: (index?: number) => void;\r\n index: string;\r\n name: string;\r\n }\r\n\r\n export class DeletePopover implements IDirective {\r\n public controller = ['$scope', DeletePopoverController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/calculate/deletePopover.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n thisObject: \"=\",\r\n deleteCallback: \"=\",\r\n index: \"@\",\r\n name: \"@\"\r\n };\r\n\r\n public link(scope: IDeletePopoverScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: DeletePopoverController): void {\r\n scope.templateUrl = \"./app/views/directives/calculate/deletePopoverContent.html\";\r\n }\r\n }\r\n\r\n export class DeletePopoverController implements IController {\r\n\r\n constructor(private $scope: IDeletePopoverScope) {\r\n var index = parseInt(this.$scope.index);\r\n this.$scope.model = new models.DeletePopoverModel(this.$scope.deleteCallback, this.$scope.name, index);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('DeletePopover', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IIfElseOperationScope extends IValueOperationScope {\r\n addConditionalOperand: () => void;\r\n deleteElseIfBlock: (index: number) => void;\r\n }\r\n\r\n export class IfElseOperation implements IDirective {\r\n public templateUrl: string = './app/views/directives/calculate/ifElseOperation.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', 'calculationService', IfElseOperationController];\r\n public controllerAs = 'controller';\r\n public scope: boolean = true; // False is use parents scope - True is create inherited scope from parents scope\r\n\r\n public link($scope: IIfElseOperationScope, element: JQuery, attrs: ng.IAttributes, controller: IfElseOperationController) { }\r\n }\r\n\r\n export class IfElseOperationController implements IController {\r\n\r\n constructor(private $scope: IIfElseOperationScope, private calculationService: services.CalculationService) {\r\n $scope.addConditionalOperand = () => this.addConditionalOperandInternal();\r\n $scope.deleteElseIfBlock = (index: number) => this.deleteElseIfBlockInternal(index);\r\n }\r\n\r\n private addConditionalOperandInternal(): void {\r\n this.calculationService.addNewSimpleOperandToValueOperation(this.$scope.getOperation());\r\n this.calculationService.addNewSimpleOperandToValueOperation(this.$scope.getOperation());\r\n }\r\n\r\n private deleteElseIfBlockInternal(index: number): void {\r\n var removedItems = this.$scope.getOperation().operands.splice(index, 2);\r\n removedItems.forEach((removedOperand) => {\r\n this.calculationService.deleteOperand(removedOperand);\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('IfElseOperation', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IOperandScope extends IValueOperationScope {\r\n operandIndex: number;\r\n allowableVariableTypes: Array;\r\n allowTimeDurationUi: boolean;\r\n allowableOperandTypes: models.CalculationType[];\r\n }\r\n\r\n export class Operand implements IDirective {\r\n public restrict: string = 'E';\r\n public controller = ['$scope', '$compile', '$http', '$templateCache', 'calculationService', OperandController];\r\n public controllerAs = 'controller';\r\n public scope: boolean = true; // False is use parents scope - True is create inherited scope from parents scope\r\n\r\n public link($scope: IOperandScope, element: JQuery, attrs: ng.IAttributes, controller: OperandController) {\r\n $scope.operandIndex = parseInt(attrs[\"operandIndex\"]);\r\n controller.setElement(element);\r\n $scope.allowableVariableTypes = controller.parseAllowableVariableTypes(attrs[\"allowableVariableTypes\"]);\r\n $scope.allowTimeDurationUi = attrs[\"allowTimeDurationUi\"] === \"true\";\r\n controller.compileOperandDirective($scope.getOperation().operands[$scope.operandIndex]);\r\n }\r\n }\r\n\r\n export class OperandController implements IController {\r\n private $scope: IOperandScope;\r\n private $compile: angular.ICompileService;\r\n private $http: ng.IHttpService;\r\n private $templateCache: ng.ITemplateCacheService;\r\n private element: JQuery;\r\n\r\n constructor(\r\n $scope: IOperandScope,\r\n $compile: ng.ICompileService,\r\n $http: ng.IHttpService,\r\n $templateCache: ng.ITemplateCacheService,\r\n private calculationService: services.CalculationService)\r\n {\r\n this.$scope = $scope;\r\n this.$compile = $compile;\r\n this.$http = $http;\r\n this.$templateCache = $templateCache;\r\n\r\n var self = this;\r\n\r\n $scope.$watch(\"getOperation().operands[operandIndex]\", (newValue: Wars.Domain.Model.Calculations.Operand, oldValue: Wars.Domain.Model.Calculations.Operand) => {\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n self.compileOperandDirective(this.$scope.getOperation().operands[this.$scope.operandIndex]);\r\n });\r\n\r\n $scope.$watch(\"getOperation().operands[operandIndex].treeItem_id\", (newTreeItemId: string, oldFieldItemId: string) => {\r\n if (newTreeItemId !== oldFieldItemId) {\r\n self.compileOperandDirective(self.$scope.getOperation().operands[this.$scope.operandIndex]);\r\n }\r\n });\r\n\r\n $scope.$watch(\"getOperation().operands[operandIndex].isATimeDurationInput\", (newValue: string, oldValue: string) => {\r\n if (newValue !== oldValue) {\r\n self.compileOperandDirective(self.$scope.getOperation().operands[this.$scope.operandIndex]);\r\n }\r\n });\r\n\r\n $scope.allowableOperandTypes = this.getAllowableOperandTypes();\r\n }\r\n\r\n public setElement(element: JQuery): void {\r\n this.element = element;\r\n }\r\n\r\n public parseAllowableVariableTypes(variableTypesString: string): Array {\r\n var variableTypes = [];\r\n if (!variableTypesString || variableTypesString.length === 0) return variableTypes;\r\n\r\n var split = variableTypesString.split(\",\");\r\n\r\n for (var i = 0; i < split.length; i++) {\r\n var item = split[i];\r\n\r\n if (item === \"String\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.String);\r\n else if (item === \"Integer\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.Integer);\r\n else if (item === \"Decimal\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.Decimal);\r\n else if (item === \"DateTime\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.DateTime);\r\n else if (item === \"Date\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.Date);\r\n else if (item === \"Time\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.Time);\r\n else if (item === \"TimeSpan\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.TimeSpan);\r\n else if (item === \"TimeDuration\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.TimeDuration);\r\n else if (item === \"Boolean\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.Boolean);\r\n else if (item === \"List\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.List);\r\n else if (item === \"Object\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.Object);\r\n else if (item === \"Code\") variableTypes.push(Wars.Domain.Model.Codes.Enums.VariableType.Code);\r\n }\r\n\r\n return variableTypes;\r\n }\r\n\r\n public compileOperandDirective(operand: Wars.Domain.Model.Calculations.Operand): void {\r\n var templateUrl: string;\r\n var htmlToAppend: any;\r\n var appendElement: any;\r\n\r\n if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.ComplexOperand) {\r\n templateUrl = './app/views/directives/calculate/complexOperandContent.html';\r\n }\r\n else if (operand.operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n let simpleOperand = operand;\r\n\r\n if (simpleOperand.treeItem_id) {\r\n var typedInConstant = this.calculationService.isTypedInConstant(simpleOperand.treeItem.constantValue);\r\n if (!typedInConstant) {\r\n templateUrl = './app/views/directives/calculate/simpleOperandContent.html';\r\n }\r\n }\r\n if (simpleOperand.isATimeDurationInput) {\r\n templateUrl = './app/views/directives/calculate/simpleOperandContent.html';\r\n }\r\n }\r\n if (!templateUrl) {\r\n templateUrl = './app/views/directives/calculate/operandDropZoneContent.html';\r\n }\r\n\r\n this.$http.get(templateUrl, { cache: this.$templateCache }).then((response: any) => {\r\n htmlToAppend = this.$compile(response.data)(this.$scope);\r\n appendElement = angular.element(this.element[0]);\r\n appendElement.empty();\r\n //TODO: somehow find scope of children and destroy to cleanup compiling's - e.g. scope.$destroy();\r\n appendElement.append(htmlToAppend);\r\n });\r\n }\r\n\r\n private getOperandInternal() : Wars.Domain.Model.Calculations.Operand {\r\n return this.$scope.getOperation().operands[this.$scope.operandIndex];\r\n }\r\n\r\n private operandDeletedInternal() {\r\n if (this.$scope.getOperation().operands[this.$scope.operandIndex].operandType === Wars.Domain.Model.Codes.Enums.OperandType.SimpleOperand) {\r\n var simpleOperand = this.$scope.getOperation().operands[this.$scope.operandIndex];\r\n this.calculationService.deleteSimpleOperand(simpleOperand);\r\n } else if (this.$scope.getOperation().operands[this.$scope.operandIndex].operandType === Wars.Domain.Model.Codes.Enums.OperandType.ComplexOperand) {\r\n var complexOperand = this.$scope.getOperation().operands[this.$scope.operandIndex];\r\n this.calculationService.deleteComplexOperand(complexOperand);\r\n }\r\n this.$scope.getOperation().operands[this.$scope.operandIndex] = undefined;\r\n }\r\n\r\n public getAllowableOperandTypes(): models.CalculationType[] {\r\n var valueOperator = this.$scope.getOperation().operator;\r\n var calculationType = this.calculationService.getCalculationTypeByValueOperation(valueOperator);\r\n return this.calculationService.getAllowableOperandTypes(calculationType);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('Operand', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IOperandDropZoneInputScope extends IOperandScope {\r\n model: OperandDropZoneInputModel;\r\n onDragOver: ($event: any) => void;\r\n onDrop: ($event: any) => void;\r\n typedInValueChanged: () => void;\r\n getDisplayValue: () => string;\r\n enterTimeDuration: () => void;\r\n }\r\n\r\n export class OperandDropZoneInputModel {\r\n public typedInValue: string;\r\n }\r\n\r\n export class OperandDropZoneInput implements IDirective {\r\n public templateUrl: string = './app/views/directives/calculate/operandDropZoneInput.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', '$rootScope', 'calculationService', 'treeService', 'treeItemService', 'constantService', OperandDropZoneInputController];\r\n public controllerAs = 'controller';\r\n public scope: boolean = true; // False is use parents scope - True is create inherited scope from parents scope\r\n\r\n public link($scope: IOperandDropZoneInputScope, element: JQuery, attrs: ng.IAttributes, controller: OperandDropZoneInputController) { }\r\n }\r\n\r\n export class OperandDropZoneInputController implements IController {\r\n\r\n constructor(\r\n private $scope: IOperandDropZoneInputScope,\r\n private $rootScope: ng.IRootScopeService,\r\n private calculationService: services.CalculationService,\r\n private treeService: services.TreeService,\r\n private treeItemService: services.TreeItemService,\r\n private constantService: services.ConstantService)\r\n {\r\n this.createConstantValue();\r\n\r\n this.$scope.model = new OperandDropZoneInputModel();\r\n\r\n this.setTypedInValue();\r\n \r\n // Public methods using lambdas to preserve this\r\n this.$scope.onDragOver = ($event: any) => this.onDragOverInternal($event);\r\n this.$scope.onDrop = ($event: any) => this.onDropInternal($event);\r\n this.$scope.typedInValueChanged = () => this.typedInValueChangedInternal();\r\n this.$scope.getDisplayValue = () => this.getDisplayValueInternal();\r\n this.$scope.enterTimeDuration = () => this.enterTimeDurationInternal();\r\n }\r\n\r\n private operandTypeChanged() {\r\n this.$rootScope.$broadcast('operand-type-changed');\r\n }\r\n\r\n private getOperand(): Wars.Domain.Model.Calculations.SimpleOperand {\r\n return this.$scope.getOperation().operands[this.$scope.operandIndex];\r\n }\r\n\r\n private createConstantValue(): void {\r\n if (!this.getOperand().treeItem) {\r\n this.getOperand().treeItem = this.treeItemService.createTreeItem(this.$scope.isSystemLevel);\r\n this.getOperand().treeItem_id = this.getOperand().treeItem.id;\r\n this.getOperand().treeItem.itemSource = Wars.Domain.Model.Codes.Enums.TreeItemSource.Constant;\r\n this.getOperand().treeItem.isList = false;\r\n this.getOperand().treeItem.isClaimWithValue = false;\r\n }\r\n\r\n if (!this.getOperand().treeItem.constantValue) {\r\n this.getOperand().treeItem.constantValue = this.constantService.createConstant();\r\n this.getOperand().treeItem.constantValue_id = this.getOperand().treeItem.constantValue.id;\r\n }\r\n }\r\n\r\n private setTypedInValue(): void {\r\n switch (this.getOperand().treeItem.constantValue.variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n this.$scope.model.typedInValue = this.getOperand().treeItem.constantValue.integerValue.toString();\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n this.$scope.model.typedInValue = this.getOperand().treeItem.constantValue.decimalValue.toString();\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.String:\r\n this.$scope.model.typedInValue = this.getOperand().treeItem.constantValue.stringValue;\r\n break;\r\n }\r\n }\r\n\r\n private enterTimeDurationInternal(): void {\r\n if (this.getOperand().treeItem) {\r\n if (this.calculationService.isTypedInConstant(this.getOperand().treeItem.constantValue)) {\r\n this.getOperand().treeItem.constantValue.entityAspect.setDeleted();\r\n }\r\n this.getOperand().treeItem.entityAspect.setDeleted();\r\n this.getOperand().treeItem = null;\r\n this.getOperand().treeItem_id = null;\r\n }\r\n\r\n this.getOperand().isATimeDurationInput = true;\r\n var valueOperation = this.getOperand().parentValueOperation;\r\n valueOperation.variableType = services.CalculationService.getValueOperationVariableType(valueOperation);\r\n }\r\n\r\n private getDisplayValueInternal(): string {\r\n if (this.getOperand().treeItem == null || this.getOperand().treeItem.constantValue == null) return \"\";\r\n switch (this.getOperand().treeItem.constantValue.variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n return this.getOperand().treeItem.constantValue.integerValue.toString();\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n return this.getOperand().treeItem.constantValue.decimalValue.toString();\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.String:\r\n return this.getOperand().treeItem.constantValue.stringValue;\r\n }\r\n return \"\";\r\n }\r\n\r\n private canDrop(treeConfig: models.TreeConfigurationItem): boolean {\r\n if (this.$scope.allowableVariableTypes.length > 0) {\r\n return this.$scope.allowableVariableTypes.indexOf(treeConfig.variableType) !== -1;\r\n }\r\n return true;\r\n }\r\n\r\n private onDragOverInternal($event: any): void {\r\n // TODO: Do we want to do anything here?\r\n }\r\n\r\n private onDropInternal($event: any): void {\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n if (!this.canDrop(treeConfig)) {\r\n alert(\"This item is not valid for this drop zone.\");\r\n return;\r\n }\r\n\r\n if (this.getOperand().treeItem) {\r\n if (this.getOperand().treeItem.constantValue && this.calculationService.isTypedInConstant(this.getOperand().treeItem.constantValue))\r\n {\r\n this.getOperand().treeItem.constantValue.entityAspect.setDeleted();\r\n }\r\n this.getOperand().treeItem.entityAspect.setDeleted();\r\n }\r\n var self = this;\r\n this.getOperand().treeItem = this.treeService.createTreeItemFromItemDropped(() => {\r\n this.getOperand().treeItem_id = this.getOperand().treeItem.id;\r\n self.operandTypeChanged();\r\n\r\n if (self.getOperand().treeItem.calculation_id) {\r\n if (self.getOperand().treeItem.calculation.inputSchema && self.getOperand().treeItem.calculation.inputSchema.properties) {\r\n for (let i = 0; i < self.getOperand().treeItem.calculation.inputSchema.properties.length; i++) {\r\n self.createParameterEntities(self.getOperand().treeItem.calculation.inputSchema.properties[i]);\r\n }\r\n }\r\n }\r\n });\r\n\r\n var parentValueOperation = this.getOperand().parentValueOperation;\r\n parentValueOperation.variableType = services.CalculationService.getValueOperationVariableType(parentValueOperation);\r\n \r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n }\r\n\r\n private createParameterEntities(property: Wars.Domain.Model.SchemaProperty) {\r\n // Create new Operation Parameter\r\n var newOperationParameter = this.calculationService.createNewOperationParameter(property);\r\n\r\n // Create Tree Item\r\n newOperationParameter.treeItem = this.treeItemService.createTreeItem(this.$scope.isSystemLevel);\r\n newOperationParameter.treeItem_id = newOperationParameter.treeItem.id;\r\n\r\n // Create new Constant Value\r\n newOperationParameter.treeItem.constantValue = this.constantService.createConstant();\r\n newOperationParameter.treeItem.constantValue_id = newOperationParameter.treeItem.constantValue.id;\r\n\r\n this.getOperand().parameters.push(newOperationParameter);\r\n }\r\n\r\n private typedInValueChangedInternal(): void {\r\n // Check for empty\r\n if (this.$scope.model.typedInValue.length === 0) {\r\n if (this.getOperand().treeItem && this.getOperand().treeItem.constantValue) {\r\n this.getOperand().treeItem.constantValue.integerValue = undefined;\r\n this.getOperand().treeItem.constantValue.decimalValue = undefined;\r\n this.getOperand().treeItem.constantValue.stringValue = undefined;\r\n }\r\n } else {\r\n if (this.$scope.model.typedInValue.trim().length === 0) {\r\n // Just whitespace\r\n this.setStringConstantValue(this.$scope.model.typedInValue);\r\n }\r\n else if (this.isAnInt(this.$scope.model.typedInValue)) {\r\n this.setIntConstantValue(parseInt(this.$scope.model.typedInValue));\r\n } else if (this.isAFloat(this.$scope.model.typedInValue)) {\r\n this.setDecimalConstantValue(parseFloat(this.$scope.model.typedInValue));\r\n } else {\r\n this.setStringConstantValue(this.$scope.model.typedInValue);\r\n }\r\n }\r\n this.operandTypeChanged();\r\n }\r\n\r\n private setIntConstantValue(intValue: number): void {\r\n this.getOperand().treeItem.constantValue.variableType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n this.getOperand().treeItem.variableType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n this.getOperand().treeItem.constantValue.integerValue = intValue;\r\n this.getOperand().treeItem.constantValue.decimalValue = undefined;\r\n this.getOperand().treeItem.constantValue.stringValue = undefined;\r\n }\r\n\r\n private setDecimalConstantValue(decimalValue: number): void {\r\n this.getOperand().treeItem.constantValue.variableType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n this.getOperand().treeItem.variableType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n this.getOperand().treeItem.constantValue.integerValue = undefined;\r\n this.getOperand().treeItem.constantValue.decimalValue = decimalValue;\r\n this.getOperand().treeItem.constantValue.stringValue = undefined;\r\n }\r\n\r\n private setStringConstantValue(stringValue: string): void {\r\n this.getOperand().treeItem.constantValue.variableType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n this.getOperand().treeItem.variableType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n this.getOperand().treeItem.constantValue.integerValue = undefined;\r\n this.getOperand().treeItem.constantValue.decimalValue = undefined;\r\n this.getOperand().treeItem.constantValue.stringValue = stringValue;\r\n }\r\n\r\n private isAnInt(value: any): boolean {\r\n return Number(value) == value && value % 1 === 0;\r\n }\r\n\r\n private isAFloat(value: any): boolean {\r\n return Number(value) == value && value % 1 !== 0;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('OperandDropZoneInput', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IOperatorPopupScope extends angular.IScope {\r\n\r\n // Use this for the popover at the top level\r\n calculation: Wars.Domain.Model.Calculations.Calculation;\r\n\r\n // Use these for the popover at the operand level\r\n operation: Wars.Domain.Model.Calculations.ValueOperation;\r\n operandIndex: number;\r\n\r\n initialized: boolean;\r\n allowDelete: boolean;\r\n defaultOpen: string;\r\n\r\n templateUrl: string;\r\n isOpen: boolean;\r\n open(): void;\r\n close(): void;\r\n operatorSelected(operator: Wars.Domain.Model.Codes.Enums.ValueOperator): void;\r\n showChangeConfirmation: boolean;\r\n change: () => void;\r\n cancel: () => void;\r\n clear: () => void;\r\n delete: () => void;\r\n showNumericOperators: boolean;\r\n showStringOperators: boolean;\r\n showDateTimeOperators: boolean;\r\n showBooleanOperators: boolean;\r\n showAggregateOperators: boolean;\r\n showListOperators: boolean;\r\n showOtherOperators: boolean;\r\n showNumericOperatorsSelected : () => void;\r\n showStringOperatorsSelected : () => void;\r\n showBooleanOperatorsSelected : () => void;\r\n showAggregateOperatorsSelected : () => void;\r\n showOtherOperatorsSelected: () => void;\r\n showDateTimeOperatorsSelected: () => void;\r\n showListOperatorsSelected: () => void;\r\n allowNumericOperator: boolean;\r\n allowStringOperator: boolean;\r\n allowDateTimeOperator: boolean;\r\n allowBooleanOperator: boolean;\r\n allowAggregateOperators: () => boolean;\r\n allowListOperators: () => boolean;\r\n allowOtherOperator: boolean;\r\n operatorTypesAllowed: models.CalculationType[];\r\n }\r\n\r\n export class OperatorPopup implements IDirective {\r\n public controller = ['$scope', 'calculationService', OperatorPopupController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/calculate/operatorPopup.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n calculation: \"=\",\r\n operation: \"=\",\r\n operandIndex: \"=\",\r\n initialized: \"=\",\r\n defaultOpen: \"=\",\r\n operatorTypesAllowed: \"=\",\r\n faClass: \"@\",\r\n buttonClass: \"@\"\r\n };\r\n\r\n public link(scope: IOperatorPopupScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: OperatorPopupController): void {\r\n scope.templateUrl = \"./app/views/directives/calculate/operatorPopupContent.html\";\r\n }\r\n }\r\n\r\n export class OperatorPopupController implements IController {\r\n \r\n operatorSelectedValue: Wars.Domain.Model.Codes.Enums.ValueOperator;\r\n\r\n constructor(private $scope: IOperatorPopupScope, private calculationService: services.CalculationService) {\r\n this.$scope.isOpen = this.$scope.defaultOpen === \"true\";\r\n this.$scope.showChangeConfirmation = false;\r\n\r\n var self = this;\r\n this.$scope.$watch(\"defaultOpen\", (newValue) => {\r\n if (newValue) self.openInternal();\r\n else self.closeInternal();\r\n });\r\n\r\n this.$scope.allowDelete = this.calculationService.allowOperandDelete(this.$scope.operation, this.$scope.operandIndex);\r\n\r\n // Public methods using lambdas to preserve this\r\n this.$scope.open = () => this.openInternal();\r\n this.$scope.close = () => this.closeInternal();\r\n this.$scope.operatorSelected = (operator: Wars.Domain.Model.Codes.Enums.ValueOperator) => this.operatorSelectedInternal(operator);\r\n this.$scope.change = () => this.changeOperand();\r\n this.$scope.cancel = () => this.$scope.isOpen = false;\r\n this.$scope.clear = () => this.clearInternal();\r\n this.$scope.delete = () => this.deleteInternal();\r\n\r\n this.$scope.allowNumericOperator = this.allowNumericOperatorInternal();\r\n this.$scope.allowStringOperator = this.allowStringOperatorInternal();\r\n this.$scope.allowDateTimeOperator = this.allowDateTimeOperatorInternal();\r\n this.$scope.allowBooleanOperator = this.allowBooleanOperatorInternal();\r\n this.$scope.allowAggregateOperators = () => this.allowAggregateOperatorsInternal();\r\n this.$scope.allowListOperators = () => this.allowListOperatorsInternal();\r\n this.$scope.allowOtherOperator = this.allowOtherOperatorInternal();\r\n\r\n this.$scope.showNumericOperatorsSelected = () => {\r\n this.hideAll();\r\n this.$scope.showNumericOperators = true;\r\n }\r\n\r\n this.$scope.showStringOperatorsSelected = () => {\r\n this.hideAll();\r\n this.$scope.showStringOperators = true;\r\n }\r\n\r\n this.$scope.showDateTimeOperatorsSelected = () => {\r\n this.hideAll();\r\n this.$scope.showDateTimeOperators = true;\r\n }\r\n\r\n this.$scope.showBooleanOperatorsSelected = () => {\r\n this.hideAll();\r\n this.$scope.showBooleanOperators = true;\r\n }\r\n\r\n this.$scope.showAggregateOperatorsSelected = () => {\r\n this.hideAll();\r\n this.$scope.showAggregateOperators = true;\r\n }\r\n\r\n this.$scope.showOtherOperatorsSelected = () => {\r\n this.hideAll();\r\n this.$scope.showOtherOperators = true;\r\n }\r\n\r\n this.$scope.showListOperatorsSelected = () => {\r\n this.hideAll();\r\n this.$scope.showListOperators = true;\r\n }\r\n }\r\n\r\n private allowNumericOperatorInternal(): boolean {\r\n if (this.$scope.operatorTypesAllowed === undefined) return true;\r\n return this.$scope.operatorTypesAllowed.indexOf(models.CalculationType.Numeric) !== -1;\r\n }\r\n\r\n private allowStringOperatorInternal(): boolean {\r\n if (this.$scope.operatorTypesAllowed === undefined) return true;\r\n return this.$scope.operatorTypesAllowed.indexOf(models.CalculationType.String) !== -1;\r\n }\r\n\r\n private allowDateTimeOperatorInternal(): boolean {\r\n if (this.$scope.operatorTypesAllowed === undefined) return true;\r\n return this.$scope.operatorTypesAllowed.indexOf(models.CalculationType.DateTime) !== -1;\r\n }\r\n\r\n private allowBooleanOperatorInternal(): boolean {\r\n if (this.$scope.operatorTypesAllowed === undefined) return true;\r\n return this.$scope.operatorTypesAllowed.indexOf(models.CalculationType.Boolean) !== -1;\r\n }\r\n\r\n private allowAggregateOperatorsInternal(): boolean {\r\n if (this.$scope.operatorTypesAllowed !== undefined && this.$scope.operatorTypesAllowed.indexOf(models.CalculationType.Other) === -1) return false;\r\n if (this.$scope.calculation) return this.calculationService.allowAggregateOperators(this.$scope.calculation.valueOperation);\r\n return this.calculationService.allowAggregateOperatorsForOperand(this.$scope.operation, this.$scope.operation.operands[this.$scope.operandIndex]);\r\n }\r\n\r\n private allowListOperatorsInternal(): boolean {\r\n if (this.$scope.operatorTypesAllowed !== undefined && this.$scope.operatorTypesAllowed.indexOf(models.CalculationType.Other) === -1) return false;\r\n if (this.$scope.calculation) return this.calculationService.allowAggregateOperators(this.$scope.calculation.valueOperation);\r\n return this.calculationService.allowAggregateOperatorsForOperand(this.$scope.operation, this.$scope.operation.operands[this.$scope.operandIndex]);\r\n }\r\n\r\n private allowOtherOperatorInternal(): boolean {\r\n if (this.$scope.operatorTypesAllowed !== undefined && this.$scope.operatorTypesAllowed.indexOf(models.CalculationType.Other) === -1) return false;\r\n if (this.$scope.calculation) return this.calculationService.allowListOperators(this.$scope.calculation.valueOperation);\r\n return this.calculationService.allowListOperatorsForOperand(this.$scope.operation, this.$scope.operation.operands[this.$scope.operandIndex]);\r\n }\r\n\r\n private openInternal(): void {\r\n this.$scope.isOpen = true;\r\n }\r\n\r\n private closeInternal(): void {\r\n this.$scope.isOpen = false;\r\n }\r\n\r\n private operatorSelectedInternal(operator: Wars.Domain.Model.Codes.Enums.ValueOperator) {\r\n this.operatorSelectedValue = operator;\r\n if (this.$scope.calculation) {\r\n this.changeTopLevelValueOperation();\r\n } else {\r\n if (this.$scope.initialized) {\r\n this.$scope.showChangeConfirmation = true;\r\n } else {\r\n this.changeOperand();\r\n }\r\n }\r\n }\r\n\r\n private clearInternal() {\r\n this.calculationService.replaceOperandWithNewSimpleOperand(this.$scope.operation, this.$scope.operandIndex);\r\n this.$scope.isOpen = false;\r\n }\r\n\r\n private deleteInternal() {\r\n this.$scope.operation.operands[this.$scope.operandIndex].entityAspect.setDeleted();\r\n this.$scope.isOpen = false;\r\n }\r\n\r\n private changeOperand(): void {\r\n if (this.operatorSelectedValue !== undefined) {\r\n this.calculationService.replaceOperandWithNewComplexOperand(this.$scope.operation, this.$scope.operandIndex, this.operatorSelectedValue);\r\n }\r\n this.$scope.isOpen = false;\r\n }\r\n\r\n private changeTopLevelValueOperation(): void {\r\n if (this.$scope.calculation.valueOperation == undefined) {\r\n var isListOperation = this.calculationService.isAnAggregateOperator(this.operatorSelectedValue) ||\r\n this.calculationService.isAListOperator(this.operatorSelectedValue);\r\n this.$scope.calculation.valueOperation = this.calculationService.createValueOperation(this.operatorSelectedValue, isListOperation);\r\n this.$scope.calculation.valueOperation_id = this.$scope.calculation.valueOperation.id;\r\n }\r\n else {\r\n this.$scope.calculation.valueOperation = this.calculationService.createNewTopLevelValueOperation(this.$scope.calculation.valueOperation, this.operatorSelectedValue);\r\n this.$scope.calculation.valueOperation_id = this.$scope.calculation.valueOperation.id;\r\n }\r\n this.$scope.calculation.valueOperation.variableType = services.CalculationService.getValueOperationVariableType(this.$scope.calculation.valueOperation);\r\n this.$scope.isOpen = false;\r\n }\r\n\r\n private hideAll(): void {\r\n this.$scope.showNumericOperators = false;\r\n this.$scope.showStringOperators = false;\r\n this.$scope.showDateTimeOperators = false;\r\n this.$scope.showBooleanOperators = false;\r\n this.$scope.showAggregateOperators = false;\r\n this.$scope.showListOperators = false;\r\n this.$scope.showOtherOperators = false;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('OperatorPopup', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IParameterDropZoneInputScope extends ng.IScope {\r\n parameter: Wars.Domain.Model.OperationParameter;\r\n isReadonly: boolean;\r\n typedInValue: string;\r\n typedInValueChanged: () => void;\r\n getTreeItemName: (treeItem: Wars.Domain.Model.TreeItem) => string;\r\n getTreeItemIconName: (treeItem: Wars.Domain.Model.TreeItem) => string;\r\n getParentDisplayName: (treeItem: Wars.Domain.Model.TreeItem) => string;\r\n onDragOver: ($event: any) => void;\r\n onDrop: ($event: any) => void;\r\n isInlineConstant: () => boolean;\r\n detailedTreeItemDisplay: string;\r\n treeItemDisplayInternal: string;\r\n }\r\n\r\n export class ParameterDropZoneInput implements IDirective {\r\n public templateUrl: string = './app/views/directives/calculate/parameterDropZoneInput.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', 'calculationService', 'treeService', 'treeItemService', ParameterDropZoneInputController];\r\n public controllerAs = 'controller';\r\n public scope: any = {\r\n parameter: \"=\",\r\n isReadonly: \"=\"\r\n };\r\n\r\n public link($scope: IParameterDropZoneInputScope, element: JQuery, attrs: ng.IAttributes, controller: ParameterDropZoneInputController) { }\r\n }\r\n\r\n export class ParameterDropZoneInputController implements IController {\r\n private $scope: IParameterDropZoneInputScope;\r\n\r\n constructor(\r\n $scope: IParameterDropZoneInputScope,\r\n private calculationService: services.CalculationService,\r\n private treeService: services.TreeService,\r\n private treeItemService: services.TreeItemService,\r\n private constantService: services.ConstantService)\r\n {\r\n this.$scope = $scope;\r\n this.setTypedInValue();\r\n\r\n this.$scope.typedInValueChanged = () => this.typedInValueChangedInternal();\r\n this.$scope.getTreeItemName = (treeItem: Wars.Domain.Model.TreeItem) => this.getTreeItemNameInternal(treeItem);\r\n this.$scope.getTreeItemIconName = (treeItem: Wars.Domain.Model.TreeItem) => this.getTreeItemIconNameInternal(treeItem);\r\n this.$scope.onDragOver = ($event: any) => this.onDragOverInternal($event);\r\n this.$scope.onDrop = ($event: any) => this.onDropInternal($event);\r\n this.$scope.isInlineConstant = () => this.isInlineConstantInternal();\r\n\r\n // When the normal display of the tree item changes update the detailed display.\r\n this.$scope.$watch(\"treeItemDisplayInternal\",\r\n () => {\r\n this.updateDetailedTreeItemDisplay();\r\n });\r\n }\r\n\r\n private isInlineConstantInternal() : boolean {\r\n if (!this.$scope.parameter || !this.$scope.parameter.treeItem || !this.$scope.parameter.treeItem.constantValue) return false;\r\n return !this.$scope.parameter.treeItem.constantValue.processConfiguration_id && !this.$scope.parameter.treeItem.constantValue.systemLevel_id;\r\n }\r\n\r\n private setTypedInValue(): void {\r\n if (this.$scope.parameter && this.$scope.parameter.treeItem && this.$scope.parameter.treeItem.constantValue) {\r\n switch (this.$scope.parameter.treeItem.constantValue.variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n this.$scope.typedInValue = this.$scope.parameter.treeItem.constantValue.integerValue.toString();\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n this.$scope.typedInValue = this.$scope.parameter.treeItem.constantValue.decimalValue.toString();\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.String:\r\n this.$scope.typedInValue = this.$scope.parameter.treeItem.constantValue.stringValue;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private getTreeItemNameInternal(treeItem: Wars.Domain.Model.TreeItem) {\r\n if (!treeItem) {\r\n this.$scope.treeItemDisplayInternal = '';\r\n return this.$scope.treeItemDisplayInternal;\r\n }\r\n this.$scope.treeItemDisplayInternal = this.treeService.getDisplayName(treeItem) + ' of ' + this.treeService.getParentDisplayName(treeItem);\r\n return this.$scope.treeItemDisplayInternal;\r\n }\r\n\r\n private getTreeItemIconNameInternal(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n return this.treeService.getParentDisplayIcon(treeItem);\r\n }\r\n\r\n private onDragOverInternal($event: any): void {\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n }\r\n\r\n private onDropInternal($event: any): void {\r\n\r\n var self = this;\r\n var newTreeItem = this.treeService.createTreeItemFromItemDropped(() => {\r\n if (self.treeService.doesTreeItemHaveParameters(newTreeItem)) {\r\n alert(\"Cannot drag a tree item that take parameters into a parameter input\");\r\n newTreeItem.entityAspect.setDeleted();\r\n } else {\r\n self.calculationService.isTypedInConstant(self.$scope.parameter.treeItem.constantValue)\r\n {\r\n self.$scope.parameter.treeItem.constantValue.entityAspect.setDeleted();\r\n }\r\n self.$scope.parameter.treeItem.entityAspect.setDeleted();\r\n\r\n self.$scope.parameter.treeItem = newTreeItem;\r\n self.$scope.parameter.treeItem_id = newTreeItem.id;\r\n }\r\n\r\n this.treeService.clearDragValue();\r\n });\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n private typedInValueChangedInternal(): void {\r\n // Check for just whitespace\r\n if (this.$scope.typedInValue.trim().length === 0) {\r\n if (this.$scope.parameter.treeItem && this.$scope.parameter.treeItem.constantValue) {\r\n this.$scope.parameter.treeItem.constantValue.integerValue = undefined;\r\n this.$scope.parameter.treeItem.constantValue.decimalValue = undefined;\r\n this.$scope.parameter.treeItem.constantValue.stringValue = undefined;\r\n }\r\n } else {\r\n if (this.isAnInt(this.$scope.typedInValue)) {\r\n this.setIntConstantValue(parseInt(this.$scope.typedInValue));\r\n } else if (this.isAFloat(this.$scope.typedInValue)) {\r\n this.setDecimalConstantValue(parseFloat(this.$scope.typedInValue));\r\n } else {\r\n this.setStringConstantValue(this.$scope.typedInValue);\r\n }\r\n }\r\n }\r\n\r\n private setIntConstantValue(intValue: number): void {\r\n this.$scope.parameter.treeItem.constantValue.variableType = Wars.Domain.Model.Codes.Enums.VariableType.Integer;\r\n this.$scope.parameter.treeItem.constantValue.integerValue = intValue;\r\n this.$scope.parameter.treeItem.constantValue.decimalValue = undefined;\r\n this.$scope.parameter.treeItem.constantValue.stringValue = undefined;\r\n }\r\n\r\n private setDecimalConstantValue(decimalValue: number): void {\r\n this.$scope.parameter.treeItem.constantValue.variableType = Wars.Domain.Model.Codes.Enums.VariableType.Decimal;\r\n this.$scope.parameter.treeItem.constantValue.integerValue = undefined;\r\n this.$scope.parameter.treeItem.constantValue.decimalValue = decimalValue;\r\n this.$scope.parameter.treeItem.constantValue.stringValue = undefined;\r\n }\r\n\r\n private setStringConstantValue(stringValue: string): void {\r\n this.$scope.parameter.treeItem.constantValue.variableType = Wars.Domain.Model.Codes.Enums.VariableType.String;\r\n this.$scope.parameter.treeItem.constantValue.integerValue = undefined;\r\n this.$scope.parameter.treeItem.constantValue.decimalValue = undefined;\r\n this.$scope.parameter.treeItem.constantValue.stringValue = stringValue;\r\n }\r\n\r\n private isAnInt(value: any): boolean {\r\n return Number(value) == value && value % 1 === 0;\r\n }\r\n\r\n private isAFloat(value: any): boolean {\r\n return Number(value) == value && value % 1 !== 0;\r\n }\r\n\r\n private updateDetailedTreeItemDisplay(): void {\r\n if (this.$scope.treeItemDisplayInternal === undefined ||\r\n this.$scope.treeItemDisplayInternal === null ||\r\n this.$scope.treeItemDisplayInternal === \"\") {\r\n return;\r\n }\r\n\r\n if (this.$scope.parameter === undefined || this.$scope.parameter === null) return;\r\n var treeItem = this.$scope.parameter.treeItem;\r\n if (!treeItem) return;\r\n if (!treeItem.id) return;\r\n\r\n this.treeService.getDetailedDisplayName(treeItem).then((detailedDisplay) => {\r\n this.$scope.detailedTreeItemDisplay = detailedDisplay;\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ParameterDropZoneInput', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface ISimpleOperandScope extends IOperandScope {\r\n getTreeItemName(): string;\r\n getTreeItemIconName(): string;\r\n getDetailedTreeItemDisplay(): string;\r\n getOperand(): Wars.Domain.Model.Calculations.SimpleOperand;\r\n detailedTreeItemDisplay: string;\r\n treeItemDisplayInternal: string;\r\n onDragOver($event: any) : void;\r\n onDrop($event: any): void;\r\n }\r\n\r\n export class SimpleOperand implements IDirective {\r\n public templateUrl: string = './app/views/directives/calculate/simpleOperand.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', 'treeService', SimpleOperandController];\r\n public controllerAs = 'controller';\r\n public scope: boolean = true; // False is use parents scope - True is create inherited scope from parents scope\r\n\r\n public link($scope: ISimpleOperandScope, element: JQuery, attrs: ng.IAttributes, controller: SimpleOperandController) { }\r\n }\r\n\r\n export class SimpleOperandController implements IController {\r\n \r\n constructor(private $scope: ISimpleOperandScope, private treeService: services.TreeService) {\r\n // Public methods using lambdas to preserve this\r\n this.$scope.getTreeItemName = () => this.getTreeItemNameInternal();\r\n this.$scope.getTreeItemIconName = () => this.getTreeItemIconNameInternal();\r\n this.$scope.getOperand = () => this.getOperandInternal();\r\n this.$scope.onDragOver = ($event: any) => this.onDragOverInternal($event);\r\n this.$scope.onDrop = ($event: any) => this.onDropInternal($event);\r\n \r\n // When the normal display of the tree item changes update the detailed display.\r\n this.$scope.$watch(\"treeItemDisplayInternal\",\r\n () => {\r\n this.updateDetailedTreeItemDisplay();\r\n });\r\n }\r\n\r\n private onDragOverInternal($event: any): void {\r\n \r\n }\r\n\r\n private onDropInternal($event: any): void {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n\r\n var operand = this.getOperandInternal();\r\n operand.treeItem = treeItem;\r\n operand.treeItem_id = treeItem.id;\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n }\r\n\r\n private getOperandInternal(): Wars.Domain.Model.Calculations.SimpleOperand {\r\n return this.$scope.getOperation().operands[this.$scope.operandIndex];\r\n }\r\n\r\n private getTreeItemNameInternal() {\r\n var operand = this.getOperandInternal();\r\n if (!operand) {\r\n this.$scope.treeItemDisplayInternal = '';\r\n return this.$scope.treeItemDisplayInternal;\r\n }\r\n var treeItem = operand.treeItem;\r\n if (!treeItem) {\r\n this.$scope.treeItemDisplayInternal = '';\r\n return this.$scope.treeItemDisplayInternal;\r\n }\r\n this.$scope.treeItemDisplayInternal = this.treeService.getDisplayName(treeItem) + ' of ' + this.treeService.getParentDisplayName(treeItem);\r\n return this.$scope.treeItemDisplayInternal; \r\n }\r\n\r\n private getTreeItemIconNameInternal(): string {\r\n var operand = this.getOperandInternal();\r\n if (!operand) return '';\r\n var treeItem = operand.treeItem;\r\n if (!treeItem) return '';\r\n return this.treeService.getParentDisplayIcon(treeItem);\r\n }\r\n\r\n private updateDetailedTreeItemDisplay(): void {\r\n if (this.$scope.treeItemDisplayInternal === undefined ||\r\n this.$scope.treeItemDisplayInternal === null ||\r\n this.$scope.treeItemDisplayInternal === \"\") {\r\n return;\r\n }\r\n var operand = this.getOperandInternal();\r\n if (!operand) return;\r\n var treeItem = operand.treeItem;\r\n if (!treeItem) return;\r\n if (!treeItem.id) return;\r\n\r\n this.treeService.getDetailedDisplayName(treeItem).then((detailedDisplay) => {\r\n this.$scope.detailedTreeItemDisplay = detailedDisplay;\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('SimpleOperand', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IValueOperationScope extends ng.IScope {\r\n isReadonly: boolean;\r\n\r\n // Top level value operation has this set\r\n calculation: Wars.Domain.Model.Calculations.Calculation;\r\n isSystemLevel: boolean;\r\n\r\n // Any non top level value operation has this set\r\n parentValueOperation: Wars.Domain.Model.Calculations.ValueOperation;\r\n complexOperandIndex: number;\r\n\r\n getOperation(): Wars.Domain.Model.Calculations.ValueOperation;\r\n addOperand: () => void;\r\n delete: () => void;\r\n allowGreaterThanLessThanComparison(): boolean;\r\n getAllowableBooleanEvaluationOperandType(): string;\r\n firstOperandIsSpecified() : boolean;\r\n }\r\n\r\n export class ValueOperation implements IDirective {\r\n public templateUrl: string = './app/views/directives/calculate/valueOperation.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', 'calculationService', ValueOperationController];\r\n public controllerAs = 'controller';\r\n public scope: any = {\r\n calculation: \"=\",\r\n parentValueOperation: \"=\",\r\n complexOperandIndex: \"=\",\r\n isReadonly: \"=\",\r\n isSystemLevel: \"=\"\r\n };\r\n\r\n public link($scope: IValueOperationScope, element: JQuery, attrs: ng.IAttributes, controller: ValueOperationController) { }\r\n }\r\n\r\n export class ValueOperationController implements IController {\r\n \r\n constructor(private $scope: IValueOperationScope, private calculationService: services.CalculationService) {\r\n $scope.getOperation = () => this.getOperationInternal();\r\n $scope.addOperand = () => this.addOperandInternal();\r\n $scope.delete = () => this.deleteInternal();\r\n $scope.allowGreaterThanLessThanComparison = () => this.allowGreaterThanLessThanComparisonInternal();\r\n $scope.getAllowableBooleanEvaluationOperandType = () => this.getAllowableBooleanEvaluationOperandTypeInternal();\r\n $scope.firstOperandIsSpecified = () => this.firstOperandIsSpecifiedInternal();\r\n }\r\n\r\n private getOperationInternal(): Wars.Domain.Model.Calculations.ValueOperation {\r\n if (this.$scope.calculation) {\r\n return this.$scope.calculation.valueOperation;\r\n } else {\r\n var complexOperand = this.$scope.parentValueOperation.operands[this.$scope.complexOperandIndex];\r\n return complexOperand.myValueOperation;\r\n }\r\n }\r\n\r\n private addOperandInternal(): void {\r\n this.calculationService.addNewSimpleOperandToValueOperation(this.getOperationInternal());\r\n }\r\n\r\n private deleteInternal(): void {\r\n if (this.$scope.calculation) {\r\n this.calculationService.deleteValueOperationChildren(this.getOperationInternal());\r\n this.getOperationInternal().entityAspect.setDeleted();\r\n this.$scope.calculation.valueOperation = undefined;\r\n } else {\r\n this.calculationService.replaceOperandWithNewSimpleOperand(this.$scope.parentValueOperation, this.$scope.complexOperandIndex);\r\n }\r\n }\r\n\r\n private allowGreaterThanLessThanComparisonInternal(): boolean {\r\n var operation = this.getOperationInternal();\r\n return this.calculationService.allowGreaterThanLessThanComparison(operation);\r\n }\r\n\r\n private getAllowableBooleanEvaluationOperandTypeInternal(): string {\r\n var operation = this.getOperationInternal();\r\n if (!operation) return \"\";\r\n var variableType = services.CalculationService.getOperandVariableType(operation.operands[0]);\r\n if (!variableType) return \"\";\r\n return variableType.toString();\r\n }\r\n\r\n private firstOperandIsSpecifiedInternal(): boolean {\r\n var operation = this.getOperationInternal();\r\n if (!operation) return false;\r\n return this.calculationService.isOperandSpecified(operation.operands[0]);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ValueOperation', []);","angular.module(\"warsApp.directives\").directive('capitalize', ['$parse', function ($parse) {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, modelCtrl) {\r\n var capitalize = function (inputValue) {\r\n if (!inputValue) inputValue = '';\r\n var capitalized = inputValue.toUpperCase();\r\n if (capitalized !== inputValue) {\r\n modelCtrl.$setViewValue(capitalized);\r\n modelCtrl.$render();\r\n }\r\n return capitalized;\r\n }\r\n modelCtrl.$parsers.push(capitalize);\r\n capitalize($parse(attrs.ngModel)(scope)); // capitalize initial value\r\n }\r\n };\r\n}]);","angular.module(\"warsApp.directives\").directive('charactersRemaining', function () {\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n property: '=',\r\n field: '='\r\n },\r\n templateUrl: './app/views/directives/charactersRemaining.html',\r\n controller: ['$scope', function ($scope) {\r\n $scope.pageFlow = {\r\n showCharacters: false\r\n }\r\n $scope.model = {\r\n remaining: 0\r\n }\r\n $scope.$watch('property', function () {\r\n var max = $scope.field.maxTextLength;\r\n if (max == null) {\r\n max = 4000;\r\n }\r\n if ($scope.property !== undefined && $scope.property !== null) {\r\n $scope.pageFlow.showCharacters = true;\r\n var remaining = parseInt(max) - $scope.property.length;\r\n if (remaining < 0) {\r\n $scope.property = $scope.property.substring(0, max);\r\n }\r\n $scope.model.remaining = parseInt(max) - $scope.property.length;\r\n } else {\r\n $scope.pageFlow.showCharacters = false;\r\n }\r\n });\r\n }]\r\n }\r\n});","/// \r\nmodule warsApp.directives {\r\n\r\n export class ClearData implements IDirective {\r\n public controller = [\"$scope\", \"processConfigurationService\", \"formService\", \"objectSchemaService\", ClearDataController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/clearData.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n setDataOperation: \"=\",\r\n processConfigId: \"=\",\r\n };\r\n\r\n public link(scope: IClearDataScope,\r\n element: ng.IAugmentedJQuery,\r\n attrs: ng.IAttributes,\r\n controller: ClearDataController): void {\r\n }\r\n }\r\n\r\n export interface IClearDataScope extends ng.IScope {\r\n setDataOperation: Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto;\r\n processConfigId: string;\r\n\r\n forms: Wars.Domain.Model.Form[];\r\n lists: Wars.Domain.Model.ObjectSchema[];\r\n fields: Wars.Domain.Model.SchemaProperty[];\r\n\r\n processDataLists: Wars.Domain.Model.ObjectSchema[];\r\n processDataFields: Wars.Domain.Model.SchemaProperty[];\r\n\r\n formSelectionChanged(): void;\r\n }\r\n\r\n export class ClearDataController implements IController {\r\n\r\n private isSystemLevel: boolean;\r\n\r\n constructor(\r\n private $scope: IClearDataScope,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private formService: services.FormService,\r\n private objectSchemaService: services.ObjectSchemaService)\r\n {\r\n this.$scope.formSelectionChanged = () => this.formSelectionChanged();\r\n\r\n this.$scope.$watch('setDataOperation',\r\n () => {\r\n this.setDataOperationChanged();\r\n });\r\n\r\n this.processConfigurationService.getProcessConfigurationWithForms(this.$scope.processConfigId)\r\n .then((processConfig) => {\r\n this.$scope.forms = Enumerable.from(processConfig.myForms)\r\n .where(i => i.formType !== Wars.Domain.Model.Codes.Enums.FormType.Manage)\r\n .toArray();\r\n });\r\n\r\n if (this.$scope.setDataOperation.form_id) {\r\n this.setOptionsBasedOnSelectedForm();\r\n }\r\n\r\n this.processConfigurationService.getById(this.$scope.processConfigId).then(\r\n (processConfiguration) => {\r\n if (processConfiguration.processDataSchema_id) {\r\n this.objectSchemaService.getObjectSchemaExpanded(processConfiguration.processDataSchema_id).then(\r\n (objectSchema) => {\r\n this.$scope.processDataFields = Enumerable.from(objectSchema.properties)\r\n .where(i => i.typeSchema === null)\r\n .toArray()\r\n\r\n this.$scope.processDataLists = Enumerable.from(objectSchema.properties)\r\n .where(i => i.typeSchema !== null)\r\n .select(i => i.typeSchema)\r\n .toArray();\r\n });\r\n }\r\n });\r\n }\r\n\r\n private setDataOperationChanged(): void {\r\n if (this.$scope.setDataOperation.form_id) {\r\n this.setOptionsBasedOnSelectedForm();\r\n }\r\n }\r\n\r\n private formSelectionChanged(): void {\r\n this.$scope.fields = [];\r\n\r\n this.$scope.setDataOperation.listObjectSchema_id = undefined;\r\n this.$scope.setDataOperation.fielSchemaProperty_id = undefined;\r\n\r\n if (!this.$scope.setDataOperation.form_id) {\r\n this.$scope.lists = [];\r\n } else {\r\n this.setOptionsBasedOnSelectedForm();\r\n }\r\n }\r\n\r\n private setOptionsBasedOnSelectedForm(): void {\r\n var selectedFormId = this.$scope.setDataOperation.form_id;\r\n this.formService.getFormConfiguration(selectedFormId)\r\n .then((form: Wars.Domain.Model.Form) => {\r\n this.$scope.lists = Enumerable.from(form.mySteps)\r\n .selectMany(i => i.formSections)\r\n .where(i => i.objectSchema.isList)\r\n .select(i => i.objectSchema)\r\n .toArray();\r\n\r\n this.$scope.fields = Enumerable.from(form.mySteps)\r\n .selectMany(i => i.formSections)\r\n .where(i => !i.objectSchema.isList)\r\n .selectMany(i => i.fields)\r\n .select(i => i.schemaProperty)\r\n .toArray();\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ClearData', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface ICodeDisplayScope extends ng.IScope {\r\n codeValue: string;\r\n codeName: string;\r\n titleFormat: string;\r\n displayFormat: string;\r\n title: string;\r\n display: string;\r\n processConfigId: string;\r\n }\r\n\r\n export class CodeDisplay implements IDirective {\r\n public controller = ['$scope', '$q', 'applicationCodeService', CodeDisplayController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/codeDisplay.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n codeValue: '=',\r\n processConfigId: \"=\",\r\n codeName: '@',\r\n titleFormat: '@',\r\n displayFormat: '@'\r\n };\r\n\r\n public link(scope: ICodeDisplayScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: CodeDisplayController): void {\r\n controller.setTitleAndDisplay();\r\n }\r\n }\r\n\r\n export class CodeDisplayController implements IController {\r\n private $scope: ICodeDisplayScope;\r\n private $q: ng.IQService;\r\n private applicationCodeService: services.ApplicationCodeService;\r\n private codes: models.ApplicationCode[];\r\n\r\n constructor($scope: ICodeDisplayScope, $q: ng.IQService, applicationCodeService: services.ApplicationCodeService) {\r\n this.$scope = $scope;\r\n this.$q = $q;\r\n this.applicationCodeService = applicationCodeService;\r\n\r\n $scope.$watch(\"codeValue\", () => {\r\n this.setTitleAndDisplay();\r\n });\r\n }\r\n\r\n private getEnumerations(codeGroup: string): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n if (this.codes !== undefined && this.codes.length > 0) {\r\n d.resolve(this.codes);\r\n } else {\r\n if (codeGroup.indexOf(\"-\") !== -1) {\r\n this.applicationCodeService.getProcessLevelApplicationCodesForExecution(codeGroup, this.$scope.processConfigId).then(\r\n applicationCodes => {\r\n this.codes = applicationCodes;\r\n d.resolve(applicationCodes);\r\n }\r\n );\r\n } else {\r\n this.applicationCodeService.getApplicationCodesForEnum(codeGroup).then(\r\n applicationCodes => {\r\n this.codes = applicationCodes;\r\n d.resolve(applicationCodes);\r\n }\r\n );\r\n }\r\n\r\n \r\n }\r\n\r\n return d.promise;\r\n }\r\n\r\n public setTitleAndDisplay() {\r\n var scope = this.$scope;\r\n this.getEnumerations(scope.codeName)\r\n .then(applicationCodes => {\r\n var stringValue = scope.codeValue !== undefined && scope.codeValue !== null ? scope.codeValue.toString() : \"%-13-%\";\r\n var code = Enumerable.from(applicationCodes).singleOrDefault(i => i.uniqueIdentifier.toString() === stringValue);\r\n if (!code) {\r\n scope.title = \"\";\r\n scope.display = \"\";\r\n } else {\r\n scope.title = scope.titleFormat ? code.createFormattedString(scope.titleFormat) : code.shortDescription;\r\n scope.display = scope.displayFormat ? code.createFormattedString(scope.displayFormat) : code.shortDescription;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('CodeDisplay', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface ICodeDropDownScope extends ng.IScope {\r\n model: number;\r\n systemCodeId: string;\r\n processConfigId: string\r\n defaultOption: models.CodeDropDownItem;\r\n context: models.CodeDropDownContext;\r\n change: any;\r\n disable: boolean;\r\n required: boolean;\r\n showInactiveCodes: boolean;\r\n refreshCodes: boolean;\r\n maintainOrder: boolean;\r\n isConfiguration: boolean;\r\n\r\n defaultOptionInternal: models.CodeDropDownItem;\r\n options: models.CodeDropDownItem[];\r\n }\r\n\r\n export class CodeDropDown implements IDirective {\r\n public controller = ['$scope', '$timeout', 'applicationCodeService', CodeDropDownController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/dropDown.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n model: '=bind',\r\n systemCodeId: '=',\r\n processConfigId: \"=\",\r\n defaultOption: '=',\r\n context: '=',\r\n change: '&',\r\n disable: '=',\r\n required: '=',\r\n showInactiveCodes: '@',\r\n refreshCodes: '=',\r\n isConfiguration: \"=\",\r\n maintainOrder: '@' // Drop downs by default will be sorted by the CodeDropDownItem.text string unless this is true then whatever order they are listed in the enumeration will be used.\r\n };\r\n\r\n public link(scope: ICodeDropDownScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: CodeDropDownController): void {\r\n if (attrs.hasOwnProperty('selectDefaultOption') && (!attrs.hasOwnProperty('defaultOption') || attrs['defaultOption'] === undefined)) {\r\n scope.defaultOptionInternal = models.CodeDropDownItem.getDefaultSelectOption();\r\n }\r\n else if (attrs.hasOwnProperty('allDefaultOption') && (!attrs.hasOwnProperty('defaultOption') || attrs['defaultOption'] === undefined)) {\r\n scope.defaultOptionInternal = models.CodeDropDownItem.getDefaultAllOption();\r\n }\r\n else if (attrs.hasOwnProperty('defaultOption')) {\r\n scope.defaultOptionInternal = scope.defaultOption;\r\n }\r\n controller.initialize();\r\n }\r\n }\r\n\r\n export class CodeDropDownController implements IController {\r\n private $scope: ICodeDropDownScope;\r\n private $timeout: ng.ITimeoutService;\r\n private applicationCodeService: services.ApplicationCodeService;\r\n private codes: models.ApplicationCode[];\r\n\r\n constructor($scope: ICodeDropDownScope, $timeout: ng.ITimeoutService, applicationCodeService: services.ApplicationCodeService) {\r\n this.$scope = $scope;\r\n this.$timeout = $timeout;\r\n this.applicationCodeService = applicationCodeService;\r\n }\r\n\r\n public initialize(): void {\r\n if (this.$scope.model == undefined) this.$scope.model = null;\r\n this.getCodesForGroup();\r\n this.setUpWatches();\r\n }\r\n\r\n private setUpWatches() : void {\r\n this.$scope.$watch(\"model\", () => {\r\n this.change();\r\n });\r\n\r\n this.$scope.$watch(\"systemCodeId\", () => {\r\n this.getCodesForGroup();\r\n });\r\n\r\n this.$scope.$watch(\"context\", newContext => {\r\n if (newContext) {\r\n this.getCodesForGroup();\r\n }\r\n }, true);\r\n\r\n this.$scope.$watch(\"refreshCodes\", newValue => {\r\n if (newValue) {\r\n this.getCodesForGroup();\r\n this.$scope.refreshCodes = false;\r\n }\r\n });\r\n }\r\n\r\n private getCodesForGroup() {\r\n var self: CodeDropDownController = this;\r\n if (!this.$scope.systemCodeId) return;\r\n if (this.$scope.isConfiguration) {\r\n this.applicationCodeService.getApplicationCodesForConfiguration(this.$scope.systemCodeId, this.$scope.showInactiveCodes)\r\n .then((applicationCodes) => {\r\n self.$scope.options = self.applicationCodeService.buildCodeDropDownOptions(applicationCodes, self.$scope.maintainOrder, self.$scope.context, self.$scope.defaultOptionInternal);\r\n });\r\n } else {\r\n this.applicationCodeService.getProcessLevelApplicationCodesForExecution(this.$scope.systemCodeId, this.$scope.processConfigId, this.$scope.showInactiveCodes)\r\n .then((applicationCodes) => {\r\n self.$scope.options = self.applicationCodeService.buildCodeDropDownOptions(applicationCodes, self.$scope.maintainOrder, self.$scope.context, self.$scope.defaultOptionInternal);\r\n });\r\n }\r\n }\r\n\r\n private change() {\r\n if (this.$scope.change()) {\r\n this.$timeout(() => { this.$scope.change()();}, 10);\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('CodeDropDown', []);","/// \r\n/// \r\nmodule warsApp.directives {\r\n\r\n export class CommentThread implements IDirective {\r\n public controller = ['$scope', 'commentService', '$compile', '$templateCache', '$http', 'userService', 'processDocumentService', CommentThreadController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/commentThread.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n comment: '=',\r\n maxDepth: '=',\r\n currentDepth: \"=\",\r\n canRespond: \"=\",\r\n processId: \"=\",\r\n deleteText: \"=\",\r\n deleteButtonText: \"=\",\r\n showAvatar: \"=\",\r\n commentThreadSection: \"=\",\r\n allowCommentDateToBeSet: \"=\",\r\n commentDateLabel: \"=\",\r\n process: \"=\",\r\n documentConfiguration: \"=\",\r\n systemDocumentConfiguration: \"=\",\r\n commentThreadConfigUniqueId: \"=\",\r\n manageSectionUniqueId:\"=\"\r\n };\r\n\r\n public link(scope: ICommentThreadScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: CommentThreadController): void {\r\n if (!scope.comment) return;\r\n if (angular.isArray(scope.comment.myCommentResponses)) {\r\n controller.$http.get('./app/views/_commentResponses.html', { cache: controller.$templateCache }).then(function(response: any) {\r\n var html = controller.$compile(response.data)(scope);\r\n element.append(html);\r\n }); \r\n }\r\n }\r\n }\r\n\r\n export interface ICommentThreadScope extends ng.IScope {\r\n model: CommentThreadModel;\r\n comment: Wars.Domain.Model.Dtos.CommentThreadDto;\r\n maxDepth: number;\r\n currentDepth: number;\r\n canRespond: boolean;\r\n processId: string;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n deleteText: string;\r\n deleteButtonText: string;\r\n showAvatar: boolean;\r\n commentThreadSection: Wars.Domain.Model.Dtos.CommentThreadSectionDto;\r\n allowCommentDateToBeSet: boolean;\r\n commentDateLabel: string;\r\n documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration;\r\n systemDocumentConfiguration: Wars.Domain.Model.Documents.SystemDocumentConfiguration;\r\n documentUpdated(model: models.FileUploadModel) : void;\r\n manageSectionUniqueId:string;\r\n }\r\n\r\n export class CommentThreadController implements IController {\r\n private scope: ICommentThreadScope;\r\n\r\n public $compile: ng.ICompileService;\r\n public $templateCache: ng.ITemplateCacheService;\r\n public $http: ng.IHttpService;\r\n\r\n constructor(\r\n $scope: ICommentThreadScope,\r\n commentService: services.CommentService,\r\n $compile: ng.ICompileService,\r\n $templateCache: ng.ITemplateCacheService,\r\n $http: ng.IHttpService,\r\n userService: services.UserService,\r\n processDocumentService: services.ProcessDocumentService) {\r\n this.scope = $scope;\r\n \r\n this.scope.model = new CommentThreadModel(\r\n this.scope.comment,\r\n this.scope.maxDepth,\r\n this.scope.currentDepth,\r\n commentService,\r\n this.scope.processId,\r\n this.scope.process,\r\n this.scope.deleteText,\r\n this.scope.deleteButtonText,\r\n this.scope.showAvatar,\r\n this.scope.commentThreadSection,\r\n userService,\r\n processDocumentService,\r\n this.scope.allowCommentDateToBeSet,\r\n this.scope.commentDateLabel,\r\n this.scope.canRespond,\r\n this.scope.manageSectionUniqueId);\r\n\r\n this.scope.documentUpdated = (model: models.FileUploadModel) => this.scope.model.documentUpdated(model);\r\n this.$compile = $compile;\r\n this.$templateCache = $templateCache;\r\n this.$http = $http;\r\n }\r\n }\r\n\r\n export class CommentThreadModel {\r\n public comment: Wars.Domain.Model.Dtos.CommentThreadDto;\r\n public maxDepth: number;\r\n public currentDepth: number;\r\n public currentChildDepth: number;\r\n public newResponse: string;\r\n public newResponseDocIds: string[];\r\n public addingResponse: boolean;\r\n public commentDate:any = null;\r\n \r\n private commentService: services.CommentService;\r\n\r\n constructor(\r\n comment: Wars.Domain.Model.Dtos.CommentThreadDto,\r\n maxDepth: number,\r\n currentDepth: number,\r\n commentService: services.CommentService,\r\n private processId: string,\r\n private process: Wars.Domain.Model.Dtos.ProcessDto,\r\n public deleteText: string,\r\n public deleteButtonText: string,\r\n public showAvatar: boolean,\r\n public commentThreadSection: Wars.Domain.Model.Dtos.CommentThreadSectionDto,\r\n private userService: services.UserService,\r\n private processDocumentService: services.ProcessDocumentService,\r\n public allowCommentDateToBeSet: boolean,\r\n public commentDateLabel: string,\r\n public canRespond?: boolean,\r\n private manageSectionUniqueId?:string)\r\n {\r\n this.comment = comment;\r\n this.maxDepth = maxDepth;\r\n this.currentDepth = currentDepth;\r\n this.currentChildDepth = currentDepth + 1;\r\n this.commentService = commentService;\r\n }\r\n\r\n public allowResponse(): boolean {\r\n if (!this.comment || !this.canRespond) return false;\r\n if (this.currentDepth >= (this.maxDepth - 1) || this.comment.commentStatus === Wars.Domain.Model.Codes.Enums.CommentStatus.Deleted) {\r\n return false;\r\n }\r\n\r\n if (this.commentThreadSection) {\r\n return this.commentThreadSection.canComment;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public addResponse(): void {\r\n this.newResponse = undefined;\r\n this.newResponseDocIds = [];\r\n this.addingResponse = true;\r\n }\r\n\r\n public delete(): void {\r\n this.commentService.deleteComment(this.processId, this.comment.id).then(() => {\r\n this.comment.commentStatus = Wars.Domain.Model.Codes.Enums.CommentStatus.Deleted;\r\n });\r\n }\r\n\r\n public allowDelete(): boolean {\r\n if (this.comment && this.comment.commentStatus === Wars.Domain.Model.Codes.Enums.CommentStatus.Deleted)\r\n return false;\r\n\r\n if (this.commentThreadSection) {\r\n if (this.commentThreadSection.canDelete) {\r\n return true;\r\n }\r\n\r\n if (this.commentThreadSection.canDeleteOwnComment &&\r\n this.comment.lastUpdateUserId === this.userService.getCurrentUser().userId) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public saveResponse(): void {\r\n if (this.comment.commentType !== Wars.Domain.Model.Codes.Enums.CommentType.State) {\r\n\r\n var commentDto: Wars.Domain.Model.Dtos.CommentDto = {\r\n comment: this.newResponse,\r\n documentIds: this.newResponseDocIds,\r\n processId: this.processId,\r\n manageSectionUniqueId: this.manageSectionUniqueId,\r\n commentDate: this.commentDate,\r\n parentId: this.comment.id\r\n };\r\n\r\n this.commentService.createNewCommentThreadEntry(commentDto).then(\r\n (commentThread) => {\r\n this.comment.myCommentResponses.push(commentThread);\r\n if (this.newResponseDocIds && this.process) {\r\n this.processDocumentService.updateManageDocumentSections(this.process);\r\n }\r\n });\r\n } else {\r\n var commentDto: Wars.Domain.Model.Dtos.CommentDto = {\r\n comment: this.newResponse,\r\n documentIds: this.newResponseDocIds,\r\n processId: this.processId,\r\n manageSectionUniqueId: this.manageSectionUniqueId,\r\n commentDate: this.commentDate,\r\n parentId: this.comment.id\r\n };\r\n\r\n\r\n this.commentService.createNewUserActionCommentReply(commentDto).then(\r\n (commentThread) => {\r\n this.comment.myCommentResponses.push(commentThread);\r\n });\r\n }\r\n\r\n this.newResponse = undefined;\r\n this.addingResponse = false;\r\n }\r\n\r\n public cancelResponse(): void {\r\n this.newResponse = undefined;\r\n this.addingResponse = false;\r\n }\r\n\r\n public documentUpdated(model: models.FileUploadModel): void {\r\n this.newResponseDocIds = Enumerable.from(model.documents).select(i => i.id).toArray();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('CommentThread', []);","/// \r\n\r\nmodule warsApp.directives {\r\n export interface ICommentThreadConfigurationScope extends ng.IScope {\r\n processConfigurationId: string;\r\n openCanCommentSecurityMatrix: any;\r\n openCanDeleteSecurityMatrix: any;\r\n openCanViewDeleteSecurityMatrix: () => void;\r\n emailConfigurations: Wars.Domain.Model.EmailConfiguration[];\r\n reviewConfigurations: Wars.Domain.Model.Reviews.ReviewConfiguration[];\r\n configuration:Wars.Domain.Model.CommentThreadConfiguration;\r\n save: any;\r\n }\r\n\r\n export class CommentThreadConfiguration implements IDirective {\r\n public link($scope: IManageCommentThreadScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/commentThreadConfiguration.html\";\r\n public controller = [\r\n \"$scope\", \"securityMatrixService\", \"emailConfigurationService\", \"reviewConfigurationService\", \"systemLevelService\", CommentThreadConfigurationController\r\n ];\r\n public controllerAs = \"controller\";\r\n public restrict: string = \"E\";\r\n public scope: any = {\r\n configuration: \"=\",\r\n processConfigurationId: \"=\"\r\n };\r\n }\r\n\r\n export class CommentThreadConfigurationController {\r\n\r\n constructor(\r\n private scope: ICommentThreadConfigurationScope,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private emailConfigurationService: services.EmailConfigurationService,\r\n private reviewConfigurationService: services.ReviewConfigurationService,\r\n private systemLevelService: services.SystemLevelService) {\r\n\r\n scope.openCanCommentSecurityMatrix = () => this.openCanCommentSecurityMatrix();\r\n scope.openCanDeleteSecurityMatrix = () => this.openCanDeleteSecurityMatrix();\r\n scope.openCanViewDeleteSecurityMatrix = () => this.openCanViewDeleteSecurityMatrix();\r\n scope.save = () => this.save();\r\n\r\n emailConfigurationService.getAllEmailConfigurationsByProcessId(this.scope.processConfigurationId)\r\n .then(e => {\r\n this.scope.emailConfigurations = e;\r\n this.systemLevelService.getSystemEmailConfigurations().then(system => {\r\n this.scope.emailConfigurations.addRange(system.myEmailConfigurations);\r\n });\r\n });\r\n\r\n reviewConfigurationService.getReviewConfigurations(this.scope.processConfigurationId)\r\n .then(r => {\r\n this.scope.reviewConfigurations = r;\r\n });\r\n }\r\n\r\n private openCanCommentSecurityMatrix() {\r\n this.securityMatrixService.openSecurityMatrixModal(this.scope.configuration.canCommentSecurityMatrix, this.scope.processConfigurationId);\r\n }\r\n\r\n private openCanDeleteSecurityMatrix() {\r\n this.securityMatrixService.openSecurityMatrixModal(this.scope.configuration.canDeleteSecurityMatrix, this.scope.processConfigurationId);\r\n }\r\n\r\n private openCanViewDeleteSecurityMatrix() {\r\n this.securityMatrixService.openSecurityMatrixModal(this.scope.configuration.canViewDeletedCommentsSecurityMatrix, this.scope.processConfigurationId);\r\n }\r\n\r\n private save() {\r\n this.securityMatrixService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('CommentThreadConfiguration', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IConditionEditorScope extends ng.IScope {\r\n model: ConditionEditorModel;\r\n hidename: boolean;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n condition: Wars.Domain.Model.Conditions.Condition;\r\n getSelectedNode: (data: models.TreeConfigurationItem) => void;\r\n }\r\n\r\n export class ConditionEditor implements IDirective {\r\n public link($scope: IConditionEditorScope, element: JQuery, attrs: ng.IAttributes, controller: ConditionEditorController) {\r\n //var s = $scope;\r\n //$scope.model = new ConditionEditorModel(s.hidename,s.processConfiguration);\r\n }\r\n public templateUrl = './app/views/directives/conditionEditor.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', '$q', 'conditionService', 'tagService', \"growl\", \"treeService\", ConditionEditorController];\r\n public controllerAs = 'controller'; \r\n public scope: any = {\r\n processConfiguration: \"=\",\r\n condition: \"=\",\r\n hidename: \"=\"\r\n };\r\n }\r\n\r\n declare var _conditionEditorModelSelf: any;\r\n\r\n export class ConditionEditorModel {\r\n public tinyMceOptions: any;\r\n public treeData: any;\r\n public condition: Wars.Domain.Model.Conditions.Condition;\r\n public showAdvancedEditor: boolean;\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n public excludeItem: models.TreeConfigurationItem;\r\n public hidename: boolean = false;\r\n public isReversingJavascript = false;\r\n public tags: string[];\r\n public conditionTags: string[];\r\n public $q: ng.IQService;\r\n public currentTreeItem: models.TreeConfigurationItem;\r\n\r\n constructor(\r\n condition:Wars.Domain.Model.Conditions.Condition,\r\n hideName: boolean,\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration,\r\n private conditionService: services.ConditionService,\r\n private tagService: services.TagService,\r\n private growlService: angular.growl.IGrowlService,\r\n private treeService: services.TreeService,\r\n $q: ng.IQService)\r\n {\r\n this.condition = condition;\r\n _conditionEditorModelSelf = this;\r\n this.hidename = hideName;\r\n this.processConfiguration = processConfiguration;\r\n this.excludeItem = new models.TreeConfigurationItem();\r\n this.excludeItem.conditionId = this.condition.id;\r\n this.$q = $q;\r\n\r\n this.tinyMceOptions = {\r\n format: 'raw',\r\n menubar: false,\r\n height: 50,\r\n plugins: \"noneditable, image\",\r\n content_css: \"content/mce.css\",\r\n toolbar1:\r\n 'insertfield | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent',\r\n relative_urls: false,\r\n remove_script_host: false,\r\n document_base_url: localStorage.getItem('baseUrl'),\r\n setup: (editor) => {\r\n editor.addButton('insertfield',\r\n {\r\n text: 'Insert Field',\r\n icon: false,\r\n onclick: () => {\r\n if (!this.currentTreeItem) {\r\n this.growlService.error('A field must be selected on the tree before you can insert a field.');\r\n } else {\r\n var treeItem = this.treeService.createTreeItemFromConfig(this.currentTreeItem,\r\n () => {\r\n treeItem.conditionBinding_id = this.condition.id;\r\n this.condition.bindings.push(treeItem);\r\n editor.insertContent(\"\" + this.currentTreeItem.text + \"\");\r\n });\r\n }\r\n }\r\n });\r\n }\r\n };\r\n }\r\n\r\n public showAdvanced() {\r\n this.showAdvancedEditor = true;\r\n }\r\n\r\n public showBasic() {\r\n this.showAdvancedEditor = false; \r\n }\r\n\r\n public resetCondition() {\r\n //this.condition.expressionParts = [];\r\n this.condition.javascript = '';\r\n //this.condition.setConditionDependencies(this.conditionService);\r\n }\r\n\r\n public aceLoaded(editor:AceAjax.Editor) {\r\n var langTools = ace.require(\"ace/ext/language_tools\");\r\n \r\n var processCompleter = {\r\n getCompletions: function (editor, session, pos, prefix, callback) {\r\n if (prefix.startsWith(\"a\")) {\r\n callback(null, [{ name: 'process', value: 'process', score: 300, meta: \"App\" }]);\r\n }\r\n else {\r\n callback(null, []);\r\n }\r\n }\r\n }\r\n\r\n var processCompleter2 = {\r\n getCompletions: function (editor, session, pos, prefix, callback) {\r\n if (session.getLine(pos.row).substr(pos.column - 12 + prefix.length, 12) == \"process.\") {\r\n var uniqueNames = Wars.Domain.Model.ProcessConfigurationUtilities.GetFieldUniqueNames(_conditionEditorModelSelf.processConfiguration);\r\n\r\n if (prefix.length === 0) {\r\n let result = uniqueNames.select(s => {return {\r\n name: s,\r\n value:s,\r\n score:300,\r\n meta:\"fields\"\r\n }\r\n });\r\n\r\n callback(null, result.toArray());\r\n } else {\r\n let result = uniqueNames.where(s=>s.indexOf(pos) === 0).select(s => {\r\n return {\r\n name: s,\r\n value: s,\r\n score: 300,\r\n meta: \"fields\"\r\n }\r\n });\r\n\r\n callback(null, result.toArray());\r\n }\r\n } else {\r\n callback(null, []);\r\n }\r\n }\r\n }\r\n \r\n langTools.addCompleter(processCompleter);\r\n langTools.addCompleter(processCompleter2);\r\n }\r\n\r\n public addTag(tag) {\r\n var newTag = this.tagService.createTag();\r\n newTag.tagName = tag.text;\r\n newTag.tagType = Wars.Domain.Model.Codes.Enums.TagType.Condition;\r\n newTag.condition_id = this.condition.id;\r\n newTag.calculation_id = null;\r\n newTag.queryConfiguration_id = null;\r\n newTag.myCondition = this.condition;\r\n\r\n this.condition.tags.push(newTag);\r\n }\r\n\r\n public removeTag(tag) {\r\n this.condition.tags.forEach(t => {\r\n if (t.tagName === tag.text) {\r\n t.entityAspect.setDeleted();\r\n }\r\n });\r\n }\r\n\r\n public searchTags(query: string) {\r\n var queryLength = query.length;\r\n var deferred = this.$q.defer();\r\n var returnTags = Enumerable.from(this.conditionTags)\r\n .where(i => i.substring(0, queryLength) === query)\r\n .toArray();\r\n deferred.resolve(returnTags);\r\n return deferred.promise;\r\n }\r\n }\r\n\r\n export class ConditionEditorController implements IController {\r\n private scope: IConditionEditorScope;\r\n private $q: ng.IQService;\r\n\r\n constructor(\r\n private $scope: IConditionEditorScope,\r\n $q: ng.IQService,\r\n conditionService: services.ConditionService,\r\n tagService: services.TagService,\r\n growlService: angular.growl.IGrowlService,\r\n treeService: services.TreeService)\r\n {\r\n $scope.model = new ConditionEditorModel(\r\n $scope.condition,\r\n $scope.hidename,\r\n $scope.processConfiguration,\r\n conditionService,\r\n tagService,\r\n growlService,\r\n treeService,\r\n $q);\r\n $scope.model.condition.entityAspect.loadNavigationProperty(\"expression\");\r\n\r\n $scope.model.conditionTags = [];\r\n tagService.getTagsLike(Wars.Domain.Model.Codes.Enums.TagType.Condition)\r\n .then(result => {\r\n $scope.model.conditionTags = Enumerable.from(result).select(i => i.tagName).distinct().toArray();\r\n });\r\n\r\n $scope.$watch(\"condition\", (newValue) => {\r\n $scope.model.condition = newValue;\r\n $scope.model.tags = [];\r\n $scope.model.condition.tags.forEach(t => {\r\n $scope.model.tags.push(t.tagName);\r\n });\r\n });\r\n\r\n $scope.getSelectedNode = (data: models.TreeConfigurationItem) => this.getSelectedNode(data);\r\n }\r\n\r\n private getSelectedNode(data: models.TreeConfigurationItem): void {\r\n this.$scope.model.currentTreeItem = data;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ConditionEditor', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export class ConfigurationFileUpload implements IDirective {\r\n public controller = ['$scope', 'fileUploadDownloadService', ConfigurationFileUploadController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/configurationFileUpload.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n model: \"=\",\r\n documents: \"=\",\r\n documentsAllowed: \"=\",\r\n hideUpload: \"=\"\r\n };\r\n\r\n public link(scope: IConfigurationFileUploadScope,\r\n element: ng.IAugmentedJQuery,\r\n attrs: ng.IAttributes,\r\n controller: ConfigurationFileUploadController): void {\r\n }\r\n }\r\n\r\n export interface IConfigurationFileUploadScope extends ng.IScope {\r\n model: models.FileUploadModel;\r\n documents: Wars.Domain.Model.Dtos.DocumentDto[];\r\n uploadFiles(files: any): void;\r\n getFaClass(filename: string): string;\r\n acceptsText: string;\r\n }\r\n\r\n export class ConfigurationFileUploadController implements IController {\r\n private scope: IConfigurationFileUploadScope;\r\n private fileUploadDownloadService: services.FileUploadDownloadService;\r\n\r\n constructor($scope: IConfigurationFileUploadScope, fileUploadDownloadService: services.FileUploadDownloadService) {\r\n this.scope = $scope;\r\n this.scope.uploadFiles = (files: any) => this.uploadFiles(files);\r\n this.fileUploadDownloadService = fileUploadDownloadService;\r\n this.scope.acceptsText = \".gif,.jpeg,.jpg,.jpe,.tiff,.tif,.pdf,.doc,.docx,.xls,.xlsx,.txt,.dwg\";\r\n }\r\n\r\n private uploadFiles(files) {\r\n\r\n if (this.scope.model.processConfigId) {\r\n this.fileUploadDownloadService.uploadProcessLevelStaticFiles(files, this.scope.model).then((documentDtos) => { this.uploadCallback(documentDtos); });\r\n }\r\n else if (this.scope.model.systemLevelId) {\r\n this.fileUploadDownloadService.uploadSystemLevelStaticFiles(files, this.scope.model).then((documentDtos) => { this.uploadCallback(documentDtos); });\r\n } else {\r\n this.fileUploadDownloadService.uploadProcessLevelStaticFiles(files, this.scope.model).then((documentDtos) => { this.uploadCallback(documentDtos); });\r\n }\r\n }\r\n\r\n private uploadCallback(documentDtos: Wars.Domain.Model.Dtos.DocumentDto[]): void {\r\n if (documentDtos) {\r\n for (var i= 0; i < documentDtos.length; i++)\r\n {\r\n this.scope.documents.push(documentDtos[i]);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ConfigurationFileUpload', []);","angular.module(\"warsApp.directives\").directive('confirmationModal', ['$modal', function ($modal) {\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n title: '@',\r\n heading: '@',\r\n message: '@',\r\n open: '=',\r\n yesClick: '&',\r\n noClick: '&',\r\n size: '@'\r\n },\r\n link: function (scope, element, attrs) {\r\n\r\n var setDefaults = function () {\r\n if (!scope.title) { scope.title = \"Confirm Action\"; }\r\n if (!scope.message) { scope.message = \"Are you sure?\"; }\r\n if (!scope.size) { scope.size = \"sm\"; }\r\n };\r\n\r\n var openModal = function () {\r\n\r\n var modalInstance = $modal.open({\r\n templateUrl: './app/views/modals/confirmationModal.html',\r\n controller: 'confirmationModalController',\r\n backdrop: 'static',\r\n size: 'sm',\r\n resolve: {\r\n title: function () {\r\n return scope.title;\r\n },\r\n message: function () {\r\n return scope.message;\r\n },\r\n heading: function() {\r\n return scope.heading;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(\r\n function () {\r\n scope.open = false;\r\n if (scope.yesClick) {\r\n scope.yesClick();\r\n }\r\n },\r\n function () {\r\n scope.open = false;\r\n if (scope.noClick) {\r\n scope.noClick();\r\n }\r\n }\r\n );\r\n };\r\n\r\n setDefaults();\r\n\r\n scope.$watch(\"open\", function (newValue) {\r\n if (newValue) {\r\n openModal();\r\n }\r\n });\r\n }\r\n };\r\n}]);","angular.module(\"warsApp.directives\").directive('convertToNumber', ['$parse', function ($parse) {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, ngModel) {\r\n ngModel.$parsers.push(function (val) {\r\n return parseInt(val, 10);\r\n });\r\n ngModel.$formatters.push(function (val) {\r\n return '' + val;\r\n });\r\n }\r\n };\r\n}]);","angular.module(\"warsApp.directives\").directive('currencyInput', function() {\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n field: '='\r\n },\r\n replace: true,\r\n template: '',\r\n link: function(scope, element, attrs) {\r\n\r\n // Just in case this comes in bound as an integer, change to a string. This directive only deals with string values.\r\n if (scope.field) scope.field = scope.field.toString();\r\n\r\n $(element).bind('keyup', function (e) {\r\n var input = $(element[0]);\r\n var inputVal = input.val();\r\n\r\n if (scope.field === undefined || scope.field === null) return;\r\n\r\n //clearing left side zeros\r\n while (scope.field.charAt(0) == '0') {\r\n scope.field = scope.field.substr(1);\r\n }\r\n\r\n scope.field = scope.field.replace(/[^\\d.\\',']/g, '');\r\n\r\n var point = scope.field.indexOf(\".\");\r\n if (point >= 0) {\r\n scope.field = scope.field.slice(0, point + 3);\r\n }\r\n\r\n var decimalSplit = scope.field.split(\".\");\r\n var intPart = decimalSplit[0];\r\n var decPart = decimalSplit[1];\r\n\r\n intPart = intPart.replace(/[^\\d]/g, '');\r\n if (intPart.length > 3) {\r\n var intDiv = Math.floor(intPart.length / 3);\r\n while (intDiv > 0) {\r\n var lastComma = intPart.indexOf(\",\");\r\n if (lastComma < 0) {\r\n lastComma = intPart.length;\r\n }\r\n\r\n if (lastComma - 3 > 0) {\r\n\r\n intPart = intPart.splice(lastComma - 3, 0, \",\");\r\n }\r\n intDiv--;\r\n }\r\n }\r\n\r\n if (decPart === undefined) {\r\n decPart = \"\";\r\n } else {\r\n decPart = \".\" + decPart;\r\n }\r\n var res = intPart + decPart;\r\n\r\n scope.$apply(function() { scope.field = res });\r\n });\r\n }\r\n }\r\n});","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IConditionBlockDocumentationScope extends ng.IScope {\r\n conditionWorkflowBlock: models.ConditionWorkflowBlock,\r\n conditions: Wars.Domain.Model.Conditions.Condition[]\r\n condition: Wars.Domain.Model.Conditions.Condition\r\n }\r\n\r\n export class ConditionBlockDocumentation implements IDirective {\r\n public controller = ['$scope', ConditionBlockDocumentationController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentation/conditionBlock.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n conditionWorkflowBlock: '=',\r\n conditions: '=',\r\n };\r\n\r\n public link(scope: IConditionBlockDocumentationScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: ConditionBlockDocumentationController): void {\r\n }\r\n }\r\n\r\n export class ConditionBlockDocumentationController implements IController {\r\n private $scope: IConditionBlockDocumentationScope;\r\n\r\n constructor($scope: IConditionBlockDocumentationScope) {\r\n this.$scope = $scope;\r\n\r\n this.$scope.$watch(\"conditionWorkflowBlock\", () => {\r\n this.setCondition();\r\n });\r\n\r\n this.$scope.$watch(\"conditions\", () => {\r\n this.setCondition();\r\n });\r\n }\r\n\r\n private setCondition() : void {\r\n if (!this.$scope.conditionWorkflowBlock ||\r\n this.$scope.conditionWorkflowBlock.conditionDto === undefined ||\r\n this.$scope.conditionWorkflowBlock.conditionDto.conditionId === undefined ||\r\n this.$scope.conditions === undefined)\r\n {\r\n this.$scope.condition = undefined;\r\n return;\r\n }\r\n var conditionId = this.$scope.conditionWorkflowBlock.conditionDto.conditionId;\r\n this.$scope.condition = Enumerable.from(this.$scope.conditions).singleOrDefault(i => i.id == conditionId)\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ConditionBlockDocumentation', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IConditionDocumentationScope extends ng.IScope {\r\n condition: Wars.Domain.Model.Conditions.Condition\r\n }\r\n\r\n export class ConditionDocumentation implements IDirective {\r\n public controller = ['$scope', ConditionDocumentationController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentation/condition.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n condition: '=',\r\n };\r\n\r\n public link(scope: IConditionDocumentationScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: ConditionDocumentationController): void {\r\n }\r\n }\r\n\r\n export class ConditionDocumentationController implements IController {\r\n private $scope: IConditionDocumentationScope;\r\n\r\n constructor($scope: IConditionDocumentationScope) {\r\n this.$scope = $scope;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ConditionDocumentation', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface ICreatePdfActionBlockDocumentationScope extends ng.IScope {\r\n workflowBlock: models.CreatePdfWorkflowBlock,\r\n pdfBindings: Wars.Domain.Model.PdfBinding[]\r\n pdfBinding: Wars.Domain.Model.PdfBinding\r\n }\r\n\r\n export class CreatePdfActionBlockDocumentation implements IDirective {\r\n public controller = ['$scope', CreatePdfActionBlockDocumentationController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentation/createPdfActionBlock.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n workflowBlock: '=',\r\n pdfBindings: '=',\r\n };\r\n\r\n public link(scope: ICreatePdfActionBlockDocumentationScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: CreatePdfActionBlockDocumentationController): void {\r\n }\r\n }\r\n\r\n export class CreatePdfActionBlockDocumentationController implements IController {\r\n private $scope: ICreatePdfActionBlockDocumentationScope;\r\n\r\n constructor($scope: ICreatePdfActionBlockDocumentationScope) {\r\n this.$scope = $scope;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('CreatePdfActionBlockDocumentation', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IPdfSectionDocumentationScope extends ng.IScope {\r\n pdfSection: Wars.Domain.Model.Dtos.PdfSectionDto;\r\n pdfBindings: Wars.Domain.Model.PdfBinding[];\r\n pdfBinding: Wars.Domain.Model.PdfBinding;\r\n isPdfBinding(): boolean;\r\n isStaticDocument(): boolean;\r\n isUserSelectedDocuments(): boolean;\r\n }\r\n\r\n export class PdfSectionDocumentation implements IDirective {\r\n public controller = ['$scope', PdfSectionDocumentationController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentation/pdfSection.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n pdfSection: '=',\r\n pdfBindings: '=',\r\n };\r\n\r\n public link(scope: IPdfSectionDocumentationScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: PdfSectionDocumentationController): void {\r\n }\r\n }\r\n\r\n export class PdfSectionDocumentationController implements IController {\r\n private $scope: IPdfSectionDocumentationScope;\r\n\r\n constructor($scope: IPdfSectionDocumentationScope) {\r\n this.$scope = $scope;\r\n\r\n this.$scope.$watch(\"pdfSection\", () => {\r\n this.setPdfBinding();\r\n });\r\n\r\n this.$scope.$watch(\"pdfBindings\", () => {\r\n this.setPdfBinding();\r\n });\r\n\r\n this.$scope.isPdfBinding = () => this.isPdfBinding();\r\n this.$scope.isStaticDocument = () => this.isStaticDocument();\r\n this.$scope.isUserSelectedDocuments = () => this.isUserSelectedDocuments();\r\n }\r\n\r\n private setPdfBinding() : void {\r\n if (!this.$scope.pdfSection ||\r\n this.$scope.pdfSection.pdfBinding_id === undefined ||\r\n this.$scope.pdfBindings === undefined)\r\n {\r\n this.$scope.pdfBinding = undefined;\r\n return;\r\n }\r\n var pdfBindingId = this.$scope.pdfSection.pdfBinding_id;\r\n this.$scope.pdfBinding = Enumerable.from(this.$scope.pdfBindings).singleOrDefault(i => i.id == pdfBindingId)\r\n }\r\n\r\n private isPdfBinding(): boolean {\r\n return this.$scope.pdfSection.sectionType === Wars.Domain.Model.Codes.Enums.PdfSectionType.PdfBinding;\r\n }\r\n\r\n private isStaticDocument(): boolean {\r\n return this.$scope.pdfSection.sectionType === Wars.Domain.Model.Codes.Enums.PdfSectionType.StaticDocument;\r\n }\r\n\r\n private isUserSelectedDocuments(): boolean {\r\n return this.$scope.pdfSection.sectionType === Wars.Domain.Model.Codes.Enums.PdfSectionType.UserSelectedDocuments;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('PdfSectionDocumentation', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface ISendEmailActionBlockDocumentationScope extends ng.IScope {\r\n workflowBlock: models.SendEmailWorkflowBlock,\r\n workflowEmailConfigurations: Wars.Domain.Model.EmailConfiguration[]\r\n emailConfiguration: Wars.Domain.Model.EmailConfiguration\r\n }\r\n\r\n export class SendEmailActionBlockDocumentation implements IDirective {\r\n public controller = ['$scope', SendEmailActionBlockDocumentationController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentation/sendEmailActionBlock.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n workflowBlock: '=',\r\n workflowEmailConfigurations: '=',\r\n };\r\n\r\n public link(scope: ISendEmailActionBlockDocumentationScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: SendEmailActionBlockDocumentationController): void {\r\n }\r\n }\r\n\r\n export class SendEmailActionBlockDocumentationController implements IController {\r\n private $scope: ISendEmailActionBlockDocumentationScope;\r\n\r\n constructor($scope: ISendEmailActionBlockDocumentationScope) {\r\n this.$scope = $scope;\r\n\r\n this.$scope.$watch(\"workflowBlock\", () => {\r\n this.setEmailConfiguration();\r\n });\r\n\r\n this.$scope.$watch(\"workflowEmailConfigurations\", () => {\r\n this.setEmailConfiguration();\r\n });\r\n }\r\n\r\n private setEmailConfiguration() : void {\r\n if (!this.$scope.workflowBlock ||\r\n this.$scope.workflowBlock.sendEmailDto === undefined ||\r\n this.$scope.workflowBlock.sendEmailDto.emailConfigurationId === undefined ||\r\n this.$scope.workflowEmailConfigurations === undefined)\r\n {\r\n this.$scope.emailConfiguration = undefined;\r\n return;\r\n }\r\n var emailConfigurationId = this.$scope.workflowBlock.sendEmailDto.emailConfigurationId;\r\n this.$scope.emailConfiguration = Enumerable.from(this.$scope.workflowEmailConfigurations).singleOrDefault(i => i.id == emailConfigurationId)\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('SendEmailActionBlockDocumentation', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IStateBlockDocumentationScope extends ng.IScope {\r\n state: models.StateWorkflowBlock\r\n }\r\n\r\n export class StateBlockDocumentation implements IDirective {\r\n public controller = ['$scope', StateBlockDocumentationController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentation/stateBlock.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n state: '=',\r\n };\r\n\r\n public link(scope: IStateBlockDocumentationScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: StateBlockDocumentationController): void {\r\n }\r\n }\r\n\r\n export class StateBlockDocumentationController implements IController {\r\n private $scope: IStateBlockDocumentationScope;\r\n\r\n constructor($scope: IStateBlockDocumentationScope) {\r\n this.$scope = $scope;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('StateBlockDocumentation', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IUserActionBlockDocumentationScope extends ng.IScope {\r\n userAction: models.UserActionWorkflowBlock\r\n }\r\n\r\n export class UserActionBlockDocumentation implements IDirective {\r\n public controller = ['$scope', UserActionBlockDocumentationController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentation/userActionBlock.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n userAction: '=',\r\n };\r\n\r\n public link(scope: IUserActionBlockDocumentationScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: UserActionBlockDocumentationController): void {\r\n }\r\n }\r\n\r\n export class UserActionBlockDocumentationController implements IController {\r\n private $scope: IUserActionBlockDocumentationScope;\r\n\r\n constructor($scope: IUserActionBlockDocumentationScope) {\r\n this.$scope = $scope;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('UserActionBlockDocumentation', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IValidateBlockDocumentationScope extends ng.IScope {\r\n workflowBlock: models.ValidateWorkflowBlock,\r\n conditions: Wars.Domain.Model.Conditions.Condition[]\r\n validateConditions: Wars.Domain.Model.Conditions.Condition[]\r\n }\r\n\r\n export class ValidateBlockDocumentation implements IDirective {\r\n public controller = ['$scope', ValidateBlockDocumentationController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentation/validateBlock.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n workflowBlock: '=',\r\n conditions: '=',\r\n };\r\n\r\n public link(scope: IValidateBlockDocumentationScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: ValidateBlockDocumentationController): void {\r\n }\r\n }\r\n\r\n export class ValidateBlockDocumentationController implements IController {\r\n private $scope: IValidateBlockDocumentationScope;\r\n\r\n constructor($scope: IValidateBlockDocumentationScope) {\r\n this.$scope = $scope;\r\n\r\n this.$scope.$watch(\"workflowBlock\", () => {\r\n this.setValidateConditions();\r\n });\r\n\r\n this.$scope.$watch(\"conditions\", () => {\r\n this.setValidateConditions();\r\n });\r\n }\r\n\r\n private setValidateConditions() : void {\r\n if (!this.$scope.workflowBlock ||\r\n this.$scope.workflowBlock.validateDto === undefined ||\r\n this.$scope.workflowBlock.validateDto.conditionIds === undefined ||\r\n this.$scope.conditions === undefined)\r\n {\r\n this.$scope.validateConditions = [];\r\n return;\r\n }\r\n\r\n var validationConditionIds = this.$scope.workflowBlock.validateDto.conditionIds;\r\n this.$scope.validateConditions = Enumerable.from(this.$scope.conditions)\r\n .where(i => validationConditionIds.indexOf(i.id) !== -1)\r\n .toArray();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ValidateBlockDocumentation', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export class DocumentConfiguration implements IDirective {\r\n public controller = [\"$scope\", \"documentService\", \"securityMatrixService\", DocumentConfigurationController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentConfiguration.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n documentConfiguration: \"=\",\r\n systemDocumentConfiguration: \"=\",\r\n processConfigurationId: \"=\",\r\n allowMultipleFiles: \"=\"\r\n };\r\n\r\n public link(scope: IDocumentConfigurationScope,\r\n element: ng.IAugmentedJQuery,\r\n attrs: ng.IAttributes,\r\n controller: DocumentConfigurationController): void {\r\n }\r\n }\r\n\r\n export interface IDocumentConfigurationScope extends ng.IScope {\r\n documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration;\r\n systemDocumentConfiguration: Wars.Domain.Model.Documents.SystemDocumentConfiguration;\r\n processConfigurationId: string;\r\n allowMultipleFiles: boolean;\r\n save(): void;\r\n selectAllDocumentTypes(): void;\r\n unSelectAllDocumentTypes(): void;\r\n documentSecurityChanged(): void;\r\n }\r\n\r\n export class DocumentConfigurationController implements IController {\r\n\r\n private isSystemLevel: boolean;\r\n\r\n constructor(\r\n private $scope: IDocumentConfigurationScope,\r\n private documentService: services.DocumentService,\r\n private securityMatrixService: services.SecurityMatrixService)\r\n {\r\n this.createMissingAvailableDocuments();\r\n\r\n this.$scope.save = () => this.save();\r\n this.$scope.selectAllDocumentTypes = () => this.selectAllDocumentTypes();\r\n this.$scope.unSelectAllDocumentTypes = () => this.unSelectAllDocumentTypes();\r\n this.$scope.documentSecurityChanged = () => this.documentSecurityChanged();\r\n\r\n this.$scope.$watch(\"documentConfiguration\", () => {\r\n this.createMissingAvailableDocuments();\r\n this.isSystemLevel = this.$scope.documentConfiguration.systemLevel_id !== null;\r\n });\r\n }\r\n\r\n private createMissingAvailableDocuments(): void {\r\n for (var i = 0; i < this.$scope.systemDocumentConfiguration.documentTypeCodeGroup.codes.length; i++) {\r\n var currentSystemCode = this.$scope.systemDocumentConfiguration.documentTypeCodeGroup.codes[i];\r\n if (!currentSystemCode.isActive) continue;\r\n if (!Enumerable.from(this.$scope.documentConfiguration.myAvailableDocumentTypes).any(i => i.systemCode_id === currentSystemCode.id)) {\r\n var newAvailableDocType = this.documentService.createAvailableDocumentType(this.$scope.documentConfiguration, currentSystemCode);\r\n this.$scope.documentConfiguration.myAvailableDocumentTypes.push(newAvailableDocType);\r\n }\r\n }\r\n }\r\n\r\n private selectAllDocumentTypes(): void {\r\n for (var i = 0; i < this.$scope.documentConfiguration.myAvailableDocumentTypes.length; i++) {\r\n this.$scope.documentConfiguration.myAvailableDocumentTypes[i].isAvailable = true;\r\n }\r\n this.save();\r\n }\r\n\r\n private unSelectAllDocumentTypes(): void {\r\n for (var i = 0; i < this.$scope.documentConfiguration.myAvailableDocumentTypes.length; i++) {\r\n this.$scope.documentConfiguration.myAvailableDocumentTypes[i].isAvailable = false;\r\n }\r\n this.save();\r\n }\r\n\r\n public documentSecurityChanged() {\r\n if (!this.$scope.documentConfiguration.documentSecurity) return;\r\n\r\n switch (this.$scope.documentConfiguration.documentSecurity) {\r\n case Wars.Domain.Model.Codes.Enums.DocumentSecurity.NotSecured:\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.DocumentSecurity.CanBeMarkedSecured:\r\n if (!this.$scope.documentConfiguration.canSecureDocumentSecurityMatrix) {\r\n this.$scope.documentConfiguration.canSecureDocumentSecurityMatrix = this.securityMatrixService.createSecurityMatrix(this.isSystemLevel);\r\n }\r\n if (!this.$scope.documentConfiguration.canDownloadSecureDocumentSecurityMatrix) {\r\n this.$scope.documentConfiguration.canDownloadSecureDocumentSecurityMatrix = this.securityMatrixService.createSecurityMatrix(this.isSystemLevel);\r\n }\r\n if (!this.$scope.documentConfiguration.securedDocumentLabel) {\r\n this.$scope.documentConfiguration.securedDocumentLabel = \"Is Document Secured\";\r\n }\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.DocumentSecurity.IsSecured:\r\n if (!this.$scope.documentConfiguration.canDownloadSecureDocumentSecurityMatrix) {\r\n this.$scope.documentConfiguration.canDownloadSecureDocumentSecurityMatrix = this.securityMatrixService.createSecurityMatrix(this.isSystemLevel);\r\n }\r\n break;\r\n\r\n default:\r\n }\r\n this.save();\r\n }\r\n\r\n private save(): void {\r\n this.documentService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('DocumentConfiguration', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IDocumentConfigurationComponentScope extends ng.IScope {\r\n entityWithConfig: any;\r\n docConfigTypePropertyName: string;\r\n docConfigPropertyName: string;\r\n docConfigIdPropertyName: string;\r\n processConfigId: string;\r\n allowMultipleFiles: boolean;\r\n\r\n documentConfigurationTypeChanged: () => void;\r\n existingDocConfigChanged: () => void;\r\n\r\n systemDocumentConfiguration: Wars.Domain.Model.Documents.SystemDocumentConfiguration;\r\n documentConfigurations: Wars.Domain.Model.Documents.DocumentConfiguration[];\r\n docConfigTypeInternal: number;\r\n }\r\n\r\n export class DocumentConfigurationComponent implements IDirective {\r\n public controller = [\"$scope\", \"systemLevelService\", \"documentService\", DocumentConfigurationComponentController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/documentConfigurationComponent.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n entityWithConfig: \"=\",\r\n docConfigTypePropertyName: \"@\",\r\n docConfigPropertyName: \"@\",\r\n docConfigIdPropertyName: \"@\",\r\n processConfigId: \"=\",\r\n allowMultipleFiles: \"=\"\r\n };\r\n\r\n public link(scope: IDocumentConfigurationScope,\r\n element: ng.IAugmentedJQuery,\r\n attrs: ng.IAttributes,\r\n controller: DocumentConfigurationController): void {\r\n }\r\n }\r\n\r\n export class DocumentConfigurationComponentController implements IController {\r\n\r\n constructor(\r\n private $scope: IDocumentConfigurationComponentScope,\r\n private systemLevelService: services.SystemLevelService,\r\n private documentService: services.DocumentService)\r\n {\r\n this.$scope.documentConfigurations = [];\r\n systemLevelService.getSystemLevelDocumentConfiguration().then(\r\n (sysLevel) => {\r\n this.$scope.systemDocumentConfiguration = sysLevel.systemDocumentConfiguration;\r\n this.$scope.documentConfigurations = this.$scope.documentConfigurations.concat(sysLevel.myDocumentConfigurations);\r\n });\r\n\r\n if (this.$scope.processConfigId) {\r\n documentService.getDocumentConfigs(this.$scope.processConfigId).then(\r\n (docConfigs) => {\r\n this.$scope.documentConfigurations = this.$scope.documentConfigurations.concat(docConfigs);\r\n });\r\n }\r\n\r\n this.$scope.documentConfigurationTypeChanged = () => this.documentConfigurationTypeChanged();\r\n this.$scope.existingDocConfigChanged = () => this.existingDocConfigChanged();\r\n\r\n this.$scope.docConfigTypeInternal = this.getDocConfigType();\r\n }\r\n\r\n private getDocConfigType(): number {\r\n if (!this.$scope.entityWithConfig) return undefined;\r\n return this.$scope.entityWithConfig[this.$scope.docConfigTypePropertyName];\r\n }\r\n\r\n private getDocumentConfig(): Wars.Domain.Model.Documents.DocumentConfiguration {\r\n if (!this.$scope.entityWithConfig) return undefined;\r\n return this.$scope.entityWithConfig[this.$scope.docConfigPropertyName];\r\n }\r\n\r\n private documentConfigurationTypeChanged(): void {\r\n if (this.$scope.docConfigTypeInternal === \"1\") this.$scope.docConfigTypeInternal = 1;\r\n if (this.$scope.docConfigTypeInternal === \"2\") this.$scope.docConfigTypeInternal= 2;\r\n\r\n if (this.$scope.docConfigTypeInternal === Wars.Domain.Model.Codes.Enums.DocumentConfigType.Custom) {\r\n var documentConfig = this.getDocumentConfig();\r\n if (!documentConfig || documentConfig.processConfiguration_id || documentConfig.systemLevel_id) {\r\n var newDocConfig = this.documentService.createDocumentConfig();\r\n this.systemLevelService.saveAllChanges(\r\n () => {\r\n this.$scope.entityWithConfig[this.$scope.docConfigTypePropertyName] = this.$scope.docConfigTypeInternal;\r\n this.$scope.entityWithConfig[this.$scope.docConfigPropertyName] = newDocConfig;\r\n this.$scope.entityWithConfig[this.$scope.docConfigIdPropertyName] = newDocConfig.id;\r\n });\r\n }\r\n }\r\n else if (this.$scope.docConfigTypeInternal === Wars.Domain.Model.Codes.Enums.DocumentConfigType.ReUsable) {\r\n this.$scope.entityWithConfig[this.$scope.docConfigTypePropertyName] = this.$scope.docConfigTypeInternal;\r\n this.$scope.entityWithConfig[this.$scope.docConfigPropertyName] = undefined;\r\n this.$scope.entityWithConfig[this.$scope.docConfigIdPropertyName] = undefined;\r\n }\r\n }\r\n\r\n private existingDocConfigChanged(): void {\r\n if (this.getDocConfigType() === Wars.Domain.Model.Codes.Enums.DocumentConfigType.ReUsable) {\r\n this.systemLevelService.saveAllChanges();\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('DocumentConfigurationComponent', []);","angular.module(\"warsApp.directives\").directive('dragOver', ['$parse', function ($parse) {\r\n return function (scope, element, attrs) {\r\n element.bind(\"dragover\", function (event) {\r\n var attrHandler = $parse(attrs['dragOver']);\r\n\r\n attrHandler(scope, { $event: event });\r\n\r\n event.preventDefault();\r\n });\r\n };\r\n}]);\r\n\r\nangular.module(\"warsApp.directives\").directive('dragLeave', ['$parse', function ($parse) {\r\n return function (scope, element, attrs) {\r\n element.bind(\"dragleave\", function (event) {\r\n var attrHandler = $parse(attrs['dragLeave']);\r\n\r\n scope.$apply(function () {\r\n attrHandler(scope, { $event: event });\r\n });\r\n\r\n event.preventDefault();\r\n });\r\n };\r\n}]);\r\n\r\nangular.module(\"warsApp.directives\").directive('dropOn', ['$parse', function ($parse) {\r\n return function (scope, element, attrs) {\r\n element.bind(\"drop\", function (event) {\r\n var attrHandler = $parse(attrs['dropOn']);\r\n\r\n scope.$apply(function () {\r\n attrHandler(scope, { $event: event });\r\n });\r\n\r\n event.preventDefault();\r\n });\r\n };\r\n}]);\r\n","angular.module(\"warsApp.directives\").directive('enterKeyTriggers', function () {\r\n return function (scope, element, attrs) {\r\n element.bind(\"keydown keypress\", function (event) {\r\n if (event.which === 13) {\r\n scope.$apply(function () {\r\n scope.$eval(attrs.enterKeyTriggers);\r\n });\r\n\r\n event.preventDefault();\r\n }\r\n });\r\n };\r\n});","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IEnumDropDownScope extends ng.IScope {\r\n model: number;\r\n enumName: string;\r\n defaultOption: models.EnumDropDownItem;\r\n context: models.EnumDropDownContext;\r\n change: any;\r\n disable: boolean;\r\n required: boolean;\r\n maintainOrder: boolean;\r\n\r\n defaultOptionInternal: models.EnumDropDownItem;\r\n options: models.EnumDropDownItem[];\r\n }\r\n\r\n export class EnumDropDown implements IDirective {\r\n public controller = ['$scope', '$timeout', 'applicationCodeService', EnumDropDownController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/dropDown.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n model: '=bind',\r\n enumName: '@',\r\n defaultOption: '=',\r\n context: '=',\r\n change: '&',\r\n disable: '=',\r\n required: '=',\r\n maintainOrder: '@' // Drop downs by default will be sorted by the EnumDropDownItem.text string unless this is true then whatever order they are listed in the enumeration will be used.\r\n };\r\n\r\n public link(scope: IEnumDropDownScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: EnumDropDownController): void {\r\n if (attrs.hasOwnProperty('selectDefaultOption') && (!attrs.hasOwnProperty('defaultOption') || attrs['defaultOption'] === undefined)) {\r\n scope.defaultOptionInternal = models.EnumDropDownItem.getDefaultSelectOption();\r\n }\r\n else if (attrs.hasOwnProperty('allDefaultOption') && (!attrs.hasOwnProperty('defaultOption') || attrs['defaultOption'] === undefined)) {\r\n scope.defaultOptionInternal = models.EnumDropDownItem.getDefaultAllOption();\r\n }\r\n else if (attrs.hasOwnProperty('defaultOption')) {\r\n scope.defaultOptionInternal = scope.defaultOption;\r\n }\r\n controller.initialize();\r\n }\r\n }\r\n\r\n export class EnumDropDownController implements IController {\r\n private $scope: IEnumDropDownScope;\r\n private $timeout: ng.ITimeoutService;\r\n private applicationCodeService: services.ApplicationCodeService;\r\n private codes: models.ApplicationCode[];\r\n\r\n constructor($scope: IEnumDropDownScope, $timeout: ng.ITimeoutService, applicationCodeService: services.ApplicationCodeService) {\r\n this.$scope = $scope;\r\n this.$timeout = $timeout;\r\n this.applicationCodeService = applicationCodeService;\r\n }\r\n\r\n public initialize(): void {\r\n if (this.$scope.model == undefined) this.$scope.model = null;\r\n this.getEnums();\r\n this.setUpWatches();\r\n }\r\n\r\n private setUpWatches() : void {\r\n this.$scope.$watch(\"model\", () => {\r\n this.change();\r\n });\r\n\r\n this.$scope.$watch(\"context\", newContext => {\r\n if (newContext) {\r\n this.getEnums();\r\n }\r\n }, true);\r\n }\r\n\r\n private getEnums() {\r\n var self: EnumDropDownController = this;\r\n if (!this.$scope.enumName) return;\r\n this.applicationCodeService.getApplicationCodesForEnum(this.$scope.enumName)\r\n .then((applicationCodes) => {\r\n self.$scope.options = self.applicationCodeService.buildEnumDropDownOptions(applicationCodes, self.$scope.maintainOrder, self.$scope.context, self.$scope.defaultOptionInternal);\r\n });\r\n }\r\n\r\n private change() {\r\n if (this.$scope.change()) {\r\n this.$timeout(() => { this.$scope.change()();}, 10);\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('EnumDropDown', []);","angular.module(\"warsApp.directives\").directive(\"excelExport\", [function () {\r\n return {\r\n restrict: \"A\",\r\n require: \"ngModel\",\r\n scope: {\r\n reportName: \"@\"\r\n },\r\n link: function (scope, element, attrs, ngModel) {\r\n $(element)\r\n .on(\"click\",\r\n function() {\r\n var reportData = ngModel.$modelValue;\r\n var rowIndex = 1;\r\n var j, k, l, m, n, o, cell;\r\n var ep = new ExcelPlus();\r\n //create file\r\n ep.createFile(scope.reportName);\r\n //write column headers\r\n var vals = [];\r\n for (j = 0; j < reportData.columns.length; j++) {\r\n var column = reportData.columns[j];\r\n if (column.variableType === 31) continue;\r\n vals.push(reportData.columns[j].name);\r\n }\r\n ep.writeRow(rowIndex, vals);\r\n rowIndex += 1;\r\n var shifts = [];\r\n for (j = 0; j < reportData.columns.length; j++) {\r\n shifts.push({\r\n rowspan: 1,\r\n aggregateInfo: \"\"\r\n });\r\n }\r\n //write rows\r\n for (j = 0; j < reportData.rows.length; j++) {\r\n vals = [];\r\n for (k = 0; k < reportData.rows[j].cells.length; k++) {\r\n if (shifts[k].rowspan === 1) break;\r\n if (shifts[k].aggregateInfo !== \"\") {\r\n vals.push(shifts[k].aggregateInfo);\r\n shifts[k].aggregateInfo = \"\";\r\n } else {\r\n vals.push(\"\");\r\n }\r\n shifts[k].rowspan -= 1;\r\n }\r\n for (k = 0; k < reportData.rows[j].cells.length; k++) {\r\n cell = reportData.rows[j].cells[k];\r\n if (vals.length === k) {\r\n if (shifts[k] != undefined) {\r\n shifts[k].rowspan = cell.rowspan;\r\n shifts[k].aggregateInfo = (cell.aggregateInfo !== null && cell.aggregateInfo !== undefined && cell.aggregateInfo !== \"\") ? cell.aggregateInfo : \"\";\r\n }\r\n }\r\n if (cell.isLink) continue;\r\n if (cell.variableType === 6) {\r\n vals.push(cell.value ? \"Yes\" : \"No\");\r\n } else if (cell.variableType === 3 || cell.variableType === 4 || cell.variableType === 5) {\r\n if (cell.value != undefined && cell.value != null && cell.value !== \"\") {\r\n vals.push(new Date(cell.value));\r\n } else {\r\n vals.push(\"\");\r\n }\r\n } else if (cell.value == null || cell.value == undefined) {\r\n vals.push(\"\");\r\n } else {\r\n vals.push(cell.value);\r\n }\r\n }\r\n ep.writeRow(rowIndex, vals);\r\n rowIndex += 1;\r\n //child tables\r\n for (l = 0; l < reportData.rows[j].tables.length; l++) {\r\n var table = reportData.rows[j].tables[l];\r\n if (table.name != undefined && table.name != null && table.name > \"\") {\r\n //table name\r\n vals = [];\r\n vals.push(\"\");\r\n vals.push(table.name);\r\n ep.writeRow(rowIndex, vals);\r\n rowIndex += 1;\r\n }\r\n //table header\r\n vals = [];\r\n vals.push(\"\");\r\n for (m = 0; m < table.columnList.columns.length; m++) {\r\n vals.push(table.columnList.columns[m].name);\r\n }\r\n ep.writeRow(rowIndex, vals);\r\n rowIndex += 1;\r\n //table data\r\n for (n = 0; n < table.rows.length; n++) {\r\n vals = [];\r\n vals.push(\"\");\r\n for (o = 0; o < table.rows[n].cells.length; o++) {\r\n cell = table.rows[n].cells[o];\r\n if (vals.length === k) {\r\n if (shifts[k] != undefined) {\r\n shifts[k].rowspan = cell.rowspan;\r\n shifts[k].aggregateInfo = (cell.aggregateInfo !== null && cell.aggregateInfo !== undefined && cell.aggregateInfo !== \"\") ? cell.aggregateInfo : \"\";\r\n }\r\n }\r\n if (cell.isLink) continue;\r\n if (cell.variableType === 6) {\r\n vals.push(cell.value ? \"Yes\" : \"No\");\r\n } else if (cell.variableType === 3 || cell.variableType === 4 || cell.variableType === 5) {\r\n if (cell.value != undefined && cell.value != null && cell.value !== \"\") {\r\n vals.push(new Date(cell.value));\r\n } else {\r\n vals.push(\"\");\r\n }\r\n } else if (cell.value == null || cell.value == undefined) {\r\n vals.push(\"\");\r\n } else {\r\n vals.push(cell.value);\r\n }\r\n }\r\n ep.writeRow(rowIndex, vals);\r\n rowIndex += 1;\r\n }\r\n }\r\n }\r\n //save blob\r\n ep.saveAs(scope.reportName + \".xlsx\");\r\n });\r\n }\r\n };\r\n}]);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IExpressionGroupScope extends ng.IScope {\r\n model: ExpressionGroupModel;\r\n }\r\n\r\n export class ExpressionGroup implements IDirective {\r\n public templateUrl = './app/views/directives/expressionGroup.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', '$compile', 'conditionService', ExpressionGroupController];\r\n public controllerAs = 'controller';\r\n public scope: any = {\r\n group: \"=\",\r\n isReadonly: \"=\",\r\n processConfigurationId:\"=\"\r\n };\r\n\r\n public link($scope: IExpressionGroupScope, element: JQuery, attrs: ng.IAttributes, controller: ExpressionGroupController) {\r\n controller.setElement(element);\r\n }\r\n }\r\n\r\n export class ExpressionGroupModel {\r\n public group: Wars.Domain.Model.Conditions.GroupExpression;\r\n\r\n constructor(\r\n private conditionService: services.ConditionService,\r\n private $compile: angular.ICompileService,\r\n private $scope,\r\n public isReadonly) {\r\n // Empty Constructor \r\n }\r\n\r\n public setGroup(group: Wars.Domain.Model.Conditions.GroupExpression, element: JQuery) {\r\n this.group = group;\r\n\r\n var template = '';\r\n var htmlToAppend = this.$compile(template)(this.$scope);\r\n var appendElement = element.find(\"div[data-append]\");\r\n appendElement.empty();\r\n //TODO: somehow find scope of inner-expression-group element and destroy to cleanup compilings - e.g. scope.$destroy();\r\n appendElement.append(htmlToAppend);\r\n\r\n if (group) {\r\n group.entityAspect.loadNavigationProperty(\"children\");\r\n }\r\n }\r\n\r\n public removePart(expression) {\r\n this.group.children.remove(expression);\r\n }\r\n\r\n private checkGroup() {\r\n\r\n }\r\n\r\n public addGroupExpression() {\r\n this.checkGroup();\r\n var newGroup = this.conditionService.createGroupExpression();\r\n this.group.children.push(newGroup);\r\n }\r\n\r\n private addGroup(newGroup: Wars.Domain.Model.Conditions.GroupExpression) {\r\n var element = document.createElement('inner-expression-group');\r\n element.setAttribute(\"expression\", \"expression\");\r\n element.setAttribute(\"ng-repeat\", \"expression in model.group.children\");\r\n var expressionGroup = angular.element(element);\r\n var el = this.$compile(expressionGroup)(this.$scope);\r\n\r\n var appendElement = document.getElementById(String(this.group.id));\r\n angular.element(appendElement).append(expressionGroup);\r\n }\r\n\r\n public addTreeItemToTreeItemExpression() {\r\n this.checkGroup();\r\n this.group.children.push(this.conditionService.createFieldExpression());\r\n }\r\n\r\n public addStepExpression() {\r\n this.checkGroup();\r\n this.group.children.push(this.conditionService.createStepExpression());\r\n }\r\n\r\n public addTreeItemToConstantExpression() {\r\n this.checkGroup();\r\n var expression = this.conditionService.createValueExpression();\r\n expression.comparsionOperator = 0;\r\n this.group.children.push(expression);\r\n }\r\n\r\n public getType(obj: Object) {\r\n var funcNameRegex = /function (.{1,})\\(/;\r\n var results = (funcNameRegex).exec((obj).constructor.toString());\r\n var returnObj = (results && results.length > 1) ? results[1] : \"\";\r\n var split = returnObj.split('_');\r\n\r\n return split[0];\r\n }\r\n\r\n\r\n public static getDragValue(): models.TreeConfigurationItem {\r\n return ProcessConfigurationTree.getDecodedTreeItem(true);\r\n }\r\n }\r\n\r\n export class ExpressionGroupController implements IController {\r\n\r\n private scope: IExpressionGroupScope;\r\n private element: JQuery;\r\n\r\n constructor(\r\n $scope: IExpressionGroupScope,\r\n $compile: angular.ICompileService,\r\n conditionService: services.ConditionService)\r\n {\r\n $scope.model = new ExpressionGroupModel(conditionService, $compile, $scope, ($scope).isReadonly);\r\n\r\n var self = this;\r\n $scope.$watch('group', newValue => {\r\n if (!newValue) return;\r\n $scope.model.setGroup((newValue), self.element);\r\n });\r\n }\r\n\r\n public setElement(element: JQuery): void {\r\n this.element = element;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ExpressionGroup', ['conditionService', '$compile']);","/// \r\nmodule warsApp.directives {\r\n\r\n export class FileDownload implements IDirective {\r\n public controller = [\"$scope\", \"fileUploadDownloadService\", \"documentService\", FileDownloadController];\r\n public controllerAs = \"controller\";\r\n public templateUrl = \"./app/views/directives/fileDownload.html\";\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n model: \"=\"\r\n };\r\n\r\n public link(scope: IFileDownloadScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: FileDownloadController): void { }\r\n }\r\n\r\n export interface IFileDownloadScope extends ng.IScope {\r\n model: Wars.Domain.Model.Dtos.DocumentDto;\r\n getFaClass(filename: string): string;\r\n downloadSecureDocument(): void;\r\n }\r\n\r\n export class FileDownloadController implements IController {\r\n constructor(\r\n private $scope: IFileDownloadScope,\r\n private fileUploadDownloadService: services.FileUploadDownloadService,\r\n private documentService: services.DocumentService)\r\n {\r\n this.$scope.getFaClass = (filename: string) => this.documentService.getFaClass(filename);\r\n this.$scope.downloadSecureDocument = () => this.downloadSecureDocument();\r\n }\r\n\r\n public downloadSecureDocument(): void {\r\n this.fileUploadDownloadService.getSecuredDocumentKey(this.$scope.model.id).then((securedDocKey) => {\r\n var url = \"./api/document/Secured/\" + securedDocKey;\r\n window.open(url);\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('FileDownload', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export class FileUpload implements IDirective {\r\n public controller = [\"$scope\", \"fileUploadDownloadService\", \"processDocumentService\", \"ModalService\", FileUploadController];\r\n public controllerAs = \"controller\";\r\n public templateUrl = \"./app/views/directives/fileUpload.html\";\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n process: \"=\",\r\n documentIds: \"=\",\r\n documentId: \"=\",\r\n refresh: \"=\",\r\n documentConfiguration: \"=\",\r\n systemDocumentConfiguration: \"=\",\r\n schemaPropertyUniqueId: \"=\",\r\n manageDocumentConfigUniqueId: \"=\",\r\n commentThreadConfigUniqueId: \"=\",\r\n userActionInfoUniqueId: \"=\",\r\n reviewConfigurationUniqueId: \"=\",\r\n processEventConfigUniqueId: \"=\",\r\n documentsAllowed: \"=\",\r\n isReadonly: \"=\",\r\n changeCallback: \"=\",\r\n isTemporary: \"=\",\r\n titleTagDescription: \"=\"\r\n };\r\n\r\n public link(scope: IFileUploadScope,\r\n element: ng.IAugmentedJQuery,\r\n attrs: ng.IAttributes,\r\n controller: FileUploadController): void {\r\n }\r\n }\r\n\r\n export interface IFileUploadScope extends ng.IScope {\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n documentIds: string[];\r\n documentId: string;\r\n refresh: boolean;\r\n internalDocumentIds: string[];\r\n documents: Wars.Domain.Model.Dtos.DocumentDto[];\r\n model: models.FileUploadModel;\r\n documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration;\r\n systemDocumentConfiguration: Wars.Domain.Model.Documents.SystemDocumentConfiguration;\r\n schemaPropertyUniqueId: string;\r\n manageDocumentConfigUniqueId: string;\r\n commentThreadConfigUniqueId: string;\r\n userActionInfoUniqueId: string;\r\n reviewConfigurationUniqueId: string;\r\n processEventConfigUniqueId: string;\r\n documentsAllowed: number;\r\n isReadonly: boolean;\r\n fileUploadProgress: number;\r\n errorMessage: string;\r\n changeCallback: (model: models.FileUploadModel) => void;\r\n getFaClass(filename: string): string;\r\n addDocument(): void;\r\n editDocument(index: number): void;\r\n deleteDocument(index: number): void;\r\n getUniqueId(): string;\r\n isTemporary: boolean;\r\n titleTagDescription: string;\r\n }\r\n\r\n export class FileUploadController implements IController {\r\n constructor(\r\n private scope: IFileUploadScope,\r\n private fileUploadDownloadService: services.FileUploadDownloadService,\r\n private processDocumentService: services.ProcessDocumentService,\r\n private modalService: any)\r\n {\r\n this.scope.addDocument = () => {\r\n this.showUploadModal([]);\r\n };\r\n this.scope.editDocument = (index: number) => {\r\n this.showUploadModal([this.scope.internalDocumentIds[index]]);\r\n };\r\n this.scope.deleteDocument = (index: number) => {\r\n this.deleteDocument(index);\r\n };\r\n this.scope.getUniqueId = () => { return this.getUniqueId(); }\r\n\r\n this.scope.$watch(\"documentId\", () => {\r\n this.initialize();\r\n });\r\n\r\n this.scope.$watch(\"documentIds\", () => {\r\n this.initialize();\r\n });\r\n\r\n if (this.scope.refresh !== undefined) {\r\n this.scope.$watch(\"refresh\", (value) => {\r\n if (value) {\r\n this.initialize();\r\n }\r\n this.scope.refresh = false;\r\n });\r\n }\r\n\r\n this.initialize();\r\n }\r\n\r\n private initialize() {\r\n this.scope.internalDocumentIds = [];\r\n if (this.scope.documentId) {\r\n this.scope.internalDocumentIds = [this.scope.documentId];\r\n }\r\n if (this.scope.documentIds) {\r\n this.scope.internalDocumentIds = this.scope.documentIds;\r\n }\r\n\r\n this.scope.model = new models.FileUploadModel();\r\n this.scope.model.documents = [];\r\n\r\n if (this.scope.internalDocumentIds) {\r\n for (var i = 0; i < this.scope.internalDocumentIds.length; i++) {\r\n var document = this.processDocumentService.getDocumentById(this.scope.process, this.scope.internalDocumentIds[i]);\r\n if (document) {\r\n this.scope.model.documents.push(document);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private getUniqueId(): string {\r\n if (this.scope.schemaPropertyUniqueId) return this.scope.schemaPropertyUniqueId;\r\n if (this.scope.manageDocumentConfigUniqueId) return this.scope.manageDocumentConfigUniqueId;\r\n if (this.scope.commentThreadConfigUniqueId) return this.scope.commentThreadConfigUniqueId;\r\n if (this.scope.userActionInfoUniqueId) return this.scope.userActionInfoUniqueId;\r\n if (this.scope.reviewConfigurationUniqueId) return this.scope.reviewConfigurationUniqueId;\r\n if (this.scope.processEventConfigUniqueId) return this.scope.processEventConfigUniqueId;\r\n\r\n return undefined;\r\n }\r\n\r\n private getDocumentConnections(): Wars.Domain.Model.Dtos.DocumentConnectionsDto {\r\n return {\r\n processId: this.scope.process.id,\r\n schemaPropertyUniqueId: this.scope.schemaPropertyUniqueId,\r\n userActionInfoUniqueId: this.scope.userActionInfoUniqueId,\r\n manageDocumentConfigUniqueId: this.scope.manageDocumentConfigUniqueId,\r\n commentThreadConfigUniqueId: this.scope.commentThreadConfigUniqueId,\r\n reviewConfigurationUniqueId: this.scope.reviewConfigurationUniqueId,\r\n processEventConfigUniqueId: this.scope.processEventConfigUniqueId\r\n }\r\n }\r\n\r\n private deleteDocument(index: number): void {\r\n var documentToDelete = this.scope.model.documents[index];\r\n this.fileUploadDownloadService.deleteDocument(documentToDelete.id)\r\n .then(() => {\r\n this.scope.model.documents.remove(documentToDelete);\r\n this.processDocumentService.updateProcessDocuments(this.scope.process, [], [documentToDelete.id]).then(() => {\r\n if (this.scope.changeCallback) {\r\n this.scope.changeCallback(this.scope.model);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private showUploadModal(documentIds: string[]): void {\r\n this.scope.model.errorMessage = undefined;\r\n this.scope.model.fileUploadProgress = undefined;\r\n\r\n var docsHiddenFromModal: Wars.Domain.Model.Dtos.DocumentDto[];\r\n if (!documentIds) {\r\n if (this.scope.model && this.scope.model.documents) {\r\n docsHiddenFromModal = this.scope.model.documents;\r\n }\r\n } else {\r\n docsHiddenFromModal = Enumerable.from(this.scope.model.documents)\r\n .where(i => documentIds.indexOf(i.id) === -1)\r\n .toArray();\r\n }\r\n\r\n var modalModel = new models.FileUploadModel();\r\n modalModel.documents = Enumerable.from(this.scope.model.documents).toArray();\r\n\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/fileUploadModal.html\",\r\n controller: \"fileUploadModalController\",\r\n size: \"lg\",\r\n inputs: {\r\n documentIds,\r\n process: this.scope.process,\r\n documentConfiguration: this.scope.documentConfiguration,\r\n systemDocumentConfiguration: this.scope.systemDocumentConfiguration,\r\n uniqueIdentifier: this.getUniqueId(),\r\n model: modalModel\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n // Only true if not a cancel\r\n if (result) {\r\n this.fileUploadDownloadService.updateDocumentMetadata(\r\n modalModel.documents,\r\n this.getDocumentConnections(),\r\n documentIds,\r\n this.scope.isTemporary).then(\r\n (documents) => {\r\n this.scope.model.documents = documents.concat(docsHiddenFromModal);\r\n\r\n this.processDocumentService.updateProcessDocuments(this.scope.process, documents, documentIds).then(\r\n () => {\r\n if (this.scope.changeCallback) {\r\n this.scope.changeCallback(this.scope.model);\r\n }\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('FileUpload', []);","angular.module(\"warsApp.directives\").directive('focusMe', function () {\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n focusTrigger: '=focusMe'\r\n },\r\n link: function (scope, element) {\r\n scope.$watch('focusTrigger', function (newValue) {\r\n if (newValue === true) {\r\n element[0].focus();\r\n scope.focusTrigger = false;\r\n }\r\n });\r\n }\r\n };\r\n});","/// \r\nmodule warsApp.directives {\r\n export interface IAddFeatureConfigurationScope extends angular.IScope {\r\n configuration: Wars.Domain.Model.Gis.AddFeaturesConfiguration;\r\n addAttribute: any;\r\n deleteAttribute: any;\r\n gisDatastoreChanged:any;\r\n save: any;\r\n inputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection;\r\n gisDatastores: Wars.Domain.Model.Gis.GisDatastore[];\r\n currentGisDatastoreAttributes: any;\r\n codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n javascriptTransformers:Wars.Domain.Model.Gis.JavascriptTransformer[];\r\n }\r\n\r\n export class AddFeaturesConfiguration implements IDirective {\r\n public link($scope: IAddFeatureConfigurationScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/addFeaturesConfiguration.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\r\n \"$scope\", 'mapConfigurationService', 'gisDatastoreService','systemLevelService',AddFeaturesConfigurationController\r\n ];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n configuration: \"=\",\r\n inputCollection: \"=\",\r\n mapConfiguration:\"=\"\r\n };\r\n }\r\n\r\n export class AddFeaturesConfigurationController {\r\n constructor(private $scope: IAddFeatureConfigurationScope,\r\n private mapConfigurationService: services.MapConfigurationService,\r\n private gisDatastoreService: services.GisDatastoreService,\r\n private systemLevelService:services.SystemLevelService) {\r\n\r\n $scope.save = () => mapConfigurationService.saveAllChanges();\r\n $scope.addAttribute = () => this.addAttribute();\r\n $scope.gisDatastoreChanged = () => this.gisDatastoreChanged();\r\n $scope.deleteAttribute = (a) => this.deleteAttribute(a);\r\n\r\n this.gisDatastoreService.getGisDatastores().then(stores => {\r\n this.$scope.gisDatastores = stores;\r\n });\r\n\r\n this.systemLevelService.getSystemLevelCodes().then(systemLevel => {\r\n this.$scope.codeGroups = systemLevel.myCodeGroups;\r\n });\r\n\r\n if ($scope.configuration.gisDatastore) {\r\n this.setupGisDatastoreAttributes();\r\n }\r\n }\r\n\r\n private gisDatastoreChanged() {\r\n this.setupGisDatastoreAttributes();\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n private setupGisDatastoreAttributes() {\r\n this.$scope.currentGisDatastoreAttributes = [];\r\n if (this.$scope.configuration.gisDatastore) {\r\n for (let i = 1; i < 21; i++) {\r\n if (this.$scope.configuration.gisDatastore['metadata' + i + 'PropertyName']) {\r\n this.$scope.currentGisDatastoreAttributes.push({\r\n name: this.$scope.configuration.gisDatastore['metadata' + i + 'PropertyName'],\r\n index: i\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private addAttribute() {\r\n let newAttr = this.mapConfigurationService.createFeatureAttributeToPropertyMap();\r\n newAttr.attributeNumber = this.$scope.configuration.featureAttributeToPropertyMaps.length;\r\n\r\n this.$scope.configuration.featureAttributeToPropertyMaps.push(newAttr);\r\n\r\n this.mapConfigurationService.saveAllChanges();\r\n\r\n }\r\n\r\n private deleteAttribute(attr: Wars.Domain.Model.Gis.FeatureAttributeToPropertyMap) {\r\n attr.entityAspect.setDeleted();\r\n\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('AddFeaturesConfiguration', []);","/// \r\nmodule warsApp.directives {\r\n export interface IBufferConfigurationScope extends angular.IScope {\r\n save: any;\r\n configuration:Wars.Domain.Model.Gis.BufferConfiguration;\r\n inputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection;\r\n }\r\n\r\n export class BufferConfiguration implements IDirective {\r\n public link($scope: IBufferConfigurationScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/bufferConfiguration.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\r\n \"$scope\", 'mapConfigurationService', 'gisDatastoreService', BufferConfigurationController\r\n ];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n configuration: \"=\",\r\n inputCollection: \"=\"\r\n };\r\n }\r\n\r\n export class BufferConfigurationController {\r\n constructor(private $scope: IBufferConfigurationScope,\r\n private mapConfigurationService: services.MapConfigurationService,\r\n private gisDatastoreService: services.GisDatastoreService) {\r\n\r\n $scope.save = () => mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('BufferConfiguration',[]);","/// \r\nmodule warsApp.directives {\r\n export interface IDrawFeatureConfigurationScope extends angular.IScope {\r\n drawFeature: Wars.Domain.Model.Gis.DrawFeatureConfiguration;\r\n save: any;\r\n }\r\n\r\n export class DrawFeatureConfiguration implements IDirective {\r\n public link($scope: IDrawStyleScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/drawFeatureConfiguration.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", 'mapConfigurationService', DrawFeatureConfigurationController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n drawFeature: \"=\",\r\n };\r\n }\r\n\r\n export class DrawFeatureConfigurationController {\r\n constructor($scope: IDrawFeatureConfigurationScope, mapConfigurationService: services.MapConfigurationService) {\r\n $scope.save = () => mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('DrawFeatureConfiguration', []);","/// \r\nmodule warsApp.directives {\r\n export interface IDrawStyleScope extends angular.IScope {\r\n drawStyle: Wars.Domain.Model.Gis.DrawStyle;\r\n save:any;\r\n }\r\n\r\n export class DrawStyleConfiguration implements IDirective{\r\n public link($scope: IDrawStyleScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/drawStyle.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\",'mapConfigurationService',DrawStyleController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n drawStyle: \"=\",\r\n };\r\n }\r\n\r\n export class DrawStyleController {\r\n constructor($scope: IDrawStyleScope, mapConfigurationService: services.MapConfigurationService) {\r\n $scope.save = () => mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('DrawStyleConfiguration',[]);","/// \r\nmodule warsApp.directives {\r\n export interface IFilterFeatureCollectionScope extends angular.IScope {\r\n configuration: Wars.Domain.Model.Gis.FilterFeatureCollectionConfiguration;\r\n addAttribute: any;\r\n deleteAttribute: any;\r\n save: any;\r\n inputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection;\r\n }\r\n\r\n export class FilterFeatureCollectionConfiguration implements IDirective {\r\n public link($scope: IFilterFeatureCollectionScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/filterFeatureCollectionConfiguration.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", 'mapConfigurationService', FilterFeatureCollectionConfigurationController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n configuration: \"=\",\r\n inputCollection: \"=\"\r\n };\r\n }\r\n\r\n export class FilterFeatureCollectionConfigurationController {\r\n constructor(private $scope: IFilterFeatureCollectionScope, private mapConfigurationService: services.MapConfigurationService) {\r\n $scope.save = () => mapConfigurationService.saveAllChanges();\r\n $scope.addAttribute = () => this.addAttribute();\r\n $scope.deleteAttribute = (a) => this.deleteAttribute(a);\r\n }\r\n\r\n private addAttribute() {\r\n let newAttr = this.mapConfigurationService.createFilterAttribute();\r\n newAttr.compareOperator = Wars.Domain.Model.Codes.Enums.CompareOperator.Equals;\r\n\r\n this.$scope.configuration.filterAttributes.push(newAttr);\r\n\r\n this.mapConfigurationService.saveAllChanges();\r\n\r\n }\r\n\r\n private deleteAttribute(attr: Wars.Domain.Model.Gis.FilterAttribute) {\r\n attr.entityAspect.setDeleted();\r\n\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('FilterFeatureCollectionConfiguration', []);\r\n","/// \r\nmodule warsApp.directives {\r\n export interface IGisActionBlockEsriQueryConfigurationScope extends angular.IScope {\r\n configuration: Wars.Domain.Model.Gis.GisActionBlockEsriQueryConfiguration;\r\n mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n inputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection;\r\n save: any;\r\n }\r\n\r\n export class GisActionBlockEsriQueryConfiguration implements IDirective {\r\n public link($scope: IGisActionBlockEsriQueryConfigurationScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/gisActionBlockEsriQueryConfiguration.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", 'mapConfigurationService', GisActionBlockEsriQueryConfigurationController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n configuration: \"=\",\r\n mapConfiguration: \"=\",\r\n inputCollection: \"=\"\r\n };\r\n }\r\n\r\n export class GisActionBlockEsriQueryConfigurationController {\r\n constructor($scope: IGisActionBlockEsriQueryConfigurationScope, mapConfigurationService: services.MapConfigurationService) {\r\n $scope.save = () => mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('GisActionBlockEsriQueryConfiguration', []);","/// \r\nmodule warsApp.directives {\r\n export interface IGisActionValidationConfigurationScope extends angular.IScope {\r\n save: any;\r\n configuration: Wars.Domain.Model.Gis.GisActionValidationConfiguration;\r\n inputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection;\r\n }\r\n\r\n export class GisActionValidationConfiguration implements IDirective {\r\n public link($scope: IGisActionValidationConfigurationScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/gisActionValidationConfiguration.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\r\n \"$scope\", 'mapConfigurationService', GisActionValidationConfigurationController\r\n ];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n configuration: \"=\",\r\n inputCollection: \"=\"\r\n };\r\n }\r\n\r\n export class GisActionValidationConfigurationController {\r\n constructor(private $scope: IGisActionValidationConfigurationScope,\r\n private mapConfigurationService: services.MapConfigurationService) {\r\n\r\n $scope.save = () => mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('GisActionValidationConfiguration', []);","/// \r\nmodule warsApp.directives {\r\n export interface IGisFieldMappingsScope extends angular.IScope {\r\n gisFieldMappings: Wars.Domain.Model.Gis.GisFieldMapping[];\r\n mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n query: any;\r\n addFieldMapping: any;\r\n save: any;\r\n removeField: any;\r\n currentGisDatastoreAttributes:any;\r\n }\r\n\r\n export class GisFieldMappings implements IDirective {\r\n public link($scope: IGisFieldMappingsScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/gisFieldMappings.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", 'mapConfigurationService', GisFieldMappingsController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n gisFieldMappings: \"=\",\r\n mapConfiguration: \"=\",\r\n query: \"=\",\r\n includedFields: \"=\"\r\n };\r\n }\r\n\r\n export class GisFieldMappingsController {\r\n constructor(private $scope: IGisFieldMappingsScope, private mapConfigurationService: services.MapConfigurationService) {\r\n $scope.save = () => this.save();\r\n $scope.addFieldMapping = () => this.addFieldMapping();\r\n $scope.removeField = (f) => this.removeField(f);\r\n\r\n if ($scope.query.gisDatastoreQueryConfiguration) {\r\n this.setupGisDatastoreAttributes();\r\n }\r\n }\r\n\r\n private save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n private setupGisDatastoreAttributes() {\r\n this.$scope.currentGisDatastoreAttributes = [];\r\n if (this.$scope.query.gisDatastoreQueryConfiguration.gisDatastore) {\r\n for (let i = 1; i < 21; i++) {\r\n if (this.$scope.query.gisDatastoreQueryConfiguration.gisDatastore['metadata' + i + 'PropertyName']) {\r\n this.$scope.currentGisDatastoreAttributes.push({\r\n name: this.$scope.query.gisDatastoreQueryConfiguration.gisDatastore['metadata' + i + 'PropertyName'],\r\n index: i\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private addFieldMapping() {\r\n let fieldMapping = this.mapConfigurationService.createQueryGridFieldMapping();\r\n\r\n this.$scope.gisFieldMappings.push(fieldMapping);\r\n this.save();\r\n }\r\n\r\n private removeField(field: Wars.Domain.Model.Gis.GisFieldMapping) {\r\n field.entityAspect.setDeleted();\r\n\r\n this.save();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('GisFieldMappings', []);\r\n","/// \r\nmodule warsApp.directives {\r\n export interface IGisMapScope extends angular.IScope {\r\n mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n mapId: string;\r\n }\r\n\r\n export class GisMap implements IDirective {\r\n constructor() {\r\n\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/gisMap.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", '$rootScope', GisMapController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n mapConfiguration: \"=\",\r\n mapId: \"=\"\r\n };\r\n\r\n\r\n public link($scope: IApiGridScope, element: JQuery, attrs: ng.IAttributes) {\r\n $scope.$on(\"$destroy\",\r\n () => {\r\n GisMapController.currentMap = null;\r\n console.log(this.controller);\r\n });\r\n }\r\n }\r\n\r\n export class GisMapController {\r\n public map: L.Map;\r\n public static currentMap: L.Map;\r\n\r\n constructor(private $scope: IGisMapScope, private $rootScope: angular.IRootScopeService) {\r\n console.log($scope.mapId);\r\n\r\n this.map = L.map('PreviewMap', { editable: true,fullscreenControl: true }).setView([\r\n $scope.mapConfiguration.centerX,\r\n $scope.mapConfiguration.centerY\r\n ],\r\n $scope.mapConfiguration.defaultZoom);\r\n\r\n //this.setUpLayers();\r\n this.setUpLegend(this.map);\r\n\r\n GisMapController.currentMap = this.map;\r\n $rootScope.$broadcast('mapLoaded');\r\n console.log(GisMapController.currentMap);\r\n }\r\n\r\n private setUpLegend(map: L.Map) {\r\n let legend = Enumerable.from(this.$scope.mapConfiguration.legendConfigurations)\r\n .singleOrDefault(l => l.isDefault);\r\n\r\n if (legend) {\r\n var options: any = {};\r\n\r\n options.position = this.getPosition(legend.displayCornerLocation);\r\n options.sortLayers = true;\r\n var layersControl = L.control.layers(null, null, options);\r\n layersControl.addTo(map);\r\n\r\n Enumerable.from(legend.legendLayers).orderBy(l => l.isDefault).toArray().forEach(l => {\r\n var leafletLayer=this.addLayer(l.layer);\r\n let name = l.name;\r\n if (l.displayHtml) {\r\n name = l.displayHtml;\r\n }\r\n\r\n if (l.layer.type === Wars.Domain.Model.Codes.Enums.LayerType.TileLayer ||\r\n l.layer.type === Wars.Domain.Model.Codes.Enums.LayerType.EsriBaseMap ||\r\n l.layer.type === Wars.Domain.Model.Codes.Enums.LayerType.EsriVectorBaseMap) {\r\n map.eachLayer(layer => {\r\n if ((layer).warsId === l.layer.id) {\r\n layersControl.addBaseLayer(layer, name);\r\n }\r\n });\r\n }\r\n\r\n if (!l.isDefault) {\r\n this.map.removeLayer(leafletLayer);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private getPosition(position: Wars.Domain.Model.Codes.DisplayCornerLocation): string {\r\n switch (position) {\r\n case Wars.Domain.Model.Codes.DisplayCornerLocation.BottomLeft:\r\n return \"bottomleft\";\r\n case Wars.Domain.Model.Codes.DisplayCornerLocation.BottomRight:\r\n return \"bottomright\";\r\n case Wars.Domain.Model.Codes.DisplayCornerLocation.TopLeft:\r\n return \"topleft\";\r\n case Wars.Domain.Model.Codes.DisplayCornerLocation.TopRight:\r\n return \"topright\";\r\n }\r\n }\r\n\r\n\r\n private setUpLayers() {\r\n this.$scope.mapConfiguration.layers.forEach(l => {\r\n this.addLayer(l);\r\n });\r\n }\r\n\r\n private addLayer(l: Wars.Domain.Model.Gis.Layer) {\r\n switch (l.type) {\r\n case Wars.Domain.Model.Codes.Enums.LayerType.TileLayer:\r\n return this.addTileLayer(l);\r\n case Wars.Domain.Model.Codes.Enums.LayerType.EsriBaseMap:\r\n return this.addEsriBaseMap(l);\r\n case Wars.Domain.Model.Codes.Enums.LayerType.EsriVectorBaseMap:\r\n return this.addEsriVector(l);\r\n }\r\n }\r\n\r\n private addTileLayer(layer: Wars.Domain.Model.Gis.Layer) {\r\n L.tileLayer(layer.url,\r\n {\r\n attribution: layer.attribution,\r\n maxZoom: layer.maxZoom,\r\n id: layer.id\r\n }).addTo(this.map);\r\n }\r\n\r\n private addEsriBaseMap(layer: Wars.Domain.Model.Gis.Layer) {\r\n let l = (L).esri.basemapLayer(layer.esriLayerName);\r\n l.warsId = layer.id;\r\n l.addTo(this.map);\r\n\r\n return l;\r\n }\r\n\r\n private addEsriVector(layer: Wars.Domain.Model.Gis.Layer) {\r\n let l = (L).esri.Vector.basemap(layer.esriLayerName);\r\n l.warsId = layer.id;\r\n l.addTo(this.map);\r\n\r\n return l;\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('GisMap', []);","//// \r\nmodule warsApp.directives {\r\n\r\n export interface IGisQueryGridScope extends angular.IScope {\r\n queryGridOverride: Wars.Domain.Model.Gis.QueryGridOverride;\r\n runQueries: any;\r\n combinedResults: any[];\r\n zoomToRow: any;\r\n }\r\n\r\n export class GisQueryGrid implements IDirective {\r\n constructor() {\r\n\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/gisQueryGrid.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", 'esriMapService', '$q', 'gisDatastoreService', GisQueryGridController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n queryGridOverride: \"=\"\r\n };\r\n\r\n public link($scope: IApiGridScope, element: JQuery, attrs: ng.IAttributes) {\r\n\r\n }\r\n\r\n }\r\n\r\n export class GisQueryGridController {\r\n public layer: L.GeoJSON;\r\n\r\n constructor(private $scope: IGisQueryGridScope,\r\n private esriMapService: services.EsriMapService,\r\n private $q: angular.IQService,\r\n private gisDatastoreService: services.GisDatastoreService) {\r\n\r\n this.$scope.runQueries = () => this.runQueries();\r\n this.$scope.zoomToRow = (f) => this.zoomToRow(f);\r\n if ($scope.queryGridOverride.queryGridConfiguration) {\r\n if ($scope.queryGridOverride.queryGridConfiguration.runQueryOnLoad) {\r\n this.runQueries();\r\n }\r\n }\r\n\r\n if ($scope.queryGridOverride.includedMapFunction) {\r\n $scope.$on($scope.queryGridOverride.includedMapFunction.mapFunctionConfiguration_id,\r\n (e, input) => {\r\n this.runQueries(input);\r\n });\r\n }\r\n\r\n if ($scope.queryGridOverride.placeHolderValues) {\r\n $scope.queryGridOverride.placeHolderValues.forEach(v => {\r\n $scope.$on(v.includedMapFunction.mapFunctionConfiguration_id,\r\n (e, input) => {\r\n this.runQueries(input, v.placeHolderUniqueIdentifier);\r\n });\r\n });\r\n }\r\n }\r\n\r\n public zoomToRow(row) {\r\n let feature = row.feature;\r\n let geojson = L.geoJSON(feature);\r\n\r\n GisMapController.currentMap.fitBounds(geojson.getBounds());\r\n }\r\n\r\n private onEachFeature(feature, layer) {\r\n if (feature.popup) {\r\n layer.bindPopup(feature.popup);\r\n }\r\n }\r\n\r\n public runQueries(input?: any, placeHolderId?: string) {\r\n this.$scope.combinedResults = [];\r\n var placeholderDict = {};\r\n let placeHolderGeo = null;\r\n\r\n if (this.layer) {\r\n warsApp.directives.GisMapController.currentMap.removeLayer(this.layer);\r\n }\r\n\r\n if (input && input.textValue) {\r\n placeholderDict[placeHolderId] = input.textValue;\r\n }\r\n\r\n if (input && input.geometry) {\r\n placeHolderGeo = input.geometry;\r\n }\r\n\r\n var options: any = this.$scope.queryGridOverride.queryGridConfiguration.drawStyle;\r\n\r\n if (this.$scope.queryGridOverride.queryGridConfiguration.drawStyle.markerColor) {\r\n let color = null;\r\n\r\n switch (this.$scope.queryGridOverride.queryGridConfiguration.drawStyle.markerColor) {\r\n case Wars.Domain.Model.Codes.Enums.MarkerColor.Blue:\r\n color = \"blue\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.MarkerColor.Red:\r\n color = \"red\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.MarkerColor.Green:\r\n color = \"green\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.MarkerColor.Orange:\r\n color = \"orange\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.MarkerColor.Yellow:\r\n color = \"yellow\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.MarkerColor.Violet:\r\n color = \"violet\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.MarkerColor.Grey:\r\n color = \"grey\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.MarkerColor.Black:\r\n color = \"black\";\r\n break;\r\n\r\n default:\r\n }\r\n let iconUrl = `./marker-icon-2x-${color}.png`;\r\n L.Icon.Default.mergeOptions({\r\n iconUrl: iconUrl\r\n });\r\n options.icon = new L.Icon({\r\n iconUrl: iconUrl,\r\n shadowUrl: '/content/images/marker-shadow.png',\r\n iconSize: [25, 41],\r\n iconAnchor: [12, 41],\r\n popupAnchor: [1, -34],\r\n shadowSize: [41, 41]\r\n });\r\n }\r\n\r\n if (Enumerable.from(this.$scope.queryGridOverride.queryGridConfiguration.includedQueryFields)\r\n .any(f => f.showInPopup)) {\r\n (options).onEachFeature = this.onEachFeature;\r\n }\r\n\r\n if (this.$scope.queryGridOverride.queryGridConfiguration.addResultsToMap) {\r\n this.layer = L.geoJSON(null, options);\r\n\r\n this.layer.addTo(warsApp.directives.GisMapController.currentMap);\r\n }\r\n\r\n this.$scope.queryGridOverride.queryGridConfiguration.queryGridQueries.forEach(q => {\r\n if (q.esriQueryConfiguration) {\r\n if (this.$scope.queryGridOverride.excludeNullPlaceholders && !placeHolderGeo &&\r\n q.esriQueryConfiguration.includeGeometryFilter && !q.esriQueryConfiguration.geometryFilter.useMapGeometry) {\r\n return;\r\n }\r\n\r\n if (this.$scope.queryGridOverride.excludeNullPlaceholders && input && !input.textValue &&\r\n q.esriQueryConfiguration.wherePredicates && Enumerable.from(q.esriQueryConfiguration.wherePredicates).any(p=>p.isPlaceholder)) {\r\n return;\r\n }\r\n\r\n if (placeHolderId && !Enumerable.from(q.esriQueryConfiguration.wherePredicates)\r\n .any(w => w.placeHolderUniqueIdentifier === placeHolderId)) {\r\n return;\r\n }\r\n\r\n if (q.esriQueryConfiguration.wherePredicates) {\r\n q.esriQueryConfiguration.wherePredicates.forEach(w => {\r\n if (w.placeHolderUniqueIdentifier === placeHolderId) {\r\n placeholderDict[w.field.name] = input.textValue;\r\n }\r\n });\r\n }\r\n\r\n\r\n this.esriMapService.queryMapService(q.esriQueryConfiguration, placeholderDict, placeHolderGeo).then(\r\n results => {\r\n let tempResult = [];\r\n\r\n results.features.forEach(f => {\r\n let tempRow = {};\r\n let popUpRows = \"\";\r\n\r\n q.gisFieldMappings.forEach(fieldMapping => {\r\n let value = f.properties[fieldMapping.esriField.name];\r\n //Hack: This should probably use the actual field type\r\n if ((fieldMapping.esriField.name.toUpperCase().indexOf(\"DATE\") >= 0 ||\r\n fieldMapping.esriField.name.toUpperCase().indexOf(\"_DT\") >= 0) && typeof value == \"number\") {\r\n value = new Date(value).toLocaleDateString('en-US');\r\n }\r\n\r\n if (fieldMapping.javascriptTransformer) {\r\n let args = ['value', fieldMapping.javascriptTransformer.code];\r\n let myFunc = Function.apply(null, args);\r\n\r\n value = myFunc(value);\r\n }\r\n if (fieldMapping.includedQueryField.showInPopup) {\r\n popUpRows += `${fieldMapping.includedQueryField\r\n .name}:${value}`;\r\n }\r\n\r\n tempRow[fieldMapping.includedQueryField.uniqueId] = value;\r\n });\r\n\r\n if (popUpRows !== \"\") {\r\n f.popup = `${popUpRows}
`;\r\n }\r\n\r\n (tempRow).feature = f;\r\n\r\n tempResult.push(tempRow);\r\n\r\n });\r\n\r\n this.$scope.combinedResults.addRange(tempResult);\r\n\r\n this.$scope.queryGridOverride.queryGridConfiguration.includedQueryFields.forEach(\r\n fieldMapping => {\r\n if (fieldMapping.distictOnField) {\r\n this.$scope.combinedResults =\r\n Enumerable.from(this.$scope.combinedResults)\r\n .distinct(item => item[fieldMapping.uniqueId]).toArray();\r\n }\r\n });\r\n\r\n this.layer.addData(results);\r\n\r\n console.log(this.$scope.combinedResults);\r\n });\r\n } else if (q.gisDatastoreQueryConfiguration) {\r\n if (this.$scope.queryGridOverride.excludeNullPlaceholders && !placeHolderGeo &&\r\n q.gisDatastoreQueryConfiguration.includeGeometryFilter && !q.gisDatastoreQueryConfiguration.geometryFilter.useMapGeometry) {\r\n return;\r\n }\r\n \r\n if (this.$scope.queryGridOverride.excludeNullPlaceholders && input && !input.textValue &&\r\n q.gisDatastoreQueryConfiguration.wherePredicates && Enumerable.from(q.gisDatastoreQueryConfiguration.wherePredicates).any(p=>p.isPlaceholder)) {\r\n return;\r\n }\r\n\r\n if (placeHolderId && !Enumerable.from(q.gisDatastoreQueryConfiguration.wherePredicates)\r\n .any(w => w.placeHolderUniqueIdentifier === placeHolderId)) {\r\n return;\r\n }\r\n\r\n if (q.gisDatastoreQueryConfiguration.wherePredicates) {\r\n q.gisDatastoreQueryConfiguration.wherePredicates.forEach(w => {\r\n if (w.placeHolderUniqueIdentifier === placeHolderId) {\r\n placeholderDict[`Metadata${w.metadataNumber}`] = input.textValue;\r\n }\r\n });\r\n }\r\n\r\n if (q.gisDatastoreQueryConfiguration.geometryFilter &&\r\n q.gisDatastoreQueryConfiguration.geometryFilter.useMapGeometry) {\r\n var bounds = warsApp.directives.GisMapController.currentMap.getBounds();\r\n\r\n let coords = [\r\n [\r\n [bounds.getSouth(), bounds.getWest()],\r\n [bounds.getNorth(), bounds.getWest()],\r\n [bounds.getNorth(), bounds.getEast()],\r\n [bounds.getSouth(), bounds.getEast()],\r\n [bounds.getSouth(), bounds.getWest()]\r\n ]\r\n ];\r\n\r\n placeHolderGeo = {\r\n type: \"Feature\",\r\n properties: {},\r\n geometry: {\r\n \"type\": \"Polygon\",\r\n \"coordinates\": coords\r\n }\r\n };\r\n }\r\n\r\n this.gisDatastoreService\r\n .queryGisDatastore(q.gisDatastoreQueryConfiguration.gisDatastore,\r\n placeholderDict,\r\n q.gisDatastoreQueryConfiguration,\r\n placeHolderGeo)\r\n .then(\r\n features => {\r\n\r\n let tempResult = [];\r\n let geoJsonFeatures = [];\r\n\r\n features.forEach(f => {\r\n let tempRow = {};\r\n let popUpRows = \"\";\r\n let parsedGeoJson = JSON.parse(f.geoJson);\r\n\r\n\r\n q.gisFieldMappings.forEach(fieldMapping => {\r\n let value = f['metadata' + fieldMapping.metadataPosition];\r\n if (fieldMapping.includedQueryField.showInPopup) {\r\n popUpRows += `${fieldMapping.includedQueryField\r\n .name}:${value}`;\r\n }\r\n\r\n if (fieldMapping.javascriptTransformer) {\r\n let args = ['value', fieldMapping.javascriptTransformer.code];\r\n let myFunc = Function.apply(null, args);\r\n\r\n value = myFunc(value);\r\n }\r\n\r\n tempRow[fieldMapping.includedQueryField.uniqueId] = value;\r\n });\r\n\r\n if (popUpRows !== \"\") {\r\n parsedGeoJson.popup = `${popUpRows}
`;\r\n }\r\n\r\n (tempRow).feature = parsedGeoJson;\r\n geoJsonFeatures.push(parsedGeoJson);\r\n\r\n tempResult.push(tempRow);\r\n\r\n });\r\n\r\n const featureCollection = {\r\n features: geoJsonFeatures,\r\n type: 'FeatureCollection'\r\n };\r\n\r\n this.$scope.combinedResults.addRange(tempResult);\r\n this.layer.addData(featureCollection);\r\n\r\n this.$scope.queryGridOverride.queryGridConfiguration.includedQueryFields.forEach(\r\n fieldMapping => {\r\n if (fieldMapping.distictOnField) {\r\n this.$scope.combinedResults =\r\n Enumerable.from(this.$scope.combinedResults)\r\n .distinct(item => item[fieldMapping.uniqueId]).toArray();\r\n }\r\n });\r\n\r\n console.log(this.$scope.combinedResults);\r\n });\r\n }\r\n });\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('GisQueryGrid', []);","/// \r\nmodule warsApp.directives {\r\n export interface IGisWherePredicateCollectionScope extends angular.IScope {\r\n save:any;\r\n addPredicate:any;\r\n removePredicate:any;\r\n placeHolderChanged:any;\r\n esriMapServiceLayer:any;\r\n wherePredicates:any;\r\n gisDatastore:Wars.Domain.Model.Gis.GisDatastore;\r\n gisDatastoreQueryConfiguration:Wars.Domain.Model.Gis.GisDatastoreQueryConfiguration;\r\n esriQueryConfiguration:Wars.Domain.Model.Gis.EsriQueryConfiguration;\r\n currentGisDatastoreAttributes:any;\r\n mapConfiguration:Wars.Domain.Model.Gis.MapConfiguration;\r\n }\r\n\r\n export class GisWherePredicationCollection implements IDirective{\r\n public link($scope: IDrawStyleScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/gisWherePredicateCollection.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\",'mapConfigurationService',GisWherePredicationCollectionController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n wherePredicates:\"=\",\r\n esriMapServiceLayer:\"=\",\r\n gisDatastore:\"=\",\r\n gisDatastoreQueryConfiguration:\"=\",\r\n esriQueryConfiguration:\"=\",\r\n mapConfiguration:\"=\"\r\n };\r\n }\r\n\r\n export class GisWherePredicationCollectionController {\r\n constructor(private $scope: IGisWherePredicateCollectionScope, private mapConfigurationService: services.MapConfigurationService) {\r\n $scope.save = () => this.save();\r\n $scope.addPredicate = () => this.addPredicate();\r\n $scope.removePredicate = (a) => this.removePredicate(a);\r\n $scope.placeHolderChanged = (a) => this.placeHolderChanged(a);\r\n\r\n if (this.$scope.gisDatastore) {\r\n this.setupGisDatastoreAttributes();\r\n }\r\n }\r\n\r\n public addPredicate() {\r\n let newPredicate = this.mapConfigurationService.createGisWherePedicate();\r\n\r\n newPredicate.compareOperator = Wars.Domain.Model.Codes.Enums.CompareOperator.Equals;\r\n\r\n if (this.$scope.esriMapServiceLayer) {\r\n newPredicate.field = this.$scope.esriMapServiceLayer.fields[0];\r\n }\r\n if (this.$scope.gisDatastore) {\r\n this.setupGisDatastoreAttributes();\r\n }\r\n\r\n newPredicate.isPlaceholder = false;\r\n newPredicate.placeHolderUniqueIdentifier = services.UtilityService.generateGuidComb();\r\n newPredicate.javascriptTransformer_id = null;\r\n\r\n this.$scope.wherePredicates.push(newPredicate);\r\n console.log(this.$scope);\r\n\r\n this.save();\r\n }\r\n\r\n private setupGisDatastoreAttributes() {\r\n this.$scope.currentGisDatastoreAttributes = [];\r\n if (this.$scope.gisDatastore) {\r\n for (let i = 1; i < 21; i++) {\r\n if (this.$scope.gisDatastore['metadata' + i + 'PropertyName']) {\r\n this.$scope.currentGisDatastoreAttributes.push({\r\n name: this.$scope.gisDatastore['metadata' + i + 'PropertyName'],\r\n index: i\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n public placeHolderChanged(predicate: Wars.Domain.Model.Gis.GisWherePredicate) {\r\n if (predicate.isPlaceholder) {\r\n predicate.value= \"\";\r\n } else {\r\n predicate.placeholderName = \"\";\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public removePredicate(predicate: Wars.Domain.Model.Gis.GisWherePredicate) {\r\n predicate.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public save() {\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n\r\n}\r\n\r\nwarsApp.registerDirective('GisWherePredicationCollection',[]);","/// \r\nmodule warsApp.directives {\r\n export interface IInputOutputCollectionScope extends angular.IScope {\r\n collection: Wars.Domain.Model.Gis.GisInputOutputCollection;\r\n save: any;\r\n add: any;\r\n delete: any;\r\n isOutput: boolean;\r\n inputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection;\r\n addTextInput:any;\r\n }\r\n\r\n export class InputOutputCollection implements IDirective {\r\n public link($scope: IInputOutputCollectionScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/inputOutputCollection.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", 'mapConfigurationService', InputOutputCollectionController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n collection: \"=\",\r\n isOutput: \"@\",\r\n inputCollection: \"=\"\r\n };\r\n }\r\n\r\n export class InputOutputCollectionController {\r\n constructor(private $scope: IInputOutputCollectionScope, private mapConfigurationService: services.MapConfigurationService) {\r\n $scope.save = () => mapConfigurationService.saveAllChanges();\r\n $scope.add = (i) => this.add(i);\r\n $scope.delete = (i) => this.delete(i);\r\n $scope.addTextInput = () => this.addTextInput();\r\n }\r\n\r\n private delete(item: Wars.Domain.Model.Gis.GisInputOutput) {\r\n item.entityAspect.setDeleted();\r\n\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n private addTextInput() {\r\n let newInputOutput = this.mapConfigurationService.createGisInputOutput();\r\n\r\n newInputOutput.name = \"Text Input\";\r\n newInputOutput.type = Wars.Domain.Model.Codes.Enums.GisInputOutputType.TextInput;\r\n\r\n this.$scope.collection.gisInputOutputs.push(newInputOutput);\r\n\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n\r\n private add(input: Wars.Domain.Model.Gis.GisInputOutput) {\r\n let newInputOutput = this.mapConfigurationService.createGisInputOutput();\r\n\r\n newInputOutput.name = input.name;\r\n //newInputOutput\\\r\n newInputOutput.type = input.type;\r\n newInputOutput.relatedGisInputOutput = input;\r\n\r\n this.$scope.collection.gisInputOutputs.push(newInputOutput);\r\n\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('InputOutputCollection', []);","/// \r\nmodule warsApp.directives {\r\n\r\n interface IGisWorkflowFunctionScope {\r\n mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n mapFunctionConfiguration: Wars.Domain.Model.Gis.MapFunctionConfiguration;\r\n runWorkflow:any;\r\n }\r\n\r\n export class GisWorkflowFunction {\r\n constructor() {\r\n\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/mapFunction/gisWorkflowFunction.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", \"$rootScope\",GisWorkflowFunctionController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n mapConfiguration: \"=\",\r\n mapFunctionConfiguration: \"=\"\r\n };\r\n }\r\n\r\n export class GisWorkflowFunctionController {\r\n\r\n constructor(private $scope: IGisWorkflowFunctionScope,\r\n private $rootScope:angular.IRootScopeService, private gisMapService :services.GisMapService) {\r\n this.$scope.runWorkflow = () => this.runWorkflow();\r\n }\r\n\r\n private runWorkflow() {\r\n this.gisMapService.runWorkflow(this.$scope.mapFunctionConfiguration.gisActionWorkflowConfiguration,\r\n null,\r\n services.UtilityService.generateGuidComb()).then(r => {\r\n this.$rootScope.$broadcast(this.$scope.mapFunctionConfiguration.id, r);\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('GisWorkflowFunction',[]);\r\n","/// \r\nmodule warsApp.directives {\r\n export interface IMapFunctionScope extends angular.IScope {\r\n mapFunction: Wars.Domain.Model.Gis.MapFunctionConfiguration;\r\n includedMapFunction:Wars.Domain.Model.Gis.IncludedMapFunction;\r\n }\r\n\r\n export class MapFunction implements IDirective{\r\n public link($scope: IDrawStyleScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/mapFunction.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\",'mapConfigurationService',MapFunctionController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n mapFunction: \"=\",\r\n includedMapFunction: \"=\",\r\n };\r\n }\r\n\r\n export class MapFunctionController {\r\n constructor($scope:IMapFunctionScope, mapConfigurationService: services.MapConfigurationService) {\r\n\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('MapFunction',[]);\r\n","/// \r\nmodule warsApp.directives {\r\n export interface ISelectGeometryFunctionScope extends angular.IScope {\r\n mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n mapFunctionConfiguration: Wars.Domain.Model.Gis.MapFunctionConfiguration;\r\n selectGeometry:any;\r\n }\r\n\r\n export class SelectGeometryFunction implements IDirective {\r\n constructor() {\r\n\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/mapFunction/selectGeometryFunction.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\",\"$rootScope\",'gisMapService', SelectGeometryFunctionController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n mapConfiguration: \"=\",\r\n mapFunctionConfiguration: \"=\"\r\n };\r\n\r\n public link($scope: ISelectGeometryFunctionScope, element: JQuery, attrs: ng.IAttributes) {\r\n\r\n }\r\n }\r\n\r\n export class SelectGeometryFunctionController {\r\n\r\n constructor(private $scope: ISelectGeometryFunctionScope,\r\n private $rootScope:angular.IRootScopeService, private gisMapService:services.GisMapService) {\r\n $scope.selectGeometry = () => this.selectGeometry();\r\n }\r\n\r\n private selectGeometry() {\r\n this.gisMapService.drawFeatureAction(this.$scope.mapFunctionConfiguration.drawFeatureConfiguration).then(\r\n geometry => {\r\n this.$rootScope.$broadcast(this.$scope.mapFunctionConfiguration.id, { geometry: geometry });\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('SelectGeometryFunction', []);","/// \r\nmodule warsApp.directives {\r\n export interface ITextPlaceholderFunctionScope extends angular.IScope {\r\n mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n mapFunctionConfiguration: Wars.Domain.Model.Gis.MapFunctionConfiguration;\r\n go:any;\r\n textValue:string;\r\n }\r\n\r\n export class TextPlaceHolderFunction implements IDirective {\r\n constructor() {\r\n\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/mapFunction/textPlaceHolderFunction.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", \"$rootScope\",TextPlaceHolderFunctionController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n mapConfiguration: \"=\",\r\n mapFunctionConfiguration: \"=\"\r\n };\r\n\r\n public link($scope: ITextPlaceholderFunctionScope, element: JQuery, attrs: ng.IAttributes) {\r\n\r\n }\r\n }\r\n\r\n export class TextPlaceHolderFunctionController {\r\n\r\n constructor(private $scope: ITextPlaceholderFunctionScope,private $rootScope:angular.IRootScopeService) {\r\n this.$scope.go = () => this.go();\r\n }\r\n\r\n private go() {\r\n this.$rootScope.$broadcast(this.$scope.mapFunctionConfiguration.id,{textValue:this.$scope.textValue});\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('TextPlaceHolderFunction', []);","/// \r\nmodule warsApp.directives {\r\n export interface IZoomToCodeDropDownFunctionScope extends angular.IScope {\r\n mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n mapFunctionConfiguration: Wars.Domain.Model.Gis.MapFunctionConfiguration;\r\n dropdownOptions: models.CodeDropDownItem[];\r\n codeChanged: any;\r\n selectedCode: string;\r\n }\r\n\r\n export class ZoomToCodeDropDownFunction implements IDirective {\r\n constructor() {\r\n\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/mapFunction/zoomToCodeDropDownFunction.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\r\n \"$scope\", 'applicationCodeService', 'esriMapService',\r\n ZoomToCodeDropDownFunctionController\r\n ];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n mapConfiguration: \"=\",\r\n mapFunctionConfiguration: \"=\"\r\n };\r\n\r\n\r\n public link($scope: IZoomToCodeDropDownFunctionScope, element: JQuery, attrs: ng.IAttributes) {\r\n\r\n }\r\n }\r\n\r\n export class ZoomToCodeDropDownFunctionController {\r\n\r\n constructor(private $scope: IZoomToCodeDropDownFunctionScope,\r\n private applicationCodeService: services.ApplicationCodeService,\r\n private esriMapService: services.EsriMapService) {\r\n\r\n $scope.codeChanged = () => this.codeChanged();\r\n this.loadDropDown();\r\n }\r\n\r\n private codeChanged() {\r\n console.log(this.$scope.selectedCode);\r\n\r\n var uniqueId = this.$scope.mapFunctionConfiguration.zoomToQueryConfiguration.placeHolderForInput\r\n .placeHolderUniqueIdentifier;\r\n\r\n var placeHolderDict = {};\r\n placeHolderDict[uniqueId] = this.$scope.selectedCode;\r\n\r\n this.esriMapService.queryMapService(this.$scope.mapFunctionConfiguration.zoomToQueryConfiguration\r\n .esriQueryConfiguration,\r\n placeHolderDict).then(r => {\r\n if (r && r.features) {\r\n let geoJsonLayer = L.geoJSON(r, null);\r\n //this.esriMapService.createGeoJsonLayer(r.features[0], r.geometryType);\r\n //console.log(geoJsonLayer.getBounds());\r\n\r\n GisMapController.currentMap.fitBounds(geoJsonLayer.getBounds());\r\n }\r\n });\r\n\r\n }\r\n\r\n private loadDropDown() {\r\n this.applicationCodeService.getSystemLevelApplicationCodesForExecution(\r\n this.$scope.mapFunctionConfiguration.dropdownCodeGroup_id,false).then((applicationCodes) => {\r\n this.$scope.dropdownOptions = this.applicationCodeService\r\n .buildCodeDropDownOptions(applicationCodes, true, null);\r\n });\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ZoomToCodeDropDownFunction', []);","/// \r\nmodule warsApp.directives {\r\n export interface IZoomToTextboxScope extends angular.IScope {\r\n mapConfiguration: Wars.Domain.Model.Gis.MapConfiguration;\r\n mapFunctionConfiguration: Wars.Domain.Model.Gis.MapFunctionConfiguration;\r\n zoom:any;\r\n textValue:string;\r\n }\r\n\r\n export class ZoomToTextbox implements IDirective {\r\n constructor() {\r\n\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/mapFunction/zoomToTextbox.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\",'esriMapService','growl', ZoomToTextboxController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n mapConfiguration: \"=\",\r\n mapFunctionConfiguration: \"=\"\r\n };\r\n\r\n public link($scope: IZoomToTextboxScope, element: JQuery, attrs: ng.IAttributes) {\r\n\r\n }\r\n }\r\n\r\n export class ZoomToTextboxController {\r\n\r\n constructor(private $scope: IZoomToTextboxScope,private esriMapService: services.EsriMapService,private growl:angular.growl.IGrowlService) {\r\n this.$scope.zoom= () => this.zoom();\r\n }\r\n\r\n private zoom() {\r\n var uniqueId = this.$scope.mapFunctionConfiguration.zoomToQueryConfiguration.placeHolderForInput\r\n .placeHolderUniqueIdentifier;\r\n\r\n var placeHolderDict = {};\r\n placeHolderDict[uniqueId] = this.$scope.textValue;\r\n\r\n this.esriMapService.queryMapService(this.$scope.mapFunctionConfiguration.zoomToQueryConfiguration\r\n .esriQueryConfiguration,\r\n placeHolderDict).then(r => {\r\n if (r && r.features && r.features.length>0) {\r\n let geoJsonLayer = L.geoJSON(r, null);\r\n\r\n GisMapController.currentMap.fitBounds(geoJsonLayer.getBounds());\r\n } else {\r\n this.growl.error(this.$scope.mapFunctionConfiguration.message,{ttl:5000});\r\n }\r\n });\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ZoomToTextbox', []);","/// \r\n/**\r\n * Created by jeremyconger on 4/26/17.\r\n */\r\n//# sourceMappingURL=SelectGeometry.js.map","/// \r\nmodule warsApp.directives {\r\n export interface ISetPropertyConfigurationScope extends angular.IScope {\r\n save: any;\r\n configuration: Wars.Domain.Model.Gis.SetPropertyConfiguration;\r\n inputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection;\r\n mapConfiguration:Wars.Domain.Model.Gis.MapConfiguration;\r\n systemLevel:Wars.Domain.Model.SystemLevel;\r\n }\r\n\r\n export class SetPropertyConfiguration implements IDirective {\r\n public link($scope: ISetPropertyConfigurationScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/setPropertyConfiguration.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\r\n \"$scope\", 'systemLevelService', SetPropertyConfigurationController\r\n ];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n configuration: \"=\",\r\n inputCollection: \"=\",\r\n mapConfiguration:\"=\"\r\n };\r\n }\r\n\r\n export class SetPropertyConfigurationController {\r\n constructor(private $scope: ISetPropertyConfigurationScope,\r\n private systemLevelService: services.SystemLevelService) {\r\n systemLevelService.getSystemLevelJsonDictionaryStores().then(systemLevel => {\r\n $scope.systemLevel = systemLevel;\r\n });\r\n\r\n $scope.save = () =>systemLevelService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('SetPropertyConfiguration', []);","/// \r\nmodule warsApp.directives {\r\n export interface ITrimConfigurationScope extends angular.IScope {\r\n configuration: Wars.Domain.Model.Gis.TrimConfiguration;\r\n inputCollection: Wars.Domain.Model.Gis.GisInputOutputCollection;\r\n addAttribute: any;\r\n save: any;\r\n }\r\n\r\n export class TrimConfiguration implements IDirective {\r\n public link($scope: ITrimConfigurationScope, element: JQuery, attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/gis/trimConfiguration.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", 'mapConfigurationService', TrimConfigurationController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n configuration: \"=\",\r\n inputCollection: \"=\"\r\n };\r\n }\r\n\r\n export class TrimConfigurationController {\r\n constructor(private $scope: ITrimConfigurationScope, private mapConfigurationService: services.MapConfigurationService) {\r\n $scope.save = () => mapConfigurationService.saveAllChanges();\r\n $scope.addAttribute = () => this.addAttribute();\r\n }\r\n\r\n private addAttribute() {\r\n let newAttribute = this.mapConfigurationService.createLineTrimAttribute();\r\n newAttribute.attributeName = \"New Attribute Name\";\r\n newAttribute.isAdd = true;\r\n\r\n this.$scope.configuration.lineTrimAttributes.push(newAttribute);\r\n this.mapConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('TrimConfiguration', []);","/// \r\nmodule warsApp.directives {\r\n\r\n\r\n export interface IInnerExpressionScope extends ng.IScope {\r\n expression: Wars.Domain.Model.Conditions.Expression;\r\n }\r\n\r\n export class InnerExpressionGroup implements IDirective {\r\n public link($scope: any, element: JQuery, attrs: ng.IAttributes) {\r\n\r\n }\r\n\r\n public templateUrl = './app/views/directives/innerExpressionGroup.html';\r\n public controller = [\r\n '$scope', 'fieldService', 'formStepService', 'treeService', 'treeItemService', 'conditionService',\r\n 'statusAndStateService','processConfigurationService', InnerExpressionController\r\n ];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n expression: \"=\",\r\n isReadonly: \"=\",\r\n processConfigurationId: \"=\"\r\n };\r\n }\r\n\r\n export class InnerExpressionModel {\r\n private contextWithOnlyAnyAndAll: any = {\r\n includeSpecifiedOptionsOnly: [6, 7]\r\n };\r\n public valueAggregateFunctionContext: any = {};\r\n public fieldAggregateFunctionContext: any = {};\r\n public statusGroup: Wars.Domain.Model.Statuses.StatusCodeGroup;\r\n public states:Wars.Domain.Model.Statuses.StateCode[] = [];\r\n public subTypes:Wars.Domain.Model.ProcessSubType[];\r\n\r\n constructor(\r\n public expression: Wars.Domain.Model.Conditions.Expression,\r\n public isReadonly,\r\n private fieldService: services.FieldService,\r\n private FormStepService: services.FormStepService,\r\n private treeService: services.TreeService,\r\n private treeItemService: services.TreeItemService,\r\n private conditionService: services.ConditionService,\r\n private statusGroupService: services.StatusAndStateService,\r\n private processConfigurationId: string,\r\n private processConfigurationService:services.ProcessConfigurationService) {\r\n\r\n this.processConfigurationService.getPermitSubTypeInfo(processConfigurationId).then(\r\n (processConfiguration: Wars.Domain.Model.ProcessConfiguration) => {\r\n this.subTypes = processConfiguration.mySubTypeConfiguration.myProcessSubTypes;\r\n });\r\n\r\n statusGroupService.getStatusAndStatesByProcessConfig(this.processConfigurationId)\r\n .then(r => {\r\n this.statusGroup =r;\r\n r.myStatuses.forEach(s => {\r\n s.myStates.forEach(state => {\r\n this.states.push(state);\r\n });\r\n });\r\n });\r\n\r\n var expressionType = this.getType(this.expression);\r\n\r\n\r\n if ((expression).valueAggregateFunction) {\r\n (expression).isValueFieldList = true;\r\n }\r\n\r\n if ((expression).aggregateFunction) {\r\n (expression).isFieldList = true;\r\n }\r\n\r\n if (expressionType === \"TreeItemToTreeItemExpression\") {\r\n this.loadTreeItemVariables();\r\n treeItemService.getTreeItem((this.expression)\r\n .valueTreeItem_id)\r\n .then(ti => {\r\n (this.expression).valueTreeItem = ti;\r\n });\r\n } else if (expressionType === \"TreeItemToConstantExpression\") {\r\n this.loadTreeItemVariables();\r\n }\r\n }\r\n\r\n private loadTreeItemVariables() {\r\n this.treeItemService\r\n .getTreeItem((this.expression).treeItem_id)\r\n .then(ti => {\r\n (this.expression).treeItem = ti;\r\n });\r\n\r\n if ((this.expression)\r\n .treeItemOperationParameterSet_id) {\r\n this.conditionService\r\n .getOperationSetExpanded((this.expression\r\n )\r\n .treeItemOperationParameterSet_id)\r\n .then(operationSet => {\r\n // (this.expression).treeItemOperationParameterSet = operationSet;\r\n });\r\n }\r\n }\r\n\r\n public getType(obj: Object) {\r\n var funcNameRegex = /function (.{1,})\\(/;\r\n var results = (funcNameRegex).exec((obj).constructor.toString());\r\n var returnObj = (results && results.length > 1) ? results[1] : \"\";\r\n var split = returnObj.split('_');\r\n\r\n return split[0];\r\n }\r\n\r\n private getDragExpressionByScope($scope): Wars.Domain.Model.Conditions.Expression {\r\n var expression = $scope.expression;\r\n returnexpression;\r\n }\r\n\r\n public onDropTreeItem($event, expression: Wars.Domain.Model.Conditions.TreeItemExpression) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped(() => {\r\n\r\n expression.treeItem = treeItem;\r\n expression.treeItem_id = treeItem.id;\r\n\r\n this.setCodeGroup();\r\n\r\n var treeConfigItem = this.treeService.getTreeConfigurationItem();\r\n\r\n if (treeItem.calculation_id && treeItem.calculation.inputSchema) {\r\n const paramSet = this.conditionService.createOperationParameterSet();\r\n\r\n treeItem.calculation.inputSchema.properties.forEach(p => {\r\n const parameter = this.conditionService.createOperationParameter(paramSet);\r\n\r\n parameter.mySchemaProperty = p;\r\n paramSet.operationParameters.push(parameter);\r\n });\r\n\r\n expression.treeItemOperationParameterSet = paramSet;\r\n }\r\n\r\n if (treeConfigItem.isList) {\r\n (expression).isFieldList = true;\r\n this.fieldAggregateFunctionContext = this.setDropdownContext(treeItem);\r\n\r\n } else {\r\n (expression).isFieldList = false;\r\n (expression).aggregateFunction = null;\r\n }\r\n });\r\n }\r\n\r\n private setDropdownContext(treeItem: Wars.Domain.Model.TreeItem): any {\r\n switch (treeItem.variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Date:\r\n case Wars.Domain.Model.Codes.Enums.VariableType.DateTime:\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n return {};\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Boolean:\r\n case Wars.Domain.Model.Codes.Enums.VariableType.String:\r\n default:\r\n return this.contextWithOnlyAnyAndAll;\r\n }\r\n }\r\n\r\n public onDropTreeItemToTreeItem($event, expression: Wars.Domain.Model.Conditions.TreeItemToTreeItemExpression) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped(() => {\r\n \r\n expression.valueTreeItem = treeItem;\r\n expression.valueTreeItem_id = treeItem.id;\r\n\r\n const treeConfigItem = this.treeService.getTreeConfigurationItem();\r\n\r\n if (treeItem.calculation_id && treeItem.calculation.inputSchema) {\r\n const paramSet = this.conditionService.createOperationParameterSet();\r\n\r\n treeItem.calculation.inputSchema.properties.forEach(p => {\r\n paramSet.operationParameters.push(this.conditionService.createOperationParameter(paramSet));\r\n\r\n });\r\n\r\n expression.valueTreeItemOperationParameterSet = paramSet;\r\n }\r\n\r\n if (treeConfigItem.isList) {\r\n (expression).isValueFieldList = true;\r\n //this.valueAggregateFunctionContext = this.setDropdownContext(treeItem);\r\n } else {\r\n (expression).isValueFieldList = false;\r\n (expression).valueAggregateFunction = null;\r\n }\r\n });\r\n }\r\n\r\n public onDropCalculationInput($event, operationParameter: Wars.Domain.Model.OperationParameter) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped(() => {\r\n operationParameter.treeItem = treeItem;\r\n });\r\n }\r\n\r\n public onDropStep($event, expression: Wars.Domain.Model.Conditions.FormStepExpression) {\r\n const value = ExpressionGroupModel.getDragValue();\r\n\r\n this.FormStepService.fetchFormStep(value.stepId)\r\n .then(r => {\r\n expression.formStep = r;\r\n });\r\n }\r\n\r\n public getTreeItemParentName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n return this.treeService.getParentDisplayName(treeItem);\r\n }\r\n\r\n public getTreeItemIconName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n return this.treeService.getParentDisplayIcon(treeItem);\r\n }\r\n\r\n public getTreeItemName(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (!treeItem) return '';\r\n return this.treeService.getDisplayName(treeItem);\r\n }\r\n\r\n public useDropDown(treeItem: Wars.Domain.Model.TreeItem): boolean {\r\n return treeItem && treeItem.schemaProperty && treeItem.schemaProperty.codeGroup_id != null;\r\n }\r\n\r\n public removePart(expression) {\r\n expression.entityAspect.setDeleted();\r\n (this.expression).parentExpression.children.remove(expression);\r\n }\r\n\r\n private setCodeGroup() {\r\n var treeItem = (this.expression).treeItem;\r\n if (!treeItem || !treeItem.schemaProperty || treeItem.schemaProperty.codeGroup_id == null) return;\r\n\r\n (this.expression).codeGroupId = treeItem.schemaProperty.codeGroup_id;\r\n\r\n (this.expression).refresh = true;\r\n }\r\n\r\n }\r\n\r\n export class InnerExpressionController implements IController {\r\n private scope: any;\r\n\r\n constructor(\r\n $scope: any,\r\n fieldService: services.FieldService,\r\n FormStepService: services.FormStepService,\r\n treeService: services.TreeService,\r\n treeItemService: services.TreeItemService,\r\n conditionService: services.ConditionService,\r\n statusAndStateService: services.StatusAndStateService,\r\n processConfigurationService:services.ProcessConfigurationService) {\r\n var expression = ($scope).expression;\r\n $scope.model = new InnerExpressionModel(expression,\r\n $scope.isReadonly,\r\n fieldService,\r\n FormStepService,\r\n treeService,\r\n treeItemService,\r\n conditionService,\r\n statusAndStateService,\r\n $scope.processConfigurationId,processConfigurationService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('InnerExpressionGroup', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IConfigureRowScope extends ng.IScope {\r\n formName: string;\r\n isEditMode: boolean;\r\n showSlider: boolean;\r\n moveStepAvailable: boolean;\r\n description: string;\r\n isMultiStep: boolean;\r\n showCustomCode: boolean;\r\n formConfiguration: Wars.Domain.Model.Form;\r\n apiActions: Wars.Domain.Model.ApiAction[];\r\n filteredApiActions: Wars.Domain.Model.ApiAction[];\r\n processTypes: Wars.Domain.Model.ProcessType[];\r\n selectedApiAction: Wars.Domain.Model.ApiAction;\r\n save: any;\r\n processTypeChanged: any;\r\n toggleShowFormSchema(): void;\r\n selectApiAction: any;\r\n showFormSchema: boolean;\r\n }\r\n\r\n export class ConfigureRow implements IDirective {\r\n\r\n\r\n public link($scope: IConfigureRowScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/inputForm/configureRow.html';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n formName: \"=\",\r\n isEditMode: \"=\",\r\n showSlider: \"=\",\r\n moveStepAvailable: '=',\r\n description: '=',\r\n isMultiStep: \"=\",\r\n showCustomCode: \"=\",\r\n formConfiguration: \"=\"\r\n }\r\n public controller = [\"$scope\", \"apiActionService\", ConfigureRowController];\r\n public controllerAs = \"controller\";\r\n\r\n }\r\n\r\n export class ConfigureRowController {\r\n constructor(private $scope: IConfigureRowScope, private apiActionService: services.ApiActionService) {\r\n\r\n this.apiActionService.getApiConfigurations().then(r => {\r\n $scope.apiActions = r;\r\n\r\n $scope.processTypes = Enumerable.from($scope.apiActions).select(a => a.processConfiguration.myProcessType).distinct().toArray();\r\n\r\n this.setFilteredApiActions();\r\n });\r\n\r\n $scope.save = () => this.save();\r\n $scope.selectApiAction = () => this.selectApiAction();\r\n $scope.processTypeChanged = () => this.processTypeChanged();\r\n $scope.toggleShowFormSchema = () => this.toggleShowFormSchema();\r\n $scope.showFormSchema = false;\r\n }\r\n\r\n public processTypeChanged() {\r\n this.setFilteredApiActions();\r\n this.$scope.formConfiguration.defaultFormValueApiActionUniqueId = null;\r\n\r\n this.save();\r\n }\r\n\r\n public selectApiAction() {\r\n this.setSelectedApiAction();\r\n\r\n this.$scope.formConfiguration.mySteps.forEach(s => {\r\n s.formSections.forEach(fs => {\r\n fs.fields.forEach(field => {\r\n field.defaultSchemaPropertyUniqueId = null;\r\n });\r\n });\r\n });\r\n\r\n this.save();\r\n }\r\n\r\n private toggleShowFormSchema(): void {\r\n this.$scope.showFormSchema = !this.$scope.showFormSchema;\r\n }\r\n\r\n private save() {\r\n this.apiActionService.saveAllChanges();\r\n }\r\n\r\n private setFilteredApiActions() {\r\n this.$scope.filteredApiActions = Enumerable.from(this.$scope.apiActions).where(a => a.processConfiguration.processType_id == this.$scope.formConfiguration.apiActionProcessType_id)\r\n .distinct(a => a.uniqueId).toArray();\r\n\r\n this.setSelectedApiAction()\r\n }\r\n\r\n private setSelectedApiAction() {\r\n this.$scope.selectedApiAction = Enumerable.from(this.$scope.filteredApiActions).singleOrDefault(a => a.uniqueId == this.$scope.formConfiguration.defaultFormValueApiActionUniqueId);\r\n }\r\n }\r\n}\r\n\r\n\r\nwarsApp.registerDirective('ConfigureRow', []);","/// \r\n//# sourceMappingURL=EmbeddedForm.js.map","/// \r\nmodule warsApp.directives {\r\n\r\n\r\n export interface IFieldScope extends angular.IScope {\r\n field: Wars.Domain.Model.Field;\r\n formData: any;\r\n formDataChange: any;\r\n processId: string;\r\n isReadonly: boolean;\r\n isEditMode: boolean;\r\n formDataId: string;\r\n formId: string;\r\n tinyMceOptions: any;\r\n formSectionUniqueId: string;\r\n rowId: string;\r\n parentFormId: string;\r\n hasUpdated: boolean;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n processConfigurationId: string;\r\n stepId: string;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n states: Wars.Domain.Model.Dtos.FlatStatusAndStateDto[];\r\n processStates: Wars.Domain.Model.Dtos.FlatStatusAndStateDto[];\r\n processTypes: Wars.Domain.Model.Dtos.ProcessTypeDto[];\r\n subTypes: Wars.Domain.Model.Dtos.ProcessSubTypeDto[];\r\n statuses: Wars.Domain.Model.Dtos.FlatStatusAndStateDto[];\r\n dropdownOptions: models.CodeDropDownItem[];\r\n documentTypeOptions: models.CodeDropDownItem[];\r\n autoCompleteValue: string;\r\n calculationValue: any;\r\n claimGroups: Wars.Domain.Model.Dtos.ClaimGroupDto[],\r\n reviewGroups: Wars.Domain.Model.Dtos.ReviewGroupDto[],\r\n documentUpdated(model: models.FileUploadModel);\r\n hideSection: any;\r\n metaDataReadOnly: boolean;\r\n }\r\n\r\n export class Field implements IDirective {\r\n public constructor(private upload: any,\r\n private $timeout: angular.ITimeoutService,\r\n private formDataService: services.FormDataService) {\r\n\r\n }\r\n\r\n public link($scope: IFieldScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/inputForm/field.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\r\n \"$scope\", \"Upload\", \"$timeout\", \"formDataService\", \"signalrService\", \"userService\",\r\n \"manageScheduledResourcesService\", \"growl\", \"$q\", \"formCodeFunctionService\", \"customDivService\",\r\n \"applicationCodeService\", \"ngAuthSettings\", 'autoCompleteService', 'processService', 'apiGridService',\r\n 'processTypeService', 'processSubTypeService', \"configurationCacheService\", 'ModalService', '$location',\r\n '$rootScope', 'conditionService','gisMapService', FieldController\r\n ];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n field: \"=\",\r\n formData: \"=\",\r\n formDataChange: \"=\",\r\n processId: \"=\",\r\n isReadonly: \"=\",\r\n isEditMode: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\", \r\n formSectionUniqueId: \"=\",\r\n rowId: \"=\",\r\n parentFormId: \"=\",\r\n process: \"=\",\r\n processConfiguration: \"=\",\r\n processConfigurationId: \"=\",\r\n stepId: \"=\"\r\n };\r\n }\r\n\r\n export class FieldController {\r\n constructor(\r\n private $scope,\r\n private upload: any,\r\n private $timeout: angular.ITimeoutService,\r\n private formDataService: services.FormDataService,\r\n signalRService: services.ISignalrService,\r\n userService: services.UserService,\r\n manageScheduledResourceService: services.ManageScheduledResourcesService,\r\n private growl: angular.growl.IGrowlService,\r\n $q: angular.IQService,\r\n formCodeFunctionService: services.FormCodeFunctionService,\r\n customDivService: services.CustomDivService,\r\n applicationCodeService: services.ApplicationCodeService,\r\n ngAuthSettings: any,\r\n autoCompleteService: services.AutoCompleteService,\r\n private processService: services.ProcessService,\r\n apiGridService: services.ApiGridService,\r\n processTypeService: services.ProcessTypeService,\r\n subTypeService: services.ProcessSubTypeService,\r\n configurationCacheService: Services.ConfigurationCacheService,\r\n modalService: any,\r\n $location: angular.ILocationService,\r\n private $rootScope: angular.IRootScopeService,\r\n conditionService: services.ConditionService,\r\n gisMapService:services.GisMapService)\r\n {\r\n $scope.metaDataReadOnly = false;\r\n\r\n $scope.model = new FieldModel(\r\n $scope,\r\n formDataService,\r\n $timeout,\r\n upload,\r\n signalRService,\r\n userService,\r\n manageScheduledResourceService,\r\n growl,\r\n $q,\r\n formCodeFunctionService,\r\n customDivService,\r\n applicationCodeService,\r\n ngAuthSettings,\r\n autoCompleteService,\r\n processService,\r\n apiGridService,\r\n processTypeService,\r\n subTypeService,\r\n configurationCacheService,\r\n modalService,\r\n $location,\r\n $rootScope,\r\n conditionService,\r\n gisMapService);\r\n\r\n $scope.documentUpdated = (model: models.FileUploadModel) => $scope.model.documentUpdated(model);\r\n $scope.hideSection = { hideSection: false };\r\n }\r\n }\r\n\r\n export class FieldModel {\r\n private customFunction: Wars.Domain.Model.Dtos.CustomFunctionDto;\r\n\r\n field: Wars.Domain.Model.Field;\r\n formData: any;\r\n formDataChange: any;\r\n processId: string;\r\n isReadonly: boolean;\r\n isEditMode: boolean;\r\n formDataId: string;\r\n formId: string;\r\n localTimeZone: string;\r\n selectedState: Wars.Domain.Model.Dtos.FlatStatusAndStateDto;\r\n radioButtonOptions: Wars.Domain.Model.Codes.SystemCode[];\r\n currentValue: any;\r\n\r\n public acceptsText: string = \".gif,.jpeg,.jpg,.jpe,.tiff,.tif,.pdf,.doc,.docx,.xls,.xlsx,.txt,.dwg\";\r\n\r\n tinyMceOptions: any = {\r\n //format: 'raw',\r\n menubar: false,\r\n inline: true,\r\n plugins: \"autolink anchor link code\",\r\n content_css: \"content/mce.css\",\r\n toolbar1:\r\n 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | code',\r\n setup(editor) {\r\n }\r\n };\r\n\r\n marker: any = {};\r\n map: any = {\r\n center: { latitude: 28.4158, longitude: -81.2989 },\r\n zoom: 6,\r\n events: {\r\n click(map, eventName, args) {\r\n this.marker.coordinates = {\r\n latitude: args[0].latLng.lat(),\r\n longitude: args[0].latLng.lng()\r\n }\r\n if (this.$scope.formData) {\r\n this.$scope.formData[this.$scope.field.schemaProperty\r\n .uniqueIdentifier] = this.$scope.marker.coordinates;\r\n this.fieldChanged();\r\n }\r\n this.$scope.$apply();\r\n\r\n if (this.$scope.formDataChange) {\r\n this.$scope.formDataChange();\r\n }\r\n }\r\n }\r\n };\r\n progress: number;\r\n pattern: string;\r\n step: string;\r\n errorMsg: string;\r\n\r\n constructor(\r\n private $scope: IFieldScope,\r\n private formDataService: services.FormDataService,\r\n private $timeout: angular.ITimeoutService,\r\n private upload: any,\r\n private signalRService: services.ISignalrService,\r\n private userService: services.UserService,\r\n private manageScheduledResourceService: services.ManageScheduledResourcesService,\r\n private growl: angular.growl.IGrowlService,\r\n private $q: angular.IQService,\r\n private formCodeFunctionService: services.FormCodeFunctionService,\r\n private customDivService: services.CustomDivService,\r\n private applicationCodeService: services.ApplicationCodeService,\r\n private ngAuthSettings: any,\r\n private autoCompleteService: services.AutoCompleteService,\r\n private processService: services.ProcessService,\r\n private apiGridService: services.ApiGridService,\r\n private processTypeService: services.ProcessTypeService,\r\n private subTypeService: services.ProcessSubTypeService,\r\n private configurationCacheService: services.ConfigurationCacheService,\r\n private modalService: any,\r\n private $location: angular.ILocationService,\r\n private $rootScope: angular.IRootScopeService,\r\n private conditionService: services.ConditionService,\r\n private gisMapService:services.GisMapService) {\r\n\r\n\r\n if ($scope.process && $scope.process.metadata &&\r\n $scope.process.metadata[$scope.field.schemaProperty.uniqueIdentifier]) {\r\n const metadataObj = JSON.parse($scope.process.metadata[$scope.field.schemaProperty.uniqueIdentifier]);\r\n\r\n if (metadataObj.isReadonly) {\r\n this.$scope.metaDataReadOnly =true;\r\n }\r\n }\r\n\r\n $scope.$watch('rowId',\r\n () => {\r\n this.setListMetadata();\r\n });\r\n\r\n // Striping out Standard or Daylight because times do not have a date context and therefore are neither standard or daylight time.\r\n this.localTimeZone = warsApp.DateTimeHelper.GetTimeZoneNameWithoutDaylightOrStandard();\r\n\r\n if ($scope.field.maxTextLength == null ||\r\n $scope.field.maxTextLength === 0 ||\r\n $scope.field.maxTextLength > 4000) {\r\n $scope.field.maxTextLength = 4000;\r\n }\r\n\r\n if ($scope.field.textAreaRows == null || $scope.field.textAreaRows < 5 || $scope.field.textAreaRows > 20) {\r\n $scope.field.textAreaRows = 5;\r\n }\r\n\r\n if (($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Percentage ||\r\n $scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Number) &&\r\n $scope.field.decimalPlaces > 0) {\r\n this.pattern = \"/^[0-9]+(\\.[0-9]{1,\" + $scope.field.decimalPlaces + \"})?$/\";\r\n this.step = \"0.01\";\r\n }\r\n\r\n //USER PICKER ********************************************************************\r\n //all this to decode the user picker value and display the user's name\r\n var decodeUserDelegate = (model) => {\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.UserSelector) {\r\n if (!$scope.formData) {\r\n return;\r\n };\r\n var warsUserId = $scope.formData[$scope.field.schemaProperty.uniqueIdentifier];\r\n if (warsUserId == null) {\r\n model.selectedUser = null;\r\n } else {\r\n userService.getUser(warsUserId)\r\n .then((result) => {\r\n model.selectedUser = result;\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (this.$scope.formData) {\r\n this.currentValue = this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier];\r\n }\r\n\r\n var cb = undefined;\r\n\r\n if ($scope.field != undefined && $scope.field.type != undefined) {\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.PhoneNumber ||\r\n $scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Zipcode ||\r\n ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.TextBox &&\r\n $scope.field.mask != undefined &&\r\n $scope.field.mask != null &&\r\n $scope.field.mask !== \"\")) {\r\n $scope.$on('onBeforeUnload',\r\n (e) => {\r\n this.fieldChanged();\r\n });\r\n }\r\n }\r\n\r\n decodeUserDelegate(this);\r\n //listen for the broadcast from form clear to remove the user bound to the picker\r\n cb = $rootScope.$on('userPickerCleared',\r\n (event, data) => {\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.UserSelector) {\r\n (this).selectedUser = null;\r\n }\r\n });\r\n //destroy the listener on scope destroy to avoid memory leak\r\n $scope.$on(\"$destroy\",\r\n () => {\r\n if (cb != undefined) {\r\n cb(); \r\n }\r\n });\r\n //END USER PICKER ********************************************************************\r\n\r\n\r\n if ($scope.field.condition_id && $scope.field.clearOnDisplayConditionHide) {\r\n $scope.$watchCollection('process.conditionStates',\r\n () => {\r\n if ($scope.process &&\r\n $scope.process.conditionStates &&\r\n !$scope.process.conditionStates[$scope.field.condition_id] &&\r\n $scope.formData[$scope.field.schemaProperty.uniqueIdentifier]) {\r\n $scope.formData[$scope.field.schemaProperty.uniqueIdentifier] = null;\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.UserSelector) {\r\n (this).selectedUser = null;\r\n }\r\n this.fieldChanged();\r\n }\r\n });\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Location) {\r\n if ($scope.formData) {\r\n var watchField = 'formData[\"' + $scope.field.schemaProperty.uniqueIdentifier + '\"]';\r\n var appWatch = $scope.$watch(watchField,\r\n newVal => {\r\n if (newVal) {\r\n this.marker.coordinates = $scope.formData[$scope.field.schemaProperty.uniqueIdentifier];\r\n this.fieldChanged();\r\n appWatch();\r\n }\r\n });\r\n }\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.CustomButton) {\r\n if (this.$scope.process) {\r\n const stepFunctions: Wars.Domain.Model.Dtos.CustomFunctionDto[] = $scope.process.customStepFunctions\r\n [this.$scope.stepId];\r\n if (stepFunctions) {\r\n this.customFunction = Enumerable.from(stepFunctions)\r\n .singleOrDefault(s => s.fieldId === $scope.field.id);\r\n }\r\n }\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.ProcessType) {\r\n this.processTypeService.getExecutionProcessTypes()\r\n .then(types => {\r\n if ($scope.field.fieldExcludedProcessTypes != null && types != null) {\r\n var excludes = [];\r\n for (var x = 0; x < types.length; x++) {\r\n for (var i = 0; i < $scope.field.fieldExcludedProcessTypes.length; i++) {\r\n if ($scope.field.fieldExcludedProcessTypes[i].processType_id === types[x].id) {\r\n excludes.push(types[x]);\r\n }\r\n }\r\n }\r\n $scope.processTypes = Enumerable.from(types).except(excludes).distinct(t => t.id).toArray();\r\n } else {\r\n $scope.processTypes = types;\r\n }\r\n });\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.SubType) {\r\n this.subTypeService.getExecutionProcessSubTypes()\r\n .then(types => {\r\n $scope.subTypes = types;\r\n });\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.AutoComplete && this.$scope.formData) {\r\n let processId = this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier];\r\n if (processId) {\r\n if (this.$scope.process.processNames[processId]) {\r\n $scope.autoCompleteValue = this.$scope.process.processNames[processId];\r\n } else {\r\n this.processService.getProcessName(processId)\r\n .then(name => {\r\n $scope.autoCompleteValue = name;\r\n this.$scope.process.processNames[processId] = name;\r\n //console.log(this.$scope.process.processNames);\r\n });\r\n }\r\n }\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.ClaimGroup) {\r\n this.configurationCacheService.getSystemClaimGroups().then(claimGroups => {\r\n this.$scope.claimGroups = claimGroups;\r\n });\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Map) {\r\n if (this.$scope.process) {\r\n $scope.$on('mapLoaded',()=>this.gisMapService.addFeaturesLayer(this.$scope.process.features, true));\r\n }\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.ReviewGroup) {\r\n this.configurationCacheService.getSystemReviewGroups().then(reviewGroups => {\r\n this.$scope.reviewGroups = reviewGroups;\r\n });\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Dropdown) {\r\n this.reloadDropdownCodes();\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.RadioButton) {\r\n this.reloadRadioButtonOptions();\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.MultiSelectStatus ||\r\n $scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Status)\r\n {\r\n this.configurationCacheService.getSystemStatuses().then(\r\n (statuses: Wars.Domain.Model.Dtos.FlatStatusAndStateDto[]) => {\r\n this.$scope.statuses = [];\r\n statuses.forEach(flatDto => {\r\n if ($scope.field.fieldExcludedStatuses == null ||\r\n $scope.field.fieldExcludedStatuses.length === 0 ||\r\n !Enumerable.from($scope.field.fieldExcludedStatuses).any(f => f.statusCode.uniqueIdentifier === flatDto.statusCodeUniqueId))\r\n {\r\n this.$scope.statuses.push(flatDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.MultiSelectState ||\r\n $scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.State) {\r\n\r\n this.configurationCacheService.getSystemStates().then(\r\n (states: Wars.Domain.Model.Dtos.FlatStatusAndStateDto[]) => {\r\n this.$scope.states = [];\r\n states.forEach(flatDto => {\r\n if ($scope.field.fieldExcludedStates == null ||\r\n $scope.field.fieldExcludedStates.length === 0 ||\r\n !Enumerable.from($scope.field.fieldExcludedStates).any(f => f.stateCode.uniqueIdentifier === flatDto.stateCodeUniqueId))\r\n {\r\n this.$scope.states.push(flatDto);\r\n }\r\n });\r\n });\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.StateChange) {\r\n this.configurationCacheService.getProcessStates(this.$scope.processConfigurationId).then(\r\n (states: Wars.Domain.Model.Dtos.FlatStatusAndStateDto[]) => {\r\n this.$scope.processStates = states;\r\n });\r\n }\r\n\r\n if ($scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.ScheduledResource) {\r\n this.reloadScheduledResourceCodes();\r\n if ($scope.formData && !$scope.formData[$scope.field.schemaProperty.uniqueIdentifier]) {\r\n $scope.formData[$scope.field.schemaProperty.uniqueIdentifier] = {};\r\n }\r\n }\r\n\r\n var self = this;\r\n\r\n if (self.$scope.processId) {\r\n this.signalRService.broadcast($scope)\r\n .then((broadcaster) => {\r\n broadcaster.enterProcess(self.$scope.processId, false);\r\n });\r\n\r\n let currentUser = this.userService.getCurrentUser();\r\n this.signalRService.listen($scope)\r\n .then((listener) => {\r\n listener.onSignalGroupOfProcessDataUpdate((user, result) => {\r\n if (result.type !== \"FieldUpdate\" || currentUser.userName === user)\r\n return;\r\n\r\n for (var i = 0; i < result.updatedFields.length; i++) {\r\n var updatedField: Wars.Domain.Model.Dtos.UpdatedFieldValueDto = result.updatedFields[i];\r\n if (updatedField.fieldUniqueId === self.$scope.field.schemaProperty.uniqueIdentifier) {\r\n self.$scope.hasUpdated = false;\r\n $scope.$apply(() => {\r\n });\r\n self.$scope.hasUpdated = true;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n private reloadDropdownCodes(): void {\r\n if (!this.$scope.field.schemaProperty.codeGroup_id)\r\n return;\r\n\r\n const excludes = Enumerable.from(this.$scope.field.fieldExcludedSystemCodes)\r\n .select(c => c.systemCode.uniqueIdentifier).toArray();\r\n\r\n const context = { removeSpecifiedOptions: excludes };\r\n\r\n if (this.$scope.processId) {\r\n this.applicationCodeService.getProcessLevelApplicationCodesForExecution(\r\n this.$scope.field.schemaProperty.codeGroup_id,\r\n this.$scope.processConfigurationId,\r\n false).then(\r\n (applicationCodes) => {\r\n this.$scope.dropdownOptions = this.applicationCodeService\r\n .buildCodeDropDownOptions(applicationCodes, true, context);\r\n });\r\n } else {\r\n this.applicationCodeService.getApplicationCodesForConfiguration(\r\n this.$scope.field.schemaProperty.codeGroup_id,\r\n false).then((applicationCodes) => {\r\n this.$scope.dropdownOptions = this.applicationCodeService\r\n .buildCodeDropDownOptions(applicationCodes, true, context);\r\n });\r\n }\r\n }\r\n\r\n private reloadRadioButtonOptions(): void {\r\n if (!this.$scope.field.schemaProperty.codeGroup_id)\r\n return;\r\n\r\n const excludes = Enumerable.from(this.$scope.field.fieldExcludedSystemCodes).select(c => c.systemCode.uniqueIdentifier).toArray();\r\n this.radioButtonOptions = Enumerable.from(this.$scope.field.schemaProperty.codeGroup.codes)\r\n .where(i => excludes.indexOf(i.uniqueIdentifier) === -1)\r\n .orderBy(i => i.uniqueIdentifier)\r\n .toArray();\r\n }\r\n\r\n private reloadScheduledResourceCodes(): void {\r\n if (!this.$scope.field.schemaProperty.scheduledResourceConfiguration ||\r\n !this.$scope.field.schemaProperty.scheduledResourceConfiguration.parentCodeGroup_id)\r\n return;\r\n\r\n if (this.$scope.processId) {\r\n this.applicationCodeService.getProcessLevelApplicationCodesForExecution(\r\n this.$scope.field.schemaProperty.scheduledResourceConfiguration.parentCodeGroup_id,\r\n this.$scope.processConfigurationId,\r\n false).then(\r\n (applicationCodes) => {\r\n this.$scope.dropdownOptions = this.applicationCodeService\r\n .buildCodeDropDownOptions(applicationCodes, true);\r\n });\r\n } else {\r\n this.applicationCodeService.getApplicationCodesForConfiguration(\r\n this.$scope.field.schemaProperty.scheduledResourceConfiguration.parentCodeGroup_id,\r\n false).then((applicationCodes) => {\r\n this.$scope.dropdownOptions = this.applicationCodeService\r\n .buildCodeDropDownOptions(applicationCodes, true);\r\n });\r\n }\r\n }\r\n\r\n public deleteDocument(uniqueIdentifier: string): void {\r\n alert(\"In-Work\");\r\n }\r\n\r\n public showHistory() {\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/historyModal.html\",\r\n controller: \"historyModalController\",\r\n size: 'lg',\r\n inputs: {\r\n process: this.$scope.process,\r\n processConfigId: this.$scope.processConfigurationId,\r\n uniqueId: this.$scope.field.schemaProperty.parentObjectSchema.isList\r\n ? this.$scope.field.schemaProperty.parentObjectSchema.uniqueIdentifier\r\n : this.$scope.field.schemaProperty.uniqueIdentifier,\r\n formDataId: this.$scope.formDataId,\r\n propertyId: this.$scope.field.schemaProperty.parentObjectSchema.isList\r\n ? this.$scope.field.schemaProperty.uniqueIdentifier\r\n : undefined,\r\n codeGroupId: this.$scope.field.schemaProperty.codeGroup_id,\r\n rowId: this.$scope.rowId\r\n\r\n }\r\n })\r\n .then(modal => {\r\n modal.element.modal();\r\n modal.close.then(result => {\r\n $('.modal-backdrop')\r\n .each(function() {\r\n $(this).remove();\r\n });\r\n });\r\n });\r\n }\r\n\r\n public runCustomFunction() {\r\n if (this.customFunction) {\r\n if (this.$scope.rowId) {\r\n let args = ['processId', 'formId', 'formDataId', 'rowId', this.customFunction.javascript];\r\n let myFunc = Function.apply(null, args);\r\n\r\n myFunc(this.$scope.processId, this.$scope.formId, this.$scope.formDataId, this.$scope.rowId);\r\n } else {\r\n let args = ['processId', 'formId', 'formDataId', this.customFunction.javascript];\r\n let myFunc = Function.apply(null, args);\r\n\r\n myFunc(this.$scope.processId, this.$scope.formId, this.$scope.formDataId);\r\n }\r\n }\r\n }\r\n\r\n\r\n public runPostSaveEvents() {\r\n if (!this.$scope.process) {\r\n return;\r\n }\r\n\r\n if (this.$scope.field.processAction_id) {\r\n this.processService.runProcessAction(this.$scope.process.id, this.$scope.field.processAction_id)\r\n .then((process) => {\r\n (process as any).isFieldChangedProcessAction = true;\r\n this.$rootScope.$broadcast('ProcessChanged', process);\r\n });\r\n }\r\n }\r\n\r\n public calculate() {\r\n this.formDataService.calculate(this.$scope.processId, this.$scope.field.calculation_id)\r\n .then(r => {\r\n this.$scope.calculationValue = r;\r\n });\r\n }\r\n\r\n public autoCompleteSelected(value) {\r\n this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier] = value.processId;\r\n this.$scope.autoCompleteValue = value.output;\r\n //if (!this.$scope.process.processNames[value.processId]) {\r\n this.$scope.process.processNames[value.processId] = value.output;\r\n //}\r\n //TODO: Jeremy says- do not ask! \r\n delete (this.$scope.process.processNames).undefined;\r\n this.fieldChangedInternal().then(() => {\r\n //refresh linked grid\r\n if (this.$scope.field.apiGridConfiguration_id != null) {\r\n this.$rootScope.$broadcast(\"RefreshApiGrid\", this.$scope.field.apiGridConfiguration_id);\r\n } \r\n });\r\n }\r\n\r\n public search(value) {\r\n return this.autoCompleteService.runAutoComplete(this.$scope.processConfigurationId,\r\n this.$scope.field.autoCompleteConfiguration_id,\r\n value)\r\n .then(r => {\r\n var mappedReturn = r.data.map(function(item) {\r\n return item.output;\r\n });\r\n\r\n //console.log(mappedReturn);\r\n //return mappedReturn;\r\n return r.data;\r\n });\r\n }\r\n\r\n public initiatePayment() {\r\n if (!this.$scope.processId) {\r\n alert(\"Payment would be initiated upon a click of this button\");\r\n return;\r\n }\r\n\r\n var serviceBase = this.ngAuthSettings.apiServiceBaseUri;\r\n var paymentConfigId = this.$scope.field.schemaProperty.paymentConfiguration_id;\r\n var url: string = `${serviceBase}#/InitiatePayment?processId=${this.$scope.processId}&paymentConfigId=${paymentConfigId}`;\r\n var windowObjectReference = window.open(url, \"Payment\", \"location=0,status=0,width=1366,height=768\");\r\n\r\n var pollTimer = window.setInterval(() => {\r\n if (windowObjectReference.closed !== false) { // !== is required for compatibility with Opera\r\n window.clearInterval(pollTimer);\r\n this.paymentWindowClosed(windowObjectReference);\r\n }\r\n },\r\n 200);\r\n }\r\n\r\n private paymentWindowClosed(windowObjectReference: any):\r\n void {\r\n this.processService.getProcessDto(this.$scope.process.id)\r\n .then(process => {\r\n this.$rootScope.$broadcast('ProcessChanged', process);\r\n });\r\n }\r\n\r\n public checkAvailability() {\r\n this.manageScheduledResourceService.checkScheduledResource(\r\n this.$scope.processId,\r\n this.$scope.formDataId,\r\n this.$scope.field.schemaProperty.id,\r\n this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier])\r\n .then(conflictMessage => {\r\n if (conflictMessage) {\r\n this.growl.error(conflictMessage);\r\n } else {\r\n this.growl.success(\"The specified resource is available during the time period specified.\");\r\n }\r\n });\r\n }\r\n\r\n public extfieldChanged = () => this.fieldChanged();\r\n\r\n public zoomToFeature() {\r\n let value = this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier];\r\n if (value) {\r\n this.gisMapService.zoomToFeature(value,this.$scope.process);\r\n }\r\n\r\n }\r\n\r\n public setListMetadata() {\r\n if (this.$scope.rowId &&\r\n this.$scope.process &&\r\n this.$scope.process.rowMetadata &&\r\n this.$scope.process.rowMetadata[this.$scope.rowId] &&\r\n (this.$scope.process.rowMetadata[this.$scope.rowId]).fieldsMetadata[this.$scope.field\r\n .schemaProperty.uniqueIdentifier]) {\r\n const metadataObj =\r\n JSON.parse((this.$scope.process.rowMetadata[this.$scope.rowId]).fieldsMetadata[this.$scope\r\n .field.schemaProperty.uniqueIdentifier]);\r\n\r\n if (metadataObj.isReadonly) {\r\n this.$scope.metaDataReadOnly = true;\r\n }\r\n } else {\r\n this.$scope.metaDataReadOnly = false; \r\n } \r\n }\r\n\r\n public runGisWorkflow() {\r\n this.gisMapService.runGisActionWorkflowOverride(this.$scope.field.gisActionWorkflowOverride, this.$scope.process,\r\n this.$scope.formId,this.$scope.formDataId);\r\n }\r\n\r\n public fieldChanged() {\r\n\r\n if (!this.$scope.process) {\r\n return;\r\n }\r\n if (this.$scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Currency) {\r\n // Doing this because it seems as if the currency input filter is taking a bit to propagate the change.\r\n setTimeout(() => this.fieldChangedInternal());\r\n } else if (this.$scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Number) {\r\n this.scrubNumericValue();\r\n this.fieldChangedInternal();\r\n }\r\n else {\r\n this.fieldChangedInternal();\r\n }\r\n }\r\n\r\n private scrubNumericValue() {\r\n var value = this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier];\r\n var newValue = '';\r\n\r\n var numberBeforeDecimal = false;\r\n var encounteredDecimalPoint = false;\r\n var indexAfterDecimal = 0;\r\n\r\n if (value) {\r\n for (var i = 0, len = value.length; i < len; i++) {\r\n var currentChar = value[i];\r\n if (currentChar === '.') {\r\n if (encounteredDecimalPoint || !numberBeforeDecimal) continue;\r\n newValue += currentChar;\r\n encounteredDecimalPoint = true;\r\n } else if (currentChar >= '0' && currentChar <= '9') {\r\n if (!encounteredDecimalPoint) {\r\n numberBeforeDecimal = true;\r\n }\r\n if (encounteredDecimalPoint) {\r\n indexAfterDecimal++;\r\n if (indexAfterDecimal > this.$scope.field.decimalPlaces) {\r\n break;\r\n }\r\n }\r\n\r\n newValue += currentChar;\r\n }\r\n }\r\n\r\n if (newValue.substring(newValue.length - 1) === \".\") {\r\n newValue = newValue.substring(0, newValue.length - 1);\r\n }\r\n }\r\n\r\n this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier] = newValue;\r\n\r\n //TODO: validate against max value here too\r\n }\r\n\r\n public searchUsers(viewValue, userServiceName: string): any {\r\n if (viewValue.length == undefined || viewValue.length < 3) return null;\r\n var self = this;\r\n var searchCriteria = new models.UserSearchCriteria();\r\n if (userServiceName == null || userServiceName === \"\") {\r\n userServiceName = this.$scope.field.userServiceName;\r\n }\r\n searchCriteria.userRepository = userServiceName;\r\n searchCriteria.userName = viewValue;\r\n return self.userService.searchUsers(searchCriteria);\r\n }\r\n\r\n public userSelected(item: Wars.Domain.Model.Dtos.UserSearchDto, userServiceName: string) {\r\n if (this.$scope.formData) {\r\n\r\n this.userService.addExternalUser(item)\r\n .then((id) => {\r\n this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier] = id;\r\n this.fieldChangedInternal();\r\n });\r\n }\r\n }\r\n\r\n public clearUserPicker() {\r\n if (this.$scope.formData) {\r\n this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier] = \"\";\r\n (this).selectedUser = null;\r\n this.fieldChangedInternal();\r\n }\r\n }\r\n\r\n public gotoProcess(id: string) {\r\n this.$location.path('/Process/' + id);\r\n }\r\n\r\n public getColumnName(column: Wars.Domain.Model.ApiGridColumnConfiguration) {\r\n\r\n }\r\n\r\n public customDivLoaded() {\r\n this.customDivService.divLoaded(this.$scope.stepId);\r\n }\r\n\r\n public fieldChangedInternal(): angular.IPromise {\r\n var q = this.$q.defer();\r\n \r\n if (!this.$scope.process || !this.$scope.formData) {\r\n q.resolve();\r\n return q.promise;\r\n }\r\n \r\n var formId = this.$scope.parentFormId ? this.$scope.parentFormId : this.$scope.formId;\r\n\r\n let value = this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier];\r\n\r\n if (this.$scope.field != undefined && this.$scope.field.type != undefined)\r\n {\r\n if (this.$scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.PhoneNumber ||\r\n this.$scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.Zipcode ||\r\n (this.$scope.field.type === Wars.Domain.Model.Codes.Enums.FieldType.TextBox &&\r\n this.$scope.field.mask != undefined &&\r\n this.$scope.field.mask != null &&\r\n this.$scope.field.mask !== \"\")) {\r\n if (value !== this.currentValue)\r\n {\r\n this.currentValue = value;\r\n } else {\r\n q.resolve();\r\n return q.promise;\r\n }\r\n }\r\n }\r\n\r\n if (value == undefined &&\r\n this.$scope.field.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Boolean) {\r\n value = false;\r\n }\r\n\r\n if (this.$scope.field.disallowEmptyValue && (value === null || value === undefined || value === \"\")) {\r\n q.resolve();\r\n return q.promise;\r\n }\r\n\r\n if (value &&\r\n (this.$scope.field.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime ||\r\n this.$scope.field.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Date)) {\r\n value = value.toUTCString();\r\n }\r\n\r\n if (value && this.$scope.field.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.ScheduledResource) {\r\n if (value.beginDate && (typeof value.beginDate !== \"string\")) {\r\n value.beginDate = value.beginDate.toUTCString();\r\n }\r\n if (value.endDate && (typeof value.endDate !== \"string\")) {\r\n value.endDate = value.endDate.toUTCString();\r\n }\r\n }\r\n\r\n if (this.$scope.formSectionUniqueId) {\r\n this.formDataService.setListField(this.$scope.processId,\r\n formId,\r\n this.$scope.formDataId,\r\n this.$scope.formSectionUniqueId,\r\n this.$scope.rowId,\r\n this.$scope.field.schemaProperty.uniqueIdentifier,\r\n value).then((result: Wars.Domain.Model.Dtos.FieldUpdateDto) => {\r\n this.processService.processFormUpdateResults(\r\n this.$scope.process,\r\n result.allFieldUpdates,\r\n this.conditionService,\r\n result.impactedConditionStates);\r\n this.runPostSaveEvents();\r\n q.resolve();\r\n });\r\n } else {\r\n this.formDataService.setFormField(this.$scope.processId,\r\n formId,\r\n this.$scope.formDataId,\r\n this.$scope.field.schemaProperty.uniqueIdentifier, value).then(\r\n (result: Wars.Domain.Model.Dtos.FieldUpdateDto) => {\r\n this.processService.processFormUpdateResults(\r\n this.$scope.process,\r\n result.allFieldUpdates,\r\n this.conditionService,\r\n result.impactedConditionStates);\r\n\r\n this.runPostSaveEvents();\r\n q.resolve();\r\n });\r\n return q.promise;\r\n }\r\n\r\n }\r\n\r\n public changeState(): void {\r\n if (this.selectedState === null || this.selectedState === undefined) {\r\n this.growl.error(\"Please select a \" + this.$scope.field.schemaProperty.name)\r\n } else {\r\n this.processService.changeState(this.$scope.processId, this.selectedState.stateCodeUniqueId)\r\n .then((process) => {\r\n this.$rootScope.$broadcast('ProcessChanged', process);\r\n this.growl.success(\"Successfully moved to \" + ((this.selectedState)).combinedName);\r\n });\r\n }\r\n }\r\n\r\n private documentUpdated(model: models.FileUploadModel) {\r\n var id: string = undefined;\r\n if (model && model.documents && model.documents.length === 1) {\r\n id = model.documents[0].id;\r\n }\r\n this.$scope.formData[this.$scope.field.schemaProperty.uniqueIdentifier] = id;\r\n\r\n this.fieldChanged();\r\n if (this.$scope.formDataChange) {\r\n this.$scope.formDataChange();\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('Field', []);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var FieldSection = /** @class */ (function () {\r\n function FieldSection() {\r\n this.templateUrl = './app/views/directives/inputForm/fieldSection.html';\r\n this.restrict = 'E';\r\n this.controller = ['$scope', 'ModalService', 'formSectionService', 'formService', 'deleteService', FieldSectionController];\r\n this.controllerAs = 'controller';\r\n this.scope = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n showSlider: \"=\",\r\n field: \"=\",\r\n formSection: \"=\",\r\n formData: \"=\",\r\n isReadOnly: \"=\",\r\n fieldBlurred: \"=\",\r\n processConfigurationId: \"=\",\r\n processConfiguration: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\",\r\n processId: \"=\",\r\n process: \"=\",\r\n parentFormId: \"=\",\r\n step: \"=\",\r\n form: \"=\"\r\n };\r\n }\r\n FieldSection.prototype.link = function ($scope, element, attrs) {\r\n };\r\n return FieldSection;\r\n }());\r\n directives.FieldSection = FieldSection;\r\n var FieldSectionModel = /** @class */ (function (_super) {\r\n __extends(FieldSectionModel, _super);\r\n function FieldSectionModel($scope, modalService, formSectionService, formService, deleteService) {\r\n return _super.call(this, $scope, modalService, formSectionService, formService, deleteService) || this;\r\n }\r\n FieldSectionModel.prototype.join = function (field, group) {\r\n field.isSplitRow = false;\r\n this.formSectionService.splitFields(group);\r\n this.formService.saveAllChanges();\r\n };\r\n FieldSectionModel.prototype.split = function (field, group) {\r\n field.isSplitRow = true;\r\n this.formSectionService.splitFields(group);\r\n this.formService.saveAllChanges();\r\n };\r\n return FieldSectionModel;\r\n }(directives.FieldBaseModel));\r\n directives.FieldSectionModel = FieldSectionModel;\r\n var FieldSectionController = /** @class */ (function () {\r\n function FieldSectionController($scope, modalService, formSectionService, formService, deleteService) {\r\n this.modalService = modalService;\r\n this.formSectionService = formSectionService;\r\n this.formService = formService;\r\n this.deleteService = deleteService;\r\n $scope.model = new FieldSectionModel($scope, modalService, formSectionService, formService, deleteService);\r\n }\r\n return FieldSectionController;\r\n }());\r\n directives.FieldSectionController = FieldSectionController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('FieldSection', []);\r\n","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IFieldSectionScope extends IBaseFieldSectionScope {\r\n model: FieldSectionModel;\r\n }\r\n\r\n export class FieldSection implements IDirective {\r\n public link($scope: IFieldSectionScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/inputForm/fieldSection.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', 'ModalService', 'formSectionService', 'formService', 'deleteService', FieldSectionController];\r\n public controllerAs = 'controller';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n showSlider: \"=\",\r\n field: \"=\",\r\n formSection: \"=\",\r\n formData: \"=\",\r\n isReadOnly: \"=\",\r\n fieldBlurred: \"=\",\r\n processConfigurationId: \"=\",\r\n processConfiguration: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\",\r\n processId: \"=\",\r\n process: \"=\",\r\n parentFormId: \"=\",\r\n step: \"=\",\r\n form: \"=\"\r\n };\r\n }\r\n\r\n export class FieldSectionModel extends FieldBaseModel {\r\n\r\n constructor($scope: IFieldSectionScope, modalService: any, formSectionService: warsApp.services.FormSectionService, formService: warsApp.services.FormService,\r\n deleteService: services.DeleteService) {\r\n super($scope, modalService, formSectionService, formService, deleteService);\r\n }\r\n\r\n public join(field, group) {\r\n field.isSplitRow = false;\r\n this.formSectionService.splitFields(group);\r\n this.formService.saveAllChanges();\r\n }\r\n\r\n public split(field, group) {\r\n field.isSplitRow = true;\r\n this.formSectionService.splitFields(group);\r\n this.formService.saveAllChanges();\r\n }\r\n }\r\n\r\n export class FieldSectionController implements IController {\r\n constructor(\r\n $scope: IFieldSectionScope,\r\n private modalService: any,\r\n private formSectionService: services.FormSectionService,\r\n private formService: services.FormService,\r\n private deleteService: services.DeleteService)\r\n {\r\n $scope.model = new FieldSectionModel($scope, modalService, formSectionService, formService, deleteService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('FieldSection', []);","/// \r\nmodule warsApp.directives {\r\n export interface IFormCustomCodeConfigurationScope extends ng.IScope {\r\n currentStep: Wars.Domain.Model.FormStep;\r\n save: any;\r\n getCustomButtons: any;\r\n buttonChanged: any;\r\n addPageLoad: any;\r\n addPageUnload: any;\r\n addButtonClickHandler: any;\r\n addCustomFunction: any;\r\n editor: AceAjax.Editor;\r\n removeFunction: any;\r\n insertFunctionCall: any;\r\n insertFieldGet: any;\r\n selectedFunction: Wars.Domain.Model.FormCodeFunction;\r\n selectFunction: any;\r\n addRow: any;\r\n insertFieldSet: any;\r\n getRowField: any;\r\n setRowField: any;\r\n removeRow: any;\r\n removeAllRows: any;\r\n loopThruRows: any;\r\n fieldsAvailableForSet: Wars.Domain.Model.Field[];\r\n customDivs: Wars.Domain.Model.Field[];\r\n rowsToAdd: Wars.Domain.Model.FormSection[];\r\n codes: Wars.Domain.Model.Codes.CodeGroup[];\r\n getFilteredFields: any;\r\n aceLoaded: any;\r\n addJQuerySelector: any;\r\n insertGetCodeValue: any;\r\n insertSaveFeature: any;\r\n insertRemoveFeature: any;\r\n insertGetNewFeature: any;\r\n insertGetFeatures: any;\r\n isListButton: boolean;\r\n processConfigurationId: string;\r\n gisDataStores: Wars.Domain.Model.Gis.GisDatastore[];\r\n form: Wars.Domain.Model.Form;\r\n addUrl:any;\r\n removeUrl:any;\r\n addCodeRow:any;\r\n }\r\n\r\n export class FormCustomCodeConfiguration implements IDirective {\r\n public link($scope: IFormCustomCodeConfigurationScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/inputForm/formCustomCodeConfiguration.html';\r\n public controller = [\r\n '$scope', 'formCodeFunctionService', 'growl', '$q', 'manageSystemCodesService', 'systemLevelService',\r\n 'gisDatastoreService', 'formService', FormCustomCodeConfigurationController\r\n ];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n currentStep: \"=\",\r\n processConfigurationId: \"=\",\r\n form: \"=\"\r\n };\r\n }\r\n\r\n declare var formCustomCodeConfigurationControllerSelf: FormCustomCodeConfigurationController;\r\n\r\n export class FormCustomCodeConfigurationController {\r\n constructor(private scope: IFormCustomCodeConfigurationScope,\r\n private formCodeFunctionService: services.FormCodeFunctionService,\r\n private growl: angular.growl.IGrowlService,\r\n private $q: angular.IQService,\r\n private manageCodeService: services.ManageSystemCodesService,\r\n private systemLevelService: services.SystemLevelService,\r\n private gisDataStoreService: services.GisDatastoreService,\r\n private formService: services.FormService) {\r\n\r\n scope.save = () => this.save();\r\n scope.getCustomButtons = () => this.getCustomButtons();\r\n scope.buttonChanged = () => this.buttonChanged();\r\n scope.addPageLoad = () => this.addPageLoad();\r\n scope.addPageUnload = () => this.addPageUnload();\r\n scope.addButtonClickHandler = () => this.addButtonClickHandler();\r\n scope.addCustomFunction = () => this.addCustomFunction();\r\n scope.insertFunctionCall = (f) => this.insertFunctionCall(f);\r\n scope.removeFunction = () => this.removeFunction();\r\n scope.aceLoaded = (e) => this.aceLoaded(e);\r\n scope.selectFunction = (f) => this.selectFunction(f);\r\n scope.insertFieldSet = (f) => this.insertFieldSet(f);\r\n scope.insertFieldGet = (f) => this.insertFieldGet(f);\r\n scope.addRow = (f) => this.addRow(f);\r\n scope.addCodeRow = (f) => this.addCodeRow(f);\r\n scope.getRowField = (r, f) => this.getRowField(r, f);\r\n scope.setRowField = (r, f) => this.setRowField(r, f);\r\n scope.loopThruRows = (f) => this.loopThruRows(f);\r\n scope.getFilteredFields = (f) => this.getFilteredFields(f);\r\n scope.removeRow = (f) => this.removeRow(f);\r\n scope.removeAllRows = (f) => this.removeAllRows(f);\r\n scope.addJQuerySelector = (f) => this.addJQuerySelector(f);\r\n scope.insertGetCodeValue = (c) => this.insertGetCodeValue(c);\r\n scope.insertSaveFeature = () => this.insertSaveFeature();\r\n scope.insertRemoveFeature = () => this.insertRemoveFeature();\r\n scope.insertGetNewFeature = (c) => this.insertGetNewFeature(c);\r\n scope.insertGetFeatures = (c) => this.insertGetFeatures(c);\r\n scope.addUrl= () => this.addUrl();\r\n scope.removeUrl = (c) => this.removeUrl(c);\r\n\r\n formCustomCodeConfigurationControllerSelf = this;\r\n\r\n var processCodes: Wars.Domain.Model.Codes.CodeGroup[];\r\n var systemCodes: Wars.Domain.Model.Codes.CodeGroup[];\r\n\r\n this.gisDataStoreService.getGisDatastores().then(r => {\r\n scope.gisDataStores = r;\r\n });\r\n\r\n $q.all([\r\n manageCodeService.getAllCodesForProcessConfiguration(this.scope.processConfigurationId).then(r => {\r\n processCodes = r;\r\n }),\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n systemLevel => {\r\n systemCodes = systemLevel.myCodeGroups;\r\n })\r\n ]).then(() => {\r\n this.scope.codes = [];\r\n this.scope.codes.addRange(systemCodes);\r\n this.scope.codes.addRange(processCodes);\r\n });\r\n }\r\n\r\n private addFunction(type: Wars.Domain.Model.Codes.Enums.CustomCodeType) {\r\n var func = this.formCodeFunctionService.createFormCodeFunction();\r\n\r\n func.codeType = type;\r\n func.formStep = this.scope.currentStep;\r\n\r\n this.scope.currentStep.formCodeFunctions.push(func);\r\n\r\n this.formCodeFunctionService.saveAllChanges();\r\n this.selectFunction(func);\r\n }\r\n\r\n private loopThruRows(formSection: Wars.Domain.Model.FormSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.Process.loopThruRows(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"',function(row){\\n\\n}); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n public insertFieldSet(field: Wars.Domain.Model.Field) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.Process.setField(processId,formId,formDataId,'\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"',REPLACE_WITH_THE_VALUE_TO_SET); /* field: \" +\r\n field.schemaProperty.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n\r\n public insertFieldGet(field: Wars.Domain.Model.Field) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"var FIELD_VALUE = Elp.Api.Process.getField(processId,formId,formDataId,'\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"'); /* field: \" +\r\n field.schemaProperty.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n public addRow(formSection: Wars.Domain.Model.FormSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.Process.addRow(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"'); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n public addCodeRow(formSection: Wars.Domain.Model.FormSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.Process.addRow(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"',true); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n private removeAllRows(formSection: Wars.Domain.Model.FormSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.Process.removeAllRows(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"'); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n private selectFunction(func: Wars.Domain.Model.FormCodeFunction) {\r\n this.scope.selectedFunction = func;\r\n if (this.scope.editor) {\r\n this.scope.editor.setValue(func.javascript);\r\n }\r\n\r\n this.scope.fieldsAvailableForSet = Enumerable.from(this.scope.currentStep.formSections)\r\n .where(fs => fs.formSectionType === Wars.Domain.Model.Codes.Enums.FormSectionType.Standard)\r\n .selectMany(fs => fs.fields)\r\n .where(fs => fs.schemaProperty.propertyType !== Wars.Domain.Model.Codes.Enums.VariableType.None)\r\n .toArray();\r\n\r\n this.scope.customDivs = Enumerable.from(this.scope.currentStep.formSections)\r\n .where(fs => fs.formSectionType === Wars.Domain.Model.Codes.Enums.FormSectionType.Standard)\r\n .selectMany(fs => fs.fields)\r\n .where(fs => fs.type === Wars.Domain.Model.Codes.Enums.FieldType.CustomDiv)\r\n .toArray();\r\n\r\n this.scope.rowsToAdd = Enumerable.from(this.scope.currentStep.formSections)\r\n .where(fs => fs.formSectionType === Wars.Domain.Model.Codes.Enums.FormSectionType.List)\r\n .toArray();\r\n\r\n this.setIsListButton();\r\n }\r\n\r\n private setIsListButton() {\r\n this.scope.isListButton =\r\n this.scope.selectedFunction.codeType === Wars.Domain.Model.Codes.Enums.CustomCodeType.ButtonClick &&\r\n this.scope.selectedFunction.field.myFormSection.formSectionType ===\r\n Wars.Domain.Model.Codes.Enums.FormSectionType.List;\r\n }\r\n\r\n public removeRow(formSection: Wars.Domain.Model.FormSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.Process.removeRow(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"',ROW_ID_TO_REMOVE_GOES_HERE); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n public addPageUnload() {\r\n if (Enumerable.from(this.scope.currentStep.formCodeFunctions)\r\n .any(f => f.codeType === Wars.Domain.Model.Codes.Enums.CustomCodeType.Unload)) {\r\n this.growl.error(\"An page unloaded function has already been added to this step\");\r\n } else {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.CustomCodeType.Unload);;\r\n }\r\n }\r\n\r\n public insertFunctionCall(func: Wars.Domain.Model.FormCodeFunction) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Helper.callFunction('\" +\r\n func.id +\r\n \"',processId,formId,formDataId); /* calls \" +\r\n func.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n public buttonChanged() {\r\n if (Enumerable.from(this.scope.currentStep.formCodeFunctions)\r\n .count(f => f.field_id === this.scope.selectedFunction.field_id) >\r\n 1) {\r\n this.growl.error(\"The selected button \" +\r\n this.scope.selectedFunction.field.schemaProperty.name +\r\n \" is already associated to a function.\");\r\n\r\n this.scope.selectedFunction.field_id = null;\r\n this.scope.selectedFunction.field = null;\r\n } else {\r\n this.save();\r\n }\r\n\r\n this.setIsListButton();\r\n }\r\n\r\n private save() {\r\n this.formCodeFunctionService.saveAllChanges();\r\n }\r\n\r\n public removeFunction() {\r\n this.scope.selectedFunction.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public getCustomButtons() {\r\n var results = [];\r\n\r\n this.scope.currentStep.formSections.forEach(fs => {\r\n fs.fields.forEach(f => {\r\n if (f.type === Wars.Domain.Model.Codes.Enums.FieldType.CustomButton) {\r\n results.push(f);\r\n }\r\n });\r\n });\r\n\r\n return results;\r\n }\r\n\r\n public addCustomFunction() {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.CustomCodeType.CustomFunction);\r\n }\r\n\r\n public aceLoaded(editor: AceAjax.Editor) {\r\n this.scope.editor = editor;\r\n //console.log(this.scope.editor);\r\n //console.log(this);\r\n }\r\n\r\n public addPageLoad() {\r\n if (Enumerable.from(this.scope.currentStep.formCodeFunctions)\r\n .any(f => f.codeType === Wars.Domain.Model.Codes.Enums.CustomCodeType.Load)) {\r\n this.growl.error(\"An page loaded function has already been added to this step\");\r\n } else {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.CustomCodeType.Load);\r\n }\r\n }\r\n\r\n public addButtonClickHandler() {\r\n this.addFunction(Wars.Domain.Model.Codes.Enums.CustomCodeType.ButtonClick);\r\n }\r\n\r\n public getRowField(formSection: Wars.Domain.Model.FormSection, field: Wars.Domain.Model.Field) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"\\tElp.Api.Process.getEnumeratedRowValue('\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"','\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"',row); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n public getFilteredFields(fields: Wars.Domain.Model.Field[]) {\r\n return fields.filter(f => {\r\n return f.schemaProperty.propertyType !== Wars.Domain.Model.Codes.Enums.VariableType.None;\r\n });\r\n }\r\n\r\n public addJQuerySelector(field: Wars.Domain.Model.Field) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"$('#\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"');/* Div:\" +\r\n field.schemaProperty.name +\r\n \"*/\");\r\n this.save();\r\n }\r\n\r\n public setRowField(formSection: Wars.Domain.Model.FormSection, field: Wars.Domain.Model.Field) {\r\n if (this.scope.isListButton) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.Process.setRowValue(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"','\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"',rowId,'REPLACE_WITH_THE_VALUE_TO_SET'); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");;\r\n } else {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"\\tElp.Api.Process.setEnumeratedRowValue(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"','\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"',row,'REPLACE_WITH_THE_VALUE_TO_SET'); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");;\r\n }\r\n\r\n this.save();\r\n }\r\n\r\n public insertGetNewFeature(gisDataStore: Wars.Domain.Model.Gis.GisDatastore) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.GisDatastore.getNewFeature('\" +\r\n gisDataStore.id +\r\n \"',processId,GEOMETRY_TYPE_GO_HERE,COORDINATES_GO_HERE); /* Gis Datastore: \" +\r\n gisDataStore.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n public insertSaveFeature() {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.GisDatastore.getNewFeature(FEATURE_GOES_HERE); \\n\");\r\n this.save();\r\n }\r\n\r\n public insertRemoveFeature() {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.GisDatastore.removeFeature(FEATURE_GOES_HERE); \\n\");\r\n this.save();\r\n }\r\n\r\n public insertGetFeatures(gisDataStore: Wars.Domain.Model.Gis.GisDatastore) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.GisDatastore.getFeatures('\" +\r\n gisDataStore.id +\r\n \"',BOUNDING_BOX_GOES_HERE )\\n.then(function(feature){ \\n /*DO_SOMETHING*/ \\n});\" +\r\n \" /* Gis Datastore: \" +\r\n gisDataStore.name +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n\r\n public addUrl() {\r\n var url = this.formService.createUrl(this.scope.form);\r\n url.type = Wars.Domain.Model.Codes.Enums.UrlDependencyType.Javascript;\r\n this.scope.form.urlDependencies.push(url);\r\n this.save();\r\n }\r\n\r\n public removeUrl(url: Wars.Domain.Model.UrlDependency) {\r\n url.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public insertGetCodeValue(code: Wars.Domain.Model.Codes.CodeGroup) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\r\n \"Elp.Api.Code.getCode('\" +\r\n code.id +\r\n \"',/* REPLACE_WITH_VALUE */);\" +\r\n \" /* Code Group: \" +\r\n code.groupName +\r\n \"*/ \\n\");\r\n this.save();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('FormCustomCodeConfiguration', []);","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var FormCustomCodeConfiguration = /** @class */ (function () {\r\n function FormCustomCodeConfiguration() {\r\n this.templateUrl = './app/views/directives/inputForm/formCustomCodeConfiguration.html';\r\n this.controller = [\r\n '$scope', 'formCodeFunctionService', 'growl', '$q', 'manageSystemCodesService', 'systemLevelService',\r\n 'gisDatastoreService', 'formService', FormCustomCodeConfigurationController\r\n ];\r\n this.controllerAs = 'controller';\r\n this.restrict = 'E';\r\n this.scope = {\r\n currentStep: \"=\",\r\n processConfigurationId: \"=\",\r\n form: \"=\"\r\n };\r\n }\r\n FormCustomCodeConfiguration.prototype.link = function ($scope, element, attrs) {\r\n };\r\n return FormCustomCodeConfiguration;\r\n }());\r\n directives.FormCustomCodeConfiguration = FormCustomCodeConfiguration;\r\n var FormCustomCodeConfigurationController = /** @class */ (function () {\r\n function FormCustomCodeConfigurationController(scope, formCodeFunctionService, growl, $q, manageCodeService, systemLevelService, gisDataStoreService, formService) {\r\n var _this = this;\r\n this.scope = scope;\r\n this.formCodeFunctionService = formCodeFunctionService;\r\n this.growl = growl;\r\n this.$q = $q;\r\n this.manageCodeService = manageCodeService;\r\n this.systemLevelService = systemLevelService;\r\n this.gisDataStoreService = gisDataStoreService;\r\n this.formService = formService;\r\n scope.save = function () { return _this.save(); };\r\n scope.getCustomButtons = function () { return _this.getCustomButtons(); };\r\n scope.buttonChanged = function () { return _this.buttonChanged(); };\r\n scope.addPageLoad = function () { return _this.addPageLoad(); };\r\n scope.addPageUnload = function () { return _this.addPageUnload(); };\r\n scope.addButtonClickHandler = function () { return _this.addButtonClickHandler(); };\r\n scope.addCustomFunction = function () { return _this.addCustomFunction(); };\r\n scope.insertFunctionCall = function (f) { return _this.insertFunctionCall(f); };\r\n scope.removeFunction = function () { return _this.removeFunction(); };\r\n scope.aceLoaded = function (e) { return _this.aceLoaded(e); };\r\n scope.selectFunction = function (f) { return _this.selectFunction(f); };\r\n scope.insertFieldSet = function (f) { return _this.insertFieldSet(f); };\r\n scope.insertFieldGet = function (f) { return _this.insertFieldGet(f); };\r\n scope.addRow = function (f) { return _this.addRow(f); };\r\n scope.addCodeRow = function (f) { return _this.addCodeRow(f); };\r\n scope.getRowField = function (r, f) { return _this.getRowField(r, f); };\r\n scope.setRowField = function (r, f) { return _this.setRowField(r, f); };\r\n scope.loopThruRows = function (f) { return _this.loopThruRows(f); };\r\n scope.getFilteredFields = function (f) { return _this.getFilteredFields(f); };\r\n scope.removeRow = function (f) { return _this.removeRow(f); };\r\n scope.removeAllRows = function (f) { return _this.removeAllRows(f); };\r\n scope.addJQuerySelector = function (f) { return _this.addJQuerySelector(f); };\r\n scope.insertGetCodeValue = function (c) { return _this.insertGetCodeValue(c); };\r\n scope.insertSaveFeature = function () { return _this.insertSaveFeature(); };\r\n scope.insertRemoveFeature = function () { return _this.insertRemoveFeature(); };\r\n scope.insertGetNewFeature = function (c) { return _this.insertGetNewFeature(c); };\r\n scope.insertGetFeatures = function (c) { return _this.insertGetFeatures(c); };\r\n scope.addUrl = function () { return _this.addUrl(); };\r\n scope.removeUrl = function (c) { return _this.removeUrl(c); };\r\n formCustomCodeConfigurationControllerSelf = this;\r\n var processCodes;\r\n var systemCodes;\r\n this.gisDataStoreService.getGisDatastores().then(function (r) {\r\n scope.gisDataStores = r;\r\n });\r\n $q.all([\r\n manageCodeService.getAllCodesForProcessConfiguration(this.scope.processConfigurationId).then(function (r) {\r\n processCodes = r;\r\n }),\r\n this.systemLevelService.getSystemLevelCodes().then(function (systemLevel) {\r\n systemCodes = systemLevel.myCodeGroups;\r\n })\r\n ]).then(function () {\r\n _this.scope.codes = [];\r\n _this.scope.codes.addRange(systemCodes);\r\n _this.scope.codes.addRange(processCodes);\r\n });\r\n }\r\n FormCustomCodeConfigurationController.prototype.addFunction = function (type) {\r\n var func = this.formCodeFunctionService.createFormCodeFunction();\r\n func.codeType = type;\r\n func.formStep = this.scope.currentStep;\r\n this.scope.currentStep.formCodeFunctions.push(func);\r\n this.formCodeFunctionService.saveAllChanges();\r\n this.selectFunction(func);\r\n };\r\n FormCustomCodeConfigurationController.prototype.loopThruRows = function (formSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Process.loopThruRows(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"',function(row){\\n\\n}); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.insertFieldSet = function (field) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Process.setField(processId,formId,formDataId,'\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"',REPLACE_WITH_THE_VALUE_TO_SET); /* field: \" +\r\n field.schemaProperty.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.insertFieldGet = function (field) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"var FIELD_VALUE = Elp.Api.Process.getField(processId,formId,formDataId,'\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"'); /* field: \" +\r\n field.schemaProperty.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.addRow = function (formSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Process.addRow(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"'); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.addCodeRow = function (formSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Process.addRow(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"',true); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.removeAllRows = function (formSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Process.removeAllRows(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"'); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.selectFunction = function (func) {\r\n this.scope.selectedFunction = func;\r\n if (this.scope.editor) {\r\n this.scope.editor.setValue(func.javascript);\r\n }\r\n this.scope.fieldsAvailableForSet = Enumerable.from(this.scope.currentStep.formSections)\r\n .where(function (fs) { return fs.formSectionType === 1 /* Standard */; })\r\n .selectMany(function (fs) { return fs.fields; })\r\n .where(function (fs) { return fs.schemaProperty.propertyType !== 11 /* None */; })\r\n .toArray();\r\n this.scope.customDivs = Enumerable.from(this.scope.currentStep.formSections)\r\n .where(function (fs) { return fs.formSectionType === 1 /* Standard */; })\r\n .selectMany(function (fs) { return fs.fields; })\r\n .where(function (fs) { return fs.type === 24 /* CustomDiv */; })\r\n .toArray();\r\n this.scope.rowsToAdd = Enumerable.from(this.scope.currentStep.formSections)\r\n .where(function (fs) { return fs.formSectionType === 2 /* List */; })\r\n .toArray();\r\n this.setIsListButton();\r\n };\r\n FormCustomCodeConfigurationController.prototype.setIsListButton = function () {\r\n this.scope.isListButton =\r\n this.scope.selectedFunction.codeType === 3 /* ButtonClick */ &&\r\n this.scope.selectedFunction.field.myFormSection.formSectionType ===\r\n 2 /* List */;\r\n };\r\n FormCustomCodeConfigurationController.prototype.removeRow = function (formSection) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Process.removeRow(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"',ROW_ID_TO_REMOVE_GOES_HERE); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.addPageUnload = function () {\r\n if (Enumerable.from(this.scope.currentStep.formCodeFunctions)\r\n .any(function (f) { return f.codeType === 2 /* Unload */; })) {\r\n this.growl.error(\"An page unloaded function has already been added to this step\");\r\n }\r\n else {\r\n this.addFunction(2 /* Unload */);\r\n ;\r\n }\r\n };\r\n FormCustomCodeConfigurationController.prototype.insertFunctionCall = function (func) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Helper.callFunction('\" +\r\n func.id +\r\n \"',processId,formId,formDataId); /* calls \" +\r\n func.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.buttonChanged = function () {\r\n var _this = this;\r\n if (Enumerable.from(this.scope.currentStep.formCodeFunctions)\r\n .count(function (f) { return f.field_id === _this.scope.selectedFunction.field_id; }) >\r\n 1) {\r\n this.growl.error(\"The selected button \" +\r\n this.scope.selectedFunction.field.schemaProperty.name +\r\n \" is already associated to a function.\");\r\n this.scope.selectedFunction.field_id = null;\r\n this.scope.selectedFunction.field = null;\r\n }\r\n else {\r\n this.save();\r\n }\r\n this.setIsListButton();\r\n };\r\n FormCustomCodeConfigurationController.prototype.save = function () {\r\n this.formCodeFunctionService.saveAllChanges();\r\n };\r\n FormCustomCodeConfigurationController.prototype.removeFunction = function () {\r\n this.scope.selectedFunction.entityAspect.setDeleted();\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.getCustomButtons = function () {\r\n var results = [];\r\n this.scope.currentStep.formSections.forEach(function (fs) {\r\n fs.fields.forEach(function (f) {\r\n if (f.type === 23 /* CustomButton */) {\r\n results.push(f);\r\n }\r\n });\r\n });\r\n return results;\r\n };\r\n FormCustomCodeConfigurationController.prototype.addCustomFunction = function () {\r\n this.addFunction(4 /* CustomFunction */);\r\n };\r\n FormCustomCodeConfigurationController.prototype.aceLoaded = function (editor) {\r\n this.scope.editor = editor;\r\n //console.log(this.scope.editor);\r\n //console.log(this);\r\n };\r\n FormCustomCodeConfigurationController.prototype.addPageLoad = function () {\r\n if (Enumerable.from(this.scope.currentStep.formCodeFunctions)\r\n .any(function (f) { return f.codeType === 1 /* Load */; })) {\r\n this.growl.error(\"An page loaded function has already been added to this step\");\r\n }\r\n else {\r\n this.addFunction(1 /* Load */);\r\n }\r\n };\r\n FormCustomCodeConfigurationController.prototype.addButtonClickHandler = function () {\r\n this.addFunction(3 /* ButtonClick */);\r\n };\r\n FormCustomCodeConfigurationController.prototype.getRowField = function (formSection, field) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"\\tElp.Api.Process.getEnumeratedRowValue('\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"','\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"',row); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.getFilteredFields = function (fields) {\r\n return fields.filter(function (f) {\r\n return f.schemaProperty.propertyType !== 11 /* None */;\r\n });\r\n };\r\n FormCustomCodeConfigurationController.prototype.addJQuerySelector = function (field) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"$('#\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"');/* Div:\" +\r\n field.schemaProperty.name +\r\n \"*/\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.setRowField = function (formSection, field) {\r\n if (this.scope.isListButton) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Process.setRowValue(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"','\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"',rowId,'REPLACE_WITH_THE_VALUE_TO_SET'); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n ;\r\n }\r\n else {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"\\tElp.Api.Process.setEnumeratedRowValue(processId,formId,formDataId,'\" +\r\n formSection.objectSchema.uniqueIdentifier +\r\n \"','\" +\r\n field.schemaProperty.uniqueIdentifier +\r\n \"',row,'REPLACE_WITH_THE_VALUE_TO_SET'); /* section: \" +\r\n formSection.objectSchema.name +\r\n \"*/ \\n\");\r\n ;\r\n }\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.insertGetNewFeature = function (gisDataStore) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.GisDatastore.getNewFeature('\" +\r\n gisDataStore.id +\r\n \"',processId,GEOMETRY_TYPE_GO_HERE,COORDINATES_GO_HERE); /* Gis Datastore: \" +\r\n gisDataStore.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.insertSaveFeature = function () {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.GisDatastore.getNewFeature(FEATURE_GOES_HERE); \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.insertRemoveFeature = function () {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.GisDatastore.removeFeature(FEATURE_GOES_HERE); \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.insertGetFeatures = function (gisDataStore) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.GisDatastore.getFeatures('\" +\r\n gisDataStore.id +\r\n \"',BOUNDING_BOX_GOES_HERE )\\n.then(function(feature){ \\n /*DO_SOMETHING*/ \\n});\" +\r\n \" /* Gis Datastore: \" +\r\n gisDataStore.name +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.addUrl = function () {\r\n var url = this.formService.createUrl(this.scope.form);\r\n url.type = 1 /* Javascript */;\r\n this.scope.form.urlDependencies.push(url);\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.removeUrl = function (url) {\r\n url.entityAspect.setDeleted();\r\n this.save();\r\n };\r\n FormCustomCodeConfigurationController.prototype.insertGetCodeValue = function (code) {\r\n formCustomCodeConfigurationControllerSelf.scope.editor.insert(\"Elp.Api.Code.getCode('\" +\r\n code.id +\r\n \"',/* REPLACE_WITH_VALUE */);\" +\r\n \" /* Code Group: \" +\r\n code.groupName +\r\n \"*/ \\n\");\r\n this.save();\r\n };\r\n return FormCustomCodeConfigurationController;\r\n }());\r\n directives.FormCustomCodeConfigurationController = FormCustomCodeConfigurationController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('FormCustomCodeConfiguration', []);\r\n","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IFormListScope extends ng.IScope {\r\n //formSection=\r\n addForm: any;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n formSection: warsApp.models.FormSection;\r\n formData: any;\r\n formDataId: string;\r\n childForms:any;\r\n editForm:any;\r\n formId: string;\r\n parentFormName:string;\r\n }\r\n\r\n export class FormList {\r\n constructor() {\r\n }\r\n\r\n public link($scope: IFormListScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n \r\n }\r\n public scope={\r\n process: \"=\",\r\n formSection: \"=\",\r\n formData: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\",\r\n parentFormName:\"=\"\r\n };\r\n\r\n public templateUrl = './app/views/directives/inputForm/formList.html';\r\n public controller = ['$scope', 'formDataService','$location', FormListController];\r\n }\r\n\r\n export class FormListController {\r\n constructor(private $scope: IFormListScope,\r\n private formDataService: services.FormDataService,\r\n private locationService:angular.ILocationService) {\r\n $scope.addForm = (fs) => this.internalAddForm(fs);\r\n $scope.editForm = (f) => this.internalEditForm(f);\r\n this.$scope.childForms = {};\r\n\r\n let foundFormData=Enumerable.from(this.$scope.process.formDatas).singleOrDefault(f => f.id === this.$scope.formDataId);\r\n\r\n if (foundFormData != null && foundFormData.formDataChildren != null && foundFormData.formDataChildren.length > 0) {\r\n foundFormData.formDataChildren.forEach(c => {\r\n let obj= $scope.process.formJson[this.$scope.formSection.form_id][c];\r\n\r\n if (!obj) {\r\n this.$scope.childForms[c] = {};\r\n } else {\r\n this.$scope.childForms[c] = obj;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private internalEditForm(formDataId: string) {\r\n var url = '/ProcessType/' + this.$scope.process.processConfigurationId + '/Process/' +\r\n this.$scope.process.id + '/Form/' + this.$scope.formSection.form.id + '/FormData/' + formDataId;\r\n\r\n if (this.$scope.formId && this.$scope.formDataId && this.$scope.parentFormName) {\r\n url += \"/ParentForm/\" + this.$scope.formId + \"/ParentFormDataId/\" + this.$scope.formDataId + \"/\" + this.$scope.parentFormName;\r\n }\r\n\r\n this.locationService.url(url);\r\n }\r\n\r\n private internalAddForm(formSection: warsApp.models.FormSection) {\r\n this.formDataService.createFormData(this.$scope.process.id, this.$scope.formSection.form.uniqueIdentifier,\r\n this.$scope.formDataId).then(id => {\r\n this.$scope.childForms[id] = {};\r\n });\r\n \r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('FormList',[]); \r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var FormSection = /** @class */ (function (_super) {\r\n __extends(FormSection, _super);\r\n function FormSection(formService, dataSourceService, formSectionService, modalSerivce) {\r\n var _this = _super.call(this, formService, dataSourceService, formSectionService, modalSerivce) || this;\r\n _this.templateUrl = './app/views/directives/inputForm/formSection.html';\r\n _this.controller = ['$scope', 'formService', 'dataSourceService', 'formSectionService', 'ModalService', 'deleteService', 'securityMatrixService', '$rootScope', FormSectionController];\r\n return _this;\r\n }\r\n FormSection.prototype.link = function ($scope, element, attrs) { };\r\n return FormSection;\r\n }(directives.BaseGroup));\r\n directives.FormSection = FormSection;\r\n var FormSectionController = /** @class */ (function (_super) {\r\n __extends(FormSectionController, _super);\r\n function FormSectionController($scope, formService, dataSourceService, formSectionService, modalService, deleteService, securityMatrixService, $rootScope) {\r\n var _this = _super.call(this, $scope, formService, dataSourceService, formSectionService, modalService, deleteService, securityMatrixService) || this;\r\n _this.$rootScope = $rootScope;\r\n $scope.userActionInitiated = function (u) { return _this.userActionInitiated(u); };\r\n return _this;\r\n //if($scope.formSection.condition_id && $scope.process && !$scope.process.conditionStates[$scope.formSection.condition_id])\r\n // || ($scope.process.formsVisibilities[$scope.form.uniqueIdentifier] && Enumerable.from($scope.process.formsVisibilities[$scope.form.uniqueIdentifier].hiddenGroups).any(g=>g[))){\r\n }\r\n FormSectionController.prototype.userActionInitiated = function (userAction) {\r\n this.$rootScope.$broadcast('userActionInitated', userAction);\r\n };\r\n return FormSectionController;\r\n }(directives.BaseGroupController));\r\n directives.FormSectionController = FormSectionController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('FormSection', []);\r\n","/// \r\nmodule warsApp.directives {\r\n\r\n export class FormSection extends BaseGroup {\r\n constructor(formService: services.FormService,\r\n dataSourceService: services.DataSourceService,\r\n formSectionService: services.FormSectionService,\r\n modalSerivce: any) {\r\n super(formService, dataSourceService, formSectionService, modalSerivce);\r\n }\r\n\r\n public link($scope: directives.IFormSectionScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) { }\r\n\r\n public templateUrl = './app/views/directives/inputForm/formSection.html';\r\n public controller = ['$scope', 'formService', 'dataSourceService', 'formSectionService', 'ModalService','deleteService','securityMatrixService','$rootScope', FormSectionController];\r\n }\r\n\r\n export class FormSectionController extends BaseGroupController {\r\n constructor($scope: directives.IFormSectionScope,\r\n formService: services.FormService,\r\n dataSourceService: services.DataSourceService,\r\n formSectionService: services.FormSectionService,\r\n modalService: any,\r\n deleteService: services.DeleteService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n private $rootScope: angular.IRootScopeService)\r\n {\r\n super($scope, formService, dataSourceService, formSectionService, modalService, deleteService,securityMatrixService);\r\n $scope.userActionInitiated = (u) => this.userActionInitiated(u);\r\n //if($scope.formSection.condition_id && $scope.process && !$scope.process.conditionStates[$scope.formSection.condition_id])\r\n // || ($scope.process.formsVisibilities[$scope.form.uniqueIdentifier] && Enumerable.from($scope.process.formsVisibilities[$scope.form.uniqueIdentifier].hiddenGroups).any(g=>g[))){\r\n }\r\n\r\n userActionInitiated(userAction: Wars.Domain.Model.Dtos.UserActionModelDto) {\r\n this.$rootScope.$broadcast('userActionInitated', userAction);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('FormSection', []); ","/// \r\n/// \r\nmodule warsApp.directives {\r\n\r\n export class InnerFormSection implements IDirective {\r\n\r\n public link($scope: directives.IFormSectionScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) { }\r\n\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n showSlider: \"=\",\r\n formSection: \"=\",\r\n process: \"=\",\r\n isReadOnly: \"=\",\r\n fieldBlurred: \"=\",\r\n processConfigurationId: \"=\",\r\n processConfiguration: \"=\",\r\n formData: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\",\r\n processId: \"=\",\r\n save: \"=\",\r\n step: \"=\",\r\n parentFormId: \"=\",\r\n form: \"=\"\r\n };\r\n public templateUrl = './app/views/directives/inputForm/innerFormSection.html';\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('InnerFormSection', []);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var ListSection = /** @class */ (function () {\r\n function ListSection() {\r\n this.templateUrl = './app/views/directives/inputForm/listSection.html';\r\n this.restrict = 'E';\r\n this.controller = [\r\n '$scope', '$rootScope', 'ModalService', 'formSectionService', 'formService', 'formDataService', 'deleteService',\r\n 'processService', \"processDocumentService\", 'gisMapService', MultiAddSectionController\r\n ];\r\n this.controllerAs = 'controller';\r\n this.scope = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n showSlider: \"=\",\r\n field: \"=\",\r\n formSection: \"=\",\r\n process: \"=\",\r\n isReadOnly: \"=\",\r\n fieldBlurred: \"=\",\r\n processConfigurationId: \"=\",\r\n processConfiguration: \"=\",\r\n formData: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\",\r\n form: \"=\",\r\n processId: \"=\",\r\n step: \"=\"\r\n };\r\n }\r\n ListSection.prototype.link = function ($scope, element, attrs) {\r\n };\r\n return ListSection;\r\n }());\r\n directives.ListSection = ListSection;\r\n var ListSectionModel = /** @class */ (function (_super) {\r\n __extends(ListSectionModel, _super);\r\n function ListSectionModel($scope, $rootScope, modalService, formSectionService, formService, formDataService, deleteService, processService, processDocumentService, gisMapService) {\r\n var _this = _super.call(this, $scope, modalService, formSectionService, formService, deleteService) || this;\r\n _this.$rootScope = $rootScope;\r\n _this.formDataService = formDataService;\r\n _this.processDocumentService = processDocumentService;\r\n _this.gisMapService = gisMapService;\r\n $scope.userActionInitiated = function (u) { return _this.userActionInitiated(u); };\r\n return _this;\r\n }\r\n ListSectionModel.prototype.userActionInitiated = function (userAction) {\r\n this.$rootScope.$broadcast('userActionInitated', userAction);\r\n };\r\n ListSectionModel.prototype.zoomToFeature = function (featureId) {\r\n this.gisMapService.zoomToFeature(featureId, this.$scope.process);\r\n };\r\n ListSectionModel.prototype.selectRow = function (row) {\r\n this.isEditing = true;\r\n this.editRow = row;\r\n this.isEditRowReadOnly = false;\r\n if (this.$scope.process && this.$scope.process.metadata[row.id]) {\r\n try {\r\n var metadataObj = JSON.parse(this.$scope.process.metadata[row.id]);\r\n if (metadataObj.onlyAllowApiEdits) {\r\n this.isEditRowReadOnly = true;\r\n }\r\n }\r\n catch (error) {\r\n warsApp.services.WarsLogger.logWarn(\"Error Parsing JSON for metadata: \" + error, \"ListSection\");\r\n }\r\n }\r\n };\r\n ListSectionModel.prototype.addListItem = function (formSection) {\r\n if (!this.$scope.formData) {\r\n return;\r\n }\r\n if (this.$scope.formData[formSection.objectSchema.uniqueIdentifier] == null) {\r\n this.$scope.formData[formSection.objectSchema.uniqueIdentifier] = [];\r\n }\r\n var newItem = { id: warsApp.services.UtilityService.generateGuidComb() };\r\n this.formDataService.addListRow(this.$scope.process.id, this.$scope.formId, this.$scope.formDataId, formSection.objectSchema.uniqueIdentifier, newItem.id);\r\n this.$scope.formData[formSection.objectSchema.uniqueIdentifier].push(newItem);\r\n this.isEditing = true;\r\n this.editRow = newItem;\r\n this.$scope.process.processNames[this.editRow.id] = null;\r\n };\r\n ListSectionModel.prototype.removeRow = function (row, formSection) {\r\n var _this = this;\r\n this.isEditing = false;\r\n this.formDataService.removeListRow(this.$scope.process.id, this.$scope.formId, this.$scope.formDataId, formSection.objectSchema.uniqueIdentifier, this.editRow.id).then(function (result) {\r\n if (result && result.data.docIdsRemoved != null) {\r\n _this.processDocumentService.updateProcessDocuments(_this.$scope.process, [], result.data.docIdsRemoved);\r\n }\r\n if (result && result.data.featuresRemoved != null) {\r\n result.data.featuresRemoved.forEach(function (f) {\r\n _this.gisMapService.removeFeature(f, _this.$scope.process);\r\n });\r\n }\r\n });\r\n this.$scope.formData[formSection.objectSchema.uniqueIdentifier].remove(this.editRow);\r\n this.editRow = null;\r\n };\r\n return ListSectionModel;\r\n }(directives.FieldBaseModel));\r\n directives.ListSectionModel = ListSectionModel;\r\n var MultiAddSectionController = /** @class */ (function () {\r\n function MultiAddSectionController($scope, $rootScope, modalService, formSectionService, formService, formDataService, deleteService, processService, processDocumentService, gisMapService) {\r\n var _this = this;\r\n this.$scope = $scope;\r\n this.$rootScope = $rootScope;\r\n this.modalService = modalService;\r\n this.formSectionService = formSectionService;\r\n this.formService = formService;\r\n this.processDocumentService = processDocumentService;\r\n this.gisMapService = gisMapService;\r\n $scope.model = new ListSectionModel($scope, $rootScope, modalService, formSectionService, formService, formDataService, deleteService, processService, processDocumentService, gisMapService);\r\n $scope.getDocumentDisplayString = function (docId) { return _this.getDocumentDisplayString(docId); };\r\n }\r\n MultiAddSectionController.prototype.getDocumentDisplayString = function (docId) {\r\n if (docId) {\r\n var document_1 = this.processDocumentService.getDocumentById(this.$scope.process, docId);\r\n if (document_1) {\r\n return document_1.fileName;\r\n }\r\n }\r\n return \"\";\r\n };\r\n return MultiAddSectionController;\r\n }());\r\n directives.MultiAddSectionController = MultiAddSectionController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('ListSection', []);\r\n","/// \r\nmodule warsApp.directives {\r\n export interface IListSectionScope extends IBaseFieldSectionScope {\r\n model: ListSectionModel;\r\n field: Wars.Domain.Model.Field;\r\n isReadOnly: boolean;\r\n fieldBlurred: any;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n getDocumentDisplayString: (docId: string) => string;\r\n userActionInitiated: (u: any) => void;\r\n }\r\n\r\n export class ListSection implements IDirective {\r\n public link($scope: IFieldSectionScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/inputForm/listSection.html';\r\n public restrict: string = 'E';\r\n public controller = [\r\n '$scope', '$rootScope', 'ModalService', 'formSectionService', 'formService', 'formDataService', 'deleteService',\r\n 'processService', \"processDocumentService\",'gisMapService', MultiAddSectionController ];\r\n public controllerAs = 'controller';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n showSlider: \"=\",\r\n field: \"=\",\r\n formSection: \"=\",\r\n process: \"=\",\r\n isReadOnly: \"=\",\r\n fieldBlurred: \"=\",\r\n processConfigurationId: \"=\",\r\n processConfiguration: \"=\",\r\n formData: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\",\r\n form: \"=\",\r\n processId: \"=\",\r\n step: \"=\"\r\n };\r\n }\r\n\r\n export class ListSectionModel extends FieldBaseModel {\r\n public isEditing: boolean;\r\n public editRow: any;\r\n public isEditRowReadOnly: boolean;\r\n\r\n constructor($scope: IListSectionScope,\r\n private $rootScope: angular.IRootScopeService,\r\n modalService: any,\r\n formSectionService: services.FormSectionService,\r\n formService: services.FormService,\r\n private formDataService: services.FormDataService,\r\n deleteService: services.DeleteService,\r\n processService: services.ProcessService,\r\n private processDocumentService: services.ProcessDocumentService,\r\n private gisMapService:services.GisMapService)\r\n {\r\n super($scope, modalService, formSectionService, formService, deleteService);\r\n $scope.userActionInitiated = (u) => this.userActionInitiated(u);\r\n }\r\n\r\n private userActionInitiated(userAction: Wars.Domain.Model.Dtos.UserActionModelDto) {\r\n this.$rootScope.$broadcast('userActionInitated', userAction);\r\n }\r\n\r\n public zoomToFeature(featureId:string) {\r\n this.gisMapService.zoomToFeature(featureId,this.$scope.process);\r\n }\r\n\r\n public selectRow(row) {\r\n this.isEditing = true;\r\n this.editRow = row;\r\n this.isEditRowReadOnly = false;\r\n\r\n if (this.$scope.process && this.$scope.process.metadata[row.id]) {\r\n try {\r\n let metadataObj = JSON.parse(this.$scope.process.metadata[row.id]);\r\n\r\n if (metadataObj.onlyAllowApiEdits) {\r\n this.isEditRowReadOnly = true;\r\n }\r\n } catch (error) {\r\n services.WarsLogger.logWarn(\"Error Parsing JSON for metadata: \" + error, \"ListSection\");\r\n }\r\n }\r\n }\r\n\r\n public addListItem(formSection: Wars.Domain.Model.FormSection) {\r\n if (!this.$scope.formData) {\r\n return;\r\n }\r\n if (this.$scope.formData[formSection.objectSchema.uniqueIdentifier] == null) {\r\n this.$scope.formData[formSection.objectSchema.uniqueIdentifier] = [];\r\n }\r\n\r\n var newItem = { id: services.UtilityService.generateGuidComb() };\r\n this.formDataService.addListRow(this.$scope.process.id,\r\n this.$scope.formId,\r\n this.$scope.formDataId,\r\n formSection.objectSchema.uniqueIdentifier,\r\n newItem.id);\r\n\r\n \r\n\r\n this.$scope.formData[formSection.objectSchema.uniqueIdentifier].push(newItem);\r\n this.isEditing = true;\r\n this.editRow = newItem;\r\n\r\n this.$scope.process.processNames[this.editRow.id] = null;\r\n }\r\n\r\n public removeRow(row, formSection) {\r\n this.isEditing = false;\r\n this.formDataService.removeListRow(this.$scope.process.id,\r\n this.$scope.formId,\r\n this.$scope.formDataId,\r\n formSection.objectSchema.uniqueIdentifier,\r\n (this.editRow).id).then((result) => {\r\n if (result && result.data.docIdsRemoved != null) {\r\n this.processDocumentService.updateProcessDocuments(this.$scope.process, [], result.data.docIdsRemoved);\r\n }\r\n if (result && result.data.featuresRemoved != null) {\r\n result.data.featuresRemoved.forEach(f => {\r\n this.gisMapService.removeFeature(f,this.$scope.process);\r\n });\r\n }\r\n });\r\n\r\n this.$scope.formData[formSection.objectSchema.uniqueIdentifier].remove(this.editRow);\r\n this.editRow = null;\r\n }\r\n }\r\n\r\n export class MultiAddSectionController implements IController {\r\n constructor(\r\n private $scope: IListSectionScope,\r\n private $rootScope: angular.IRootScopeService,\r\n private modalService: any,\r\n private formSectionService: services.FormSectionService,\r\n private formService: services.FormService,\r\n formDataService: services.FormDataService,\r\n deleteService: services.DeleteService,\r\n processService: services.ProcessService,\r\n private processDocumentService: services.ProcessDocumentService,\r\n private gisMapService:services.GisMapService)\r\n {\r\n $scope.model = new ListSectionModel($scope,\r\n $rootScope,\r\n modalService,\r\n formSectionService,\r\n formService,\r\n formDataService,\r\n deleteService,\r\n processService,\r\n processDocumentService,\r\n gisMapService);\r\n\r\n $scope.getDocumentDisplayString = (docId: string) => this.getDocumentDisplayString(docId);\r\n }\r\n\r\n private getDocumentDisplayString(docId: string): string {\r\n if (docId) {\r\n const document = this.processDocumentService.getDocumentById(this.$scope.process, docId);\r\n if (document) {\r\n return document.fileName;\r\n }\r\n }\r\n return \"\";\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ListSection', []);","/// \r\n//# sourceMappingURL=ModalForm.js.map","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var MultiStepForm = /** @class */ (function (_super) {\r\n __extends(MultiStepForm, _super);\r\n function MultiStepForm() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.templateUrl = './app/views/directives/inputForm/multiStepForm.html';\r\n _this.controller = [\r\n '$scope', '$window', '$timeout', 'angularLoadService', 'formSectionService', 'ModalService', '$http',\r\n 'dataSourceService', 'formService', 'formDataService', 'growl', 'formCodeFunctionService',\r\n 'customDivService',\r\n 'manageProcessDataConfigurationService', 'apiActionService', 'securityMatrixService',\r\n 'deleteService', MultiStepFormController\r\n ];\r\n return _this;\r\n }\r\n return MultiStepForm;\r\n }(directives.BaseForm));\r\n directives.MultiStepForm = MultiStepForm;\r\n var MultiStepFormModel = /** @class */ (function (_super) {\r\n __extends(MultiStepFormModel, _super);\r\n function MultiStepFormModel(angularLoader, formSectionService, modalService, $http, dataSourceService, formService, process, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiConfigurationService, securityMatrixService, deleteService, scope, $window, $timeout, formDataId) {\r\n var _this = _super.call(this, angularLoader, formSectionService, modalService, $http, dataSourceService, formService, process, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiConfigurationService, securityMatrixService, deleteService, scope, formDataId) || this;\r\n _this.$window = $window;\r\n _this.$timeout = $timeout;\r\n var cb = scope.$on('stepChanged', function (e, a) {\r\n var step = Enumerable.from(_this.formConfiguration.mySteps).singleOrDefault(function (x) { return x.id === a; });\r\n //console.log(step);\r\n if (step) {\r\n _this.selectStep(step.position);\r\n scope.$apply();\r\n }\r\n });\r\n //destroy the listener on scope destroy to avoid memory leak\r\n scope.$on(\"$destroy\", function () {\r\n cb();\r\n });\r\n return _this;\r\n }\r\n MultiStepFormModel.prototype.setupImplementedForm = function () {\r\n if (this.formConfiguration.mySteps.length > 0) {\r\n if (this.isFieldChangedProcessAction) {\r\n this.isFieldChangedProcessAction = false;\r\n return;\r\n }\r\n //********\r\n //TODO: Hack by Randy: this preserves the step the user is on in a multi-step form after a process action is run\r\n // this is potentially vulnerable to form visibility changes\r\n //** prior to change\r\n //this.selectStep(0);\r\n //** end prior to change\r\n //** change\r\n if (isNaN(this.currentStepIndex)) {\r\n this.selectStep(0);\r\n }\r\n else {\r\n this.selectStep(this.currentStepIndex);\r\n }\r\n //** end change\r\n //this.loadStepUrls();\r\n }\r\n };\r\n MultiStepFormModel.prototype.goto = function (errorObj) {\r\n var step = Enumerable.from(this.formConfiguration.mySteps).single(function (x) { return x.id == errorObj.stepId; });\r\n this.selectStep(step.position);\r\n //this.currentStep = step;\r\n //this.currentStepIndex = step.position;\r\n if (errorObj.rowId) {\r\n setTimeout(function () {\r\n $('#' + errorObj.rowId).click();\r\n setTimeout(function () { $('#' + errorObj.fieldId).focus(); }, 100);\r\n }, 100);\r\n }\r\n else {\r\n setTimeout(function () { $('#' + errorObj.fieldId).focus(); }, 100);\r\n }\r\n };\r\n MultiStepFormModel.prototype.deleteStep = function () {\r\n var _this = this;\r\n var deletedStep = this.currentStep.position;\r\n this.deleteService.deleteWithModalConfirmIfNecessary('FormStep', this.currentStep.id, \"Form Step\", function () {\r\n _this.formConfiguration.mySteps.forEach(function (s) {\r\n if (s.position > deletedStep) {\r\n s.position--;\r\n }\r\n });\r\n _this.formConfiguration.mySteps.splice(_this.currentStep.position, 1);\r\n _this.setupFormSchema();\r\n _this.save();\r\n if (_this.formConfiguration.mySteps.length > 0) {\r\n _this.selectStep(0);\r\n }\r\n else {\r\n _this.currentStep = null;\r\n }\r\n });\r\n };\r\n MultiStepFormModel.prototype.previous = function (event) {\r\n var element = angular.element(event.currentTarget);\r\n element.blur();\r\n this.selectAndScrollToStep(this.currentStepIndex - 1);\r\n };\r\n MultiStepFormModel.prototype.next = function (event) {\r\n var element = angular.element(event.currentTarget);\r\n element.blur();\r\n this.selectAndScrollToStep(this.currentStepIndex + 1);\r\n };\r\n MultiStepFormModel.prototype.selectAndScrollToStep = function (stepIndex) {\r\n this.selectStep(stepIndex);\r\n };\r\n MultiStepFormModel.prototype.stepSort = function ($item, $partFrom, $partTo, $indexFrom, $indexTo, $modal) {\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(function (z) { return z.position; }).toArray();\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n $item.position = $indexTo;\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].position = Enumerable.from(arrayCopy).indexOf(function (i) { return i.id == numberId; });\r\n }\r\n this.save();\r\n this.selectStep($indexTo);\r\n };\r\n //public addCustomStep() {\r\n // var newStep = this.formService.createFormStep(this.formConfiguration);\r\n // newStep.position = this.formConfiguration.mySteps.length;\r\n // newStep.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n // newStep.objectSchema.name = \"Step Name\";\r\n // newStep.isCustomStep = true;\r\n // var self = this;\r\n // this.$http.get('./app/views/customStepTemplate.html').then(function (result) {\r\n // newStep.html = (result.data);\r\n // return self.$http.get('./app/models/customStepTemplate.js');\r\n // }).then(result => {\r\n // newStep.javascript = (result.data);\r\n // self.save();\r\n // });\r\n // this.formConfiguration.mySteps.push(newStep);\r\n // this.currentStep = newStep;\r\n //}\r\n MultiStepFormModel.prototype.addStep = function () {\r\n var newStep = this.formService.createFormStep(this.formConfiguration);\r\n newStep.position = this.formConfiguration.mySteps.length;\r\n newStep.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n newStep.objectSchema.name = \"Step Name\";\r\n this.formConfiguration.mySteps.push(newStep);\r\n /*let newProperty = this.dataSourceService.createNewSchemaProperty();\r\n newProperty.name = newStep.objectSchema.name;\r\n newProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n newProperty.typeSchema = newStep.objectSchema;\r\n */\r\n this.currentStep = newStep;\r\n this.currentStepIndex = this.formConfiguration.mySteps.length - 1;\r\n this.setupFormSchema();\r\n this.save();\r\n };\r\n MultiStepFormModel.prototype.selectStep = function (position) {\r\n var _this = this;\r\n var index = 0;\r\n if (position > 0) {\r\n index = Enumerable.from(this.formConfiguration.mySteps).indexOf(function (s) { return s.position == position; });\r\n }\r\n this.currentStep = this.formConfiguration.mySteps[index];\r\n this.currentStepIndex = position;\r\n ////TODO: Fix this with new form changes\r\n //if (this.currentStep.isCustomStep && this.customStepFunctions && this.customStepFunctions.length > 0) {\r\n // this.formData = this.customStepFunctions[this.currentStep.id].stepUnload(this.isReadOnly);\r\n // this.save();\r\n //}\r\n var step = Enumerable.from(this.formConfiguration.mySteps).single(function (s) { return s.position === position; });\r\n this.currentStep = step;\r\n if (this.currentStep.formSections) {\r\n this.currentStep.formSections.forEach(function (g) {\r\n _this.formSectionService.splitFields(g);\r\n });\r\n }\r\n this.loadStepJavascript();\r\n this.loadFieldsConditions();\r\n var id = 'step' + position;\r\n var element = this.$window.document.getElementById(id);\r\n if (element) {\r\n element.focus();\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n return MultiStepFormModel;\r\n }(directives.BaseFormModel));\r\n directives.MultiStepFormModel = MultiStepFormModel;\r\n var MultiStepFormController = /** @class */ (function (_super) {\r\n __extends(MultiStepFormController, _super);\r\n function MultiStepFormController(scope, $window, $timeout, angularLoader, formSectionService, modalService, httpService, dataSourceService, formService, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiActionService, securityMatrixService, deleteService) {\r\n var _this = this;\r\n scope.model = new MultiStepFormModel(angularLoader, formSectionService, modalService, httpService, dataSourceService, formService, scope.process, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiActionService, securityMatrixService, deleteService, scope, $window, $timeout);\r\n _this = _super.call(this, scope) || this;\r\n return _this;\r\n }\r\n return MultiStepFormController;\r\n }(directives.BaseFormController));\r\n directives.MultiStepFormController = MultiStepFormController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('MultiStepForm', []);\r\n","/// \r\nmodule warsApp.directives {\r\n import DeleteService = warsApp.services.DeleteService;\r\n\r\n export interface IMultiStepFormScope extends IBaseFormScope {\r\n model: MultiStepFormModel;\r\n }\r\n\r\n export class MultiStepForm extends BaseForm {\r\n public templateUrl = './app/views/directives/inputForm/multiStepForm.html';\r\n public controller = [\r\n '$scope', '$window', '$timeout', 'angularLoadService', 'formSectionService', 'ModalService', '$http',\r\n 'dataSourceService', 'formService', 'formDataService', 'growl', 'formCodeFunctionService',\r\n 'customDivService',\r\n 'manageProcessDataConfigurationService', 'apiActionService', 'securityMatrixService',\r\n 'deleteService', MultiStepFormController\r\n ];\r\n }\r\n\r\n\r\n export class MultiStepFormModel extends BaseFormModel {\r\n\r\n constructor(\r\n angularLoader: services.AngularLoadService,\r\n formSectionService: services.FormSectionService,\r\n modalService: any,\r\n $http: angular.IHttpService,\r\n dataSourceService: services.DataSourceService,\r\n formService: services.FormService,\r\n process: models.ProcessDto,\r\n formDataService: services.FormDataService,\r\n growl: angular.growl.IGrowlService,\r\n formCodeFunctionService: Services.FormCodeFunctionService,\r\n customDivService: services.CustomDivService,\r\n manageProcessDataConfigurationService: services.ManageProcessDataConfigurationService,\r\n apiConfigurationService: services.ApiActionService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n deleteService: services.DeleteService,\r\n scope: angular.IScope,\r\n private $window: angular.IWindowService,\r\n private $timeout: angular.ITimeoutService,\r\n formDataId?: string) {\r\n\r\n super(angularLoader,\r\n formSectionService,\r\n modalService,\r\n $http,\r\n dataSourceService,\r\n formService,\r\n process,\r\n formDataService,\r\n growl,\r\n formCodeFunctionService,\r\n customDivService,\r\n manageProcessDataConfigurationService,\r\n apiConfigurationService,\r\n securityMatrixService,\r\n deleteService,\r\n scope,\r\n formDataId);\r\n\r\n var cb = scope.$on('stepChanged',\r\n (e, a) => {\r\n\r\n var step = Enumerable.from(this.formConfiguration.mySteps).singleOrDefault(x => x.id === a);\r\n //console.log(step);\r\n if (step) {\r\n this.selectStep(step.position);\r\n scope.$apply();\r\n }\r\n });\r\n //destroy the listener on scope destroy to avoid memory leak\r\n scope.$on(\"$destroy\",\r\n () => {\r\n cb();\r\n });\r\n }\r\n \r\n public setupImplementedForm() {\r\n if (this.formConfiguration.mySteps.length > 0) {\r\n\r\n if (this.isFieldChangedProcessAction) {\r\n this.isFieldChangedProcessAction = false;\r\n return;\r\n }\r\n\r\n //********\r\n //TODO: Hack by Randy: this preserves the step the user is on in a multi-step form after a process action is run\r\n // this is potentially vulnerable to form visibility changes\r\n\r\n //** prior to change\r\n //this.selectStep(0);\r\n //** end prior to change\r\n\r\n //** change\r\n if (isNaN(this.currentStepIndex)) {\r\n this.selectStep(0);\r\n } else {\r\n this.selectStep(this.currentStepIndex);\r\n }\r\n //** end change\r\n\r\n //this.loadStepUrls();\r\n }\r\n\r\n }\r\n\r\n public goto(errorObj: any) {\r\n var step = Enumerable.from(this.formConfiguration.mySteps).single(x => x.id == errorObj.stepId);\r\n this.selectStep(step.position);\r\n //this.currentStep = step;\r\n //this.currentStepIndex = step.position;\r\n if (errorObj.rowId) {\r\n setTimeout(() => {\r\n $('#' + errorObj.rowId).click();\r\n setTimeout(() => { $('#' + errorObj.fieldId).focus(); }, 100);\r\n }, 100);\r\n\r\n } else {\r\n setTimeout(() => { $('#' + errorObj.fieldId).focus(); }, 100);\r\n }\r\n\r\n }\r\n\r\n public deleteStep() {\r\n var deletedStep = this.currentStep.position;\r\n this.deleteService.deleteWithModalConfirmIfNecessary('FormStep',\r\n this.currentStep.id,\r\n \"Form Step\",\r\n () => {\r\n this.formConfiguration.mySteps.forEach(s => {\r\n if (s.position > deletedStep) {\r\n s.position--;\r\n }\r\n });\r\n\r\n this.formConfiguration.mySteps.splice(this.currentStep.position, 1);\r\n this.setupFormSchema();\r\n\r\n this.save();\r\n\r\n if (this.formConfiguration.mySteps.length > 0) {\r\n this.selectStep(0);\r\n } else {\r\n this.currentStep = null;\r\n }\r\n });\r\n }\r\n\r\n public previous(event) {\r\n var element = angular.element(event.currentTarget);\r\n element.blur();\r\n this.selectAndScrollToStep(this.currentStepIndex - 1);\r\n }\r\n\r\n public next(event) {\r\n var element = angular.element(event.currentTarget);\r\n element.blur();\r\n this.selectAndScrollToStep(this.currentStepIndex + 1);\r\n }\r\n\r\n private selectAndScrollToStep(stepIndex: number) {\r\n this.selectStep(stepIndex);\r\n }\r\n\r\n public stepSort($item: Wars.Domain.Model.FormStep,\r\n $partFrom: Wars.Domain.Model.FormStep[],\r\n $partTo,\r\n $indexFrom,\r\n $indexTo,\r\n $modal) {\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(z => z.position).toArray();\r\n\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n\r\n $item.position = $indexTo;\r\n\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].position = Enumerable.from(arrayCopy).indexOf(i => i.id == numberId);\r\n }\r\n\r\n this.save();\r\n\r\n this.selectStep($indexTo);\r\n }\r\n\r\n //public addCustomStep() {\r\n // var newStep = this.formService.createFormStep(this.formConfiguration);\r\n // newStep.position = this.formConfiguration.mySteps.length;\r\n\r\n // newStep.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n // newStep.objectSchema.name = \"Step Name\";\r\n\r\n // newStep.isCustomStep = true;\r\n // var self = this;\r\n // this.$http.get('./app/views/customStepTemplate.html').then(function (result) {\r\n // newStep.html = (result.data);\r\n // return self.$http.get('./app/models/customStepTemplate.js');\r\n // }).then(result => {\r\n // newStep.javascript = (result.data);\r\n // self.save();\r\n // });\r\n\r\n // this.formConfiguration.mySteps.push(newStep);\r\n // this.currentStep = newStep;\r\n //}\r\n\r\n public addStep() {\r\n let newStep = this.formService.createFormStep(this.formConfiguration);\r\n\r\n newStep.position = this.formConfiguration.mySteps.length;\r\n newStep.objectSchema = this.dataSourceService.createNewObjectSchema();\r\n newStep.objectSchema.name = \"Step Name\";\r\n\r\n this.formConfiguration.mySteps.push(newStep);\r\n\r\n /*let newProperty = this.dataSourceService.createNewSchemaProperty();\r\n newProperty.name = newStep.objectSchema.name;\r\n newProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.Object;\r\n newProperty.typeSchema = newStep.objectSchema;\r\n*/\r\n\r\n this.currentStep = newStep;\r\n this.currentStepIndex = this.formConfiguration.mySteps.length - 1;\r\n\r\n this.setupFormSchema();\r\n this.save();\r\n }\r\n\r\n public selectStep(position: number) {\r\n var index = 0;\r\n if (position > 0) {\r\n index = Enumerable.from(this.formConfiguration.mySteps).indexOf(s => s.position == position);\r\n }\r\n this.currentStep = this.formConfiguration.mySteps[index];\r\n\r\n this.currentStepIndex = position;\r\n\r\n ////TODO: Fix this with new form changes\r\n //if (this.currentStep.isCustomStep && this.customStepFunctions && this.customStepFunctions.length > 0) {\r\n // this.formData = this.customStepFunctions[this.currentStep.id].stepUnload(this.isReadOnly);\r\n // this.save();\r\n //}\r\n\r\n var step = Enumerable.from(this.formConfiguration.mySteps).single(s => s.position === position);\r\n this.currentStep = step;\r\n\r\n if (this.currentStep.formSections) {\r\n this.currentStep.formSections.forEach(g => {\r\n this.formSectionService.splitFields(g);\r\n });\r\n }\r\n\r\n this.loadStepJavascript();\r\n this.loadFieldsConditions();\r\n\r\n var id = 'step' + position;\r\n var element = this.$window.document.getElementById(id);\r\n if (element) {\r\n element.focus();\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n }\r\n\r\n export class MultiStepFormController extends BaseFormController {\r\n constructor(\r\n scope: IMultiStepFormScope,\r\n $window: angular.IWindowService,\r\n $timeout: angular.ITimeoutService,\r\n angularLoader: services.AngularLoadService,\r\n formSectionService: services.FormSectionService,\r\n modalService: any,\r\n httpService: angular.IHttpService,\r\n dataSourceService: services.DataSourceService,\r\n formService: services.FormService,\r\n formDataService: services.FormDataService,\r\n growl: angular.growl.IGrowlService,\r\n formCodeFunctionService: services.FormCodeFunctionService,\r\n customDivService: services.CustomDivService,\r\n manageProcessDataConfigurationService: services.ManageProcessDataConfigurationService,\r\n apiActionService: services.ApiActionService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n deleteService: services.DeleteService) {\r\n\r\n scope.model = new MultiStepFormModel(angularLoader,\r\n formSectionService,\r\n modalService,\r\n httpService,\r\n dataSourceService,\r\n formService,\r\n scope.process,\r\n formDataService,\r\n growl,\r\n formCodeFunctionService,\r\n customDivService,\r\n manageProcessDataConfigurationService,\r\n apiActionService,\r\n securityMatrixService,\r\n deleteService,\r\n scope,\r\n $window,\r\n $timeout);\r\n super(scope);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('MultiStepForm', []);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var ReportForm = /** @class */ (function (_super) {\r\n __extends(ReportForm, _super);\r\n function ReportForm() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.templateUrl = './app/views/directives/inputForm/reportForm.html';\r\n _this.controller = [\r\n '$scope', 'angularLoadService', 'formSectionService', 'ModalService', '$http',\r\n 'dataSourceService', 'formService', 'formDataService', 'growl', 'formCodeFunctionService',\r\n 'customDivService', 'apiActionService', 'securityMatrixService', 'deleteService', ReportFormController\r\n ];\r\n return _this;\r\n }\r\n return ReportForm;\r\n }(directives.BaseForm));\r\n directives.ReportForm = ReportForm;\r\n var ReportFormModel = /** @class */ (function (_super) {\r\n __extends(ReportFormModel, _super);\r\n function ReportFormModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ReportFormModel.prototype.setupImplementedForm = function () {\r\n if (this.internalSetupForm()) {\r\n //this.addPanelGroup();\r\n this.save();\r\n }\r\n };\r\n return ReportFormModel;\r\n }(directives.BaseOnePageFormModel));\r\n directives.ReportFormModel = ReportFormModel;\r\n var ReportFormController = /** @class */ (function (_super) {\r\n __extends(ReportFormController, _super);\r\n function ReportFormController(scope, angularLoader, formSectionService, modalService, httpService, dataSourceService, formService, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiConfigurationService, securityMatrixService, deleteService) {\r\n var _this = this;\r\n scope.model = new ReportFormModel(angularLoader, formSectionService, modalService, httpService, dataSourceService, formService, scope.process, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiConfigurationService, securityMatrixService, deleteService, scope);\r\n _this = _super.call(this, scope) || this;\r\n return _this;\r\n }\r\n return ReportFormController;\r\n }(directives.BaseFormController));\r\n directives.ReportFormController = ReportFormController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('ReportForm', []);\r\n","/// \r\nmodule warsApp.directives {\r\n export interface IReportFormScope extends IBaseFormScope {\r\n model: SinglePageFormModel;\r\n }\r\n\r\n export class ReportForm extends BaseForm {\r\n public templateUrl = './app/views/directives/inputForm/reportForm.html';\r\n public controller = [\r\n '$scope', 'angularLoadService', 'formSectionService', 'ModalService', '$http',\r\n 'dataSourceService', 'formService', 'formDataService', 'growl', 'formCodeFunctionService',\r\n 'customDivService','apiActionService','securityMatrixService','deleteService', ReportFormController\r\n ];\r\n }\r\n\r\n\r\n export class ReportFormModel extends BaseOnePageFormModel {\r\n public setupImplementedForm() {\r\n if (this.internalSetupForm()) {\r\n //this.addPanelGroup();\r\n this.save();\r\n }\r\n }\r\n }\r\n\r\n export class ReportFormController extends BaseFormController {\r\n constructor(\r\n scope: IReportFormScope,\r\n angularLoader: services.AngularLoadService,\r\n formSectionService: services.FormSectionService,\r\n modalService: any,\r\n httpService: angular.IHttpService,\r\n dataSourceService: services.DataSourceService,\r\n formService: services.FormService,\r\n formDataService: services.FormDataService,\r\n growl: angular.growl.IGrowlService,\r\n formCodeFunctionService: services.FormCodeFunctionService,\r\n customDivService: services.CustomDivService,\r\n manageProcessDataConfigurationService: services.ManageProcessDataConfigurationService,\r\n apiConfigurationService: services.ApiActionService,\r\n securityMatrixService:services.SecurityMatrixService,\r\n deleteService:services.DeleteService) {\r\n\r\n scope.model = new ReportFormModel(angularLoader, formSectionService, modalService, httpService,\r\n dataSourceService, formService, scope.process, formDataService, growl, formCodeFunctionService,\r\n customDivService, manageProcessDataConfigurationService,apiConfigurationService,\r\n securityMatrixService,deleteService,scope);\r\n super(scope);\r\n }\r\n }\r\n}\r\nwarsApp.registerDirective('ReportForm', []);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var SinglePageForm = /** @class */ (function (_super) {\r\n __extends(SinglePageForm, _super);\r\n function SinglePageForm() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.templateUrl = './app/views/directives/inputForm/singlePageForm.html';\r\n _this.controller = [\r\n '$scope', 'angularLoadService', 'formSectionService', 'ModalService', '$http',\r\n 'dataSourceService', 'formService', 'formDataService', 'growl', 'formCodeFunctionService',\r\n 'customDivService', 'manageProcessDataConfigurationService', 'apiActionService',\r\n 'securityMatrixService', 'deleteService', SinglePageFormController\r\n ];\r\n return _this;\r\n }\r\n return SinglePageForm;\r\n }(directives.BaseForm));\r\n directives.SinglePageForm = SinglePageForm;\r\n var SinglePageFormModel = /** @class */ (function (_super) {\r\n __extends(SinglePageFormModel, _super);\r\n function SinglePageFormModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SinglePageFormModel.prototype.setupImplementedForm = function () {\r\n if (this.internalSetupForm()) {\r\n this.save();\r\n }\r\n else {\r\n this.loadStepJavascript();\r\n }\r\n };\r\n return SinglePageFormModel;\r\n }(directives.BaseOnePageFormModel));\r\n directives.SinglePageFormModel = SinglePageFormModel;\r\n var SinglePageFormController = /** @class */ (function (_super) {\r\n __extends(SinglePageFormController, _super);\r\n function SinglePageFormController(scope, angularLoader, formSectionService, modalService, httpService, dataSourceService, formService, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiActionService, securityMatrixService, deleteService) {\r\n var _this = this;\r\n scope.model = new SinglePageFormModel(angularLoader, formSectionService, modalService, httpService, dataSourceService, formService, scope.process, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiActionService, securityMatrixService, deleteService, scope);\r\n _this = _super.call(this, scope) || this;\r\n return _this;\r\n }\r\n return SinglePageFormController;\r\n }(directives.BaseFormController));\r\n directives.SinglePageFormController = SinglePageFormController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('SinglePageForm', []);\r\n","/// \r\nmodule warsApp.directives {\r\n export interface ISinglePageFormScope extends IBaseFormScope {\r\n model: SinglePageFormModel;\r\n }\r\n\r\n export class SinglePageForm extends BaseForm {\r\n public templateUrl = './app/views/directives/inputForm/singlePageForm.html';\r\n public controller = [\r\n '$scope', 'angularLoadService', 'formSectionService', 'ModalService', '$http',\r\n 'dataSourceService', 'formService', 'formDataService', 'growl', 'formCodeFunctionService',\r\n 'customDivService','manageProcessDataConfigurationService', 'apiActionService',\r\n 'securityMatrixService','deleteService', SinglePageFormController\r\n ];\r\n }\r\n\r\n\r\n export class SinglePageFormModel extends BaseOnePageFormModel {\r\n public setupImplementedForm() {\r\n if (this.internalSetupForm()) {\r\n this.save();\r\n } else {\r\n this.loadStepJavascript();\r\n }\r\n }\r\n }\r\n\r\n export class SinglePageFormController extends BaseFormController {\r\n constructor(\r\n scope: ISinglePageFormScope,\r\n angularLoader: services.AngularLoadService,\r\n formSectionService: services.FormSectionService,\r\n modalService: any,\r\n httpService: angular.IHttpService,\r\n dataSourceService: services.DataSourceService,\r\n formService: services.FormService,\r\n formDataService: services.FormDataService,\r\n growl: angular.growl.IGrowlService,\r\n formCodeFunctionService: services.FormCodeFunctionService,\r\n customDivService: services.CustomDivService,\r\n manageProcessDataConfigurationService: services.ManageProcessDataConfigurationService,\r\n apiActionService: services.ApiActionService,securityMatrixService:services.SecurityMatrixService,\r\n deleteService:services.DeleteService) {\r\n\r\n scope.model = new SinglePageFormModel(angularLoader, formSectionService, modalService, httpService, dataSourceService, formService, scope.process, formDataService,\r\n growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiActionService,securityMatrixService,deleteService,scope);\r\n super(scope);\r\n }\r\n }\r\n}\r\nwarsApp.registerDirective('SinglePageForm', []);","/// \r\n//# sourceMappingURL=TabbedForm.js.map","/// \r\n\r\nmodule warsApp.directives {\r\n export interface IApiGridSectionScope extends ng.IScope {\r\n model: ApiGridSectionModel;\r\n isConfigureMode: boolean;\r\n isEditMode: boolean;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n processConfigurationId: string;\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n hideSection:boolean;\r\n }\r\n\r\n export class ApiGridSection implements IDirective {\r\n public link($scope: IApiGridSectionScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/manageForm/apiGridSection.html';\r\n public controller = ['$scope', 'formService', 'apiGridConfigurationService', ApiGridSectionController];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n process: \"=\",\r\n processConfigurationId: \"=\",\r\n manageSection: \"=\",\r\n hideSection:\"=\"\r\n };\r\n }\r\n\r\n export class ApiGridSectionModel {\r\n public apiGridConfigurations: Wars.Domain.Model.ApiGridConfiguration[];\r\n\r\n constructor(private formService: services.FormService,\r\n private apiGridConfigurationService: Services.ApiGridConfigurationService, private processConfigurationId,\r\n public isConfigureMode: boolean, public manageSection: Wars.Domain.Model.ManageSection, private process: Wars.Domain.Model.Dtos.ProcessDto) {\r\n\r\n if (isConfigureMode) {\r\n apiGridConfigurationService.getApiGridConfigurations(processConfigurationId).then(apiGridConfigurations => {\r\n this.apiGridConfigurations = apiGridConfigurations;\r\n });\r\n }\r\n }\r\n\r\n private apiGridConfigurationChanged() {\r\n this.formService.saveAllChanges();\r\n }\r\n }\r\n\r\n export class ApiGridSectionController {\r\n constructor(private scope: IApiGridSectionScope, private formService: services.FormService,\r\n private apiGridConfigurationService: services.ApiGridConfigurationService) {\r\n scope.model = new ApiGridSectionModel(formService,\r\n apiGridConfigurationService,\r\n scope.processConfigurationId,\r\n scope.isConfigureMode, scope.manageSection, scope.process);\r\n\r\n }\r\n }\r\n}\r\nwarsApp.registerDirective('ApiGridSection', []);","/// \r\n\r\nmodule warsApp.directives {\r\n export interface IManageAssignmentsScope extends ng.IScope {\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n processConfigurationId:string;\r\n isConfigureMode: boolean;\r\n isEditMode: boolean;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n cancel: any;\r\n saveAdd: any;\r\n clearUser: any;\r\n addAssignment: any;\r\n deleteAssignment: any;\r\n newAssignment: any;\r\n claimOptions: Wars.Domain.Model.ClaimDefinition[];\r\n isAdding: boolean;\r\n selectedUser: any;\r\n searchUsers: any;\r\n processClaims: Wars.Domain.Model.ClaimDefinition[];\r\n processClaimDefinitions: Wars.Domain.Model.ClaimDefinition[];\r\n userRepositories: string[];\r\n save: () => void;\r\n userSelected: () => void;\r\n canAddAssignment: boolean;\r\n removeClaim:any;\r\n addAssignmentToInclude:any;\r\n claimToAdd:Wars.Domain.Model.ClaimDefinition;\r\n getAssignments: () => Wars.Domain.Model.Dtos.ProcessAssignmentDto[];\r\n }\r\n\r\n export class ManageAssignments implements IDirective {\r\n public link($scope: IManageAssignmentsScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/manageForm/manageAssignments.html';\r\n public controller = [\r\n '$scope', 'formService', 'growl', 'claimDefinitionService', 'reviewConfigurationService', 'userService', \"conditionService\",\r\n 'processService', 'configurationCacheService', '$q','assignmentConfigurationService', ManageAssignmentsController];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n manageSection: \"=\",\r\n process: \"=\",\r\n processConfigurationId:\"=\"\r\n };\r\n }\r\n\r\n export class ManageAssignmentsController {\r\n public selectedUser: any;\r\n\r\n private currentUser: models.User;\r\n private selectedUserId: string;\r\n private processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n private processClaimDefinitions: Wars.Domain.Model.ClaimDefinition[];\r\n private userClaims: Wars.Domain.Model.Dtos.UserClaimDto[];\r\n private assignmentSection: Wars.Domain.Model.Dtos.AssignmentSectionDto;\r\n\r\n constructor(\r\n private scope: IManageAssignmentsScope,\r\n private formService: services.FormService,\r\n private growl: angular.growl.IGrowlService,\r\n private claimDefinitionService: services.ClaimDefinitionService,\r\n private reviewConfigurationService: services.ReviewConfigurationService,\r\n private userService: services.UserService,\r\n private conditionService: services.ConditionService,\r\n private processService: services.ProcessService,\r\n private configurationCache: services.ConfigurationCacheService,\r\n private $q: angular.IQService,\r\n private assigmentConfigurationService: services.AssignmentConfigurationService)\r\n {\r\n scope.deleteAssignment = (a) => this.deleteAssignment(a);\r\n scope.searchUsers = (a) => this.searchUsers(a);\r\n scope.addAssignment = () => this.addAssignment();\r\n scope.saveAdd = () => this.saveAdd();\r\n scope.cancel = () => this.cancel();\r\n scope.save = () => this.save();\r\n scope.userSelected = () => this.userSelected();\r\n scope.addAssignmentToInclude = () => this.addAssignmentToInclude();\r\n scope.removeClaim = (c) => this.removeClaim(c);\r\n scope.getAssignments = () => this.getAssignments();\r\n scope.clearUser = () => this.clearUser();\r\n\r\n\r\n if (this.scope.isConfigureMode) {\r\n this.reviewConfigurationService.getExtensibleUserRepositories().then(\r\n (userRepositories) => {\r\n scope.userRepositories = userRepositories;\r\n });\r\n\r\n this.claimDefinitionService.getAllProcessClaims(this.scope.processConfigurationId).then(claims => {\r\n this.scope.processClaimDefinitions = claims;\r\n });\r\n }\r\n\r\n if (!this.scope.isConfigureMode) {\r\n configurationCache.getVersionedProcessConfiguration(this.scope.processConfigurationId).then(\r\n (processConfiguration) => {\r\n this.processConfiguration = processConfiguration;\r\n }).then(() => {\r\n this.setCanAssign();\r\n });\r\n }\r\n\r\n this.currentUser = userService.getCurrentUser();\r\n }\r\n\r\n public removeClaim(claim: Wars.Domain.Model.AssignmentSectionClaim) {\r\n claim.entityAspect.setDeleted();\r\n this.save();\r\n }\r\n\r\n public clearUser() {\r\n this.scope.selectedUser = null;\r\n this.selectedUser = null;\r\n this.selectedUserId = null;\r\n this.save();\r\n }\r\n\r\n public getAssignments() {\r\n if (!this.scope.process)\r\n return [];\r\n\r\n return Enumerable.from(this.scope.process.processAssignments).where(p =>\r\n Enumerable.from(this.scope.manageSection.assignmentConfiguration.assignmentSectionClaims)\r\n .any(a => a.claimDefinition.uniqueIdentifier === p.claimUniqueId)).toArray();\r\n }\r\n\r\n public searchUsers(viewValue) {\r\n var searchCriteria = new models.UserSearchCriteria();\r\n searchCriteria.userRepository = this.scope.manageSection.assignmentConfiguration.userServiceName;\r\n searchCriteria.userName = viewValue;\r\n return this.userService.searchUsers(searchCriteria);;\r\n }\r\n\r\n public deleteAssignment(assignment: Wars.Domain.Model.Dtos.ProcessAssignmentDto) {\r\n if (!Enumerable.from(this.scope.processClaims).any(pc => pc.uniqueIdentifier === assignment.claimUniqueId)) {\r\n this.growl.error(\"You do not have authority to remove this assignment.\");\r\n return;\r\n }\r\n\r\n var matches = Enumerable.from(this.assignmentSection.assignmentRights)\r\n .where(i => i.processClaimUniqueId == assignment.claimUniqueId)\r\n .toArray();\r\n\r\n var noRestrictionMatches = Enumerable.from(matches)\r\n .where(i => (!i.preventAssignmentRemovalOfSelf || assignment.assignedUserId !== this.currentUser.userId) && !i.unAssignConditionExists)\r\n .toArray();\r\n\r\n if (noRestrictionMatches.length > 0) {\r\n this.deleteAssignmentInternal(assignment);\r\n return;\r\n }\r\n\r\n if (assignment.assignedUserId === this.currentUser.userId && Enumerable.from(matches).all(i => i.preventAssignmentRemovalOfSelf)) {\r\n this.growl.error(\"You are not allowed to remove this assignment from yourself.\");\r\n return;\r\n }\r\n\r\n var possibleAssignments = Enumerable.from(matches)\r\n .where(i => (!i.preventAssignmentRemovalOfSelf || assignment.assignedUserId !== this.currentUser.userId))\r\n .toArray();\r\n\r\n this.conditionService.executeUnAssigConditions(this.scope.process.id, assignment.id, possibleAssignments).then(\r\n (assignmentChecks: Wars.Domain.Model.Dtos.AssignmentCheckDto[]) => {\r\n var anyConditionsPassed = Enumerable.from(assignmentChecks).any(i => i.wasSuccessful);\r\n if (anyConditionsPassed) {\r\n this.deleteAssignmentInternal(assignment);\r\n return;\r\n }\r\n\r\n var failureMessage = this.getFailureMessage(assignmentChecks);\r\n\r\n if (failureMessage === \"\") {\r\n this.growl.error(\"You are not authorized to remove this assignment.\");\r\n } else {\r\n this.growl.error(\"One of the following issue(s) is preventing you from removing this assignment: \" + failureMessage);\r\n }\r\n return;\r\n });\r\n }\r\n\r\n private getFailureMessage(assignmentChecks: Wars.Domain.Model.Dtos.AssignmentCheckDto[]): string {\r\n var failureMessage = \"\";\r\n var firstCheck = true;\r\n for (var i = 0; i < assignmentChecks.length; i++) {\r\n if (assignmentChecks[i].failureMessage == null) continue;\r\n if (!firstCheck) {\r\n failureMessage += \", \";\r\n }\r\n failureMessage += assignmentChecks[i].failureMessage;\r\n firstCheck = false;\r\n }\r\n return failureMessage;\r\n }\r\n\r\n private deleteAssignmentInternal(assignment: Wars.Domain.Model.Dtos.ProcessAssignmentDto): void {\r\n this.processService.deleteAssignment(this.scope.process.id, assignment.id)\r\n .then(r => {\r\n this.scope.process.processAssignments.remove(assignment);\r\n });\r\n }\r\n\r\n public addAssignment() {\r\n this.scope.newAssignment = {};\r\n this.scope.isAdding = true;\r\n }\r\n\r\n public addAssignmentToInclude() {\r\n if (Enumerable.from(this.scope.manageSection.assignmentConfiguration.assignmentSectionClaims)\r\n .any(a => a.claimDefinition_id === this.scope.claimToAdd.id)) {\r\n this.growl.error(\"This claim is already added.\");\r\n return;\r\n }\r\n \r\n let newSectionClaim = this.assigmentConfigurationService.createAssigmentSectionClaim();\r\n\r\n newSectionClaim.claimDefinition_id = this.scope.claimToAdd.id;\r\n newSectionClaim.assignmentConfiguration = this.scope.manageSection.assignmentConfiguration;\r\n\r\n this.scope.manageSection.assignmentConfiguration.assignmentSectionClaims.push(newSectionClaim);\r\n this.save();\r\n }\r\n\r\n public saveAdd() {\r\n if (this.selectedUserId === null || this.selectedUserId === undefined) {\r\n this.growl.error(\"A user must be selected to continue.\");\r\n return;\r\n }\r\n\r\n if (this.scope.processClaims.length === 1) {\r\n this.scope.newAssignment.claimDefinition = this.scope.processClaims[0];\r\n }\r\n\r\n this.scope.newAssignment.assignedUserId = this.selectedUserId;\r\n this.scope.newAssignment.claimUniqueId = this.scope.newAssignment.claimDefinition.uniqueIdentifier;\r\n const claimUniqueId = this.scope.newAssignment.claimDefinition.uniqueIdentifier;\r\n\r\n var processClaim = Enumerable.from(this.scope.processClaims).single(c => c.id === this.scope.newAssignment.claimDefinition.id);\r\n\r\n if (processClaim.maxAssignments && processClaim.maxAssignments > 0) {\r\n if (processClaim.maxAssignments <= Enumerable.from(this.scope.process.processAssignments).count(x => x.claimUniqueId === claimUniqueId)) {\r\n this.growl.error(\"This assignment has already been assigned to the maximum number of users.\");\r\n return;\r\n }\r\n }\r\n if (Enumerable.from(this.scope.process.processAssignments)\r\n .any(a => a.assignedUserId === this.scope.newAssignment.assignedUserId && a.claimUniqueId === this.scope.newAssignment.claimUniqueId)) {\r\n this.growl.error(\"This assignment has already been added to this user\");\r\n return;\r\n }\r\n\r\n var matches = Enumerable.from(this.assignmentSection.assignmentRights)\r\n .where(i => i.processClaimUniqueId == this.scope.newAssignment.claimUniqueId)\r\n .toArray();\r\n\r\n var noRestrictionMatches = Enumerable.from(matches)\r\n .where(i => !i.assignConditionExists)\r\n .toArray();\r\n\r\n if (noRestrictionMatches.length > 0) {\r\n this.addAssignmentInternal();\r\n return;\r\n }\r\n\r\n this.conditionService.executeAssignConditions(\r\n this.scope.process.id,\r\n this.scope.newAssignment.claimUniqueId,\r\n this.scope.newAssignment.assignedUserId,\r\n matches).then(\r\n (assignmentChecks: Wars.Domain.Model.Dtos.AssignmentCheckDto[]) => {\r\n var anyConditionsPassed = Enumerable.from(assignmentChecks).any(i => i.wasSuccessful);\r\n if (anyConditionsPassed) {\r\n this.addAssignmentInternal();\r\n return;\r\n }\r\n\r\n var failureMessage = this.getFailureMessage(assignmentChecks);\r\n\r\n if (failureMessage === \"\") {\r\n this.growl.error(\"You are not authorized to add this assignment.\");\r\n } else {\r\n this.growl.error(\"One of the following issue(s) is preventing you from adding this assignment: \" + failureMessage);\r\n }\r\n return;\r\n });\r\n }\r\n\r\n private addAssignmentInternal() {\r\n delete this.scope.newAssignment.claimDefinition;\r\n\r\n this.processService.addAssignment(this.scope.process.id, this.scope.newAssignment).then(a => {\r\n this.scope.process.processAssignments.push(a);\r\n\r\n this.scope.newAssignment = null;\r\n this.scope.isAdding = false;\r\n this.scope.selectedUser = null;\r\n this.selectedUser = null;\r\n this.selectedUserId = null;\r\n });\r\n }\r\n\r\n private setCanAssign() {\r\n this.assignmentSection = this.scope.process.assignmentSections[this.scope.manageSection.uniqueIdentifier];\r\n var assignableClaimUniqueIds = Enumerable.from(this.assignmentSection.assignmentRights)\r\n .select(i => i.processClaimUniqueId)\r\n .toArray();\r\n\r\n this.scope.processClaims = Enumerable.from(this.processConfiguration.myClaims).where(i => assignableClaimUniqueIds.indexOf(i.uniqueIdentifier) !== -1).toArray();\r\n this.scope.canAddAssignment = this.scope.processClaims.length > 0;\r\n }\r\n\r\n private userSelected() {\r\n if (!this.scope.selectedUser)\r\n return;\r\n\r\n if (this.scope.selectedUser.isExternal) {\r\n this.userService.addExternalUser(this.scope.selectedUser)\r\n .then(id => {\r\n this.selectedUserId = id;\r\n });\r\n } else {\r\n this.selectedUserId = this.scope.selectedUser.id;\r\n }\r\n }\r\n\r\n public cancel() {\r\n this.scope.newAssignment = null;\r\n this.scope.isAdding = false;\r\n this.scope.selectedUser = null;\r\n this.selectedUser = null;\r\n this.selectedUserId = null;\r\n }\r\n\r\n public save() {\r\n this.formService.saveAllChanges();\r\n }\r\n }\r\n}\r\nwarsApp.registerDirective('ManageAssignments', []);","/// \r\n\r\nmodule warsApp.directives {\r\n export interface IManageCommentThreadScope extends ng.IScope {\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n processConfigurationId: string;\r\n isConfigureMode: boolean;\r\n isEditMode: boolean;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n addingNewComment: boolean;\r\n newComment: string;\r\n newCommentDocIds: string[];\r\n newCommentDate:any;\r\n saveNewComment: () => void;\r\n addNewComment: () => void;\r\n cancelNewComment: () => void;\r\n documentUpdated: (model: models.FileUploadModel) => void;\r\n }\r\n\r\n export class ManageCommentThread implements IDirective {\r\n public link($scope: IManageCommentThreadScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = \"./app/views/directives/manageForm/manageCommentThread.html\";\r\n public controller = [\r\n \"$scope\", \"commentService\", \"processDocumentService\", ManageCommentThreadController\r\n ];\r\n public controllerAs = \"controller\";\r\n public restrict: string = \"E\";\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n manageSection: \"=\",\r\n process: \"=\",\r\n processConfiguration: \"=\",\r\n processConfigurationId: \"=\"\r\n };\r\n }\r\n\r\n export class ManageCommentThreadController {\r\n\r\n constructor(\r\n private scope: IManageCommentThreadScope,\r\n private commentService: services.CommentService,\r\n private processDocumentService: services.ProcessDocumentService)\r\n {\r\n scope.newCommentDate = {d:null};\r\n scope.saveNewComment = () => this.saveNewComment();\r\n scope.addNewComment = () => this.addNewComment();\r\n scope.cancelNewComment = () => this.cancelNewComment();\r\n scope.documentUpdated = (model: models.FileUploadModel) => this.documentUpdatedInternal(model);\r\n }\r\n\r\n private addNewComment(): void {\r\n this.scope.addingNewComment = true;\r\n this.scope.newComment = undefined;\r\n this.scope.newCommentDocIds = [];\r\n this.scope.newCommentDate = { d: null };\r\n }\r\n\r\n private saveNewComment(): void {\r\n this.scope.addingNewComment = false;\r\n\r\n var commentDate = null;\r\n\r\n if (this.scope.manageSection.commentThreadConfiguration.allowCommentDateToBeSet) {\r\n commentDate = this.scope.newCommentDate ? this.scope.newCommentDate.d : undefined;\r\n }\r\n\r\n var commentDto: Wars.Domain.Model.Dtos.CommentDto = {\r\n comment: this.scope.newComment,\r\n documentIds: this.scope.newCommentDocIds,\r\n processId: this.scope.process.id,\r\n manageSectionUniqueId: this.scope.manageSection.uniqueIdentifier,\r\n commentDate: commentDate\r\n };\r\n\r\n this.commentService.createNewCommentThreadEntry(commentDto).then(\r\n (commentThread) => {\r\n if (this.scope.newCommentDocIds && this.scope.process) {\r\n this.processDocumentService.updateManageDocumentSections(this.scope.process);\r\n }\r\n\r\n this.scope.addingNewComment = false;\r\n this.scope.newComment = undefined;\r\n this.scope.newCommentDate = { d: null };\r\n this.scope.newCommentDocIds = [];\r\n\r\n if (!this.scope.process.commentThreads[this.scope.manageSection.uniqueIdentifier].threads) {\r\n this.scope.process.commentThreads[this.scope.manageSection.uniqueIdentifier].threads = [];\r\n }\r\n\r\n this.scope.process.commentThreads[this.scope.manageSection.uniqueIdentifier].threads.push(commentThread);\r\n });\r\n }\r\n\r\n private cancelNewComment(): void {\r\n this.scope.newComment = undefined;\r\n this.scope.addingNewComment = false;\r\n }\r\n\r\n private documentUpdatedInternal(model: models.FileUploadModel): void {\r\n this.scope.newCommentDocIds = Enumerable.from(model.documents).select(i => i.id).toArray();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ManageCommentThread', []);","/// \r\n\r\nmodule warsApp.directives {\r\n export interface IManageDocumentsScope extends ng.IScope {\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n processConfigurationId: string;\r\n isConfigureMode: boolean;\r\n isEditMode: boolean;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n manageCanUploadDocumentSecurityMatrix: () => void;\r\n manageCanSelectDocumentSecurityMatrix: () => void;\r\n manageCanSelectSecureDocumentSecurityMatrix: () => void;\r\n manageCanEditIsSecureDocumentSecurityMatrix: () => void;\r\n saveChanges: any;\r\n documentChecked: any;\r\n sectionDocuments: Wars.Domain.Model.Dtos.DocumentDto[];\r\n progress: any;\r\n fileName: string;\r\n canAddDocuments: boolean;\r\n allowEditOfSecuredDocumentColumn: boolean;\r\n editIsSecureDocument(document: Wars.Domain.Model.Dtos.DocumentDto): void;\r\n canSelectDocuments: boolean;\r\n canSelectSecureDocuments: boolean;\r\n acceptsText: string;\r\n uploadFiles: any;\r\n documentUpdated(model: models.FileUploadModel): void;\r\n documentModel: any;\r\n sortBy: string;\r\n sortGridBy: (column: string) => void;\r\n }\r\n\r\n export class ManageDocuments implements IDirective {\r\n public link($scope: IManageDocumentsScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n $scope.documentModel = {\r\n refresh: false,\r\n documentId: undefined\r\n };\r\n $scope.sortBy = '-lastUpdateDate';\r\n }\r\n\r\n public templateUrl = './app/views/directives/manageForm/manageDocuments.html';\r\n public controller = [\r\n '$scope', 'formService', 'growl', '$q', 'securityMatrixService', 'manageDocumentSelectionService', 'Upload',\r\n 'processService', \"systemLevelService\", \"processDocumentService\", \"fileUploadDownloadService\", ManageDocumentsController];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n manageSection: \"=\",\r\n process: \"=\",\r\n processConfiguration: \"=\",\r\n processConfigurationId: \"=\"\r\n };\r\n }\r\n\r\n export class ManageDocumentsController {\r\n public selectedUser: any;\r\n selectedReviewUserId: string;\r\n private processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n private processClaims: Wars.Domain.Model.ClaimDefinition[];\r\n\r\n constructor(private scope: IManageDocumentsScope,\r\n private formService: services.FormService,\r\n private growl: angular.growl.IGrowlService,\r\n private $q: angular.IQService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private manageDocumentSelectionService: services.ManageDocumentSelectionService,\r\n private upload: any,\r\n private processService: services.ProcessService,\r\n private systemLevelService: services.SystemLevelService,\r\n private processDocumentService: services.ProcessDocumentService,\r\n private fileUploadDownloadService: services.FileUploadDownloadService)\r\n {\r\n scope.manageCanUploadDocumentSecurityMatrix = () => this.manageCanUploadDocumentSecurityMatrix();\r\n scope.manageCanSelectDocumentSecurityMatrix = () => this.manageCanSelectDocumentSecurityMatrix();\r\n scope.manageCanSelectSecureDocumentSecurityMatrix = () => this.manageCanSelectSecureDocumentSecurityMatrix();\r\n scope.manageCanEditIsSecureDocumentSecurityMatrix = () => this.manageCanEditIsSecureDocumentSecurityMatrix();\r\n scope.saveChanges = () => this.saveChanges();\r\n scope.documentChecked = (id) => this.documentChecked(id);\r\n scope.uploadFiles = (files) => this.uploadFiles(files);\r\n scope.documentUpdated = (model: models.FileUploadModel) => this.documentUpdated(model);\r\n scope.editIsSecureDocument = (document: Wars.Domain.Model.Dtos.DocumentDto) => this.editIsSecureDocument(document);\r\n scope.acceptsText = \".gif,.jpeg,.jpg,.jpe,.tiff,.tif,.pdf,.doc,.docx,.xls,.xlsx,.txt,.dwg\";\r\n scope.sortGridBy = (column: string) : void => {\r\n if (this.scope.sortBy === column) {\r\n this.scope.sortBy = \"-\" + column;\r\n } else {\r\n this.scope.sortBy = column;\r\n }\r\n }\r\n this.setupData();\r\n\r\n scope.$watch(\"process.documentSections\", () => {\r\n this.setDocumentsForGrid();\r\n });\r\n }\r\n\r\n private setupData() {\r\n this.setDocumentsForGrid();\r\n }\r\n\r\n private setDocumentsForGrid(): void {\r\n if (this.scope.process && this.scope.process.documents) {\r\n this.scope.sectionDocuments = [];\r\n if (this.scope.process.documentSections && this.scope.process.documentSections[this.scope.manageSection.uniqueIdentifier]) {\r\n let docSection: Wars.Domain.Model.Dtos.ManageDocumentSectionDto = this.scope.process.documentSections[this.scope.manageSection.uniqueIdentifier];\r\n this.scope.canAddDocuments = docSection.canAddDocuments;\r\n this.scope.allowEditOfSecuredDocumentColumn = docSection.allowEditOfSecuredDocumentColumn;\r\n this.scope.canSelectDocuments = docSection.canSelectDocuments;\r\n this.scope.canSelectSecureDocuments = docSection.canSelectSecureDocuments;\r\n\r\n for (var i = 0; i < this.scope.process.documents.length; i++) {\r\n var currentDoc = this.scope.process.documents[i];\r\n if (docSection.documentIds.indexOf(currentDoc.id) !== -1) {\r\n this.scope.sectionDocuments.push(currentDoc);\r\n\r\n var result = Enumerable\r\n .from(docSection.documentSelections)\r\n .singleOrDefault(doc => currentDoc.id === doc.id);\r\n\r\n if (result) {\r\n (currentDoc).isSelected = result.isSelected;\r\n (currentDoc).selectionOrder = result.selectionOrder;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private manageCanUploadDocumentSecurityMatrix() : void {\r\n if (!this.scope.manageSection.manageDocumentsConfiguration.canUploadDocumentsSecurityMatrix) {\r\n this.scope.manageSection.manageDocumentsConfiguration.canUploadDocumentsSecurityMatrix =\r\n this.securityMatrixService.createSecurityMatrix(false, true);\r\n }\r\n this.securityMatrixService.openSecurityMatrixModal(\r\n this.scope.manageSection.manageDocumentsConfiguration.canUploadDocumentsSecurityMatrix,\r\n this.scope.processConfigurationId);\r\n }\r\n\r\n private manageCanSelectDocumentSecurityMatrix(): void {\r\n if (!this.scope.manageSection.manageDocumentsConfiguration.canSelectDocumentsSecurityMatrix) {\r\n this.scope.manageSection.manageDocumentsConfiguration.canSelectDocumentsSecurityMatrix =\r\n this.securityMatrixService.createSecurityMatrix(false, true);\r\n }\r\n this.securityMatrixService.openSecurityMatrixModal(\r\n this.scope.manageSection.manageDocumentsConfiguration.canSelectDocumentsSecurityMatrix,\r\n this.scope.processConfigurationId);\r\n }\r\n\r\n private manageCanSelectSecureDocumentSecurityMatrix(): void {\r\n if (!this.scope.manageSection.manageDocumentsConfiguration.canSelectSecureDocumentsSecurityMatrix) {\r\n this.scope.manageSection.manageDocumentsConfiguration.canSelectSecureDocumentsSecurityMatrix =\r\n this.securityMatrixService.createSecurityMatrix(false, true);\r\n }\r\n this.securityMatrixService.openSecurityMatrixModal(\r\n this.scope.manageSection.manageDocumentsConfiguration.canSelectSecureDocumentsSecurityMatrix,\r\n this.scope.processConfigurationId);\r\n }\r\n\r\n private manageCanEditIsSecureDocumentSecurityMatrix(): void {\r\n if (!this.scope.manageSection.manageDocumentsConfiguration.canEditIsSecureValueSecurityMatrix) {\r\n this.scope.manageSection.manageDocumentsConfiguration.canEditIsSecureValueSecurityMatrix =\r\n this.securityMatrixService.createSecurityMatrix(false, false);\r\n }\r\n this.securityMatrixService.openSecurityMatrixModal(\r\n this.scope.manageSection.manageDocumentsConfiguration.canEditIsSecureValueSecurityMatrix,\r\n this.scope.processConfigurationId);\r\n }\r\n\r\n private saveChanges() {\r\n this.formService.saveAllChanges();\r\n }\r\n\r\n private editIsSecureDocument(document: Wars.Domain.Model.Dtos.DocumentDto): void {\r\n var beforeChange = !document.isSecured;\r\n this.fileUploadDownloadService.editIsSecure(document.id, this.scope.manageSection.manageDocumentsConfiguration.uniqueIdentifier, document.isSecured).then(\r\n () => {},\r\n () => {\r\n // Failed set checkbox back to pre-clicked value\r\n document.isSecured = beforeChange;\r\n });\r\n\r\n }\r\n\r\n private documentUpdated(model: models.FileUploadModel): void {\r\n this.setDocumentsForGrid();\r\n this.scope.documentModel.documentId = undefined;\r\n this.scope.documentModel.refresh = true;\r\n }\r\n\r\n private documentChecked(document: any) {\r\n this.manageDocumentSelectionService.updateDocumentSelection(\r\n this.scope.process.id,\r\n this.scope.manageSection.uniqueIdentifier,\r\n document.id,\r\n document.isSelected).then((documentSelections: Wars.Domain.Model.Execution.DocumentSelection[]) =>\r\n {\r\n for (var i = 0; i < this.scope.sectionDocuments.length; i++) {\r\n var match = Enumerable.from(documentSelections).singleOrDefault(document => document.id === this.scope.sectionDocuments[i].id);\r\n if (match) {\r\n (this.scope.sectionDocuments[i]).isSelected = match.isSelected;\r\n (this.scope.sectionDocuments[i]).selectionOrder = match.selectionOrder;\r\n } else {\r\n (this.scope.sectionDocuments[i]).isSelected = false;\r\n (this.scope.sectionDocuments[i]).selectionOrder = undefined;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private loadDocumentTable() {\r\n this.processService.getProcessDto(this.scope.process.id)\r\n .then(r => {\r\n this.scope.process = r;\r\n this.setupData();\r\n });\r\n }\r\n\r\n private uploadFiles(files) {\r\n var self = this;\r\n this.scope.fileName = files[0].name;\r\n\r\n if (files && files.length) {\r\n this.upload.upload({\r\n url: './api/document/process/' + this.scope.process.id,\r\n data: {\r\n files: files\r\n }\r\n })\r\n .then(response => {\r\n this.loadDocumentTable();\r\n },\r\n response => {\r\n if (response.status > 0) {\r\n this.growl.error(response.status + ': ' + response.data);\r\n } else {\r\n this.loadDocumentTable();\r\n\r\n }\r\n },\r\n evt => {\r\n this.scope.progress = Math.min(100, parseInt(((100.0 * evt.loaded / evt.total))));\r\n });\r\n }\r\n\r\n }\r\n }\r\n}\r\nwarsApp.registerDirective('ManageDocuments', []);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var ManageForm = /** @class */ (function (_super) {\r\n __extends(ManageForm, _super);\r\n function ManageForm() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.templateUrl = './app/views/directives/manageForm/manageForm.html';\r\n _this.controller = [\r\n '$scope', 'angularLoadService', 'formSectionService', 'ModalService', '$http',\r\n 'dataSourceService', 'formService', 'formDataService', 'securityMatrixService', 'growl',\r\n 'formCodeFunctionService', 'customDivService',\r\n 'manageProcessDataConfigurationService', 'apiActionService', 'deleteService', ManageFormController\r\n ];\r\n return _this;\r\n }\r\n return ManageForm;\r\n }(directives.BaseForm));\r\n directives.ManageForm = ManageForm;\r\n var ManageFormModel = /** @class */ (function (_super) {\r\n __extends(ManageFormModel, _super);\r\n function ManageFormModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ManageFormModel.prototype.setupImplementedForm = function () {\r\n };\r\n ManageFormModel.prototype.addAssignmentSection = function () {\r\n var manageSection = this.addSection(1 /* Assignment */);\r\n manageSection.assignmentConfiguration = this.formService.createAssigmentConfiguration();\r\n manageSection.assignmentConfiguration.isReadOnly = false;\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addTimeTrackers = function () {\r\n var section = this.addSection(2 /* TimeTrackers */);\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addDocuments = function () {\r\n var documentSection = this.addSection(3 /* Documents */);\r\n documentSection.manageDocumentsConfiguration = this.formService.createManageDocumentConfiguration();\r\n documentSection.manageDocumentsConfiguration.canUploadDocumentsSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false);\r\n documentSection.title = \"Documents\";\r\n documentSection.manageDocumentsConfiguration.canUploadDocumentsSecurityMatrix.matrixType = 1 /* HideOrShow */;\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addFieldHistory = function () {\r\n this.addSection(4 /* FieldHistory */);\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addEmbeddedFormSection = function () {\r\n var manageSection = this.addSection(5 /* EmbeddedForm */);\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addApiGrid = function () {\r\n var manageSection = this.addSection(12 /* ApiGrid */);\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addNotificationsSent = function () {\r\n this.addSection(6 /* NotificationsSent */);\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addProcessData = function () {\r\n var processDataSection = this.addSection(7 /* ProcessData */);\r\n processDataSection.manageProcessDataConfiguration = this.manageProcessDataConfigurationService.createManageProcessDataConfiguration();\r\n processDataSection.manageProcessDataConfiguration.showHistory = false;\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addProcessEvent = function () {\r\n var processEventSection = this.addSection(13 /* ProcessEvent */);\r\n processEventSection.manageProcessEventConfiguration = this.manageProcessDataConfigurationService.createManageProcessEventConfiguration();\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addRelatedProcess = function () {\r\n this.addSection(8 /* RelatedProcess */);\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addReview = function () {\r\n this.addSection(9 /* Review */);\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addStatuses = function () {\r\n var manageSection = this.addSection(10 /* Statuses */);\r\n manageSection.manageStatusConfiguration = this.formService.createManageStatusConfiguration();\r\n manageSection.manageStatusConfiguration.autoExpand = false;\r\n manageSection.manageStatusConfiguration.allowThreadedComments = false;\r\n manageSection.manageStatusConfiguration\r\n .manageStatusType = 5 /* StatusesAndStatesFlat */;\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addThreadedComments = function () {\r\n var manageSection = this.addSection(11 /* ThreadedComments */);\r\n manageSection.commentThreadConfiguration = this.formService.createCommentThreadConfiguration();\r\n this.save();\r\n };\r\n ManageFormModel.prototype.addSection = function (sectionType) {\r\n var newManageSection = this.formService.createManageSection();\r\n newManageSection.manageSectionType = sectionType;\r\n newManageSection.position = this.formConfiguration.myManageSections.length;\r\n newManageSection.title = \"New Manage Section Title\";\r\n newManageSection.sectionDisplayType = 1 /* Panel */;\r\n newManageSection.securityMatrix = this.securityMatrixService.createSecurityMatrix(false, false);\r\n this.formConfiguration.myManageSections.push(newManageSection);\r\n return newManageSection;\r\n };\r\n return ManageFormModel;\r\n }(directives.BaseFormModel));\r\n directives.ManageFormModel = ManageFormModel;\r\n var ManageFormController = /** @class */ (function (_super) {\r\n __extends(ManageFormController, _super);\r\n function ManageFormController(scope, angularLoader, formSectionService, modalService, httpService, dataSourceService, formService, formDataService, securityMatrixService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiActionService, deleteService) {\r\n var _this = this;\r\n scope.model = new ManageFormModel(angularLoader, formSectionService, modalService, httpService, dataSourceService, formService, scope.process, formDataService, growl, formCodeFunctionService, customDivService, manageProcessDataConfigurationService, apiActionService, securityMatrixService, deleteService, scope);\r\n _this = _super.call(this, scope) || this;\r\n return _this;\r\n }\r\n return ManageFormController;\r\n }(directives.BaseFormController));\r\n directives.ManageFormController = ManageFormController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('ManageForm', []);\r\n","/// \r\nmodule warsApp.directives {\r\n export interface IManageFormScope extends IBaseFormScope {\r\n\r\n }\r\n\r\n export class ManageForm extends BaseForm {\r\n public templateUrl = './app/views/directives/manageForm/manageForm.html';\r\n public controller = [\r\n '$scope', 'angularLoadService', 'formSectionService', 'ModalService', '$http',\r\n 'dataSourceService', 'formService', 'formDataService', 'securityMatrixService', 'growl',\r\n 'formCodeFunctionService', 'customDivService',\r\n 'manageProcessDataConfigurationService', 'apiActionService','deleteService', ManageFormController ];\r\n }\r\n\r\n export class ManageFormModel extends BaseFormModel {\r\n public setupImplementedForm() {\r\n\r\n }\r\n\r\n public addAssignmentSection() {\r\n var manageSection = this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.Assignment);\r\n\r\n manageSection.assignmentConfiguration = this.formService.createAssigmentConfiguration();\r\n manageSection.assignmentConfiguration.isReadOnly = false;\r\n this.save();\r\n }\r\n\r\n public addTimeTrackers() {\r\n var section = this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.TimeTrackers);\r\n\r\n this.save();\r\n }\r\n\r\n public addDocuments() {\r\n var documentSection = this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.Documents);\r\n\r\n documentSection.manageDocumentsConfiguration = this.formService.createManageDocumentConfiguration();\r\n documentSection.manageDocumentsConfiguration.canUploadDocumentsSecurityMatrix = this.securityMatrixService.createSecurityMatrix(false);\r\n documentSection.title = \"Documents\";\r\n\r\n documentSection.manageDocumentsConfiguration.canUploadDocumentsSecurityMatrix.matrixType = Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrShow;\r\n\r\n this.save();\r\n }\r\n\r\n public addFieldHistory() {\r\n this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.FieldHistory);\r\n\r\n this.save();\r\n }\r\n\r\n public addEmbeddedFormSection() {\r\n var manageSection = this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.EmbeddedForm);\r\n this.save();\r\n }\r\n\r\n public addApiGrid() {\r\n var manageSection = this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.ApiGrid);\r\n this.save();\r\n }\r\n\r\n public addNotificationsSent() {\r\n this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.NotificationsSent);\r\n\r\n this.save();\r\n }\r\n\r\n public addProcessData() {\r\n var processDataSection = this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.ProcessData);\r\n\r\n processDataSection.manageProcessDataConfiguration = this.manageProcessDataConfigurationService.createManageProcessDataConfiguration();\r\n processDataSection.manageProcessDataConfiguration.showHistory = false;\r\n\r\n this.save();\r\n }\r\n\r\n public addProcessEvent() {\r\n var processEventSection = this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.ProcessEvent);\r\n\r\n processEventSection.manageProcessEventConfiguration = this.manageProcessDataConfigurationService.createManageProcessEventConfiguration();\r\n\r\n this.save();\r\n }\r\n\r\n public addRelatedProcess() {\r\n this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.RelatedProcess);\r\n\r\n this.save();\r\n }\r\n\r\n public addReview() {\r\n this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.Review);\r\n\r\n this.save();\r\n }\r\n\r\n public addStatuses() {\r\n var manageSection = this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.Statuses);\r\n\r\n manageSection.manageStatusConfiguration = this.formService.createManageStatusConfiguration();\r\n manageSection.manageStatusConfiguration.autoExpand = false;\r\n manageSection.manageStatusConfiguration.allowThreadedComments = false;\r\n manageSection.manageStatusConfiguration\r\n .manageStatusType = Wars.Domain.Model.Codes.Enums.ManageStatusType.StatusesAndStatesFlat;\r\n\r\n this.save();\r\n }\r\n\r\n public addThreadedComments() {\r\n var manageSection = this.addSection(Wars.Domain.Model.Codes.Enums.ManageSectionType.ThreadedComments);\r\n manageSection.commentThreadConfiguration = this.formService.createCommentThreadConfiguration();\r\n\r\n this.save();\r\n }\r\n\r\n private addSection(sectionType: Wars.Domain.Model.Codes.Enums.ManageSectionType) {\r\n let newManageSection = this.formService.createManageSection();\r\n\r\n newManageSection.manageSectionType = sectionType;\r\n newManageSection.position = this.formConfiguration.myManageSections.length;\r\n newManageSection.title = \"New Manage Section Title\";\r\n newManageSection.sectionDisplayType = Wars.Domain.Model.Codes.Enums.FormSectionDisplayType.Panel;\r\n newManageSection.securityMatrix = this.securityMatrixService.createSecurityMatrix(false, false);\r\n\r\n this.formConfiguration.myManageSections.push(newManageSection);\r\n\r\n return newManageSection;\r\n }\r\n }\r\n\r\n export class ManageFormController extends BaseFormController {\r\n constructor(\r\n scope: IManageFormScope,\r\n angularLoader: services.AngularLoadService,\r\n formSectionService: services.FormSectionService,\r\n modalService: any,\r\n httpService: angular.IHttpService,\r\n dataSourceService: services.DataSourceService,\r\n formService: services.FormService,\r\n formDataService: services.FormDataService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n growl: angular.growl.IGrowlService,\r\n formCodeFunctionService: services.FormCodeFunctionService,\r\n customDivService: services.CustomDivService,\r\n manageProcessDataConfigurationService: services.ManageProcessDataConfigurationService,\r\n apiActionService: services.ApiActionService,\r\n deleteService:services.DeleteService) {\r\n\r\n scope.model = new ManageFormModel(angularLoader,\r\n formSectionService,\r\n modalService,\r\n httpService,\r\n dataSourceService,\r\n formService,\r\n scope.process,\r\n formDataService,\r\n growl,\r\n formCodeFunctionService,\r\n customDivService,\r\n manageProcessDataConfigurationService,\r\n apiActionService,\r\n securityMatrixService,deleteService,scope);\r\n\r\n super(scope);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ManageForm', []);","/// \r\n\r\nmodule warsApp.directives {\r\n export interface IManageSectionScope extends ng.IScope {\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n isConfigureMode: boolean;\r\n isEditMode: boolean;\r\n save: any;\r\n deleteSection: any;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n processConfigurationId: string;\r\n forms: Wars.Domain.Model.Form[];\r\n formId: string;\r\n editSecurityMatrix: any;\r\n userActionInitiated: (u: any) => any;\r\n hideSection: any;\r\n groupDeleteConfirmation: any;\r\n deleteGroupClicked(): void;\r\n }\r\n\r\n export class ManageSection implements IDirective {\r\n public link($scope: IFieldSectionScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/manageForm/manageSection.html';\r\n public controller = ['$scope', 'formService', 'deleteService', 'securityMatrixService','$rootScope', ManageSectionController];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n manageSection: \"=\",\r\n process: \"=\",\r\n processConfigurationId: \"=\",\r\n processConfiguration: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\"\r\n };\r\n }\r\n\r\n export class ManageSectionController {\r\n constructor(private scope: IManageSectionScope,\r\n private formService: services.FormService,\r\n private deleteService: services.DeleteService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private $rootScope: angular.IRootScopeService)\r\n {\r\n scope.save = () => this.save();\r\n scope.editSecurityMatrix = () => this.editSecurityMatrix();\r\n scope.deleteSection = (ms) => this.deleteSection(ms);\r\n scope.userActionInitiated = (u) => this.userActionInitiated(u);\r\n scope.hideSection =\r\n {\r\n hideSection: false\r\n };\r\n\r\n if (scope.manageSection.manageSectionType === Wars.Domain.Model.Codes.Enums.ManageSectionType.EmbeddedForm) {\r\n this.formService.getProcessConfigurationForms(this.scope.processConfigurationId)\r\n .then(f => {\r\n scope.forms = f;\r\n });\r\n }\r\n\r\n this.loadEmbeddedForm();\r\n\r\n this.scope.groupDeleteConfirmation =\r\n {\r\n show: false\r\n }\r\n this.scope.deleteGroupClicked = () => this.deleteGroupClicked();\r\n }\r\n\r\n private deleteGroupClicked() {\r\n this.scope.groupDeleteConfirmation.show = true;\r\n }\r\n\r\n private deleteSection(section: Wars.Domain.Model.ManageSection) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ManageSection\",\r\n section.id,\r\n \"Manage Section\");\r\n }\r\n\r\n private editSecurityMatrix() {\r\n this.securityMatrixService.openSecurityMatrixModal(this.scope.manageSection.securityMatrix,this.scope.processConfigurationId);\r\n }\r\n\r\n private loadEmbeddedForm() {\r\n if (this.scope.manageSection.manageSectionType ===\r\n Wars.Domain.Model.Codes.Enums.ManageSectionType.EmbeddedForm &&\r\n this.scope.manageSection.embeddedForm != null) {\r\n this.formService.getFormConfiguration(this.scope.manageSection.embeddedForm.id)\r\n .then(f => {\r\n this.scope.manageSection.embeddedForm = f;\r\n });\r\n }\r\n }\r\n\r\n \r\n\r\n public save() {\r\n this.loadEmbeddedForm();\r\n this.formService.saveAllChanges();\r\n }\r\n\r\n userActionInitiated(userAction: Wars.Domain.Model.Dtos.UserActionModelDto) {\r\n this.$rootScope.$broadcast('userActionInitated', userAction);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ManageSection', []);","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var ManageSection = /** @class */ (function () {\r\n function ManageSection() {\r\n this.templateUrl = './app/views/directives/manageForm/manageSection.html';\r\n this.controller = ['$scope', 'formService', 'deleteService', 'securityMatrixService', '$rootScope', ManageSectionController];\r\n this.controllerAs = 'controller';\r\n this.restrict = 'E';\r\n this.scope = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n manageSection: \"=\",\r\n process: \"=\",\r\n processConfigurationId: \"=\",\r\n processConfiguration: \"=\",\r\n formDataId: \"=\",\r\n formId: \"=\"\r\n };\r\n }\r\n ManageSection.prototype.link = function ($scope, element, attrs) {\r\n };\r\n return ManageSection;\r\n }());\r\n directives.ManageSection = ManageSection;\r\n var ManageSectionController = /** @class */ (function () {\r\n function ManageSectionController(scope, formService, deleteService, securityMatrixService, $rootScope) {\r\n var _this = this;\r\n this.scope = scope;\r\n this.formService = formService;\r\n this.deleteService = deleteService;\r\n this.securityMatrixService = securityMatrixService;\r\n this.$rootScope = $rootScope;\r\n scope.save = function () { return _this.save(); };\r\n scope.editSecurityMatrix = function () { return _this.editSecurityMatrix(); };\r\n scope.deleteSection = function (ms) { return _this.deleteSection(ms); };\r\n scope.userActionInitiated = function (u) { return _this.userActionInitiated(u); };\r\n scope.hideSection =\r\n {\r\n hideSection: false\r\n };\r\n if (scope.manageSection.manageSectionType === 5 /* EmbeddedForm */) {\r\n this.formService.getProcessConfigurationForms(this.scope.processConfigurationId)\r\n .then(function (f) {\r\n scope.forms = f;\r\n });\r\n }\r\n this.loadEmbeddedForm();\r\n this.scope.groupDeleteConfirmation =\r\n {\r\n show: false\r\n };\r\n this.scope.deleteGroupClicked = function () { return _this.deleteGroupClicked(); };\r\n }\r\n ManageSectionController.prototype.deleteGroupClicked = function () {\r\n this.scope.groupDeleteConfirmation.show = true;\r\n };\r\n ManageSectionController.prototype.deleteSection = function (section) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\"ManageSection\", section.id, \"Manage Section\");\r\n };\r\n ManageSectionController.prototype.editSecurityMatrix = function () {\r\n this.securityMatrixService.openSecurityMatrixModal(this.scope.manageSection.securityMatrix, this.scope.processConfigurationId);\r\n };\r\n ManageSectionController.prototype.loadEmbeddedForm = function () {\r\n var _this = this;\r\n if (this.scope.manageSection.manageSectionType ===\r\n 5 /* EmbeddedForm */ &&\r\n this.scope.manageSection.embeddedForm != null) {\r\n this.formService.getFormConfiguration(this.scope.manageSection.embeddedForm.id)\r\n .then(function (f) {\r\n _this.scope.manageSection.embeddedForm = f;\r\n });\r\n }\r\n };\r\n ManageSectionController.prototype.save = function () {\r\n this.loadEmbeddedForm();\r\n this.formService.saveAllChanges();\r\n };\r\n ManageSectionController.prototype.userActionInitiated = function (userAction) {\r\n this.$rootScope.$broadcast('userActionInitated', userAction);\r\n };\r\n return ManageSectionController;\r\n }());\r\n directives.ManageSectionController = ManageSectionController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('ManageSection', []);\r\n","/// \r\nmodule warsApp.directives {\r\n export class GageBinding {\r\n min: number;\r\n max: number;\r\n title: string;\r\n value: number;\r\n sectors: GageSector[];\r\n state: Wars.Domain.Model.Codes.Enums.ClockStatus;\r\n }\r\n\r\n export class GageSector {\r\n color: string;\r\n lo: number;\r\n hi: number;\r\n levelColorsGradient:boolean = false; \r\n }\r\n\r\n export interface IIManageTimeTrackerSection extends ng.IScope {\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n processConfigurationId: string;\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n timeTrackers: Wars.Domain.Model.Workflow.TimeTracker[];\r\n newTimeTrackerId: string;\r\n addTimeTracker: any;\r\n delete: any;\r\n editSecurityMatrix: any;\r\n trackerChanged: any;\r\n gageBindings: GageBinding[];\r\n colSize: number;\r\n }\r\n\r\n export class ManageTimeTrackerSection implements IDirective {\r\n link($scope: IIManageTimeTrackerSection, element: JQuery, attrs: angular.IAttributes, controller: IController) {\r\n\r\n }\r\n\r\n restrict: 'E';\r\n public templateUrl = './app/views/directives/manageForm/manageTimeTrackersSection.html';\r\n public controller = ['$scope', 'formService', 'timeTrackerService', 'securityMatrixService', 'configurationCacheService', 'deleteService', ManageTimeTrackersSectionController];\r\n public controllerAs = 'controller';\r\n public scope: any = {\r\n process: \"=\",\r\n processConfigurationId: \"=\",\r\n manageSection: \"=\"\r\n };\r\n }\r\n\r\n export class ManageTimeTrackersSectionController {\r\n private processWatcher: any;\r\n\r\n constructor(\r\n private $scope: IIManageTimeTrackerSection,\r\n private formService: services.FormService,\r\n private timeTrackerService: services.TimeTrackerService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private configurationCache: services.ConfigurationCacheService,\r\n private deleteService: services.DeleteService)\r\n {\r\n $scope.addTimeTracker = () => this.addTimeTracker();\r\n $scope.delete = (t) => this.delete(t);\r\n $scope.editSecurityMatrix = (t) => this.editSecurityMatrix(t);\r\n $scope.trackerChanged = (t) => this.trackerChanged(t);\r\n\r\n if (!$scope.process) {\r\n this.timeTrackerService.getTimeTrackerContainersByProcess(this.$scope.processConfigurationId).then(processLevelTimeTrackerContainers => {\r\n $scope.timeTrackers = Enumerable.from(processLevelTimeTrackerContainers).select(i => i.myTimeTracker).toArray();\r\n });\r\n } else {\r\n this.setUpGageBindings();\r\n }\r\n }\r\n\r\n private enableProcessWatch() {\r\n this.processWatcher = this.$scope.$watch(\"process\",\r\n (newValue, oldValue) => {\r\n if (newValue !== undefined && newValue !== null && newValue !== oldValue) {\r\n this.setUpGageBindings();\r\n }\r\n });\r\n }\r\n\r\n private disableProcessWatch() {\r\n if (this.processWatcher) this.processWatcher();\r\n }\r\n\r\n private setUpGageBindings() {\r\n this.disableProcessWatch();\r\n\r\n this.$scope.gageBindings = [];\r\n this.configurationCache.getVersionedProcessConfiguration(this.$scope.process.processConfigurationId).then(processConfiguration => {\r\n var timeTrackers = Enumerable.from(processConfiguration.myTimeTrackerContainers).select(i => i.myTimeTracker).orderBy(i => i.sortOrder).toArray();\r\n\r\n var clocks = [];\r\n for (var j = 0; j < timeTrackers.length; j++) {\r\n var clock = Enumerable.from(this.$scope.process.clockValues)\r\n .where(i => i.timeTrackerUniqueIdentifier === timeTrackers[j].uniqueIdentifier)\r\n .firstOrDefault();\r\n if (clock != null) {\r\n clocks.push(clock);\r\n }\r\n }\r\n\r\n clocks.forEach(t => {\r\n\r\n let timeTrackerConfig = Enumerable.from(timeTrackers).single(tConfig => tConfig.uniqueIdentifier === t.timeTrackerUniqueIdentifier);\r\n\r\n let newGageBinding = new GageBinding();\r\n newGageBinding.title = timeTrackerConfig.name;\r\n newGageBinding.value = t.timeElapsedLastCalculated;\r\n newGageBinding.state = t.clockStatus;\r\n\r\n newGageBinding.sectors = [];\r\n\r\n let previousHighValue = null;\r\n\r\n Enumerable.from(timeTrackerConfig.myTimePeriods).orderByDescending(tp => tp.value).forEach(tp => {\r\n let sector = new GageSector();\r\n sector.color = tp.hexColor;\r\n\r\n sector.lo = tp.value;\r\n\r\n if (previousHighValue) {\r\n sector.hi = previousHighValue-1;\r\n } else {\r\n sector.hi = 1000000;\r\n }\r\n previousHighValue = tp.value;\r\n newGageBinding.sectors.push(sector);\r\n });\r\n\r\n this.$scope.gageBindings.push(newGageBinding);\r\n });\r\n if (this.$scope.gageBindings.length == 1) {\r\n this.$scope.colSize = 12;\r\n }\r\n else if (this.$scope.gageBindings.length % 2 == 0) {\r\n this.$scope.colSize = 6;\r\n }\r\n else {\r\n this.$scope.colSize = 4;\r\n }\r\n\r\n this.enableProcessWatch();\r\n });\r\n }\r\n\r\n private trackerChanged(t) {\r\n this.$scope.newTimeTrackerId = t;\r\n }\r\n\r\n private editSecurityMatrix(timeTracker: Wars.Domain.Model.ManageTimeTrackerConfiguration) {\r\n if (timeTracker.securityMatrix) {\r\n this.securityMatrixService.openSecurityMatrixModal(timeTracker.securityMatrix, this.$scope.processConfigurationId);\r\n }\r\n else {\r\n timeTracker.securityMatrix = this.securityMatrixService.createSecurityMatrix(false);\r\n timeTracker.securityMatrix_id = timeTracker.securityMatrix.id;\r\n this.formService.saveAllChanges(() => {\r\n this.securityMatrixService.openSecurityMatrixModal(timeTracker.securityMatrix, this.$scope.processConfigurationId);\r\n });\r\n }\r\n }\r\n\r\n private delete(timeTracker: Wars.Domain.Model.ManageTimeTrackerConfiguration) {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"ManageTimeTrackerConfiguration\",\r\n timeTracker.id,\r\n \"Time Tracker Section\");\r\n }\r\n\r\n private addTimeTracker() {\r\n var tracker = this.formService.createManageTimeTrackerConfiguration();\r\n //console.log(this.$scope);\r\n tracker.manageSection_id = this.$scope.manageSection.id;\r\n tracker.timeTracker_id = this.$scope.newTimeTrackerId;\r\n tracker.securityMatrix = this.securityMatrixService.createSecurityMatrix(false);\r\n tracker.securityMatrix_id = tracker.securityMatrix.id;\r\n \r\n\r\n this.$scope.manageSection.manageClockConfigurations.push(tracker);\r\n\r\n this.formService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ManageTimeTrackerSection', []);","/// \r\nmodule warsApp.directives {\r\n export interface IProcessDataSectionScope extends ng.IScope {\r\n isConfigureMode: boolean;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n processConfigurationId: string;\r\n save: any;\r\n getValue: (item: Wars.Domain.Model.ProcessDataViewConfiguration) => string;\r\n viewHistory: (item: Wars.Domain.Model.ProcessDataViewConfiguration, rowId?: string) => void;\r\n getListValues: (item: Wars.Domain.Model.ProcessDataViewConfiguration) => any;\r\n getListValue: (item: Wars.Domain.Model.ProcessDataViewConfiguration, rowId: string) => string;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n }\r\n\r\n export class ProcessDataSection implements IDirective {\r\n public link($scope: IStatusHistoryScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/manageForm/processDataSection.html';\r\n public controller = [\r\n '$scope', 'manageProcessDataConfigurationService', 'objectSchemaService', 'processConfigurationService',\r\n 'ModalService', 'variableTypeService', \"processDocumentService\", ProcessDataSectionController];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n manageSection: \"=\",\r\n process: \"=\",\r\n processConfigurationId: \"=\",\r\n processConfiguration: \"=\"\r\n };\r\n }\r\n\r\n export class ProcessDataSectionController {\r\n private processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n private objectSchema: Wars.Domain.Model.ObjectSchema;\r\n\r\n constructor(\r\n private $scope: IProcessDataSectionScope,\r\n private manageProcessDataConfigurationService: services.ManageProcessDataConfigurationService,\r\n private objectSchemaService: services.ObjectSchemaService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private modalService: any,\r\n private variableTypeService: services.VariableTypeService,\r\n private processDocumentService: services.ProcessDocumentService)\r\n {\r\n $scope.save = () => this.save();\r\n $scope.getValue = (item: Wars.Domain.Model.ProcessDataViewConfiguration) => this.getValue(item);\r\n $scope.getListValues = (item: Wars.Domain.Model.ProcessDataViewConfiguration) => this.getListValues(item);\r\n $scope.getListValue = (item: Wars.Domain.Model.ProcessDataViewConfiguration, rowId: string) => this.getListValue(item, rowId);\r\n $scope.viewHistory = (item: Wars.Domain.Model.ProcessDataViewConfiguration, rowId?: string) => this.viewHistory(item, rowId);\r\n\r\n if ($scope.isConfigureMode) {\r\n\r\n if ($scope.processConfiguration.processDataSchema_id) {\r\n this.objectSchemaService.getObjectSchemaExpanded($scope.processConfiguration.processDataSchema_id).then(\r\n (objectSchema) => {\r\n this.objectSchema = objectSchema;\r\n\r\n var propsToAdd = Enumerable.from(objectSchema.properties)\r\n .where(p => !Enumerable.from(this.$scope.manageSection.manageProcessDataConfiguration.processDataViewConfigurations)\r\n .any(prop => prop.schemaProperty_id === p.id ||\r\n (!p.typeSchema || !Enumerable.from(p.typeSchema.properties).any(tp=>tp.id === prop.id)))).toArray();\r\n\r\n propsToAdd.forEach(prop => {\r\n if (prop.typeSchema !== null) {\r\n prop.typeSchema.properties.forEach(listProperty => {\r\n this.addSchemaProperty(listProperty, prop.name + \" - \" + listProperty.name, true);\r\n });\r\n } else {\r\n this.addSchemaProperty(prop, prop.name, false);\r\n }\r\n });\r\n\r\n var configsToRemove = Enumerable.from(this.$scope.manageSection.manageProcessDataConfiguration.processDataViewConfigurations)\r\n .where(p => !Enumerable.from(objectSchema.properties).any(prop => prop.id === p.schemaProperty_id ||\r\n (!prop.typeSchema || !Enumerable.from(prop.typeSchema.properties).any(tp=>tp.id === p.id)))).toArray();\r\n\r\n configsToRemove.forEach(c => {\r\n c.entityAspect.setDeleted();\r\n });\r\n\r\n this.save();\r\n });\r\n }\r\n }\r\n }\r\n\r\n private addSchemaProperty(schemaProperty: Wars.Domain.Model.SchemaProperty, name: string, isList: boolean): void {\r\n let newViewConfig = this.manageProcessDataConfigurationService.createProcessDataViewConfiguration();\r\n newViewConfig.showHistory = this.$scope.manageSection.manageProcessDataConfiguration.showHistory;\r\n newViewConfig.show = false;\r\n newViewConfig.schemaProperty_id = schemaProperty.id;\r\n newViewConfig.name = name;\r\n newViewConfig.isList = isList;\r\n this.$scope.manageSection.manageProcessDataConfiguration.processDataViewConfigurations.push(newViewConfig);\r\n }\r\n\r\n private getValue(item: Wars.Domain.Model.ProcessDataViewConfiguration): any {\r\n var property = this.getSchemaProperty(item);\r\n if (!property) return \"\";\r\n\r\n var value = this.$scope.process.processData[property.uniqueIdentifier];\r\n\r\n if (property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Document) {\r\n return this.processDocumentService.getDocumentById(this.$scope.process, value);\r\n } else {\r\n let returnValue = this.variableTypeService.format(value, item.schemaProperty.propertyType);\r\n return returnValue;\r\n }\r\n }\r\n\r\n private getListValues(item: Wars.Domain.Model.ProcessDataViewConfiguration): any {\r\n var property = this.getSchemaProperty(item);\r\n if (!property) return [];\r\n\r\n if (!this.$scope.process || !this.$scope.process.processData) return [];\r\n var rows = this.$scope.process.processData[property.typeSchema.uniqueIdentifier];\r\n return rows;\r\n }\r\n\r\n private getListValue(item: Wars.Domain.Model.ProcessDataViewConfiguration, rowId: string): any {\r\n var topLevelSchemaProperty = this.getSchemaProperty(item);\r\n if (!topLevelSchemaProperty) return \"\";\r\n\r\n var listItemSchemaProperty = Enumerable.from(topLevelSchemaProperty.typeSchema.properties).singleOrDefault(i => i.id === item.schemaProperty_id);\r\n if (!listItemSchemaProperty) return \"\";\r\n\r\n var rowObjects : any[] = this.$scope.process.processData[topLevelSchemaProperty.typeSchema.uniqueIdentifier];\r\n if (!rowObjects) return \"\";\r\n var rowObject = Enumerable.from(rowObjects).singleOrDefault(i => i.id === rowId);\r\n if (!rowObject) return \"\";\r\n var value = rowObject[listItemSchemaProperty.uniqueIdentifier];\r\n\r\n if (listItemSchemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Document) {\r\n return this.processDocumentService.getDocumentById(this.$scope.process, value);\r\n } else {\r\n let returnValue = this.variableTypeService.format(value, item.schemaProperty.propertyType);\r\n return returnValue;\r\n }\r\n }\r\n\r\n private getSchemaProperty(item: Wars.Domain.Model.ProcessDataViewConfiguration): Wars.Domain.Model.SchemaProperty {\r\n if (!this.$scope.processConfiguration || !this.$scope.processConfiguration.processDataSchema) return undefined;\r\n return item.isList ? this.getTopLevelListSchemaProperty(item.schemaProperty_id) : this.getNonListSchemaPropertyById(item.schemaProperty_id);\r\n }\r\n\r\n private getNonListSchemaPropertyById(id: string): Wars.Domain.Model.SchemaProperty {\r\n return Enumerable.from(this.$scope.processConfiguration.processDataSchema.properties).singleOrDefault(p => p.id === id);\r\n }\r\n\r\n private getTopLevelListSchemaProperty(listItemSchemaPropertyId: string): Wars.Domain.Model.SchemaProperty {\r\n for (var topLevelIndex = 0; topLevelIndex < this.$scope.processConfiguration.processDataSchema.properties.length; topLevelIndex++) {\r\n var currentTopLevelSchemaProperty = this.$scope.processConfiguration.processDataSchema.properties[topLevelIndex];\r\n if (currentTopLevelSchemaProperty.typeSchema) {\r\n for (var i = 0; i < currentTopLevelSchemaProperty.typeSchema.properties.length; i++) {\r\n if (currentTopLevelSchemaProperty.typeSchema.properties[i].id === listItemSchemaPropertyId) {\r\n return currentTopLevelSchemaProperty;\r\n }\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private viewHistory(item: Wars.Domain.Model.ProcessDataViewConfiguration, rowId?: string): void {\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/historyModal.html\",\r\n controller: \"historyModalController\",\r\n size: 'lg',\r\n inputs: {\r\n process: this.$scope.process,\r\n processConfigId: this.$scope.processConfigurationId,\r\n uniqueId: item.schemaProperty.parentObjectSchema.isList\r\n ? item.schemaProperty.parentObjectSchema.uniqueIdentifier\r\n : item.schemaProperty.uniqueIdentifier,\r\n formDataId: null,\r\n propertyId: item.schemaProperty.parentObjectSchema.isList\r\n ? item.schemaProperty.uniqueIdentifier\r\n : undefined,\r\n codeGroupId: item.schemaProperty.codeGroup_id,\r\n rowId: rowId\r\n }\r\n }).then(modal => {\r\n modal.element.modal();\r\n modal.close.then(result => {\r\n $(\".modal-backdrop\").each(function() {\r\n $(this).remove();\r\n });\r\n });\r\n });\r\n }\r\n\r\n private save() {\r\n this.manageProcessDataConfigurationService.saveAllChanges();\r\n }\r\n }\r\n}\r\nwarsApp.registerDirective('ProcessDataSection', []);","/// \r\n\r\nmodule warsApp.directives {\r\n export interface IProcessEventSectionScope extends ng.IScope {\r\n model: ProcessEventSectionModel;\r\n isConfigureMode: boolean;\r\n isEditMode: boolean;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n processConfigurationId: string;\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n documentUpdated(model: models.FileUploadModel): void;\r\n }\r\n\r\n export class ProcessEventSection implements IDirective {\r\n public link($scope: IFieldSectionScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/manageForm/processEventSection.html';\r\n public controller = ['$scope', 'formService', 'processEventConfigurationService', 'systemLevelService', 'processService', 'processDocumentService', 'ModalService', ProcessEventSectionController];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n process: \"=\",\r\n processConfiguration: \"=\",\r\n processConfigurationId: \"=\",\r\n manageSection: \"=\"\r\n };\r\n }\r\n\r\n export class ProcessEventSectionModel {\r\n\r\n public processEventConfigurations: Wars.Domain.Model.ProcessEventConfiguration[];\r\n public selectableProcessEventConfigurations: any[];\r\n public addingEvent = false;\r\n public newProcessEventDto: models.ProcessEventDto;\r\n public newResponseDocIds: string[];\r\n public documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration;\r\n public processEventConfiguration: Wars.Domain.Model.ProcessEventConfiguration;\r\n\r\n constructor(\r\n private formService: services.FormService,\r\n private processEventConfigurationService: services.ProcessEventConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private processService: services.ProcessService,\r\n private processDocumentService: services.ProcessDocumentService,\r\n private modalService: any,\r\n private processConfigurationId,\r\n public isConfigureMode: boolean,\r\n public manageSection: Wars.Domain.Model.ManageSection,\r\n private process: Wars.Domain.Model.Dtos.ProcessDto,\r\n private processConfiguration: Wars.Domain.Model.ProcessConfiguration) {\r\n\r\n if (isConfigureMode) {\r\n this.selectableProcessEventConfigurations = [];\r\n this.systemLevelService.getSystemLevelProcessEvents().then(\r\n (systemLevel) => {\r\n systemLevel.myProcessEventConfigurations.forEach(spc => {\r\n var reso = Enumerable.from(manageSection.manageProcessEventConfiguration.manageProcessEventConfigResos).firstOrDefault(i => i.processEventConfiguration_id === spc.id);\r\n\r\n var selectableProcessEventConfiguration = {\r\n id: spc.id,\r\n resoId: reso ? reso.id : \"\",\r\n uniqueIdentifier: spc.uniqueIdentifier,\r\n name: spc.name,\r\n buttonOrder: reso ? reso.buttonOrder : \"\",\r\n isSytemLevel: true,\r\n isSelected: reso ? true : false\r\n };\r\n this.selectableProcessEventConfigurations.push(selectableProcessEventConfiguration);\r\n });\r\n this.orderByName();\r\n processEventConfigurationService.getProcessEventConfigurations(processConfigurationId)\r\n .then(processConfigs => {\r\n this.processEventConfigurations = processConfigs;\r\n processConfigs.forEach(pc => {\r\n var reso = Enumerable.from(manageSection.manageProcessEventConfiguration.manageProcessEventConfigResos).firstOrDefault(i => i.processEventConfiguration_id === pc.id);\r\n\r\n var selectableProcessEventConfiguration = {\r\n id: pc.id,\r\n resoId: reso ? reso.id : \"\",\r\n uniqueIdentifier: pc.uniqueIdentifier,\r\n name: pc.name,\r\n buttonOrder: reso ? reso.buttonOrder : \"\",\r\n processTypeName: pc.myProcessConfiguration.myProcessType.name,\r\n isSytemLevel: false,\r\n isSelected: reso ? true : false\r\n };\r\n this.selectableProcessEventConfigurations.push(selectableProcessEventConfiguration);\r\n });\r\n this.orderByName();\r\n });\r\n });\r\n } else {\r\n }\r\n }\r\n\r\n private orderByName() {\r\n if (this.selectableProcessEventConfigurations && this.selectableProcessEventConfigurations.length > 0) {\r\n var maxOrder = this.getMaxOrder();\r\n var specWithoutOrder = Enumerable.from(this.selectableProcessEventConfigurations).where(i => i.isSelected === false).orderBy(ii => ii.name);\r\n specWithoutOrder.forEach((spec) => {\r\n maxOrder += 1;\r\n spec.buttonOrder = maxOrder;\r\n });\r\n }\r\n }\r\n\r\n private getMaxOrder() {\r\n var maxOrder = Enumerable.from(this.selectableProcessEventConfigurations).max(i => i.buttonOrder);\r\n if (maxOrder.toString() === \"\") {\r\n maxOrder = 0;\r\n } else {\r\n maxOrder += 1;\r\n }\r\n return maxOrder;\r\n }\r\n\r\n private processEventConfigurationChanged(selectableProcessEventConfiguration: any) {\r\n this.selectableProcessEventConfigurations.forEach((spec) => {\r\n if (!spec.isSelected) {\r\n spec.buttonOrder = \"\";\r\n }\r\n });\r\n if (selectableProcessEventConfiguration.isSelected) {\r\n var processEventConfigurationReso = this.processEventConfigurationService.createProcessEventConfigurationReso();\r\n processEventConfigurationReso.manageProcessEventConfiguration_id = this.manageSection.manageProcessEventConfiguration.id;\r\n processEventConfigurationReso.processEventConfiguration_id = selectableProcessEventConfiguration.id;\r\n selectableProcessEventConfiguration.resoId = processEventConfigurationReso.id;\r\n selectableProcessEventConfiguration.buttonOrder = \"\";\r\n processEventConfigurationReso.buttonOrder = this.getMaxOrder();\r\n selectableProcessEventConfiguration.buttonOrder = processEventConfigurationReso.buttonOrder;\r\n } else {\r\n var processEventReso = Enumerable.from(this.manageSection.manageProcessEventConfiguration.manageProcessEventConfigResos).first(i => i.processEventConfiguration_id === selectableProcessEventConfiguration.id);\r\n processEventReso.entityAspect.setDeleted();\r\n }\r\n this.formService.saveAllChanges(() => {\r\n this.orderByName();\r\n });\r\n }\r\n \r\n private processEventClicked(processEventAction: Wars.Domain.Model.Dtos.ProcessEventActionDto) {\r\n \r\n var processEventConfiguration = Enumerable.from(this.manageSection.manageProcessEventConfiguration.manageProcessEventConfigResos)\r\n .where(i => i.processEventConfiguration != null)\r\n .first(i => i.processEventConfiguration.uniqueIdentifier === processEventAction.processEventConfigUniqueId).processEventConfiguration;\r\n\r\n this.newProcessEventDto = new models.ProcessEventDto();\r\n this.newProcessEventDto.NotificationType = processEventConfiguration.name;\r\n this.newProcessEventDto.Comment = \"\";\r\n this.newResponseDocIds = [];\r\n this.documentConfiguration = processEventConfiguration.documentConfiguration;\r\n this.processEventConfiguration = processEventConfiguration;\r\n if (this.processEventConfiguration.allowAttachments || this.processEventConfiguration.allowComment) {\r\n this.addingEvent = true;\r\n } else {\r\n this.saveEvent();\r\n }\r\n }\r\n\r\n private saveEvent() {\r\n this.newProcessEventDto.ProcessEventConfigUniqueId = this.processEventConfiguration.uniqueIdentifier;\r\n this.newProcessEventDto.DocumentIds = this.newResponseDocIds;\r\n this.processService.addProcessEvent(this.process.id, this.newProcessEventDto).then((processEventDto) => {\r\n this.addingEvent = false;\r\n this.process.processEvents.push(processEventDto);\r\n });\r\n }\r\n\r\n private cancelEvent() {\r\n this.addingEvent = false;\r\n }\r\n\r\n public documentUpdated(model: models.FileUploadModel): void {\r\n this.newResponseDocIds = Enumerable.from(model.documents).select(i => i.id).toArray();\r\n }\r\n\r\n private openDocumentModal(processEventDto: Wars.Domain.Model.Dtos.ProcessEventDto) {\r\n var documentForModal = [];\r\n for (var i = 0; i < processEventDto.documentIds.length; i++) {\r\n var document = this.processDocumentService.getDocumentById(this.process, processEventDto.documentIds[i]);\r\n if (document) {\r\n documentForModal.push(document);\r\n }\r\n }\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/repeatingDocumentViewModal.html\",\r\n controller: \"repeatingDocumentViewModalController\",\r\n inputs: {\r\n documents: documentForModal,\r\n process: this.process\r\n }\r\n }).then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to. \r\n modal.element.modal();\r\n modal.close.then(result => {\r\n });\r\n });\r\n }\r\n\r\n public sortProcessEventConfigurations($item: any, $partFrom: any[], $partTo, $indexFrom, $indexTo, $modal) {\r\n var arrayCopy = Enumerable.from($partFrom).orderBy(z => z.buttonOrder).toArray();\r\n\r\n var spliced = arrayCopy.splice($indexFrom, 1);\r\n arrayCopy.splice($indexTo, 0, spliced[0]);\r\n\r\n $item.buttonOrder = $indexTo;\r\n\r\n for (var i = 0; i < $partFrom.length; i++) {\r\n var numberId = $partFrom[i].id;\r\n $partFrom[i].buttonOrder = Enumerable.from(arrayCopy).indexOf(i => i.id == numberId);\r\n }\r\n\r\n this.manageSection.manageProcessEventConfiguration.manageProcessEventConfigResos.forEach((reso) => {\r\n var spec = Enumerable.from($partFrom).firstOrDefault(i => i.resoId === reso.id);\r\n if (spec) {\r\n reso.buttonOrder = spec.buttonOrder;\r\n }\r\n });\r\n this.formService.saveAllChanges();\r\n }\r\n }\r\n\r\n export class ProcessEventSectionController {\r\n\r\n constructor(\r\n private scope: IProcessEventSectionScope,\r\n private formService: services.FormService,\r\n private processEventConfigurationService: services.ProcessEventConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private processService: services.ProcessService,\r\n private processDocumentService: services.ProcessDocumentService,\r\n private modalService: any)\r\n {\r\n this.initialize();\r\n\r\n if (!scope.isConfigureMode) {\r\n scope.$watch(\"process\",\r\n (newValue) => {\r\n if (newValue !== undefined && newValue !== null) {\r\n this.initialize();\r\n } else {\r\n scope.model = undefined;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private initialize() {\r\n this.scope.model = new ProcessEventSectionModel(\r\n this.formService,\r\n this.processEventConfigurationService,\r\n this.systemLevelService,\r\n this.processService,\r\n this.processDocumentService,\r\n this.modalService,\r\n this.scope.processConfigurationId,\r\n this.scope.isConfigureMode,\r\n this.scope.manageSection,\r\n this.scope.process,\r\n this.scope.processConfiguration);\r\n\r\n this.scope.documentUpdated = (model: models.FileUploadModel) => this.scope.model.documentUpdated(model);\r\n }\r\n }\r\n}\r\nwarsApp.registerDirective('ProcessEventSection', []);","/// \r\n\r\nmodule warsApp.directives {\r\n export interface IReviewSectionScope extends ng.IScope {\r\n model: ReviewSectionModel;\r\n isConfigureMode: boolean;\r\n isEditMode: boolean;\r\n reviewConfiguration: Wars.Domain.Model.Reviews.ReviewConfiguration; \r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n processConfigurationId: string;\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n }\r\n\r\n export class ReviewSection implements IDirective {\r\n public link($scope: IFieldSectionScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/manageForm/reviewSection.html';\r\n public controller = [\r\n '$scope', '$timeout', 'formService', 'reviewConfigurationService', 'userService', 'processService', 'commentService',\r\n 'growl', 'dateRangeService', 'processDocumentService', ReviewSectionController\r\n ];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n reviewConfiguration: \"=\",\r\n process: \"=\",\r\n processConfiguration: \"=\",\r\n processConfigurationId: \"=\",\r\n manageSection: \"=\"\r\n };\r\n }\r\n\r\n export class ReviewSectionModel {\r\n public selectedUser: any;\r\n selectedReviewUserId: string;\r\n currentReviewSet : Wars.Domain.Model.Dtos.ReviewSetDto;\r\n addingNewComment: boolean;\r\n newComment: string;\r\n newCommentDocIds: string[];\r\n newCommentDate: any;\r\n dueDate;\r\n selectedReviewType: Wars.Domain.Model.Codes.SystemCode;\r\n showAddReview: boolean;\r\n public assignedDate: any;\r\n public docIds: string[];\r\n errorMessage: string;\r\n typedInUserValue: string;\r\n\r\n public reviews: Wars.Domain.Model.Reviews.ReviewConfiguration[];\r\n public fileUploadModel: any;\r\n\r\n public updateReviewDocumentHandlers: any = {};\r\n\r\n public documentUpdated = (model: models.FileUploadModel) => this.documentUpdatedInternal(model);\r\n \r\n constructor(\r\n private $timeout: angular.ITimeoutService,\r\n private userService: services.UserService,\r\n private processService: services.ProcessService,\r\n private formService: services.FormService,\r\n private commentService: services.CommentService,\r\n private reviewConfigurationService: Services.ReviewConfigurationService,\r\n private processConfigurationId,\r\n public isConfigureMode: boolean,\r\n public manageSection: Wars.Domain.Model.ManageSection,\r\n private process: Wars.Domain.Model.Dtos.ProcessDto,\r\n private growl: angular.growl.IGrowlService,\r\n private dateRangeService: services.DateRangeService,\r\n private processDocumentService: services.ProcessDocumentService) {\r\n\r\n this.initialize();\r\n }\r\n\r\n private initialize() {\r\n if (this.isConfigureMode) {\r\n this.reviewConfigurationService.getReviewConfigurations(this.processConfigurationId).then(reviews => {\r\n reviews.forEach(r => {\r\n (r).open = false;\r\n });\r\n this.reviews = reviews;\r\n });\r\n } else {\r\n for (let reviewSetIndex = 0; reviewSetIndex < this.process.reviewSets.length; reviewSetIndex++) {\r\n const reviewSet = this.process.reviewSets[reviewSetIndex];\r\n for (let reviewIndex = 0; reviewIndex < reviewSet.reviews.length; reviewIndex++) {\r\n const review = reviewSet.reviews[reviewIndex];\r\n this.addUpdateReviewDocumentsHandler(reviewSet, review);\r\n }\r\n }\r\n }\r\n\r\n this.fileUploadModel = new models.FileUploadModel();\r\n if (this.process) {\r\n this.fileUploadModel.processId = this.process.id;\r\n }\r\n\r\n this.showAddReview = false;\r\n this.currentReviewSet = undefined;\r\n this.setReviewSet(); \r\n }\r\n\r\n private addUpdateReviewDocumentsHandler(reviewSet: Wars.Domain.Model.Dtos.ReviewSetDto, review: Wars.Domain.Model.Dtos.ReviewDto): void {\r\n this.updateReviewDocumentHandlers[review.id] = (model: models.FileUploadModel) => {\r\n review.documentIds = this.getDocIds(model.documents);\r\n this.processService.updateReviewDocuments(this.process.id, reviewSet.id, review.id, review.documentIds);\r\n }\r\n }\r\n\r\n public reviewerSelected(item: Wars.Domain.Model.Dtos.UserSearchDto) {\r\n this.selectedUser = item;\r\n if (!this.selectedUser)\r\n return;\r\n\r\n if (this.selectedUser.isExternal) {\r\n this.userService.addExternalUser(this.selectedUser).then(id => {\r\n this.selectedReviewUserId = id;\r\n });\r\n } else {\r\n this.selectedReviewUserId = this.selectedUser.id;\r\n }\r\n }\r\n\r\n public userpickerBlurred(): void {\r\n // Wait for search method call to save off typed in user value\r\n this.$timeout(() => this.updateErrorMessage(), 300);\r\n }\r\n\r\n private updateErrorMessage(): void {\r\n if ((this.selectedUser === undefined || this.selectedUser === null) && (this.typedInUserValue !== undefined && this.typedInUserValue !== null)) {\r\n this.errorMessage = \"No user has been selected from the input above. Please wait for the autocomplete when searching for a user.\";\r\n }\r\n else {\r\n this.errorMessage = undefined;\r\n }\r\n }\r\n\r\n public clearUser() {\r\n this.selectedUser = null;\r\n this.selectedReviewUserId = null;\r\n }\r\n\r\n public removeReview(review:Wars.Domain.Model.Dtos.ReviewDto) {\r\n this.processService.removeReview(this.process.id, this.currentReviewSet.id, review.id).then(r => {\r\n if (r) {\r\n this.currentReviewSet.reviews.remove(review);\r\n } else {\r\n this.growl\r\n .error(\"You can not remove this review because the reviewer has added a comment or you do not have access to perform this function\");\r\n }\r\n });\r\n }\r\n\r\n private setReviewSet() {\r\n if (this.currentReviewSet)\r\n return;\r\n\r\n if (this.process == null)\r\n return;\r\n\r\n this.currentReviewSet = Enumerable.from(this.process.reviewSets)\r\n .single(r => r.reviewConfigurationUniqueId === this.manageSection.reviewConfigurationUniqueIdentifier);\r\n }\r\n\r\n private getInitialReviewTypeValue(): Wars.Domain.Model.Codes.SystemCode {\r\n return this.manageSection.reviewConfiguration.codeGroup.codes.length === 1\r\n ? this.manageSection.reviewConfiguration.codeGroup.codes[0]\r\n : null;\r\n }\r\n\r\n private cancelAddReviewer() {\r\n this.showAddReview = false;\r\n //clear add reviewer form after adding the selected user.\r\n this.selectedUser = null;\r\n this.selectedReviewUserId = null;\r\n this.dueDate = null;\r\n this.selectedReviewType = this.getInitialReviewTypeValue();\r\n this.assignedDate = null;\r\n }\r\n\r\n private addReviewer() {\r\n this.setReviewSet();\r\n if (this.manageSection.reviewConfiguration.allowAssignDateSelection &&\r\n !this.dateRangeService.doesDateRangePass(this.assignedDate,\r\n this.manageSection.reviewConfiguration.beginAssignDateType)) {\r\n this.growl.error(\"The assigned date \" + this.dateRangeService.dateRangeFailureText(this.manageSection.reviewConfiguration.beginAssignDateType));\r\n return;\r\n }\r\n\r\n if (this.manageSection.reviewConfiguration.closingType == Wars.Domain.Model.Codes.Enums.ClosingType.Assigned &&\r\n !this.dateRangeService.doesDateRangePass(this.dueDate,\r\n this.manageSection.reviewConfiguration.endAssignDateType)) {\r\n this.growl.error(\"The due date \" + this.dateRangeService.dateRangeFailureText(this.manageSection.reviewConfiguration.endAssignDateType));\r\n return;\r\n }\r\n\r\n var hasOpenReview = Enumerable.from(this.currentReviewSet.reviews).any(i => i.closedDate == null && i.assignedUserId == this.selectedReviewUserId);\r\n if (hasOpenReview) {\r\n this.growl.error(\"The selected user has an open assignment and cannot be assigned again until the current assignment is closed.\");\r\n return;\r\n }\r\n\r\n if (this.selectedReviewUserId === null || this.selectedReviewUserId === undefined) {\r\n this.growl.error(\"A user must be selected to continue.\");\r\n return;\r\n }\r\n\r\n this.processService.addReview(this.process.id,\r\n this.currentReviewSet.id,\r\n this.selectedReviewUserId,\r\n this.dueDate,\r\n this.selectedReviewType,\r\n this.assignedDate).then(\r\n (review) => {\r\n this.currentReviewSet.reviews.push(review);\r\n this.addUpdateReviewDocumentsHandler(this.currentReviewSet, review);\r\n this.showAddReview = false;\r\n //clear add reviewer form after adding the selected user.\r\n this.selectedUser = null;\r\n this.selectedReviewUserId = null;\r\n this.dueDate = null;\r\n this.selectedReviewType = this.getInitialReviewTypeValue();\r\n this.assignedDate = null;\r\n //load process dto to show comment button if appropriate\r\n var self = this;\r\n this.processService.getProcessDto(this.process.id)\r\n .then((result) => {\r\n self.process\r\n .commentThreads[this.manageSection.reviewConfiguration.commentThreadConfiguration\r\n .uniqueIdentifier].canComment =\r\n result.commentThreads[this.manageSection.reviewConfiguration\r\n .commentThreadConfiguration.uniqueIdentifier].canComment;\r\n });\r\n });\r\n }\r\n\r\n private closeReview(review:Wars.Domain.Model.Dtos.ReviewDto) {\r\n this.processService.closeReview(this.process.id, this.currentReviewSet.id,review.id).then(r => {\r\n review.isComplete = true;\r\n if (r && r.data && r.data.closedDate) {\r\n review.closedDate = r.data.closedDate;\r\n var self = this;\r\n this.processService.getProcessDto(this.process.id)\r\n .then((result) => {\r\n self.process\r\n .commentThreads[this.manageSection.reviewConfiguration.commentThreadConfiguration\r\n .uniqueIdentifier].canComment =\r\n result.commentThreads[this.manageSection.reviewConfiguration\r\n .commentThreadConfiguration.uniqueIdentifier].canComment;\r\n });\r\n }\r\n });\r\n }\r\n\r\n private reviewConfigurationChanged() {\r\n this.manageSection.reviewConfigurationUniqueIdentifier = this.manageSection.reviewConfiguration.uniqueIdentifier;\r\n this.formService.saveAllChanges();\r\n }\r\n\r\n public saveReviewComment(review: Wars.Domain.Model.Dtos.ReviewDto) {\r\n this.processService.saveReviewComment(this.process.id, this.currentReviewSet.id,review.id,review.comment);\r\n }\r\n\r\n public addNewComment(): void {\r\n this.addingNewComment = true;\r\n this.newComment = undefined;\r\n this.newCommentDocIds = [];\r\n this.newCommentDate = new Date();\r\n }\r\n\r\n private documentUpdatedInternal(model: models.FileUploadModel): void {\r\n this.newCommentDocIds = Enumerable.from(model.documents).select(i => i.id).toArray();\r\n }\r\n\r\n public saveNewComment(): void {\r\n \r\n\r\n if (this.newComment == undefined || this.newComment == null || this.newComment.trim().length === 0) {\r\n this.growl.error(\"New Comment text is required.\");\r\n return;\r\n }\r\n\r\n if (this.manageSection.reviewConfiguration.commentThreadConfiguration.allowCommentDateToBeSet &&\r\n this.newCommentDate == null) {\r\n this.growl.error(this.manageSection.reviewConfiguration.commentThreadConfiguration.commentDateLabel + \" is required.\");\r\n return;\r\n }\r\n\r\n if (this.manageSection.reviewConfiguration.commentThreadConfiguration.allowCommentDateToBeSet &&\r\n !this.dateRangeService.doesDateRangePass(this.newCommentDate, this.manageSection.reviewConfiguration.commentThreadConfiguration.commentDateRange)) {\r\n this.growl.error(\"The \" +\r\n this.manageSection.reviewConfiguration.commentThreadConfiguration.commentDateLabel\r\n + \" \" +\r\n this.dateRangeService.dateRangeFailureText(this.manageSection.reviewConfiguration.commentThreadConfiguration.commentDateRange));\r\n\r\n return;\r\n }\r\n\r\n this.addingNewComment = false;\r\n\r\n var commentDto: Wars.Domain.Model.Dtos.CommentDto = {\r\n comment: this.newComment,\r\n documentIds: this.newCommentDocIds,\r\n processId: this.process.id,\r\n manageSectionUniqueId: this.manageSection.uniqueIdentifier,\r\n reviewSetId: this.currentReviewSet.id,\r\n commentDate: this.newCommentDate\r\n };\r\n\r\n this.commentService.createNewCommentThreadEntry(commentDto).then(\r\n (commentThread) => {\r\n if (this.newCommentDocIds && this.process) {\r\n this.processDocumentService.updateManageDocumentSections(this.process);\r\n }\r\n\r\n this.process.commentThreads[this.manageSection.reviewConfiguration.commentThreadConfiguration.uniqueIdentifier].threads.push(commentThread);\r\n this.addingNewComment = false;\r\n this.newComment = undefined;\r\n this.newCommentDocIds = [];\r\n this.newCommentDate = undefined;\r\n });\r\n }\r\n\r\n public cancelNewComment(): void {\r\n this.newComment = undefined;\r\n this.addingNewComment = false;\r\n }\r\n\r\n private searchUsers(viewValue): any {\r\n this.typedInUserValue = viewValue;\r\n var searchCriteria = new models.UserSearchCriteria();\r\n searchCriteria.userRepository = this.manageSection.reviewConfiguration.userServiceName;\r\n searchCriteria.userName = viewValue;\r\n return this.userService.searchUsers(searchCriteria);\r\n //return this.userService.search(searchCriteria);\r\n }\r\n\r\n public getDocIds(docs: Wars.Domain.Model.Dtos.DocumentDto[]): string[] {\r\n return docs ? Enumerable.from(docs).select(i => i.id).toArray() : [];\r\n }\r\n }\r\n\r\n export class ReviewSectionController {\r\n\r\n constructor(private scope: IReviewSectionScope,\r\n $timeout: angular.ITimeoutService,\r\n private formService: services.FormService,\r\n private reviewConfigurationService: services.ReviewConfigurationService,\r\n private userService: services.UserService,\r\n private processService: services.ProcessService,\r\n private commentService: services.CommentService,\r\n growl: angular.growl.IGrowlService,\r\n private dateRangeService: services.DateRangeService,\r\n private processDocumentService: services.ProcessDocumentService)\r\n {\r\n scope.model = new ReviewSectionModel(\r\n $timeout,\r\n userService,\r\n processService,\r\n formService,\r\n commentService,\r\n reviewConfigurationService,\r\n scope.processConfigurationId,\r\n scope.isConfigureMode,\r\n scope.manageSection,\r\n scope.process,\r\n growl,\r\n dateRangeService,\r\n processDocumentService);\r\n\r\n if (!scope.isConfigureMode) {\r\n scope.$watch(\"process\",\r\n (newValue) => {\r\n if (newValue !== undefined && newValue !== null) {\r\n scope.model = new ReviewSectionModel(\r\n $timeout,\r\n userService,\r\n processService,\r\n formService,\r\n commentService,\r\n reviewConfigurationService,\r\n scope.processConfigurationId,\r\n scope.isConfigureMode,\r\n scope.manageSection,\r\n scope.process,\r\n growl,\r\n dateRangeService,\r\n processDocumentService);\r\n } else {\r\n scope.model = undefined;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\nwarsApp.registerDirective('ReviewSection', []);","/// \r\n\r\nmodule warsApp.directives {\r\n export interface IStatusHistoryScope extends ng.IScope {\r\n manageSection: Wars.Domain.Model.ManageSection;\r\n isConfigureMode: boolean;\r\n isEditMode: boolean;\r\n expandAll: any;\r\n collapseAll: any;\r\n getStatusExpandCollapseClass: (x) => string;\r\n getStateExpandCollapseClass: (x, y) => string;\r\n isStatusExpanded: (x) => boolean;\r\n isStateExpanded: (x, y) => boolean;\r\n expandStatus: (x) => void;\r\n expandState: (x, y) => void;\r\n save: any;\r\n maxDepth: number;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n editSecurityMatrix: () => void;\r\n processConfigurationId: string;\r\n hideCommentsAndAttachments: () => void;\r\n showCommentsAndAttachments: () => void;\r\n showDocumentsAndComments: boolean;\r\n }\r\n\r\n export class StatusHistory implements IDirective {\r\n public link($scope: IStatusHistoryScope,\r\n element: JQuery,\r\n attrs: ng.IAttributes) {\r\n }\r\n\r\n public templateUrl = './app/views/directives/manageForm/statusHistory.html';\r\n public controller = ['$scope', 'formService','securityMatrixService', StatusHistoryController];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n isConfigureMode: \"=\",\r\n isEditMode: \"=\",\r\n manageSection: \"=\",\r\n process: \"=\",\r\n processConfigurationId:\"=\"\r\n };\r\n }\r\n\r\n export class StatusHistoryController {\r\n private statusExpanded: Array;\r\n private stateExpanded: Array>;\r\n\r\n constructor(private scope: IStatusHistoryScope,\r\n private formService: services.FormService,\r\n private securityMatrixService: services.SecurityMatrixService)\r\n {\r\n scope.getStatusExpandCollapseClass = (i) => this.getStatusExpandCollapseClass(i);\r\n scope.getStateExpandCollapseClass = (x, y) => this.getStateExpandCollapseClass(x, y);\r\n scope.expandStatus = (i) => this.expandStatus(i);\r\n scope.expandState = (i, x) => this.expandState(i, x);\r\n scope.isStatusExpanded = (i) => this.isStatusExpanded(i);\r\n scope.isStateExpanded = (x, y) => this.isStateExpanded(x, y);\r\n scope.expandAll = () => this.expandAll();\r\n scope.collapseAll = () => this.collapseAll();\r\n scope.hideCommentsAndAttachments = () => this.hideCommentsAndAttachments();\r\n scope.showCommentsAndAttachments = () => this.showCommentsAndAttachments();\r\n scope.save = () => this.save();\r\n scope.editSecurityMatrix = () => this.editSecurityMatrix();\r\n\r\n scope.showDocumentsAndComments = true;\r\n\r\n if (this.scope.process) {\r\n this.statusExpanded = [];\r\n this.stateExpanded = [];\r\n for (var statusIndex = 0; statusIndex < this.scope.process.statusHistories.length; statusIndex++) {\r\n var status = this.scope.process.statusHistories[statusIndex];\r\n this.statusExpanded.push(false);\r\n this.stateExpanded.push([]);\r\n for (var stateIndex = 0; stateIndex < status.myStateHistory.length; stateIndex++) {\r\n this.stateExpanded[statusIndex][stateIndex] = false;\r\n }\r\n }\r\n\r\n if (this.scope.manageSection.manageStatusConfiguration.autoExpand) {\r\n this.expandAll();\r\n }\r\n\r\n if (this.scope.manageSection.manageStatusConfiguration.allowThreadedComments) {\r\n this.scope.maxDepth = 4;\r\n } else {\r\n this.scope.maxDepth = 0;\r\n }\r\n }\r\n }\r\n\r\n private editSecurityMatrix() {\r\n if (!this.scope.manageSection.manageStatusConfiguration.securityMatrixForRespondingToComments) {\r\n this.scope.manageSection.manageStatusConfiguration.securityMatrixForRespondingToComments = this.securityMatrixService.createSecurityMatrix(false, false);\r\n this.save();\r\n }\r\n\r\n this.securityMatrixService.openSecurityMatrixModal(this.scope.manageSection.manageStatusConfiguration.securityMatrixForRespondingToComments,this.scope.processConfigurationId);\r\n }\r\n\r\n private save() {\r\n this.formService.saveAllChanges();\r\n }\r\n\r\n public expandAll(): void {\r\n for (var i = 0; i < this.statusExpanded.length; i++) {\r\n this.statusExpanded[i] = true;\r\n for (var x = 0; x < this.stateExpanded[i].length; x++) {\r\n this.stateExpanded[i][x] = true;\r\n }\r\n }\r\n }\r\n\r\n public collapseAll(): void {\r\n for (var i = 0; i < this.statusExpanded.length; i++) {\r\n this.statusExpanded[i] = false;\r\n for (var x = 0; x < this.stateExpanded[i].length; x++) {\r\n this.stateExpanded[i][x] = false;\r\n }\r\n }\r\n }\r\n\r\n public hideCommentsAndAttachments(): void {\r\n this.scope.showDocumentsAndComments = false;\r\n }\r\n\r\n public showCommentsAndAttachments(): void {\r\n this.scope.showDocumentsAndComments = true;\r\n }\r\n\r\n public getStatusExpandCollapseClass(index: number): string {\r\n return this.isStatusExpanded(index) ? '' +\r\n '' +\r\n 'glyphicon-expand' : 'glyphicon-collapse-down';\r\n }\r\n\r\n public getStateExpandCollapseClass(statusIndex: number, stateIndex: number): string {\r\n return this.isStateExpanded(statusIndex, stateIndex) ? 'glyphicon-expand' : 'glyphicon-collapse-down';\r\n }\r\n\r\n public isStatusExpanded(index: number): boolean {\r\n return this.statusExpanded[index];\r\n }\r\n\r\n public isStateExpanded(statusIndex: number, stateIndex: number): boolean {\r\n if (this.stateExpanded && this.stateExpanded[statusIndex] && this.stateExpanded[statusIndex][stateIndex]) {\r\n return this.stateExpanded[statusIndex][stateIndex];\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public expandStatus(index: number) {\r\n this.statusExpanded[index] = !this.statusExpanded[index];\r\n }\r\n\r\n public expandState(statusIndex: number, stateIndex: number) {\r\n this.stateExpanded[statusIndex][stateIndex] = !this.stateExpanded[statusIndex][stateIndex];\r\n }\r\n }\r\n}\r\nwarsApp.registerDirective('StatusHistory', []);","angular.module(\"warsApp.directives\").directive('money', function () {\r\n 'use strict';\r\n\r\n var NUMBER_REGEXP = /^\\s*(\\-|\\+)?(\\d+|(\\d*(\\.\\d*)))\\s*$/;\r\n\r\n function link(scope, el, attrs, ngModelCtrl) {\r\n var min = parseFloat(attrs.min || 0);\r\n var max = parseFloat(attrs.max || null);\r\n var precision = parseFloat(attrs.precision || 2);\r\n var lastValidValue;\r\n\r\n function round(num) {\r\n var d = Math.pow(10, precision);\r\n return Math.round(num * d) / d;\r\n }\r\n\r\n function formatPrecision(value) {\r\n return parseFloat(value).toFixed(precision);\r\n }\r\n\r\n function formatViewValue(value) {\r\n return ngModelCtrl.$isEmpty(value) ? '' : '' + value;\r\n }\r\n\r\n\r\n ngModelCtrl.$parsers.push(function (value) {\r\n if (angular.isUndefined(value)) {\r\n value = '';\r\n }\r\n\r\n // Handle leading decimal point, like \".5\"\r\n if (value.indexOf('.') === 0) {\r\n value = '0' + value;\r\n }\r\n\r\n if (max != null && !value.startsWith('-') && max <= 0) {\r\n value = '-' + value;\r\n ngModelCtrl.$setViewValue(value);\r\n ngModelCtrl.$render();\r\n }\r\n\r\n // Allow \"-\" inputs only when min < 0\r\n if (value.indexOf('-') === 0) {\r\n if (min >= 0) {\r\n value = null;\r\n ngModelCtrl.$setViewValue('');\r\n ngModelCtrl.$render();\r\n } else if (value === '-') {\r\n value = '';\r\n }\r\n }\r\n\r\n var empty = ngModelCtrl.$isEmpty(value);\r\n if (empty || NUMBER_REGEXP.test(value)) {\r\n lastValidValue = (value === '')\r\n ? null\r\n : (empty ? value : parseFloat(value));\r\n } else {\r\n // Render the last valid input in the field\r\n ngModelCtrl.$setViewValue(formatViewValue(lastValidValue));\r\n ngModelCtrl.$render();\r\n }\r\n\r\n ngModelCtrl.$setValidity('number', true);\r\n return lastValidValue;\r\n });\r\n ngModelCtrl.$formatters.push(formatViewValue);\r\n\r\n var minValidator = function (value) {\r\n if (!ngModelCtrl.$isEmpty(value) && value < min) {\r\n ngModelCtrl.$setValidity('min', false);\r\n return undefined;\r\n } else {\r\n ngModelCtrl.$setValidity('min', true);\r\n return value;\r\n }\r\n };\r\n ngModelCtrl.$parsers.push(minValidator);\r\n ngModelCtrl.$formatters.push(minValidator);\r\n\r\n if (attrs.max) {\r\n var max = parseFloat(attrs.max);\r\n var maxValidator = function (value) {\r\n if (!ngModelCtrl.$isEmpty(value) && value > max) {\r\n ngModelCtrl.$setValidity('max', false);\r\n return undefined;\r\n } else {\r\n ngModelCtrl.$setValidity('max', true);\r\n return value;\r\n }\r\n };\r\n\r\n ngModelCtrl.$parsers.push(maxValidator);\r\n ngModelCtrl.$formatters.push(maxValidator);\r\n }\r\n\r\n // Round off\r\n if (precision > -1) {\r\n ngModelCtrl.$parsers.push(function (value) {\r\n return value ? round(value) : value;\r\n });\r\n ngModelCtrl.$formatters.push(function (value) {\r\n return value ? formatPrecision(value) : value;\r\n });\r\n }\r\n\r\n el.bind('blur', function () {\r\n var value = ngModelCtrl.$modelValue;\r\n if (value) {\r\n ngModelCtrl.$viewValue = formatPrecision(value);\r\n ngModelCtrl.$render();\r\n }\r\n });\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: link\r\n };\r\n});","angular.module(\"warsApp\").config(['$provide', function ($provide) {\r\n\r\n $provide.decorator('uibDatepickerPopupDirective', ['$delegate', function ($delegate) {\r\n var directive = $delegate[0];\r\n var link = directive.link;\r\n\r\n directive.compile = function () {\r\n return function (scope, element, attrs) {\r\n link.apply(this, arguments);\r\n element.mask(\"99/99/9999\");\r\n element[0].onblur = function() {\r\n if (!scope.date) {\r\n element[0].value = \"\";\r\n }\r\n }\r\n };\r\n };\r\n return $delegate;\r\n }]);\r\n\r\n}]);\r\n\r\nangular.module(\"warsApp.directives\").directive('myDatepicker', ['$parse', 'dateFilter', function ($parse, dateFilter) {\r\n return {\r\n restrict: 'E',\r\n scope:true,\r\n require: 'ngModel',\r\n compile: function compile(element, attrs) {\r\n var html = '
' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
';\r\n element.replaceWith(html);\r\n return {\r\n post: function postLink(scope) {\r\n scope.popupOpen = false;\r\n scope.openPopup = function($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n scope.popupOpen = true;\r\n }; \r\n }\r\n }\r\n }\r\n };\r\n}]);","angular.module(\"warsApp.directives\").directive('numbersOnly', function () {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, modelCtrl) {\r\n modelCtrl.$parsers.push(function (inputValue) {\r\n // this next if is necessary for when using ng-required on your input. \r\n // In such cases, when a letter is typed first, this parser will be called\r\n // again, and the 2nd time, the value will be undefined\r\n if (inputValue == undefined) return '';\r\n var transformedInput = inputValue.replace(/[^0-9]/g, '');\r\n if (transformedInput != inputValue) {\r\n modelCtrl.$setViewValue(transformedInput);\r\n modelCtrl.$render();\r\n }\r\n\r\n return transformedInput;\r\n });\r\n }\r\n };\r\n});","angular.module(\"warsApp.directives\").directive(\"objectPropertyName\", function () {\r\n return {\r\n restrict: \"A\",\r\n link: function (scope, element) {\r\n var func = function (event) {\r\n var alphaUnderscoreOnly = /[^A-Za-z\\_]/g;\r\n var alphaNumericUnderscore = /[^A-Za-z0-9\\_]/g;\r\n if (event && event.keyCode) {\r\n if (event.keyCode === 37\r\n || event.keyCode === 39\r\n || event.keyCode === 8) return;\r\n }\r\n if (element.val().length > 0) { \r\n if (alphaUnderscoreOnly.test(element.val()[0])) {\r\n element.val(element.val().substr(1));\r\n element[0].selectionEnd = 0;\r\n } else {\r\n var cursorPosition = element[0].selectionEnd;\r\n if (alphaNumericUnderscore.test(element.val())) {\r\n element.val(element.val().replace(alphaNumericUnderscore, \"\"));\r\n element[0].selectionEnd = cursorPosition - 1;\r\n }\r\n }\r\n }\r\n }\r\n element.keyup(func).blur(func);\r\n }\r\n };\r\n});","/// \r\nmodule warsApp.directives {\r\n \r\n export interface IObjectQueryRestrictionsScope extends angular.IScope {\r\n processConfigurationId: string;\r\n objectQuery: Wars.Domain.Model.ObjectQuery;\r\n parentRestriction: Wars.Domain.Model.ObjectQueryRestriction;\r\n topLevel: boolean;\r\n model: models.ObjectQueryRestrictionsModel;\r\n }\r\n\r\n export class ObjectQueryRestrictions implements IDirective {\r\n\r\n link($scope: IObjectQueryRestrictionsScope, element: JQuery, attrs: angular.IAttributes, controller: ObjectQueryRestrictionsController) { }\r\n templateUrl = \"./app/views/directives/objectQueryRestrictions.html\";\r\n restrict = \"E\";\r\n controller = [\"$scope\", \"growl\", \"systemLevelService\", \"applicationCodeService\", \"treeService\", \"objectQueryService\", ObjectQueryRestrictionsController];\r\n scope = {\r\n processConfigurationId: \"=\", \r\n objectQuery: \"=\",\r\n parentRestriction: \"=\",\r\n topLevel: \"=\"\r\n }; \r\n compile = (element) => {\r\n return this.recursionHelper.compile(element);\r\n }\r\n \r\n private recursionHelper: any;\r\n\r\n constructor(recursionHelper: any) {\r\n this.recursionHelper = recursionHelper;\r\n }\r\n }\r\n\r\n export class ObjectQueryRestrictionsController implements IController {\r\n\r\n private scope: IObjectQueryRestrictionsScope;\r\n \r\n constructor(\r\n $scope: IObjectQueryRestrictionsScope,\r\n growl: angular.growl.IGrowlService,\r\n systemLevelService: services.SystemLevelService,\r\n applicationCodeService: services.ApplicationCodeService,\r\n treeService: services.TreeService,\r\n objectQueryService: services.ObjectQueryService)\r\n {\r\n var self = this;\r\n self.scope = $scope;\r\n self.scope.model = new models.ObjectQueryRestrictionsModel(self.scope, growl, systemLevelService, applicationCodeService, treeService, objectQueryService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective(\"ObjectQueryRestrictions\", [\"recursionHelper\"]);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IObjectSchemaScope extends ng.IScope {\r\n schema: Wars.Domain.Model.ObjectSchema;\r\n schemaToMapTo: Wars.Domain.Model.ObjectSchema;\r\n allowMapping: boolean;\r\n mappings: Wars.Domain.Model.SchemaMapping[];\r\n getMappingName: any;\r\n mappedPropertySelected: any;\r\n propertySelected: any;\r\n reload: boolean;\r\n }\r\n\r\n export class ObjectSchema implements IDirective {\r\n public link($scope: IObjectSchemaEditorScope, element: JQuery, attrs: ng.IAttributes, controller: ObjectSchemaController) { }\r\n public templateUrl = './app/views/directives/objectSchema.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', 'objectSchemaService', ObjectSchemaController];\r\n public controllerAs = 'controller';\r\n public scope: any = {\r\n schema: \"=\",\r\n schemaToMapTo: \"=\",\r\n allowMapping: \"=\",\r\n mappings: \"=\",\r\n reload: \"=\"\r\n };\r\n public compile = (element) => {\r\n return this.recursionHelper.compile(element);\r\n }\r\n\r\n private recursionHelper: any;\r\n\r\n constructor(recursionHelper: any) {\r\n this.recursionHelper = recursionHelper;\r\n }\r\n }\r\n\r\n\r\n export class ObjectSchemaController implements IController {\r\n\r\n constructor(private $scope: IObjectSchemaScope, private objectSchemaService: services.ObjectSchemaService) {\r\n $scope.propertySelected = {};\r\n $scope.getMappingName = (p) => this.getMappingName(p);\r\n $scope.mappedPropertySelected = (a) => this.mappedPropetrySelected(a);\r\n\r\n this.setSelectedProperties();\r\n\r\n $scope.$watch('reload', () => {\r\n this.setSelectedProperties();\r\n });\r\n }\r\n\r\n private setSelectedProperties() {\r\n if (this.$scope.schema) {\r\n this.$scope.schema.properties.forEach(prop => {\r\n this.$scope.propertySelected[prop.id] = this.getMappedId(prop.id);\r\n });\r\n //console.log(this.$scope.propertySelected);\r\n this.$scope.reload = false;\r\n }\r\n }\r\n\r\n private getMappingName(property: warsApp.models.SchemaProperty) {\r\n let mapping = Enumerable.from(this.$scope.mappings).single(s => s.leftSchemaProperty_id == property.id);\r\n\r\n let mappedProperty = Enumerable.from(this.$scope.schemaToMapTo.properties).singleOrDefault(s => s.id == mapping.rightSchemaProperty_id);\r\n\r\n if (mappedProperty) {\r\n return mappedProperty.name;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n private getMappedId(id: string) {\r\n let mapping = Enumerable.from(this.$scope.mappings).single(s => s.leftSchemaProperty_id == id);\r\n\r\n return mapping.rightSchemaProperty_id;\r\n }\r\n\r\n\r\n private mappedPropetrySelected(propertyId: string) {\r\n let mapping = Enumerable.from(this.$scope.mappings).single(s => s.leftSchemaProperty_id == propertyId);\r\n mapping.rightSchemaProperty_id = this.$scope.propertySelected[propertyId];\r\n this.objectSchemaService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ObjectSchema', ['recursionHelper']);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IObjectSchemaEditorScope extends ng.IScope {\r\n model: ObjectSchemaEditorModel;\r\n objectSchema: Wars.Domain.Model.ObjectSchema;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n readOnly: boolean;\r\n schemaChangedCallback: () => void;\r\n reloadSchema: () => void;\r\n hideIsRequired: string;\r\n hideIsIndexed: string;\r\n defaultIsIndexedValue: string;\r\n defaultIsRequiredValue: string;\r\n allowTieToSystemVariable: string;\r\n allowTieToProcessName: string;\r\n isSystemLevel: string;\r\n allowList: string;\r\n codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n }\r\n\r\n export class ObjectSchemaEditor implements IDirective {\r\n public link($scope: IObjectSchemaEditorScope, element: JQuery, attrs: ng.IAttributes, controller: ObjectSchemaEditorController) { }\r\n public templateUrl = './app/views/directives/objectSchemaEditor.html';\r\n public restrict: string = 'E';\r\n public controller = ['$scope', 'schemaPropertyService', 'systemLevelService', 'objectSchemaService', ObjectSchemaEditorController];\r\n public controllerAs = 'controller';\r\n public scope: any = {\r\n objectSchema: \"=\",\r\n readOnly: \"=\",\r\n schemaChangedCallback: \"=\",\r\n processConfiguration: \"=\",\r\n reloadSchema: \"=\",\r\n hideIsRequired: '@',\r\n hideIsIndexed: '@',\r\n defaultIsIndexedValue: \"@\",\r\n defaultIsRequiredValue: \"@\",\r\n allowTieToSystemVariable: '@',\r\n allowTieToProcessName: '@',\r\n isSystemLevel: \"@\",\r\n allowList: \"@\",\r\n codeGroups: \"=\"\r\n };\r\n }\r\n\r\n export class ObjectSchemaEditorModel {\r\n\r\n public systemVariableObjectSchema: Wars.Domain.Model.ObjectSchema;\r\n\r\n constructor(\r\n public objectSchema: Wars.Domain.Model.ObjectSchema,\r\n private processConfiguration: Wars.Domain.Model.ProcessConfiguration,\r\n private readOnly: boolean,\r\n private schemaChangedCallback: () => void,\r\n private reloadSchema: () => void,\r\n private schemaPropertyService: services.SchemaPropertyService,\r\n private objectSchemaService: services.ObjectSchemaService,\r\n private defaultIsIndexedValue: string,\r\n private defaultIsRequiredValue: string,\r\n private isSystemLevel: string,\r\n private allowList: boolean)\r\n { }\r\n\r\n public addProperty(): void {\r\n var schemaProperty = this.schemaPropertyService.createNewSchemaProperty();\r\n this.setDefaults(schemaProperty);\r\n this.objectSchema.properties.push(schemaProperty);\r\n this.schemaChangedCallback();\r\n }\r\n\r\n public addListProperty(): void {\r\n var newTopLevelSchemaProperty = this.schemaPropertyService.createNewSchemaProperty();\r\n this.setDefaults(newTopLevelSchemaProperty);\r\n newTopLevelSchemaProperty.propertyType = Wars.Domain.Model.Codes.Enums.VariableType.List;\r\n this.objectSchema.properties.push(newTopLevelSchemaProperty);\r\n var newObjectSchema = this.objectSchemaService.createNewListObjectSchema();\r\n newTopLevelSchemaProperty.typeSchema = newObjectSchema;\r\n newTopLevelSchemaProperty.type_id = newTopLevelSchemaProperty.typeSchema.id;\r\n this.schemaChangedCallback();\r\n }\r\n\r\n private setDefaults(propertySchema: Wars.Domain.Model.SchemaProperty): void {\r\n if (this.defaultIsIndexedValue === \"true\") {\r\n propertySchema.isIndexed = true;\r\n }\r\n else if (this.defaultIsIndexedValue === \"false\") {\r\n propertySchema.isIndexed = false;\r\n }\r\n\r\n if (this.defaultIsRequiredValue === \"true\") {\r\n propertySchema.required = true;\r\n }\r\n else if (this.defaultIsRequiredValue === \"false\") {\r\n propertySchema.required = false;\r\n }\r\n\r\n if (this.isSystemLevel === \"true\") {\r\n propertySchema.isSystemLevel = true;\r\n }\r\n }\r\n }\r\n\r\n export class ObjectSchemaEditorController implements IController {\r\n\r\n constructor(\r\n private $scope: IObjectSchemaEditorScope,\r\n schemaPropertyService: services.SchemaPropertyService,\r\n systemLevelService: services.SystemLevelService,\r\n objectSchemaService: services.ObjectSchemaService)\r\n {\r\n var schemaChangedFunction = () => {\r\n if ($scope.schemaChangedCallback) {\r\n $scope.schemaChangedCallback();\r\n }\r\n }\r\n\r\n var reloadSchemaFunction = () => {\r\n if ($scope.reloadSchema) {\r\n $scope.reloadSchema();\r\n }\r\n };\r\n\r\n $scope.model = new ObjectSchemaEditorModel(\r\n $scope.objectSchema,\r\n $scope.processConfiguration,\r\n $scope.readOnly,\r\n schemaChangedFunction,\r\n reloadSchemaFunction,\r\n schemaPropertyService,\r\n objectSchemaService,\r\n $scope.defaultIsIndexedValue,\r\n $scope.defaultIsRequiredValue,\r\n $scope.isSystemLevel,\r\n $scope.allowList === \"true\");\r\n\r\n if ($scope.allowTieToSystemVariable === \"true\") {\r\n systemLevelService.getSystemLevel()\r\n .then((systemLevel) => {\r\n objectSchemaService.getObjectSchemaExpanded(systemLevel.variableSchema_id)\r\n .then((objectSchema) => {\r\n $scope.model.systemVariableObjectSchema = objectSchema;\r\n });\r\n });\r\n }\r\n\r\n $scope.$watch('objectSchema', (newValue: Wars.Domain.Model.ObjectSchema) => {\r\n $scope.model.objectSchema = newValue;\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ObjectSchemaEditor', []);","/// \r\nmodule warsApp.directives {\r\n\r\n import Directive = angular.IDirective;\r\n import ProcessDataNode = models.ProcessDataNode;\r\n import JsTreeNode = models.JSTreeNode;\r\n\r\n export class ProcessConfigurationTree implements Directive {\r\n public controller =\r\n [\r\n '$scope', 'processConfigurationService', \"treeService\", 'objectSchemaService',\r\n 'constantService', 'systemLevelService', 'queryConfigurationService',\r\n 'manageStaticDocumentsService', '$q', ProcessConfigurationTreeController\r\n ];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/processConfigurationTree.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n configurationId: '=',\r\n reloadConfig: '=',\r\n reloadTree: '=',\r\n nodeSelectedCallback: '=',\r\n excludeItem: '=',\r\n includeTreeSections: '@',\r\n includedFormIds: '=',\r\n inputParameterSchema: '=',\r\n isReporting: '='\r\n };\r\n\r\n public link(scope: IProcessConfigurationTreeScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: ProcessConfigurationTreeController): void {\r\n scope.tree = {\r\n treeData: [],\r\n treeConfig: {\r\n plugins: ['search'],\r\n search: {\r\n show_only_matches: true,\r\n show_only_matches_children: true\r\n }\r\n },\r\n searchString: ''\r\n };\r\n\r\n scope.changed = (e, data) => {\r\n if (data.action === \"select_node\") {\r\n if (data.node.li_attr.warsInfo) {\r\n var treeItem = JSON.parse(data.node.li_attr.warsInfo);\r\n if (scope.nodeSelectedCallback) {\r\n scope.nodeSelectedCallback(treeItem);\r\n }\r\n }\r\n }\r\n }\r\n\r\n scope.applySearch = () => {\r\n if (scope.treeInstance) {\r\n scope.treeInstance.jstree(true).search(scope.tree.searchString);\r\n }\r\n };\r\n }\r\n\r\n public static encodeStringifiedTreeItem(stringified: string): string {\r\n return stringified.replace(/'+/g, \"~~!!~~\");\r\n }\r\n\r\n public static getDecodedTreeItem(clearAfterRetrival: boolean): models.TreeConfigurationItem {\r\n var localStorageValue = localStorage.getItem(\"treeDrag\");\r\n if (localStorageValue === undefined || localStorageValue === null) return null;\r\n \r\n var decodedValue = localStorageValue.replace(\"~~!!~~\", \"'\");\r\n var value = JSON.parse(decodedValue);\r\n\r\n if (clearAfterRetrival) {\r\n localStorage.setItem(\"treeDrag\", null);\r\n }\r\n return value;\r\n }\r\n }\r\n\r\n export interface IProcessConfigurationTreeScope extends ng.IScope {\r\n configuration: Wars.Domain.Model.ProcessConfiguration;\r\n relatedClaimLookup: Wars.Domain.Model.Dtos.RelatedClaimDto[];\r\n\r\n systemLevel: Wars.Domain.Model.SystemLevel;\r\n\r\n systemQueries: Wars.Domain.Model.QueryConfiguration[];\r\n processQueries: Wars.Domain.Model.QueryConfiguration[];\r\n\r\n configurationId: string;\r\n reloadConfig: boolean;\r\n reloadTree: boolean;\r\n nodeSelectedCallback(treeItem: models.TreeConfigurationItem): void;\r\n refresh(): void;\r\n excludeItem: models.TreeConfigurationItem;\r\n tree: any;\r\n changed(event, data): void;\r\n includeTreeSections: string;\r\n includedFormIds: string[];\r\n inputParameterSchema: Wars.Domain.Model.ObjectSchema;\r\n applySearch: any;\r\n treeInstance: any;\r\n isReporting: boolean;\r\n }\r\n\r\n export class ProcessConfigurationTreeController implements IController {\r\n private restrictionsDefined: boolean = false;\r\n private systemSectionsAllowed: string[] = undefined;\r\n private processSectionAllowed: string[] = undefined;\r\n private treeLoaded: boolean;\r\n\r\n constructor(\r\n private scope: IProcessConfigurationTreeScope,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private treeService: services.TreeService,\r\n private objectSchemaService: services.ObjectSchemaService,\r\n private constantService: services.ConstantService,\r\n private systemLevelService: services.SystemLevelService,\r\n private queryConfigurationService: services.QueryConfigurationService,\r\n private staticDocumentService: services.ManageStaticDocumentsService,\r\n private $q: angular.IQService)\r\n {\r\n this.scope = scope;\r\n this.treeLoaded = false;\r\n\r\n var self = this;\r\n\r\n scope.$watch(\"configurationId\", () => {\r\n this.loadProcessConfiguration();\r\n });\r\n\r\n scope.$watch(\"reloadConfig\", (newValue: boolean) => {\r\n if (newValue) {\r\n this.loadProcessConfiguration();\r\n scope.reloadConfig = false;\r\n }\r\n });\r\n\r\n scope.$watch(\"reloadTree\", (newValue: boolean) => {\r\n if (newValue) {\r\n if (self.treeLoaded) this.createTreeData();\r\n scope.reloadTree = false;\r\n }\r\n });\r\n\r\n scope.refresh = () => {\r\n this.loadProcessConfiguration();\r\n }\r\n\r\n this.setIncludedSections();\r\n }\r\n\r\n private setIncludedSections(): void {\r\n if (this.scope.includeTreeSections && this.scope.includeTreeSections !== \"\") {\r\n this.restrictionsDefined = true;\r\n var split = this.scope.includeTreeSections.split(' ');\r\n for (let i = 0; i < split.length; i++) {\r\n var internalSplit = split[i].split('.');\r\n if (internalSplit && internalSplit.length > 0 && internalSplit[0] === \"System\") {\r\n this.systemSectionsAllowed = internalSplit.length > 1 ? internalSplit.slice(1) : [];\r\n }\r\n\r\n if (internalSplit && internalSplit.length > 0 && internalSplit[0] === \"Process\") {\r\n this.processSectionAllowed = internalSplit.length > 1 ? internalSplit.slice(1) : [];\r\n }\r\n }\r\n }\r\n }\r\n\r\n private loadProcessConfiguration() {\r\n var self = this;\r\n\r\n var dataLoadPromises = [];\r\n\r\n // Process Level\r\n if (self.scope.configurationId && (this.isProcessTopLevelAllowed())) {\r\n\r\n var relatedClaimsDefer = this.$q.defer();\r\n this.treeService.getRelatedClaimLookup().then((relatedClaims) => {\r\n this.scope.relatedClaimLookup = relatedClaims;\r\n services.TreeService.relatedClaimLookup = relatedClaims;\r\n relatedClaimsDefer.resolve();\r\n });\r\n dataLoadPromises.push(relatedClaimsDefer.promise);\r\n\r\n var processConfigDefer = this.$q.defer();\r\n\r\n this.processConfigurationService.getProcessConfigurationForTree(self.scope.configurationId).then(\r\n (appConfig) => {\r\n self.scope.configuration = appConfig;\r\n\r\n if (this.isProcessSectionAllowed(\"Variables\")) {\r\n self.objectSchemaService.getObjectSchemaExpanded(self.scope.configuration.processDataSchema_id).then(\r\n (processDataSchema) => {\r\n self.scope.configuration.processDataSchema = processDataSchema;\r\n processConfigDefer.resolve();\r\n });\r\n } else {\r\n processConfigDefer.resolve();\r\n }\r\n });\r\n dataLoadPromises.push(processConfigDefer.promise);\r\n\r\n if (this.isProcessSectionAllowed(\"Queries\")) {\r\n var processQueryPromise = this.queryConfigurationService.getAllQueryConfigurations(self.scope.configurationId).then(\r\n queryConfigs => {\r\n self.scope.processQueries = queryConfigs;\r\n });\r\n dataLoadPromises.push(processQueryPromise);\r\n }\r\n }\r\n\r\n // System Level\r\n if (this.isSystemTopLevelAllowed()) {\r\n\r\n var systemLevelPromise = this.$q.defer();\r\n\r\n this.systemLevelService.getMostSystemLevelInfo().then(\r\n (systemLevel) => {\r\n if (self.scope.systemLevel === undefined || self.scope.systemLevel === null) {\r\n self.scope.systemLevel = systemLevel;\r\n }\r\n\r\n self.objectSchemaService.getObjectSchemaExpanded(systemLevel.variableSchema_id).then(\r\n (variableSchema) => {\r\n self.scope.systemLevel.variableSchema = variableSchema;\r\n systemLevelPromise.resolve();\r\n });\r\n });\r\n\r\n dataLoadPromises.push(systemLevelPromise.promise);\r\n\r\n if (this.isSystemSectionAllowed(\"CodeGroups\")) {\r\n var systemLevelCodePromise = this.$q.defer();\r\n\r\n this.systemLevelService.getSystemLevelCodes().then((systemLevel) => {\r\n if (self.scope.systemLevel === undefined || self.scope.systemLevel === null) {\r\n self.scope.systemLevel = systemLevel;\r\n } else {\r\n self.scope.systemLevel.myCodeGroups = systemLevel.myCodeGroups;\r\n }\r\n systemLevelCodePromise.resolve();\r\n });\r\n\r\n dataLoadPromises.push(systemLevelCodePromise.promise);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"Queries\")) {\r\n var systemQueryPromise = this.queryConfigurationService.getAllQueryConfigurations(null).then(\r\n queryConfigs => {\r\n self.scope.systemQueries = queryConfigs;\r\n });\r\n dataLoadPromises.push(systemQueryPromise);\r\n }\r\n\r\n } else {\r\n this.systemLevelService.getSystemLevelClaims().then(\r\n (systemLevel) => {\r\n self.scope.systemLevel = systemLevel;\r\n });\r\n }\r\n\r\n this.$q.all(dataLoadPromises).then(() => {\r\n this.createTreeData();\r\n });\r\n }\r\n\r\n public createTreeData() {\r\n var processConfig = this.scope.configuration;\r\n\r\n this.scope.tree.treeData = [];\r\n\r\n if (this.scope.inputParameterSchema && this.scope.inputParameterSchema.properties && this.scope.inputParameterSchema.properties.length > 0) {\r\n var inputTopNode = this.getTopNode(\"Input Parameters\", true);\r\n this.setSchemaNodes(this.scope.inputParameterSchema, inputTopNode, undefined, Wars.Domain.Model.Codes.Enums.TreeItemSource.OperationParameter, false, \"glyphicon-hand-right\");\r\n this.scope.tree.treeData.push(inputTopNode);\r\n }\r\n\r\n if (this.isSystemTopLevelAllowed()) {\r\n var systemTopNode = this.getTopNode(\"System\", true);\r\n\r\n if (this.isSystemSectionAllowed(\"Placeholders\")) {\r\n var systemPlaceholdersTopNode = this.getTopNode(\"Placeholders\", false);\r\n\r\n this.setPlaceHolderValues(systemPlaceholdersTopNode, true);\r\n\r\n systemTopNode.children.push(systemPlaceholdersTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"Calculations\")) {\r\n\r\n var systemCalculationsTopNode = this.getTopNode(\"Calculations\", false);\r\n\r\n if (this.scope.systemLevel.myCalculations) {\r\n let orderedSystemCalculations = Enumerable.from(this.scope.systemLevel.myCalculations).orderBy(i => i.name).toArray();\r\n for (let x = 0; x < orderedSystemCalculations.length; x++) {\r\n if (this.scope.excludeItem && this.scope.excludeItem.calculationId === orderedSystemCalculations[x].id) continue;\r\n systemCalculationsTopNode.children.push(this.constructTreeCalcuationNode(orderedSystemCalculations[x], true));\r\n }\r\n }\r\n\r\n systemTopNode.children.push(systemCalculationsTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"CodeGroups\")) {\r\n\r\n var systemCodeGroupsTopNode = this.getTopNode(\"Code Groups\", false);\r\n\r\n if (this.scope.systemLevel.myCodeGroups) {\r\n\r\n var orderedSystemCodeGroups = Enumerable.from(this.scope.systemLevel.myCodeGroups)\r\n .orderBy(codeGroup => codeGroup.groupName)\r\n .toArray();\r\n\r\n for (let x = 0; x < orderedSystemCodeGroups.length; x++) {\r\n var codeGroupTopLevel = this.getTopNode(orderedSystemCodeGroups[x].groupName, false);\r\n Enumerable.from(orderedSystemCodeGroups[x].codes).orderBy(code=>code.shortDescription).forEach(code => {\r\n codeGroupTopLevel.children.push(this.constructTreeNodeForComplexGroupCode(code, Wars.Domain.Model.Codes.Enums.TreeItemSource.CodeGroup, true));\r\n });\r\n systemCodeGroupsTopNode.children.push(codeGroupTopLevel);\r\n }\r\n }\r\n\r\n systemTopNode.children.push(systemCodeGroupsTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"Constants\")) {\r\n var systemConstantsTopNode = this.getTopNode(\"Constants\", false);\r\n\r\n if (this.scope.systemLevel.myConstants) {\r\n var orderedSystemConstants = Enumerable.from(this.scope.systemLevel.myConstants)\r\n .orderBy(constant => constant.name)\r\n .toArray();\r\n\r\n for (let x = 0; x < orderedSystemConstants.length; x++) {\r\n systemConstantsTopNode.children.push(this.constructTreeConstantNode(orderedSystemConstants[x], true));\r\n }\r\n }\r\n\r\n systemTopNode.children.push(systemConstantsTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"ClaimGroups\")) {\r\n var systemClaimGroupTopNode = this.getTopNode(\"Claim Group\", false);\r\n \r\n this.setClaimGroupNodes(this.scope.systemLevel.myClaimGroups, systemClaimGroupTopNode, true);\r\n systemTopNode.children.push(systemClaimGroupTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"Claims\")) {\r\n\r\n var systemClaimTopNode = this.getTopNode(\"Claims\", false);\r\n\r\n var orderedSystemClaims = Enumerable.from(this.scope.systemLevel.myClaims)\r\n .orderBy(claim => claim.type)\r\n .toArray();\r\n\r\n for (let i = 0; i < orderedSystemClaims.length; i++) {\r\n\r\n if (this.scope.excludeItem && this.scope.excludeItem.claimId === orderedSystemClaims[i].id) continue;\r\n\r\n var systemClaimOptions = new models.TreeItemOptions(\r\n orderedSystemClaims[i].id,\r\n orderedSystemClaims[i].type,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.Claim,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Claim,\r\n true);\r\n systemClaimOptions.isClaimWithValue = orderedSystemClaims[i].valueType !== null &&\r\n orderedSystemClaims[i].valueType !== Wars.Domain.Model.Codes.Enums.VariableType.None\r\n\r\n var systemClaimItemStr: string = this.getTreeItemString(systemClaimOptions);\r\n\r\n var systemClaimNode = this.getNode(orderedSystemClaims[i].type, systemClaimItemStr, \"glyphicon-lock\", null, null);\r\n\r\n systemClaimTopNode.children.push(systemClaimNode);\r\n }\r\n systemTopNode.children.push(systemClaimTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"StaticDocuments\")) {\r\n var staticDocumentsTopNode = this.getTopNode(\"Documents\", false);\r\n\r\n this.setStaticDocumentNodes(this.scope.systemLevel.myStaticDocuments, staticDocumentsTopNode, true);\r\n systemTopNode.children.push(staticDocumentsTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"EmailGroups\")) {\r\n var systemEmailGroupsTopNode = this.getTopNode(\"Email Groups\", false);\r\n this.setEmailGroupNodes(this.scope.systemLevel.myEmailGroups, systemEmailGroupsTopNode, true);\r\n systemTopNode.children.push(systemEmailGroupsTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"Variables\")) {\r\n var systemVariablesTopNode = this.getTopNode(\"Variables\", false);\r\n this.setSchemaNodes(this.scope.systemLevel.variableSchema, systemVariablesTopNode, undefined, Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable, true, \"glyphicon-floppy-disk\");\r\n systemTopNode.children.push(systemVariablesTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"Queries\")) {\r\n var systemQueriesTopNode = this.getTopNode(\"Queries\", false);\r\n\r\n this.setQueryNodes(this.scope.systemQueries, systemQueriesTopNode, true);\r\n systemTopNode.children.push(systemQueriesTopNode);\r\n }\r\n\r\n if (this.isSystemSectionAllowed(\"TimeTrackers\")) {\r\n\r\n var systemTimeTrackerTopNode = this.getTopNode(\"Time Trackers\", false);\r\n\r\n var orderedSystemTimeTrackers = Enumerable.from(this.scope.systemLevel.myTimeTrackers)\r\n .orderBy(i => i.name)\r\n .toArray();\r\n\r\n for (let i = 0; i < orderedSystemTimeTrackers.length; i++) {\r\n var systemClockOptions = new models.TreeItemOptions(\r\n orderedSystemTimeTrackers[i].id,\r\n orderedSystemTimeTrackers[i].name,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.TimeTracker,\r\n Wars.Domain.Model.Codes.Enums.VariableType.TimeTracker,\r\n false);\r\n\r\n var systemClockStringified: string = this.getTreeItemString(systemClockOptions);\r\n\r\n var systemTimeTrackerNode = this.getNode(orderedSystemTimeTrackers[i].name, systemClockStringified, \"glyphicon-superscript\", null, null);\r\n\r\n systemTimeTrackerTopNode.children.push(systemTimeTrackerNode);\r\n }\r\n\r\n\r\n systemTopNode.children.push(systemTimeTrackerTopNode);\r\n }\r\n\r\n this.scope.tree.treeData.push(systemTopNode);\r\n }\r\n\r\n if (processConfig) {\r\n\r\n if (this.isProcessTopLevelAllowed()) {\r\n\r\n var processTopNode = this.getTopNode(\"Process\", true);\r\n\r\n if (this.isProcessSectionAllowed(\"Placeholders\")) {\r\n var placeholdersTopNode = this.getTopNode(\"Placeholders\", false);\r\n\r\n this.setPlaceHolderValues(placeholdersTopNode, false);\r\n\r\n processTopNode.children.push(placeholdersTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"Calculations\")) {\r\n\r\n var calculationsTopNode = this.getTopNode(\"Calculations\", false);\r\n\r\n if (processConfig.myCalculations) {\r\n let orderedCalculations = Enumerable.from(processConfig.myCalculations)\r\n .orderBy(calc => calc.name)\r\n .toArray();\r\n\r\n for (let x = 0; x < orderedCalculations.length; x++) {\r\n if (this.scope.excludeItem && this.scope.excludeItem.calculationId === orderedCalculations[x].id) continue;\r\n calculationsTopNode.children.push(this.constructTreeCalcuationNode(orderedCalculations[x], false));\r\n }\r\n }\r\n\r\n processTopNode.children.push(calculationsTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"TimeTrackers\")) {\r\n\r\n var timeTrackerTopNode = this.getTopNode(\"Time Trackers\", false);\r\n\r\n var orderedProcessTimeTrackers = Enumerable.from(processConfig.myTimeTrackerContainers)\r\n .select(tt => tt.myTimeTracker)\r\n .orderBy(tt => tt.name)\r\n .toArray();\r\n\r\n for (let i = 0; i < orderedProcessTimeTrackers.length; i++) {\r\n var clockOptions = new models.TreeItemOptions(\r\n orderedProcessTimeTrackers[i].id,\r\n orderedProcessTimeTrackers[i].name,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.TimeTracker,\r\n Wars.Domain.Model.Codes.Enums.VariableType.TimeTracker,\r\n false);\r\n\r\n var clockStringified: string = this.getTreeItemString(clockOptions);\r\n\r\n var timeTrackerNode = this.getNode(orderedProcessTimeTrackers[i].name, clockStringified, \"glyphicon-superscript\", null, null);\r\n\r\n timeTrackerTopNode.children.push(timeTrackerNode);\r\n }\r\n \r\n\r\n processTopNode.children.push(timeTrackerTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"Claims\")) {\r\n\r\n var claimTopNode = this.getTopNode(\"Claims\", false);\r\n\r\n var orderedProcessClaims = Enumerable.from(processConfig.myClaims)\r\n .orderBy(claim => claim.type)\r\n .toArray();\r\n\r\n for (let i = 0; i < orderedProcessClaims.length; i++) {\r\n\r\n if (this.scope.excludeItem && this.scope.excludeItem.claimId === orderedProcessClaims[i].id) continue;\r\n\r\n var claimItemOptions = new models.TreeItemOptions(\r\n orderedProcessClaims[i].id,\r\n orderedProcessClaims[i].type,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.Claim,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Claim,\r\n false);\r\n claimItemOptions.isClaimWithValue = orderedProcessClaims[i].valueType !== null &&\r\n orderedProcessClaims[i].valueType !== Wars.Domain.Model.Codes.Enums.VariableType.None\r\n\r\n var claimItemStr: string = this.getTreeItemString(claimItemOptions);\r\n\r\n var claimNode = this.getNode(orderedProcessClaims[i].type, claimItemStr, \"glyphicon-lock\", null, null);\r\n\r\n claimTopNode.children.push(claimNode);\r\n }\r\n processTopNode.children.push(claimTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"RelatedClaims\")) {\r\n\r\n var relatedClaimTopNode = this.getTopNode(\"Related Claims\", false);\r\n\r\n for (let relatedClaimProcessTypeIndex = 0; relatedClaimProcessTypeIndex < processConfig.myRelatedClaimProcessTypes.length; relatedClaimProcessTypeIndex++) {\r\n\r\n var relatedClaimProcessType = processConfig.myRelatedClaimProcessTypes[relatedClaimProcessTypeIndex];\r\n\r\n for (let relatedClaimIndex = 0; relatedClaimIndex < relatedClaimProcessType.relatedClaims.length; relatedClaimIndex++) {\r\n\r\n var relatedClaim = relatedClaimProcessType.relatedClaims[relatedClaimIndex];\r\n var relatedClaimName = Enumerable.from(this.scope.relatedClaimLookup)\r\n .first(i => i.uniqueIdentifier === relatedClaim.claimUniqueId).claimName;\r\n\r\n let relatedClaimItemOptions = new models.TreeItemOptions(\r\n relatedClaimProcessType.id,\r\n relatedClaimName,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.RelatedClaim,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Claim,\r\n false);\r\n\r\n // TODO: Fix this when we have a need for a related claim with a value\r\n relatedClaimItemOptions.isClaimWithValue = false;\r\n\r\n relatedClaimItemOptions.claimUniqueId = relatedClaim.claimUniqueId;\r\n\r\n let relatedClaimItemStr: string = this.getTreeItemString(relatedClaimItemOptions);\r\n\r\n let relatedClaimNode = this.getNode(relatedClaimName,\r\n relatedClaimItemStr,\r\n \"glyphicon-lock\",\r\n null,\r\n null);\r\n\r\n relatedClaimTopNode.children.push(relatedClaimNode);\r\n }\r\n }\r\n processTopNode.children.push(relatedClaimTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"CodeGroups\")) {\r\n\r\n var codeGroupsTopNode = this.getTopNode(\"Code Groups\", false);\r\n\r\n if (processConfig.myCodeGroups) {\r\n var orderedProcessCodeGroups = Enumerable.from(processConfig.myCodeGroups)\r\n .orderBy(codeGroup => codeGroup.groupName)\r\n .toArray();\r\n\r\n for (let x = 0; x < orderedProcessCodeGroups.length; x++) {\r\n var codeGroupNode = this.getTopNode(orderedProcessCodeGroups[x].groupName, false);\r\n Enumerable.from(orderedProcessCodeGroups[x].codes).orderBy(code=> code.shortDescription).forEach(code => {\r\n codeGroupNode.children.push(this.constructTreeNodeForComplexGroupCode(code, Wars.Domain.Model.Codes.Enums.TreeItemSource.CodeGroup, false));\r\n });\r\n\r\n codeGroupsTopNode.children.push(codeGroupNode);\r\n }\r\n }\r\n\r\n processTopNode.children.push(codeGroupsTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"Conditions\")) {\r\n\r\n var conditionsTopNode = this.getTopNode(\"Conditions\", false);\r\n\r\n if (processConfig.myConditions) {\r\n var orderedProcessConditions = Enumerable.from(processConfig.myConditions)\r\n .orderBy(cond => cond.name)\r\n .toArray();\r\n\r\n for (let x = 0; x < orderedProcessConditions.length; x++) {\r\n if (this.scope.excludeItem && this.scope.excludeItem.conditionId === orderedProcessConditions[x].id) continue;\r\n conditionsTopNode.children.push(this.constructTreeConditionNode(orderedProcessConditions[x], false));\r\n }\r\n }\r\n\r\n processTopNode.children.push(conditionsTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"Constants\")) {\r\n\r\n var constantsTopNode = this.getTopNode(\"Constants\", false);\r\n\r\n if (processConfig.myConstants) {\r\n var orderedProcessConstants = Enumerable.from(processConfig.myConstants)\r\n .orderBy(i => i.name)\r\n .toArray();\r\n\r\n for (let x = 0; x < orderedProcessConstants.length; x++) {\r\n constantsTopNode.children.push(this.constructTreeConstantNode(orderedProcessConstants[x], false));\r\n }\r\n }\r\n processTopNode.children.push(constantsTopNode);\r\n }\r\n if (this.isProcessSectionAllowed(\"StaticDocuments\")) {\r\n var staticDocumentTopNode = this.getTopNode(\"Documents\", false);\r\n this.setStaticDocumentNodes(this.scope.configuration.myStaticDocuments, staticDocumentTopNode, false);\r\n processTopNode.children.push(staticDocumentTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"EmailGroups\")) {\r\n var processEmailGroupsTopNode = this.getTopNode(\"Email Groups\", false);\r\n this.setEmailGroupNodes(this.scope.configuration.myEmailGroups, processEmailGroupsTopNode, false);\r\n processTopNode.children.push(processEmailGroupsTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"Form\")) {\r\n let formTopNode = this.getTopNode(\"Forms\", false);\r\n\r\n\r\n var self = this;\r\n var forms = Enumerable.from(processConfig.myForms).orderBy(i => i.name);\r\n\r\n forms.forEach(form => {\r\n if (self.scope.includedFormIds && self.scope.includedFormIds.length > 0 &&\r\n !Enumerable.from(self.scope.includedFormIds).any(f => f === form.id)) {\r\n return;\r\n }\r\n\r\n if (form.formType === Wars.Domain.Model.Codes.Enums.FormType.Manage) return;\r\n\r\n let formId = form.id;\r\n let formNode = this.getTopNode(form.name, false);\r\n\r\n var steps = Enumerable.from(form.formSchema.properties).orderBy(i => i.typeSchema !== null ? i.typeSchema.name : i.name);\r\n\r\n steps.forEach(property => {\r\n if (property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Object ||\r\n property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.List) {\r\n\r\n if (property.typeSchema == null) return;\r\n\r\n let stepNode = this.getTopNode(property.typeSchema.name, false);\r\n\r\n var sections = Enumerable.from(property.typeSchema.properties).orderBy(i => i.typeSchema !== null ? i.typeSchema.name : i.name);\r\n sections.forEach(sectionProperty => {\r\n\r\n let listSectionId = sectionProperty.objectSchema_id;\r\n\r\n if (sectionProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Object || \r\n sectionProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.List) {\r\n let groupNode = this.getTopNode(sectionProperty.typeSchema.name, false);\r\n\r\n var fields = Enumerable.from(sectionProperty.typeSchema.properties)\r\n .where(i => i.propertyType !== Wars.Domain.Model.Codes.Enums.VariableType.None)\r\n .orderBy(i => i.name);\r\n\r\n fields.forEach(fieldProp => {\r\n if (!this.scope.isReporting || (this.scope.isReporting && fieldProp.isIndexed)) {\r\n\r\n let fieldNode = this.constructTreePropertySchemaNode(\r\n fieldProp,\r\n sectionProperty.typeSchema.isList ? listSectionId : undefined,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField,\r\n false,\r\n formId);\r\n\r\n groupNode.children.push(fieldNode);\r\n }\r\n });\r\n\r\n stepNode.children.push(groupNode);\r\n } else {\r\n if (!this.scope.isReporting || (this.scope.isReporting && sectionProperty.isIndexed)) {\r\n\r\n let fieldNode = this.constructTreePropertySchemaNode(\r\n sectionProperty,\r\n property.typeSchema.isList ? listSectionId : undefined,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField,\r\n false,\r\n formId);\r\n\r\n stepNode.children.push(fieldNode);\r\n }\r\n }\r\n });\r\n\r\n formNode.children.push(stepNode);\r\n } else {\r\n\r\n let fieldNode = this.constructTreePropertySchemaNode(\r\n property,\r\n undefined,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField,\r\n false,\r\n formId);\r\n\r\n formNode.children.push(fieldNode);\r\n }\r\n });\r\n\r\n //for (let i = 0; i < form.formSchema.properties.length; i++) {\r\n // var stepItemStr: string = this.getTreeItemString(form.mySteps[i].id, form.mySteps[i].objectSchema.name, Wars.Domain.Model.Codes.Enums.TreeItemSource.Step);\r\n // var node = this.getNode(form.mySteps[i].objectSchema.name, stepItemStr, \"glyphicon-signal\", null, null);\r\n\r\n // formNode.children.push(node);\r\n //}\r\n\r\n formTopNode.children.push(formNode);\r\n });\r\n\r\n processTopNode.children.push(formTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"InterProcessApi\")) {\r\n var interProcessApiTopNode = this.getTopNode(\"Inter-Process APIs\", false);\r\n\r\n\r\n for (var i = 0; i < this.scope.configuration.myInterProcessApis.length; i++) {\r\n var currentInterProcessApi = this.scope.configuration.myInterProcessApis[i];\r\n var apiTopNode = this.getTopNode(currentInterProcessApi.name, false);\r\n interProcessApiTopNode.children.push(apiTopNode);\r\n\r\n this.setSchemaNodes(\r\n currentInterProcessApi.myOutputSchema,\r\n apiTopNode,\r\n undefined,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.InterProcessApi,\r\n false,\r\n \"glyphicon glyphicon-road\",\r\n currentInterProcessApi.id);\r\n }\r\n processTopNode.children.push(interProcessApiTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"Queries\")) {\r\n\r\n var queryTopNode = this.getTopNode(\"Queries\", false);\r\n this.setQueryNodes(this.scope.processQueries, queryTopNode, false);\r\n processTopNode.children.push(queryTopNode);\r\n }\r\n\r\n if (this.isProcessSectionAllowed(\"Variables\")) {\r\n var processDataTopNode = this.getTopNode(\"Variables\", false);\r\n this.setSchemaNodes(this.scope.configuration.processDataSchema, processDataTopNode, undefined, Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable, false, \"glyphicon-floppy-disk\");\r\n processTopNode.children.push(processDataTopNode);\r\n }\r\n\r\n this.scope.tree.treeData.push(processTopNode);\r\n }\r\n }\r\n\r\n if (this.scope.tree.treeConfig.version) {\r\n this.scope.tree.treeConfig.version++;\r\n } else {\r\n this.scope.tree.treeConfig.version = 1;\r\n }\r\n\r\n this.treeLoaded = true;\r\n }\r\n\r\n private constructTreeQueryDataNode(property: Wars.Domain.Model.SchemaProperty, queryConfigurationId: string, listSectionId: string, isSystemLevel: boolean) {\r\n\r\n var queryDataOptions = new models.TreeItemOptions(\r\n property.id,\r\n property.name,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.Query,\r\n property.propertyType,\r\n isSystemLevel);\r\n\r\n queryDataOptions.listSectionId = listSectionId;\r\n queryDataOptions.queryConfigurationId = queryConfigurationId\r\n\r\n var queryDataStringified: string = this.getTreeItemString(queryDataOptions);\r\n\r\n return this.getNode(property.name, queryDataStringified, null, property.propertyType, null);\r\n }\r\n\r\n private constructTreePropertySchemaNode(\r\n property: Wars.Domain.Model.SchemaProperty,\r\n listSectionId: string,\r\n treeItemSource: Wars.Domain.Model.Codes.Enums.TreeItemSource,\r\n isSystemLevel: boolean,\r\n formId?: string,\r\n interProcessApiId?: string): any\r\n {\r\n var options = new models.TreeItemOptions(\r\n property.id,\r\n property.name,\r\n treeItemSource,\r\n property.propertyType,\r\n isSystemLevel);\r\n\r\n options.listSectionId = listSectionId;\r\n options.interProcessApiId = interProcessApiId;\r\n options.isRequired = property.required;\r\n\r\n if (property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Code) {\r\n return this.constructTreeNodeForComplexCode(options);\r\n }\r\n\r\n if (property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.User) {\r\n return this.constructTreeNodeForComplexUser(options);\r\n }\r\n\r\n if (property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Status) {\r\n return this.constructTreeNodeForComplexStatus(options);\r\n }\r\n\r\n if (property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.State) {\r\n return this.constructTreeNodeForComplexState(options);\r\n }\r\n\r\n if (property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.ScheduledResource) {\r\n return this.constructTreeNodeForComplexScheduledResource(options);\r\n }\r\n\r\n if (property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Date ||\r\n property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Time ||\r\n property.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime) {\r\n return this.constructTreeNodeForComplexDateTime(options);\r\n }\r\n\r\n var stringified: string = this.getTreeItemString(options);\r\n\r\n return this.getNode(property.name, stringified, null, property.propertyType, null);\r\n }\r\n\r\n private constructTreeNodeForComplexCode(options: models.TreeItemOptions): any\r\n {\r\n var topLevelString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n options.text,\r\n options.treeItemSource,\r\n options.variableType,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_Id,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var topLevelNode = this.getNode(options.text, topLevelString, null, options.variableType, null);\r\n\r\n var shortDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Short Description\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_ShortDescription,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var shortDescriptionNode = this.getNode(\"Short Description\", shortDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelNode.children.push(shortDescriptionNode);\r\n\r\n var longDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Long Description\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_LongDescription,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var longDescriptionNode = this.getNode(\"Long Description\", longDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelNode.children.push(longDescriptionNode);\r\n\r\n return topLevelNode;\r\n }\r\n\r\n private constructTreeNodeForComplexGroupCode(\r\n property: Wars.Domain.Model.Codes.SystemCode,\r\n treeItemSource: Wars.Domain.Model.Codes.Enums.TreeItemSource,\r\n isSystemLevel: boolean): any {\r\n var topLevelString: string = this.getTreeItemStringWithAllParmeters(\r\n property.id,\r\n property.shortDescription,\r\n treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Code,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_Id);\r\n\r\n var topLevelNode = this.getNode(property.shortDescription, topLevelString, null, Wars.Domain.Model.Codes.Enums.VariableType.Code, null);\r\n\r\n var shortDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n property.id,\r\n \"Short Description\",\r\n treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_ShortDescription);\r\n\r\n var shortDescriptionNode = this.getNode(\"Short Description\", shortDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelNode.children.push(shortDescriptionNode);\r\n\r\n var longDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n property.id,\r\n \"Long Description\",\r\n treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_LongDescription);\r\n\r\n var longDescriptionNode = this.getNode(\"Long Description\", longDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelNode.children.push(longDescriptionNode);\r\n\r\n return topLevelNode;\r\n }\r\n\r\n private constructTreeNodeForComplexUser(options: models.TreeItemOptions): any\r\n {\r\n var userTopLevelString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n options.text,\r\n options.treeItemSource,\r\n options.variableType,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Id,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var userTopLevelNode = this.getNode(options.text, userTopLevelString, null, options.variableType, null);\r\n\r\n var userNameString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Username\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_UserName,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var usernameNode = this.getNode(\"Username\", userNameString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(usernameNode);\r\n\r\n var firstNameString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"First Name\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_FirstName,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var firstNameNode = this.getNode(\"First Name\", firstNameString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(firstNameNode);\r\n\r\n var middleNameString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Middle Name\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_MiddleName,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var middleNameNode = this.getNode(\"Middle Name\", middleNameString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(middleNameNode);\r\n\r\n var lastNameString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Last Name\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_LastName,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var lastNameNode = this.getNode(\"Last Name\", lastNameString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(lastNameNode);\r\n\r\n var fullNameString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Full Name\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_FullName,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var fullNameNode = this.getNode(\"Full Name\", fullNameString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(fullNameNode);\r\n\r\n var emailString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Email\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Email,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var emailNode = this.getNode(\"Email\", emailString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(emailNode);\r\n\r\n var companyString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Company\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Company,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var companyNode = this.getNode(\"Company\", companyString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(companyNode);\r\n\r\n var phoneNumberString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Phone Number\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_PhoneNumber,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var phoneNumberNode = this.getNode(\"Phone Number\", phoneNumberString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(phoneNumberNode);\r\n\r\n var positionString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Position\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Position,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var positionNode = this.getNode(\"Position\", positionString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(positionNode);\r\n\r\n\r\n var externalSystemIdentifierString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"External System Identifier\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_ExternalSystemId,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var externalSystemIdentifierNode = this.getNode(\"External System Identifier\", externalSystemIdentifierString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n userTopLevelNode.children.push(externalSystemIdentifierNode);\r\n\r\n var claimsString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Claims\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Claims,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var claimsNode = this.getNode(\"Claims\", claimsString, null, Wars.Domain.Model.Codes.Enums.VariableType.List, null);\r\n userTopLevelNode.children.push(claimsNode);\r\n\r\n var claimsWithValues = Enumerable.from(this.scope.systemLevel.myClaims)\r\n .where(i => i.codeGroup_id !== null)\r\n .toArray();\r\n\r\n if (claimsWithValues.length > 0) {\r\n\r\n var userClaimValueTopLevel = this.getTopNode(\"Claim Values\", false);\r\n userTopLevelNode.children.push(userClaimValueTopLevel);\r\n \r\n for (var i = 0; i < claimsWithValues.length; i++) {\r\n let claimValuesString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n claimsWithValues[i].type,\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_ClaimValues,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n claimsWithValues[i].id,\r\n options.interProcessApiId);\r\n\r\n var claimValuesNode = this.getNode(claimsWithValues[i].type, claimValuesString, null, Wars.Domain.Model.Codes.Enums.VariableType.List, null);\r\n userTopLevelNode.children.push(claimValuesNode);\r\n }\r\n }\r\n\r\n return userTopLevelNode;\r\n }\r\n\r\n private constructTreeNodeForComplexStatus(options: models.TreeItemOptions): any {\r\n var topLevelString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n options.text,\r\n options.treeItemSource,\r\n options.variableType,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_Id,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var topLevelNode = this.getNode(options.text, topLevelString, null, options.variableType, null);\r\n\r\n var shortDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Short Description\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_ShortDescription,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var shortDescriptionNode = this.getNode(\"Short Description\", shortDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelNode.children.push(shortDescriptionNode);\r\n\r\n var longDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Long Description\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_LongDescription,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var longDescriptionNode = this.getNode(\"Long Description\", longDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelNode.children.push(longDescriptionNode);\r\n\r\n var effectiveDateNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Effective Date\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.DateTime,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_EffectiveDate,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var effectiveDate = this.getNode(\"Effective Date\", effectiveDateNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.DateTime, null);\r\n topLevelNode.children.push(effectiveDate);\r\n\r\n return topLevelNode;\r\n }\r\n\r\n private constructTreeNodeForComplexState(options: models.TreeItemOptions): any {\r\n var topLevelString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n options.text,\r\n options.treeItemSource,\r\n options.variableType,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_Id,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var topLevelNode = this.getNode(options.text, topLevelString, null, options.variableType, null);\r\n\r\n var shortDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Short Description\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_ShortDescription,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var shortDescriptionNode = this.getNode(\"Short Description\", shortDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelNode.children.push(shortDescriptionNode);\r\n\r\n var longDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Long Description\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_LongDescription,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var longDescriptionNode = this.getNode(\"Long Description\", longDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelNode.children.push(longDescriptionNode);\r\n\r\n var effectiveDateNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Effective Date\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.DateTime,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_EffectiveDate,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var effectiveDate = this.getNode(\"Effective Date\", effectiveDateNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.DateTime, null);\r\n topLevelNode.children.push(effectiveDate);\r\n\r\n return topLevelNode;\r\n }\r\n\r\n private constructTreeNodeForComplexScheduledResource(options: models.TreeItemOptions): any {\r\n var topLevelString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n options.text,\r\n options.treeItemSource,\r\n options.variableType,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_Id,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var topLevelNode = this.getNode(options.text, topLevelString, null, options.variableType, null);\r\n\r\n var topLevelCodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Resource Code\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Code,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_Code_Id,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var topLevelCodeNode = this.getNode(\"Resource Code\", topLevelCodeString, null, options.variableType, null);\r\n topLevelNode.children.push(topLevelCodeNode);\r\n\r\n var shortDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Short Description\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_Code_ShortDescription,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var shortDescriptionNode = this.getNode(\"Short Description\", shortDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelCodeNode.children.push(shortDescriptionNode);\r\n\r\n var longDescriptionNodeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Long Description\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_Code_LongDescription,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var longDescriptionNode = this.getNode(\"Long Description\", longDescriptionNodeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null);\r\n topLevelCodeNode.children.push(longDescriptionNode);\r\n\r\n var beginDateString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Begin Date\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.DateTime,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_BeginDate,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var beginDateNode = this.getNode(\"Begin Date\", beginDateString, null, Wars.Domain.Model.Codes.Enums.VariableType.DateTime, null);\r\n topLevelNode.children.push(beginDateNode);\r\n\r\n var endDateString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"End Date\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.DateTime,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheduledResource_EndDate,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var endDateNode = this.getNode(\"End Date\", endDateString, null, Wars.Domain.Model.Codes.Enums.VariableType.DateTime, null);\r\n topLevelNode.children.push(endDateNode);\r\n\r\n var isBookedString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Is Booked\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Boolean,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ScheudledResource_IsBooked,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var isBookedNode = this.getNode(\"Is Booked\", isBookedString, null, Wars.Domain.Model.Codes.Enums.VariableType.Boolean, null);\r\n topLevelNode.children.push(isBookedNode);\r\n\r\n return topLevelNode;\r\n }\r\n\r\n private constructTreeNodeForComplexDateTime(options: models.TreeItemOptions): any {\r\n var topLevelString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n options.text,\r\n options.treeItemSource,\r\n options.variableType,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_DateTime,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var topLevelNode = this.getNode(options.text, topLevelString, null, options.variableType, null);\r\n\r\n if (options.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Date ||\r\n options.variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime) {\r\n\r\n var shortDateString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Short Date\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortDate,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var shortDateNode = this.getNode(\"Short Date\", shortDateString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"6/15/2009\");\r\n topLevelNode.children.push(shortDateNode);\r\n\r\n var longDateString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Long Date\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongDate,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var longDateNode = this.getNode(\"Long Date\", longDateString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"Monday, June 15, 2009\");\r\n topLevelNode.children.push(longDateNode);\r\n }\r\n\r\n if (options.variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime) {\r\n var shortDateShortTimeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Short Date/Short Time\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortDateShortTime,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var shortDateShortTimeNode = this.getNode(\"Short Date/Short Time\", shortDateShortTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"6/15/2009 1:45 PM\");\r\n topLevelNode.children.push(shortDateShortTimeNode);\r\n\r\n var shortDateLongTimeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Short Date/Long Time\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortDateLongTime,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var shortDateLongTimeNode = this.getNode(\"Short Date/Long Time\", shortDateLongTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"6/15/2009 1:45:30 PM\");\r\n topLevelNode.children.push(shortDateLongTimeNode);\r\n\r\n var longDateShortTimeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Long Date/Short Time\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongDateShortTime,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var longDateShortTimeNode = this.getNode(\"Long Date/Short Time\", longDateShortTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"Monday, June 15, 2009 1:45 PM\");\r\n topLevelNode.children.push(longDateShortTimeNode);\r\n\r\n var longDateLongTimeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Long Date/Long Time\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongDateLongTime,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var longDateLongTimeNode = this.getNode(\"Long Date/Long Time\", longDateLongTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"Monday, June 15, 2009 1:45:30 PM\");\r\n topLevelNode.children.push(longDateLongTimeNode);\r\n }\r\n\r\n if (options.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Time ||\r\n options.variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime) {\r\n var shortTimeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Short Time\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortTime,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var shortTimeNode = this.getNode(\"Short Time\", shortTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"1:45 PM\");\r\n topLevelNode.children.push(shortTimeNode);\r\n\r\n var longTimeString: string = this.getTreeItemStringWithAllParmeters(\r\n options.id,\r\n \"Long Time\",\r\n options.treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n options.isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongTime,\r\n options.listSectionId,\r\n options.isClaimWithValue,\r\n options.queryConfigurationId,\r\n options.placeholder,\r\n options.isRequired,\r\n options.isPlaceholderList,\r\n options.userClaimDefinitionId,\r\n options.interProcessApiId);\r\n\r\n var longTimeNode = this.getNode(\"Long Time\", longTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"1:45:30 PM\");\r\n topLevelNode.children.push(longTimeNode);\r\n }\r\n\r\n return topLevelNode;\r\n }\r\n\r\n private constructTreeClaimGroupNode(\r\n property: Wars.Domain.Model.ClaimGroup,\r\n isSystemLevel: boolean,\r\n treeItemSource: Wars.Domain.Model.Codes.Enums.TreeItemSource): any {\r\n var stringified: string = this.getTreeItemStringWithAllParmeters(\r\n property.id,\r\n property.name,\r\n treeItemSource,\r\n Wars.Domain.Model.Codes.Enums.VariableType.ClaimGroup,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Code_Id);\r\n\r\n return this.getNode(property.name, stringified, null, Wars.Domain.Model.Codes.Enums.VariableType.ClaimGroup, null);\r\n }\r\n\r\n private constructTreeEmailGroupNode(emailGroup: Wars.Domain.Model.EmailGroup, isSystemLevel: boolean) {\r\n var stringified: string = this.getTreeItemStringWithAllParmeters(\r\n emailGroup.id,\r\n emailGroup.name,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.EmailGroup,\r\n Wars.Domain.Model.Codes.Enums.VariableType.EmailGroup, // Email Group GUID\r\n isSystemLevel);\r\n\r\n return this.getNode(emailGroup.name, stringified, \"glyphicon-envelope\", null, null);\r\n }\r\n\r\n\r\n private constructTreeDocumentNode(document: Wars.Domain.Model.StaticDocument, isSystemLevel: boolean) {\r\n var stringified: string = this.getTreeItemStringWithAllParmeters(\r\n document.id,\r\n document.name,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.Document,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Document, // Document Metadata GUID\r\n isSystemLevel);\r\n\r\n return this.getNode(document.name, stringified, \"glyphicon-file\", null, null);\r\n }\r\n\r\n private setQuerySchemaNodes(schema: Wars.Domain.Model.ObjectSchema, topNode: any, queryConfigId: string, listSectionId: string, isSystemLevel: boolean) {\r\n if (!schema || !schema.properties) return;\r\n schema.properties.forEach(prop => {\r\n var node;\r\n\r\n if (prop.typeSchema) {\r\n node = this.getTopNode(prop.name, false, prop.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.List ? \"glyphicon-th-list\" : \"glyphicon-certificate\");\r\n this.setQuerySchemaNodes(prop.typeSchema, node, queryConfigId, undefined, isSystemLevel);\r\n }\r\n else {\r\n node = this.constructTreeQueryDataNode(prop, queryConfigId, listSectionId, isSystemLevel);\r\n }\r\n\r\n topNode.children.push(node);\r\n });\r\n }\r\n\r\n private setSchemaNodes(\r\n schema: Wars.Domain.Model.ObjectSchema,\r\n topNode: any,\r\n listSectionId: string,\r\n treeItemSource: Wars.Domain.Model.Codes.Enums.TreeItemSource,\r\n isSystemLevel: boolean,\r\n itemIcon?: string,\r\n interProcessApiId?: string): void\r\n {\r\n if (!schema || !schema.properties) return;\r\n schema.properties.forEach(prop => {\r\n if (!this.scope.isReporting || (this.scope.isReporting && prop.isIndexed)) {\r\n var node;\r\n\r\n if (prop.typeSchema) {\r\n node = this.getTopNode(prop.name, false, prop.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.List ? \"glyphicon-th-list\" : itemIcon);\r\n this.setSchemaNodes(prop.typeSchema, node, prop.typeSchema.id, treeItemSource, isSystemLevel, itemIcon);\r\n }\r\n else {\r\n node = this.constructTreePropertySchemaNode(prop, listSectionId, treeItemSource, isSystemLevel, null, interProcessApiId);\r\n }\r\n\r\n topNode.children.push(node);\r\n }\r\n });\r\n }\r\n\r\n private setQueryNodes(queries: Wars.Domain.Model.QueryConfiguration[], topNode: any, isSystemLevel: boolean) {\r\n if (queries) {\r\n Enumerable.from(queries).orderBy(i => i.name).forEach(queryConfig => {\r\n var queryNode = this.getTopNode(queryConfig.name, false, queryConfig.myDataOperation.isArrayResult ? \"glyphicon-th-list\" : \"glyphicon-question-sign\");\r\n\r\n this.setQuerySchemaNodes(queryConfig.myDataOperation.resultSchema, queryNode, queryConfig.id, undefined, isSystemLevel);\r\n\r\n topNode.children.push(queryNode);\r\n });\r\n }\r\n }\r\n\r\n private setClaimGroupNodes(claimGroups: Wars.Domain.Model.ClaimGroup[], topNode: any, isSystemLevel: boolean) {\r\n if (claimGroups) {\r\n Enumerable.from(claimGroups).orderBy(i => i.name).forEach(claimGroup => {\r\n var claimGroupNode = this.constructTreeClaimGroupNode(claimGroup, isSystemLevel, Wars.Domain.Model.Codes.Enums.TreeItemSource.ClaimGroup);\r\n topNode.children.push(claimGroupNode);\r\n });\r\n }\r\n }\r\n\r\n private setEmailGroupNodes(emailGroups: Wars.Domain.Model.EmailGroup[], topNode: any, isSystemLevel: boolean) {\r\n if (emailGroups) {\r\n Enumerable.from(emailGroups).orderBy(i => i.name).forEach(emailGroup => {\r\n var emailGroupNode = this.constructTreeEmailGroupNode(emailGroup, isSystemLevel);\r\n topNode.children.push(emailGroupNode);\r\n });\r\n }\r\n }\r\n\r\n private setStaticDocumentNodes(staticDocuments: Wars.Domain.Model.StaticDocument[], topNode: any, isSystemLevel: boolean) {\r\n if (staticDocuments) {\r\n Enumerable.from(staticDocuments).orderBy(i => i.name).forEach(staticDocument => {\r\n var staticDocumentNode = this.constructTreeDocumentNode(staticDocument, isSystemLevel);\r\n topNode.children.push(staticDocumentNode);\r\n });\r\n }\r\n }\r\n\r\n private getTopNode(name: string, isOpen: Boolean, glyphicon?: string): any {\r\n var topNode = {\r\n text: name,\r\n state: {\r\n opened: isOpen\r\n },\r\n children: [],\r\n icon: null\r\n };\r\n\r\n if (glyphicon) {\r\n topNode.icon = \"glyphicon \" + glyphicon;\r\n }\r\n\r\n return topNode;\r\n }\r\n\r\n private getNode(\r\n text: string,\r\n treeItemStringified: string,\r\n glyphicon: string,\r\n variableType?: Wars.Domain.Model.Codes.Enums.VariableType,\r\n fieldType?: Wars.Domain.Model.Codes.Enums.FieldType,\r\n title?: string): any {\r\n let icon = \"\";\r\n\r\n if (variableType !== undefined && variableType !== null) {\r\n icon = this.getIconForVariableType(variableType);\r\n }\r\n else if (fieldType !== undefined && fieldType !== null) {\r\n icon = this.getIconForFieldType(fieldType);\r\n }\r\n else if (glyphicon) {\r\n icon = `glyphicon ${glyphicon}`;\r\n }\r\n\r\n var node = {\r\n text: text,\r\n icon: icon,\r\n li_attr: {\r\n ondragstart: \"localStorage.setItem('treeDrag','\" + ProcessConfigurationTree.encodeStringifiedTreeItem(treeItemStringified) + \"');event.stopPropagation();\",\r\n warsInfo: treeItemStringified,\r\n draggable: true,\r\n title: title\r\n },\r\n children: []\r\n };\r\n\r\n return node;\r\n }\r\n\r\n private isProcessTopLevelAllowed(): boolean {\r\n if (!this.restrictionsDefined || this.processSectionAllowed) return true;\r\n return false;\r\n }\r\n\r\n private isSystemTopLevelAllowed(): boolean {\r\n if (!this.restrictionsDefined || this.systemSectionsAllowed) return true;\r\n return false;\r\n }\r\n\r\n private isProcessSectionAllowed(sectionType: string): boolean {\r\n return !this.restrictionsDefined ||\r\n !this.processSectionAllowed || this.processSectionAllowed.length === 0 ||\r\n this.processSectionAllowed.indexOf(sectionType) !== -1;\r\n }\r\n\r\n private isSystemSectionAllowed(sectionType: string): boolean {\r\n return !this.restrictionsDefined ||\r\n this.systemSectionsAllowed.length === 0 || this.systemSectionsAllowed.indexOf(sectionType) !== -1;\r\n }\r\n\r\n private getTreeItemStringWithAllParmeters(\r\n id: string,\r\n text: string,\r\n treeItemSource: Wars.Domain.Model.Codes.Enums.TreeItemSource,\r\n variableType: Wars.Domain.Model.Codes.Enums.VariableType,\r\n isSystemLevel: boolean,\r\n complexObjectProperty?: Wars.Domain.Model.Codes.Enums.ComplexObjectProperty,\r\n listSectionId?: string,\r\n isClaimWithValue?: boolean,\r\n queryConfigurationId?: string,\r\n placeholder?: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n isRequired?: boolean,\r\n isPlaceholderList?: boolean,\r\n userClaimDefinitionId?: string,\r\n interProcessApiId?: string): string\r\n {\r\n var options = new models.TreeItemOptions(\r\n id,\r\n text,\r\n treeItemSource,\r\n variableType,\r\n isSystemLevel);\r\n\r\n options.complexObjectProperty = complexObjectProperty;\r\n options.listSectionId = listSectionId;\r\n options.isClaimWithValue = isClaimWithValue;\r\n options.queryConfigurationId = queryConfigurationId;\r\n options.placeholder = placeholder;\r\n options.isRequired = isRequired;\r\n options.isPlaceholderList = isPlaceholderList;\r\n options.userClaimDefinitionId = userClaimDefinitionId;\r\n options.interProcessApiId = interProcessApiId;\r\n\r\n return this.getTreeItemString(options);\r\n }\r\n\r\n private getTreeItemString(treeItemOptions: models.TreeItemOptions): string {\r\n\r\n var treeConfigurationItem: models.TreeConfigurationItem = new models.TreeConfigurationItem();\r\n\r\n treeConfigurationItem.variableType = treeItemOptions.variableType;\r\n treeConfigurationItem.isClaimWithValue = treeItemOptions.isClaimWithValue !== undefined && treeItemOptions.isClaimWithValue;\r\n treeConfigurationItem.treeItemSource = treeItemOptions.treeItemSource;\r\n treeConfigurationItem.isSystemLevel = treeItemOptions.isSystemLevel;\r\n treeConfigurationItem.isList = treeItemOptions.listSectionId !== undefined || (treeItemOptions.isPlaceholderList === true);\r\n treeConfigurationItem.text = treeItemOptions.text;\r\n treeConfigurationItem.isRequired = !(treeItemOptions.isRequired === undefined || treeItemOptions.isRequired === false);\r\n treeConfigurationItem.complexObjectProperty = treeItemOptions.complexObjectProperty;\r\n treeConfigurationItem.userClaimDefinitionId = treeItemOptions.userClaimDefinitionId;\r\n treeConfigurationItem.claimUniqueId = treeItemOptions.claimUniqueId;\r\n\r\n switch (treeItemOptions.treeItemSource) {\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.Calculation:\r\n treeConfigurationItem.calculationId = treeItemOptions.id;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.Claim:\r\n treeConfigurationItem.claimId = treeItemOptions.id;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.Condition:\r\n treeConfigurationItem.conditionId = treeItemOptions.id;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.Constant:\r\n treeConfigurationItem.constantId = treeItemOptions.id;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.Document:\r\n treeConfigurationItem.staticDocumentId = treeItemOptions.id;\r\n treeConfigurationItem.treeItemSource = Wars.Domain.Model.Codes.Enums.TreeItemSource.Document;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.EmailGroup:\r\n treeConfigurationItem.emailGroupId = treeItemOptions.id;\r\n treeConfigurationItem.treeItemSource = Wars.Domain.Model.Codes.Enums.TreeItemSource.EmailGroup;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField:\r\n if (treeConfigurationItem.isList) {\r\n treeConfigurationItem.listSectionId = treeItemOptions.listSectionId;\r\n treeConfigurationItem.listPropertyId = treeItemOptions.id;\r\n treeConfigurationItem.schemaPropertyId = treeItemOptions.id;\r\n } else {\r\n treeConfigurationItem.schemaPropertyId = treeItemOptions.id;\r\n }\r\n\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.OperationParameter:\r\n treeConfigurationItem.schemaPropertyId = treeItemOptions.id;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.Query:\r\n treeConfigurationItem.queryId = treeItemOptions.queryConfigurationId;\r\n treeConfigurationItem.schemaPropertyId = treeItemOptions.id;\r\n treeConfigurationItem.treeItemSource = Wars.Domain.Model.Codes.Enums.TreeItemSource.Query;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.Step:\r\n treeConfigurationItem.stepId = treeItemOptions.id;\r\n treeConfigurationItem.treeItemSource = Wars.Domain.Model.Codes.Enums.TreeItemSource.Step;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable:\r\n if (treeConfigurationItem.isList) {\r\n treeConfigurationItem.listSectionId = treeItemOptions.listSectionId;\r\n treeConfigurationItem.listPropertyId = treeItemOptions.id;\r\n treeConfigurationItem.schemaPropertyId = treeItemOptions.id;\r\n } else {\r\n treeConfigurationItem.schemaPropertyId = treeItemOptions.id;\r\n }\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder:\r\n treeConfigurationItem.placeholder = treeItemOptions.placeholder;\r\n treeConfigurationItem.treeItemSource = Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.TimeTracker:\r\n treeConfigurationItem.timeTrackerId = treeItemOptions.id;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.CodeGroup:\r\n treeConfigurationItem.systemCodeId = treeItemOptions.id;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.ClaimGroup:\r\n treeConfigurationItem.claimGroupId = treeItemOptions.id;\r\n treeConfigurationItem.treeItemSource = Wars.Domain.Model.Codes.Enums.TreeItemSource.ClaimGroup;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.InterProcessApi:\r\n if (treeConfigurationItem.isList) {\r\n treeConfigurationItem.listSectionId = treeItemOptions.listSectionId;\r\n treeConfigurationItem.listPropertyId = treeItemOptions.id;\r\n treeConfigurationItem.schemaPropertyId = treeItemOptions.id;\r\n } else {\r\n treeConfigurationItem.schemaPropertyId = treeItemOptions.id;\r\n }\r\n treeConfigurationItem.interProcessApiId = treeItemOptions.interProcessApiId;\r\n treeConfigurationItem.treeItemSource = Wars.Domain.Model.Codes.Enums.TreeItemSource.InterProcessApi;\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.TreeItemSource.RelatedClaim:\r\n treeConfigurationItem.relatedClaimProcessTypeId = treeItemOptions.id;\r\n break;\r\n default:\r\n alert(\"Do not recognize this tree item source: \" + treeItemOptions.treeItemSource);\r\n break;\r\n }\r\n\r\n return JSON.stringify(treeConfigurationItem);\r\n }\r\n\r\n private constructTreeConstantNode(constant: Wars.Domain.Model.ConstantValue, isSystemLevel: boolean): any {\r\n var options = new models.TreeItemOptions(\r\n constant.id,\r\n constant.name,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.Constant,\r\n constant.variableType,\r\n isSystemLevel);\r\n\r\n var str: string = this.getTreeItemString(options);\r\n\r\n return this.getNode(constant.name, str, null, constant.variableType, null);\r\n }\r\n\r\n private constructTreeCodeGroupNode(codeGroup: Wars.Domain.Model.Codes.CodeGroup, isSystemLevel: boolean): any {\r\n var options = new models.TreeItemOptions(\r\n codeGroup.id,\r\n codeGroup.groupName,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.CodeGroup,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Code, //TODO - Kevin should this be something else?\r\n isSystemLevel);\r\n \r\n var codeGroupStringified: string = this.getTreeItemString(options);\r\n\r\n return this.getNode(codeGroup.groupName, codeGroupStringified, null, null);\r\n }\r\n\r\n private constructTreeConditionNode(condition: Wars.Domain.Model.Conditions.Condition, isSystemLevel: boolean): any {\r\n var options = new models.TreeItemOptions(\r\n condition.id,\r\n condition.name,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.Condition,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Boolean,\r\n isSystemLevel);\r\n\r\n var conditionStringified: string = this.getTreeItemString(options);\r\n \r\n return this.getNode(condition.name, conditionStringified, \"glyphicon-copyright-mark\", null, null);\r\n }\r\n\r\n private constructTreeCalcuationNode(calculation: Wars.Domain.Model.Calculations.Calculation, isSystemLevel: boolean): any {\r\n var options = new models.TreeItemOptions(\r\n calculation.id,\r\n calculation.name,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.Calculation,\r\n calculation.valueOperation.variableType,\r\n isSystemLevel);\r\n\r\n options.isPlaceholderList = calculation.isList;\r\n\r\n var calculationStringified: string = this.getTreeItemString(options);\r\n \r\n return this.getNode(calculation.name, calculationStringified, \"glyphicon-superscript\", null, null);\r\n }\r\n\r\n private getIconForFieldType(variableType: Wars.Domain.Model.Codes.Enums.FieldType): string {\r\n var icon: string;\r\n switch (variableType) {\r\n case Wars.Domain.Model.Codes.Enums.FieldType.TextBox:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.TextArea:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Zipcode:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.EmailAddress:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Url:\r\n icon = \"glyphicon glyphicon-text-width\";\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Number:\r\n icon = \"glyphicon glyphicon-italic\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.PhoneNumber:\r\n icon = \"glyphicon glyphicon-earphone\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Date:\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Time:\r\n icon = \"glyphicon glyphicon-calendar\";\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.FieldType.CheckBox:\r\n icon = \"glyphicon glyphicon-check\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.Currency:\r\n icon = \"glyphicon glyphicon-usd\";\r\n break;\r\n case Wars.Domain.Model.Codes.Enums.FieldType.DocumentUpload:\r\n icon = \"glyphicon glyphicon-paperclip\";\r\n break;\r\n default:\r\n icon = \"glyphicon glyphicon-pencil\";\r\n }\r\n return icon;\r\n }\r\n\r\n private getIconForVariableType(variableType: Wars.Domain.Model.Codes.Enums.VariableType): string {\r\n var icon: string;\r\n switch (variableType) {\r\n case Wars.Domain.Model.Codes.Enums.VariableType.String:\r\n icon = \"glyphicon glyphicon-text-width\";\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Integer:\r\n icon = \"glyphicon glyphicon-italic\";\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Decimal:\r\n icon = \"glyphicon glyphicon-sound-5-1\";\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.DateTime:\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Date:\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Time:\r\n icon = \"glyphicon glyphicon-calendar\";\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.Boolean:\r\n icon = \"glyphicon glyphicon-check\";\r\n break;\r\n\r\n case Wars.Domain.Model.Codes.Enums.VariableType.List:\r\n icon = \"glyphicon glyphicon-th-list\";\r\n break;\r\n\r\n default:\r\n icon = \"glyphicon glyphicon-asterisk\";\r\n }\r\n return icon;\r\n }\r\n\r\n private getPlaceholderTreeItemString(\r\n label: string,\r\n variableType: Wars.Domain.Model.Codes.Enums.VariableType,\r\n isSystemLevel: boolean,\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n complexObjectProperty?: Wars.Domain.Model.Codes.Enums.ComplexObjectProperty,\r\n isList?: boolean,\r\n userClaimDefinitionId?: string): string {\r\n\r\n var options = new models.TreeItemOptions(\r\n \"0\",\r\n label,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n variableType,\r\n isSystemLevel);\r\n\r\n options.complexObjectProperty = complexObjectProperty;\r\n options.placeholder = placeholder;\r\n options.isPlaceholderList = isList;\r\n options.userClaimDefinitionId = userClaimDefinitionId;\r\n\r\n return this.getTreeItemString(options);\r\n }\r\n\r\n private createNewPlaceHolderTreeNode(\r\n label: string,\r\n variableType: Wars.Domain.Model.Codes.Enums.VariableType,\r\n isSystemLevel: boolean,\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n complexObjectProperty?: Wars.Domain.Model.Codes.Enums.ComplexObjectProperty,\r\n isList?: boolean,\r\n userClaimDefinitionId?: string): any\r\n {\r\n var placeHolderString = this.getPlaceholderTreeItemString(\r\n label,\r\n variableType,\r\n isSystemLevel,\r\n placeholder,\r\n complexObjectProperty,\r\n isList,\r\n userClaimDefinitionId);\r\n\r\n return this.getNode(label, placeHolderString, undefined, variableType, null);\r\n }\r\n\r\n private addNewPlaceholderTreeNode(\r\n parentNode: any,\r\n label: string,\r\n variableType: Wars.Domain.Model.Codes.Enums.VariableType,\r\n isSystemLevel: boolean,\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n complexObjectProperty?: Wars.Domain.Model.Codes.Enums.ComplexObjectProperty,\r\n isList?: boolean,\r\n userClaimDefinitionId?: string): any {\r\n\r\n var newPlaceholderNode = this.createNewPlaceHolderTreeNode(\r\n label,\r\n variableType,\r\n isSystemLevel,\r\n placeholder,\r\n complexObjectProperty,\r\n isList,\r\n userClaimDefinitionId);\r\n\r\n parentNode.children.push(newPlaceholderNode);\r\n\r\n return newPlaceholderNode;\r\n }\r\n\r\n private addPlaceholderUserNodes(\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n isSystemLevel: boolean,\r\n parentNode: any): void {\r\n\r\n var topNodeName = placeholder === Wars.Domain.Model.Codes.Enums.Placeholder.CurrentUser\r\n ? \"Current User\"\r\n : \"Process Initiator\";\r\n\r\n var userTopLevelNode = this.addNewPlaceholderTreeNode(\r\n parentNode,\r\n topNodeName,\r\n Wars.Domain.Model.Codes.Enums.VariableType.User,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Id);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"Username\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_UserName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"First Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_FirstName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"Middle Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_MiddleName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"Last Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_LastName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"Full Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_FullName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"Email\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Email);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"Company\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Company);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"Phone Number\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_PhoneNumber);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"Position\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Position);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"External System Identifier\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_ExternalSystemId);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userTopLevelNode,\r\n \"Claims\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_Claims,\r\n true);\r\n\r\n var claimsWithValues = Enumerable.from(this.scope.systemLevel.myClaims)\r\n .where(i => i.codeGroup_id !== null)\r\n .toArray();\r\n\r\n if (claimsWithValues.length > 0) {\r\n\r\n var userClaimValueTopLevel = this.getTopNode(\"Claim Values\", false);\r\n userTopLevelNode.children.push(userClaimValueTopLevel);\r\n\r\n for (var i = 0; i < claimsWithValues.length; i++) {\r\n this.addNewPlaceholderTreeNode(\r\n userClaimValueTopLevel,\r\n claimsWithValues[i].type,\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.User_ClaimValues,\r\n true,\r\n claimsWithValues[i].id);\r\n }\r\n }\r\n }\r\n\r\n private addPlaceholderReviewNodes(\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n isSystemLevel: boolean,\r\n parentNode: any): void {\r\n\r\n var topNodeName = \"Current Review\";\r\n\r\n var reviewTopLevelNode = this.addNewPlaceholderTreeNode(\r\n parentNode,\r\n topNodeName,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Review,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Id);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n reviewTopLevelNode,\r\n \"Comment\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Comment);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n reviewTopLevelNode,\r\n \"Is Complete\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Boolean,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_IsComplete);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n reviewTopLevelNode,\r\n \"Assigned Date\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Date,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_AssignedDate);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n reviewTopLevelNode,\r\n \"Due Date\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Date,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_DueDate);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n reviewTopLevelNode,\r\n \"Closed Date\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Date,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_ClosedDate);\r\n\r\n var reviewTypeLevelNode =this.addNewPlaceholderTreeNode(\r\n reviewTopLevelNode,\r\n \"Review Type\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Code,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Type_Id);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n reviewTypeLevelNode,\r\n \"Short Description\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Type_ShortDescription);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n reviewTypeLevelNode,\r\n \"Long Description\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Type_LongDescription);\r\n\r\n var assigneeNode = this.getTopNode(\"Assignee\", false);\r\n var assignorNode = this.getTopNode(\"Assignor\", false);\r\n\r\n reviewTopLevelNode.children.push(assigneeNode);\r\n reviewTopLevelNode.children.push(assignorNode);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Assigned User\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.User,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_AssignedUser_Id,\r\n true);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"First Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_FirstName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Middle Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_MiddleName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Last Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_LastName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Full Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_FullName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Email\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_Email);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Company\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_Company);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Phone Number\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_PhoneNumber);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Position\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_Position);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Claims\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_Claims,\r\n true);\r\n\r\n var claimsWithValues = Enumerable.from(this.scope.systemLevel.myClaims)\r\n .where(i => i.codeGroup_id !== null)\r\n .toArray();\r\n\r\n if (claimsWithValues.length > 0) {\r\n\r\n let userClaimValueTopLevel = this.getTopNode(\"Claim Values\", false);\r\n assigneeNode.children.push(userClaimValueTopLevel);\r\n\r\n for (var i = 0; i < claimsWithValues.length; i++) {\r\n this.addNewPlaceholderTreeNode(\r\n userClaimValueTopLevel,\r\n claimsWithValues[i].type,\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignee_ClaimValues,\r\n true,\r\n claimsWithValues[i].id);\r\n }\r\n }\r\n\r\n\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Assignor User\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.User,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_AssignorUser_Id,\r\n true);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"First Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_FirstName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Middle Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_MiddleName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Last Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_LastName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Full Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_FullName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Email\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_Email);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Company\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_Company);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Phone Number\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_PhoneNumber);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Position\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_Position);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Claims\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_Claims,\r\n true);\r\n\r\n var claimsWithValues = Enumerable.from(this.scope.systemLevel.myClaims)\r\n .where(i => i.codeGroup_id !== null)\r\n .toArray();\r\n\r\n if (claimsWithValues.length > 0) {\r\n\r\n let userClaimValueTopLevel = this.getTopNode(\"Claim Values\", false);\r\n assignorNode.children.push(userClaimValueTopLevel);\r\n\r\n for (var i = 0; i < claimsWithValues.length; i++) {\r\n this.addNewPlaceholderTreeNode(\r\n userClaimValueTopLevel,\r\n claimsWithValues[i].type,\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_Assignor_ClaimValues,\r\n true,\r\n claimsWithValues[i].id);\r\n }\r\n }\r\n\r\n //this.addNewPlaceholderTreeNode(\r\n // reviewTopLevelNode,\r\n // \"Assigned User\",\r\n // Wars.Domain.Model.Codes.Enums.VariableType.User,\r\n // isSystemLevel,\r\n // placeholder,\r\n // Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_AssignedUser_Id,\r\n // true);\r\n\r\n //this.addNewPlaceholderTreeNode(\r\n // reviewTopLevelNode,\r\n // \"Assignor User\",\r\n // Wars.Domain.Model.Codes.Enums.VariableType.User,\r\n // isSystemLevel,\r\n // placeholder,\r\n // Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Review_AssignorUser_Id,\r\n // true);\r\n }\r\n\r\n private addPlaceholderAssignmentNodes(\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n isSystemLevel: boolean,\r\n parentNode: any): void {\r\n\r\n var topNodeName = \"Current Assignment\";\r\n\r\n var assignmentTopLevelNode = this.addNewPlaceholderTreeNode(\r\n parentNode,\r\n topNodeName,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Assignment,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Id);\r\n\r\n var assigneeNode = this.getTopNode(\"Assignee\", false);\r\n var assignorNode = this.getTopNode(\"Assignor\", false);\r\n\r\n assignmentTopLevelNode.children.push(assigneeNode);\r\n assignmentTopLevelNode.children.push(assignorNode);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Assigned User\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.User,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Id,\r\n true);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"First Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_FirstName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Middle Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_MiddleName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Last Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_LastName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Full Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_FullName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Email\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Email);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Company\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Company);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Phone Number\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_PhoneNumber);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Position\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Position);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assigneeNode,\r\n \"Claims\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_Claims,\r\n true);\r\n\r\n var claimsWithValues = Enumerable.from(this.scope.systemLevel.myClaims)\r\n .where(i => i.codeGroup_id !== null)\r\n .toArray();\r\n\r\n if (claimsWithValues.length > 0) {\r\n\r\n let userClaimValueTopLevel = this.getTopNode(\"Claim Values\", false);\r\n assigneeNode.children.push(userClaimValueTopLevel);\r\n\r\n for (var i = 0; i < claimsWithValues.length; i++) {\r\n this.addNewPlaceholderTreeNode(\r\n userClaimValueTopLevel,\r\n claimsWithValues[i].type,\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignee_ClaimValues,\r\n true,\r\n claimsWithValues[i].id);\r\n }\r\n }\r\n\r\n\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Assignor User\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.User,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Id,\r\n true);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"First Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_FirstName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Middle Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_MiddleName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Last Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_LastName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Full Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_FullName);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Email\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Email);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Company\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Company);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Phone Number\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_PhoneNumber);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Position\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Position);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n assignorNode,\r\n \"Claims\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_Claims,\r\n true);\r\n\r\n var claimsWithValues = Enumerable.from(this.scope.systemLevel.myClaims)\r\n .where(i => i.codeGroup_id !== null)\r\n .toArray();\r\n\r\n if (claimsWithValues.length > 0) {\r\n\r\n let userClaimValueTopLevel = this.getTopNode(\"Claim Values\", false);\r\n assignorNode.children.push(userClaimValueTopLevel);\r\n\r\n for (var i = 0; i < claimsWithValues.length; i++) {\r\n this.addNewPlaceholderTreeNode(\r\n userClaimValueTopLevel,\r\n claimsWithValues[i].type,\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Assignment_Assignor_ClaimValues,\r\n true,\r\n claimsWithValues[i].id);\r\n }\r\n }\r\n }\r\n\r\n private addPlaceholderUserActionNodes(\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n isSystemLevel: boolean,\r\n parentNode: any): void {\r\n\r\n var userActionTopLevelNode = this.getTopNode(\"Current User Action\", false);\r\n parentNode.children.push(userActionTopLevelNode);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userActionTopLevelNode,\r\n \"Comment\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.UserAction_Comment);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userActionTopLevelNode,\r\n \"Uploaded Attachments\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Document,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.UserAction_Documents,\r\n true);\r\n\r\n this.addNewPlaceholderDateTimeNodes(\r\n userActionTopLevelNode,\r\n \"Effective Date\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.DateTime,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.UserAction_EffectiveDate);\r\n }\r\n\r\n private addPlaceholderProcessEventNodes(\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n isSystemLevel: boolean,\r\n parentNode: any): void {\r\n\r\n var userActionTopLevelNode = this.getTopNode(\"Current Process Event\", false);\r\n parentNode.children.push(userActionTopLevelNode);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userActionTopLevelNode,\r\n \"Comment\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ProcessEvent_Comment);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n userActionTopLevelNode,\r\n \"Uploaded Attachments\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Document,\r\n isSystemLevel,\r\n placeholder,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.ProcessEvent_Documents,\r\n true);\r\n }\r\n\r\n private addNewCodeGroupTreeNode(\r\n parentNode: any,\r\n label: string,\r\n variableType: Wars.Domain.Model.Codes.Enums.VariableType,\r\n isSystemLevel: boolean,\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n complexObjectProperty?: Wars.Domain.Model.Codes.Enums.ComplexObjectProperty,\r\n isList?: boolean): any {\r\n\r\n var newPlaceholderNode = this.createNewPlaceHolderTreeNode(\r\n label,\r\n variableType,\r\n isSystemLevel,\r\n placeholder,\r\n complexObjectProperty,\r\n isList);\r\n\r\n parentNode.children.push(newPlaceholderNode);\r\n\r\n return newPlaceholderNode;\r\n }\r\n\r\n addNewPlaceholderDateTimeNodes(\r\n parentNode: any,\r\n label: string,\r\n variableType: Wars.Domain.Model.Codes.Enums.VariableType,\r\n isSystemLevel: boolean,\r\n placeholder: Wars.Domain.Model.Codes.Enums.Placeholder,\r\n complexObjectProperty: Wars.Domain.Model.Codes.Enums.ComplexObjectProperty): void {\r\n\r\n var topLevelOptions = new models.TreeItemOptions(\r\n undefined,\r\n label,\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n variableType,\r\n isSystemLevel);\r\n\r\n topLevelOptions.complexObjectProperty = complexObjectProperty;\r\n topLevelOptions.placeholder = placeholder;\r\n\r\n var topLevelString: string = this.getTreeItemString(topLevelOptions);\r\n\r\n\r\n var topLevelNode = this.getNode(label, topLevelString, null, variableType, null);\r\n\r\n if (variableType === Wars.Domain.Model.Codes.Enums.VariableType.Date ||\r\n variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime) {\r\n\r\n var dateOptions = new models.TreeItemOptions(\r\n undefined,\r\n \"Short Date\",\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel);\r\n\r\n dateOptions.complexObjectProperty = Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortDate;\r\n dateOptions.placeholder = placeholder;\r\n\r\n var shortDateString: string = this.getTreeItemString(dateOptions);\r\n\r\n var shortDateNode = this.getNode(\"Short Date\", shortDateString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"6/15/2009\");\r\n topLevelNode.children.push(shortDateNode);\r\n\r\n var longDateOptions = new models.TreeItemOptions(\r\n undefined,\r\n \"Long Date\",\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel);\r\n\r\n longDateOptions.complexObjectProperty = Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongDate;\r\n longDateOptions.placeholder = placeholder;\r\n\r\n var longDateString: string = this.getTreeItemString(longDateOptions);\r\n \r\n var longDateNode = this.getNode(\"Long Date\", longDateString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"Monday, June 15, 2009\");\r\n topLevelNode.children.push(longDateNode);\r\n }\r\n\r\n if (variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime) {\r\n var shortDateShortTimeOptions = new models.TreeItemOptions(\r\n undefined,\r\n \"Short Date/Short Time\",\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel);\r\n\r\n shortDateShortTimeOptions.complexObjectProperty = Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortDateShortTime;\r\n shortDateShortTimeOptions.placeholder = placeholder;\r\n\r\n var shortDateShortTimeString: string = this.getTreeItemString(shortDateShortTimeOptions);\r\n \r\n var shortDateShortTimeNode = this.getNode(\"Short Date/Short Time\", shortDateShortTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"6/15/2009 1:45 PM\");\r\n topLevelNode.children.push(shortDateShortTimeNode);\r\n\r\n var shortDateLongTimeOptions = new models.TreeItemOptions(\r\n undefined,\r\n \"Short Date/Long Time\",\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel);\r\n shortDateLongTimeOptions.complexObjectProperty = Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortDateLongTime;\r\n shortDateLongTimeOptions.placeholder = placeholder;\r\n\r\n var shortDateLongTimeString: string = this.getTreeItemString(shortDateLongTimeOptions);\r\n \r\n\r\n var shortDateLongTimeNode = this.getNode(\"Short Date/Long Time\", shortDateLongTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"6/15/2009 1:45:30 PM\");\r\n topLevelNode.children.push(shortDateLongTimeNode);\r\n\r\n var longDateShortTimeOptions = new models.TreeItemOptions(\r\n undefined,\r\n \"Long Date/Short Time\",\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel);\r\n longDateShortTimeOptions.complexObjectProperty = Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongDateShortTime;\r\n longDateShortTimeOptions.placeholder = placeholder;\r\n\r\n var longDateShortTimeString: string = this.getTreeItemString(longDateShortTimeOptions);\r\n \r\n\r\n var longDateShortTimeNode = this.getNode(\"Long Date/Short Time\", longDateShortTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"Monday, June 15, 2009 1:45 PM\");\r\n topLevelNode.children.push(longDateShortTimeNode);\r\n\r\n var longDateLongTimeOptions = new models.TreeItemOptions(\r\n undefined,\r\n \"Long Date/Long Time\",\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel);\r\n longDateLongTimeOptions.complexObjectProperty = Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongDateLongTime;\r\n longDateLongTimeOptions.placeholder = placeholder;\r\n\r\n var longDateLongTimeString: string = this.getTreeItemString(longDateLongTimeOptions);\r\n\r\n var longDateLongTimeNode = this.getNode(\"Long Date/Long Time\", longDateLongTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"Monday, June 15, 2009 1:45:30 PM\");\r\n topLevelNode.children.push(longDateLongTimeNode);\r\n }\r\n\r\n if (variableType === Wars.Domain.Model.Codes.Enums.VariableType.Time ||\r\n variableType === Wars.Domain.Model.Codes.Enums.VariableType.DateTime) {\r\n\r\n var shortTimeOptions = new models.TreeItemOptions(\r\n undefined,\r\n \"Short Time\",\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel);\r\n shortTimeOptions.complexObjectProperty = Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_ShortTime;\r\n shortTimeOptions.placeholder = placeholder;\r\n\r\n var shortTimeString: string = this.getTreeItemString(shortTimeOptions);\r\n\r\n var shortTimeNode = this.getNode(\"Short Time\", shortTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"1:45 PM\");\r\n topLevelNode.children.push(shortTimeNode);\r\n\r\n var longTimeOptions = new models.TreeItemOptions(\r\n undefined,\r\n \"Long Time\",\r\n Wars.Domain.Model.Codes.Enums.TreeItemSource.PlaceHolder,\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel);\r\n longTimeOptions.complexObjectProperty = Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_LongTime;\r\n longTimeOptions.placeholder = placeholder;\r\n\r\n var longTimeString: string = this.getTreeItemString(longTimeOptions);\r\n\r\n var longTimeNode = this.getNode(\"Long Time\", longTimeString, null, Wars.Domain.Model.Codes.Enums.VariableType.String, null, \"1:45:30 PM\");\r\n topLevelNode.children.push(longTimeNode);\r\n }\r\n\r\n parentNode.children.push(topLevelNode);\r\n }\r\n\r\n private setCodeGroupValues(node: any, isSystemLevel: boolean) {\r\n //var formattingTopLevel = this.getTopNode(\"Formatting\", false);\r\n //node.children.push(formattingTopLevel);\r\n }\r\n\r\n private setPlaceHolderValues(node: any, isSystemLevel: boolean) {\r\n\r\n var formattingTopLevel = this.getTopNode(\"Formatting\", false);\r\n node.children.push(formattingTopLevel);\r\n\r\n this.addPlaceholderUserActionNodes(Wars.Domain.Model.Codes.Enums.Placeholder.UserAction, isSystemLevel, node);\r\n this.addPlaceholderProcessEventNodes(Wars.Domain.Model.Codes.Enums.Placeholder.ProcessEvent, isSystemLevel, node);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n formattingTopLevel,\r\n \"New Line\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.NewLine);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n formattingTopLevel,\r\n \"Space\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.Space);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n formattingTopLevel,\r\n \"Tab\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.Tab);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n formattingTopLevel,\r\n \"Empty\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.Empty);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n node,\r\n \"Current Year\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Integer,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentYear);\r\n\r\n this.addNewPlaceholderDateTimeNodes(\r\n node,\r\n \"Current Date Time\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.DateTime,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentDateTime,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.DateTime_DateTime\r\n );\r\n\r\n var currentStatusNode = this.addNewPlaceholderTreeNode(\r\n node,\r\n \"Current Status\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Status,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentStatus,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_Id);\r\n this.addNewPlaceholderTreeNode(\r\n currentStatusNode,\r\n \"Short Description\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentStatus,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_ShortDescription);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n currentStatusNode,\r\n \"Long Description\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentStatus,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_LongDescription);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n currentStatusNode,\r\n \"Effective Date\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.DateTime,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentStatus,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.Status_EffectiveDate);\r\n\r\n var currentSubTypeNode = this.addNewPlaceholderTreeNode(\r\n node,\r\n \"Current SubType\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.SubType,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentSubType,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.SubType_Id);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n currentSubTypeNode,\r\n \"Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentSubType,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.SubType_Name);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n currentSubTypeNode,\r\n \"Display Name\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.SubType,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentSubType,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.SubType_DisplayName);\r\n\r\n var currentStateNode = this.addNewPlaceholderTreeNode(\r\n node,\r\n \"Current State\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.State,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentState,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_Id);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n currentStateNode,\r\n \"Short Description\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentState,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_ShortDescription);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n currentStateNode,\r\n \"Long Description\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentState,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_LongDescription);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n currentStateNode,\r\n \"Effective Date\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.DateTime,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.CurrentState,\r\n Wars.Domain.Model.Codes.Enums.ComplexObjectProperty.State_EffectiveDate);\r\n\r\n this.addPlaceholderUserNodes(Wars.Domain.Model.Codes.Enums.Placeholder.CurrentUser, isSystemLevel, node);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n node,\r\n \"Process Identifier\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.Identifier,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.ProcessIdentifier);\r\n\r\n this.addPlaceholderUserNodes(Wars.Domain.Model.Codes.Enums.Placeholder.ProcessInitiator, isSystemLevel, node);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n node,\r\n \"Process Type\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.String,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.ProcessType);\r\n\r\n this.addNewPlaceholderTreeNode(\r\n node,\r\n \"All Selected Documents\",\r\n Wars.Domain.Model.Codes.Enums.VariableType.List,\r\n isSystemLevel,\r\n Wars.Domain.Model.Codes.Enums.Placeholder.AllSelectedDocuments,\r\n undefined,\r\n true);\r\n\r\n this.addPlaceholderReviewNodes(Wars.Domain.Model.Codes.Enums.Placeholder.Review, isSystemLevel, node);\r\n this.addPlaceholderAssignmentNodes(Wars.Domain.Model.Codes.Enums.Placeholder.Assignment, isSystemLevel, node);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ProcessConfigurationTree', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export class ProcessFileDownload implements IDirective {\r\n public controller = [\"$scope\", \"fileUploadDownloadService\", \"documentService\", ProcessFileDownloadController];\r\n public controllerAs = \"controller\";\r\n public templateUrl = \"./app/views/directives/processFileDownload.html\";\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n model: \"=\",\r\n process: \"=\",\r\n linkOnly: \"=\",\r\n iconOnly: \"=\"\r\n };\r\n\r\n public link(scope: IProcessFileDownloadScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: ProcessFileDownloadController): void { }\r\n }\r\n\r\n export interface IProcessFileDownloadScope extends ng.IScope {\r\n model: Wars.Domain.Model.Dtos.DocumentDto;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n linkOnly: boolean;\r\n iconOnly: boolean;\r\n getFaClass(filename: string): string;\r\n downloadSecureDocument(): void;\r\n }\r\n\r\n export class ProcessFileDownloadController implements IController {\r\n constructor(\r\n private $scope: IProcessFileDownloadScope,\r\n private fileUploadDownloadService: services.FileUploadDownloadService,\r\n private documentService: services.DocumentService)\r\n {\r\n this.$scope.getFaClass = (filename: string) => this.documentService.getFaClass(filename);\r\n this.$scope.downloadSecureDocument = () => this.downloadSecureDocument();\r\n }\r\n\r\n public downloadSecureDocument(): void {\r\n this.fileUploadDownloadService.getSecuredDocumentKey(this.$scope.model.id).then((securedDocKey) => {\r\n var url = \"./api/document/Secured/\" + securedDocKey;\r\n window.open(url);\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('ProcessFileDownload', []);","/// \r\n/// \r\nmodule warsApp.directives {\r\n\r\n export class FormStepDisplayOnly implements IDirective {\r\n public controller = ['$scope', FormStepDisplayOnlyController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/FormStepDisplayOnly.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n processConfiguration: '=',\r\n stepIndex: '=',\r\n conditions: '='\r\n };\r\n\r\n public link(scope: IWorkflowWorkspaceScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: WorkflowWorkspaceController): void\r\n { }\r\n }\r\n\r\n\r\n export interface IFormStepDisplayOnlyScope extends ng.IScope {\r\n stepIndex: number;\r\n form: Wars.Domain.Model.Form;\r\n conditions: Wars.Domain.Model.Conditions.Condition[];\r\n currentStep: Wars.Domain.Model.FormStep;\r\n getConditionNameById(id: string) : string;\r\n }\r\n\r\n export class FormStepDisplayOnlyController implements IController {\r\n private scope: IFormStepDisplayOnlyScope;\r\n\r\n constructor($scope: IFormStepDisplayOnlyScope) {\r\n this.scope = $scope;\r\n this.scope.currentStep = this.scope.form.mySteps[this.scope.stepIndex];\r\n this.scope.getConditionNameById = (id: string) => this.getConditionNameById(id);\r\n }\r\n\r\n private getConditionById(id: string): Wars.Domain.Model.Conditions.Condition {\r\n if (!this.scope.conditions) return undefined;\r\n return Enumerable.from(this.scope.conditions).singleOrDefault(i => i.id === id);\r\n }\r\n\r\n public getConditionNameById(id: string): string {\r\n if (id === undefined) return \"\";\r\n var condition = this.getConditionById(id);\r\n if (condition) return condition.name;\r\n return \"\";\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('FormStepDisplayOnly', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export class QuickLink implements IDirective {\r\n public controller = [\"$scope\", QuickLinkController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/quickLink.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n processConfigId: \"=\",\r\n componentUrlPart: \"@\",\r\n componentId: \"=\"\r\n };\r\n\r\n public link(scope: IQuickLinkScope,\r\n element: ng.IAugmentedJQuery,\r\n attrs: ng.IAttributes,\r\n controller: QuickLinkController): void {\r\n }\r\n }\r\n\r\n export interface IQuickLinkScope extends ng.IScope {\r\n processConfigId: string;\r\n componentUrlPart: string;\r\n componentId: string;\r\n }\r\n\r\n export class QuickLinkController implements IController {\r\n constructor(private $scope: IQuickLinkScope) { }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('QuickLink', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface ISchemaPropertyScope extends ng.IScope {\r\n model: SchemaPropertyModel;\r\n schemaProperty: Wars.Domain.Model.SchemaProperty;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n readOnly: boolean;\r\n propertyChangedCallback: () => void;\r\n reloadSchema: () => void;\r\n hideIsRequired: string;\r\n hideIsIndexed: string;\r\n defaultIsIndexedValue: string;\r\n defaultIsRequiredValue: string;\r\n allowTieToSystemVariable: string;\r\n allowTieToProcessName: string;\r\n isSystemLevel: string;\r\n systemVariableObjectSchema: Wars.Domain.Model.ObjectSchema;\r\n codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n listSystemVariables: Wars.Domain.Model.SchemaProperty[];\r\n }\r\n\r\n export class SchemaProperty implements IDirective {\r\n public link($scope: ISchemaPropertyScope, element: JQuery, attrs: ng.IAttributes, controller: SchemaPropertyController) { }\r\n public templateUrl = \"./app/views/directives/schemaProperty.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", \"schemaPropertyService\", \"deleteService\", SchemaPropertyController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n schemaProperty: \"=\",\r\n readOnly: \"=\",\r\n propertyChangedCallback: \"=\",\r\n processConfiguration: \"=\",\r\n reloadSchema: \"=\",\r\n hideIsRequired: \"@\",\r\n hideIsIndexed: \"@\",\r\n defaultIsIndexedValue: \"@\",\r\n defaultIsRequiredValue: \"@\",\r\n allowTieToSystemVariable: \"@\",\r\n allowTieToProcessName: '@',\r\n systemVariableObjectSchema: \"=\",\r\n isSystemLevel: \"@\",\r\n codeGroups: \"=\"\r\n };\r\n compile = (element) => {\r\n return this.recursionHelper.compile(element);\r\n }\r\n\r\n private recursionHelper: any;\r\n\r\n constructor(recursionHelper: any) {\r\n this.recursionHelper = recursionHelper;\r\n }\r\n }\r\n\r\n export class SchemaPropertyModel {\r\n public defaultOption: models.CodeDropDownItem;\r\n public isNameProperty: boolean;\r\n\r\n constructor(\r\n public schemaProperty: Wars.Domain.Model.SchemaProperty,\r\n public processConfiguration: Wars.Domain.Model.ProcessConfiguration,\r\n public readOnly: boolean,\r\n public setPropertyChanged: () => void,\r\n private reloadSchema: () => void,\r\n private schemaPropertyService: services.SchemaPropertyService,\r\n private deleteService: services.DeleteService,\r\n private defaultIsIndexedValue: string,\r\n private defaultIsRequiredValue: string,\r\n private isSystemLevel: string,\r\n private allowTieToProcessName: string)\r\n {\r\n this.defaultOption = new models.CodeDropDownItem('Select...', null);\r\n\r\n this.isNameProperty = false;\r\n if (allowTieToProcessName === \"true\" && processConfiguration && processConfiguration.nameSchemaProperty_id === schemaProperty.id) {\r\n this.isNameProperty = true;\r\n }\r\n }\r\n\r\n public isNamePropertyChanged(): void {\r\n this.processConfiguration.nameSchemaProperty_id = this.isNameProperty\r\n ? this.schemaProperty.id\r\n : undefined;\r\n }\r\n\r\n public propertyTypeChanged(): void {\r\n if (this.schemaProperty) {\r\n if (this.schemaProperty.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Object) {\r\n alert(\"Objects are not implemented yet.\");\r\n this.schemaProperty.propertyType = null;\r\n }\r\n }\r\n this.setPropertyChanged();\r\n }\r\n\r\n public addListProperty(objectSchema: Wars.Domain.Model.ObjectSchema): void {\r\n var newProperty = this.schemaPropertyService.createNewSchemaProperty();\r\n this.setDefaults(newProperty);\r\n objectSchema.properties.push(newProperty);\r\n this.setPropertyChanged();\r\n }\r\n\r\n private setDefaults(propertySchema: Wars.Domain.Model.SchemaProperty): void {\r\n if (this.defaultIsIndexedValue === \"true\") {\r\n propertySchema.isIndexed = true;\r\n }\r\n else if (this.defaultIsIndexedValue === \"false\") {\r\n propertySchema.isIndexed = false;\r\n }\r\n\r\n if (this.defaultIsRequiredValue === \"true\") {\r\n propertySchema.required = true;\r\n }\r\n else if (this.defaultIsRequiredValue === \"false\") {\r\n propertySchema.required = false;\r\n }\r\n\r\n if (this.isSystemLevel === \"true\") {\r\n propertySchema.isSystemLevel = true;\r\n }\r\n }\r\n\r\n public delete(schemaProperty: Wars.Domain.Model.SchemaProperty): void {\r\n if (schemaProperty.entityAspect.entityState.isAdded()) {\r\n // “Added”\tA new entity in cache that does not exist in the backend database.\r\n if (schemaProperty.typeSchema !== null) {\r\n for (var i = 0; i < schemaProperty.typeSchema.properties.length; i++) {\r\n schemaProperty.typeSchema.properties[i].entityAspect.setDeleted();\r\n }\r\n }\r\n schemaProperty.entityAspect.setDeleted();\r\n } else {\r\n this.deleteService.deleteWithModalConfirmationIfNecessary(\r\n \"SchemaProperty\",\r\n schemaProperty.id,\r\n \"Successfully deleted variable\",\r\n () => { if (this.reloadSchema) this.reloadSchema(); },\r\n \"Could not delete variable\");\r\n }\r\n\r\n this.setPropertyChanged();\r\n }\r\n }\r\n\r\n export class SchemaPropertyController implements IController {\r\n\r\n constructor(private $scope: ISchemaPropertyScope, schemaPropertyService: services.SchemaPropertyService, deleteService: services.DeleteService) {\r\n\r\n var propertyChangedFunction = () => {\r\n if ($scope.propertyChangedCallback) {\r\n $scope.propertyChangedCallback();\r\n }\r\n };\r\n\r\n var reloadSchemaFunction = () => {\r\n if ($scope.reloadSchema) {\r\n $scope.reloadSchema();\r\n }\r\n };\r\n\r\n $scope.model = new SchemaPropertyModel(\r\n $scope.schemaProperty,\r\n $scope.processConfiguration,\r\n $scope.readOnly,\r\n propertyChangedFunction,\r\n reloadSchemaFunction,\r\n schemaPropertyService,\r\n deleteService,\r\n $scope.defaultIsIndexedValue,\r\n $scope.defaultIsRequiredValue,\r\n $scope.isSystemLevel,\r\n $scope.allowTieToProcessName);\r\n\r\n $scope.$watch('schemaProperty', (newValue: Wars.Domain.Model.SchemaProperty) => {\r\n $scope.model.schemaProperty = newValue;\r\n });\r\n\r\n $scope.$watch('systemVariableObjectSchema', () => {\r\n this.loadListVariables();\r\n });\r\n }\r\n\r\n private loadListVariables(): void {\r\n if (this.$scope.systemVariableObjectSchema) {\r\n this.$scope.listSystemVariables = Enumerable.from(this.$scope.systemVariableObjectSchema.properties)\r\n .where(i => i.typeSchema != null)\r\n .selectMany(i => i.typeSchema.properties)\r\n .toArray();\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('SchemaProperty', [\"recursionHelper\"]);","/// \r\nmodule warsApp.directives {\r\n export interface ISecurityMatrixScope extends ng.IScope {\r\n model: SecurityMatrixModel;\r\n matrix: Wars.Domain.Model.SecurityMatrix;\r\n processConfigurationId: string;\r\n hideReuse: boolean;\r\n }\r\n\r\n export class SecurityMatrix implements IDirective {\r\n public link($scope: any, element: JQuery, attrs: ng.IAttributes) {\r\n\r\n }\r\n\r\n public templateUrl = './app/views/directives/securityMatrix.html';\r\n public controller = [\r\n '$scope', 'claimDefinitionService', 'systemLevelService', 'statusGroupService', 'securityMatrixService',\r\n 'conditionService', '$q', 'ModalService', 'treeService', 'processConfigurationService',\r\n 'relatedClaimProcessTypeService',\r\n SecurityMatrixController\r\n ];\r\n public controllerAs = 'controller';\r\n public restrict: string = 'E';\r\n public scope: any = {\r\n matrix: \"=\",\r\n processConfigurationId: \"=\",\r\n hideReuse: \"=\"\r\n };\r\n }\r\n\r\n\r\n export class SecurityMatrixModel {\r\n public states: any[] = [];\r\n public claims: Wars.Domain.Model.ClaimDefinition[];\r\n public systemClaims: Wars.Domain.Model.ClaimDefinition[];\r\n public processClaims: Wars.Domain.Model.ClaimDefinition[];\r\n public relatedProcessClaims: Wars.Domain.Model.ClaimDefinition[] = [];\r\n public conditions: Wars.Domain.Model.Conditions.Condition[];\r\n public subTypes: Wars.Domain.Model.ProcessSubType[];\r\n public stateToStatusDictionary: any = {};\r\n private statusToStateDictionary: any = {};\r\n public statusOverrideName: string;\r\n public isCollapsing: boolean;\r\n public showTree: boolean;\r\n public isOverriding: boolean;\r\n public overrideStatusId: string;\r\n public selectedSubTypeId: string;\r\n private relatedClaimProcessTypes: Wars.Domain.Model.RelatedClaimProcessType[];\r\n public securityMatrices: Wars.Domain.Model.SecurityMatrix[] =[];\r\n private claimsAndStatesLoaded: boolean = false;\r\n public isMatrixRebuilt: boolean = false;\r\n public copyStateId: string;\r\n public copySubTypeId: string;\r\n public matrixTypeString: string;\r\n public alwaysShowSecurityMatrixTextHorizontal: boolean;\r\n public excludedSecurityMatrixClaimsUniqueIds: string[];\r\n public showHideClaimLinks: boolean;\r\n public statusFilter: string = \"\";\r\n public claimFilterFunction: (claim: Wars.Domain.Model.ClaimDefinition) => boolean;\r\n\r\n readonly NO_SUBTYPE = \"00000000-0000-0000-0000-000000000000\";\r\n readonly NO_STATE = \"00000000-0000-0000-0000-000000000000\";\r\n readonly NO_CLAIM = \"00000000-0000-0000-0000-000000000000\";\r\n readonly PROCESS_INITATOR = \"89877FB0-0816-4263-947D-0159B7CC7AD2\";\r\n\r\n private logType: string = \"SecurityMatrixModel\";\r\n\r\n\r\n constructor(public securityMatrix: Wars.Domain.Model.SecurityMatrix,\r\n private claimService: services.ClaimDefinitionService,\r\n private systemLevelService: services.SystemLevelService,\r\n private statusService: services.StatusGroupService,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n private conditionService: services.ConditionService,\r\n private $q: angular.IQService,\r\n private modalService: any,\r\n private processConfigurationId: string,\r\n public $scope: ISecurityMatrixScope,\r\n private treeService: services.TreeService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private relatedClaimProcessTypeService: services.RelatedClaimProcessTypeService,\r\n private hideReuse: boolean) {\r\n\r\n var self = this;\r\n\r\n this.alwaysShowSecurityMatrixTextHorizontal = false;\r\n this.excludedSecurityMatrixClaimsUniqueIds = [];\r\n this.showHideClaimLinks = false;\r\n\r\n var stringValueInLocalStorage = localStorage.getItem(\"alwaysShowSecurityMatrixTextHorizontal\");\r\n if (stringValueInLocalStorage) {\r\n this.alwaysShowSecurityMatrixTextHorizontal = JSON.parse(stringValueInLocalStorage);\r\n }\r\n\r\n stringValueInLocalStorage = localStorage.getItem(\"excludedSecurityMatrixClaimsUniqueIds\");\r\n if (stringValueInLocalStorage) {\r\n this.excludedSecurityMatrixClaimsUniqueIds = JSON.parse(stringValueInLocalStorage);\r\n }\r\n\r\n this.claimFilterFunction = (claim: Wars.Domain.Model.ClaimDefinition) => {\r\n return this.excludedSecurityMatrixClaimsUniqueIds.indexOf(claim.uniqueIdentifier) === -1;\r\n }\r\n\r\n self.matrixTypeString =\r\n $scope.matrix.matrixType === Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrReadOnlyOrUpdateable\r\n ? \"Advanced Security Matrix\"\r\n : $scope.matrix.matrixType === Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrShow\r\n ? \"Security Matrix\"\r\n : $scope.matrix.matrixType === Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRow\r\n ? \"Security Row\"\r\n : \"Security Row with Subtypes\";\r\n\r\n if (!hideReuse) {\r\n if (processConfigurationId) {\r\n this.securityMatrixService.getProcessConfigurationSecurityMatrices(this.processConfigurationId)\r\n .then(m => {\r\n this.securityMatrices.addRange(Enumerable.from(m)\r\n .where(s => s.matrixType == $scope.matrix.matrixType).toArray());\r\n });\r\n }\r\n this.securityMatrixService.getSystemLevelSecurityMatrices()\r\n .then(m => {\r\n this.securityMatrices.addRange(Enumerable.from(m)\r\n .where(s => s.matrixType == $scope.matrix.matrixType).toArray());;\r\n });\r\n }\r\n\r\n $q.all([\r\n this.getStates(),\r\n systemLevelService.getSystemLevelClaims()\r\n .then(systemLevel => {\r\n self.systemClaims = Enumerable.from(systemLevel.myClaims).orderBy(i => i.type).toArray();\r\n }),\r\n this.getProcessConfigurationInfo()\r\n ])\r\n .then(() => {\r\n var d = this.$q.defer();\r\n\r\n if (this.relatedClaimProcessTypes && this.relatedClaimProcessTypes.length > 0) {\r\n let relatedClaimsProcessed = 0;\r\n this.relatedClaimProcessTypes.forEach(relatedClaimProcessType => {\r\n var pertinentRelatedClaimUniqueIds = Enumerable.from(relatedClaimProcessType.relatedClaims).select(i => i.claimUniqueId).toArray();\r\n this.processConfigurationService.getRelatedProcessTypeClaims(relatedClaimProcessType.field.autoCompleteConfiguration.processType_id).then(relatedClaims => {\r\n\r\n var pertinentRelatedClaims = Enumerable.from(relatedClaims)\r\n .where(i => pertinentRelatedClaimUniqueIds.indexOf(i.uniqueIdentifier) !== -1)\r\n .toArray();\r\n\r\n this.relatedProcessClaims.addRange(pertinentRelatedClaims);\r\n relatedClaimsProcessed++;\r\n if (relatedClaimsProcessed === this.relatedClaimProcessTypes.length) {\r\n d.resolve();\r\n }\r\n });\r\n });\r\n\r\n } else {\r\n d.resolve();\r\n }\r\n\r\n return d.promise;\r\n })\r\n .then(() => {\r\n self.claims = [];\r\n self.claims.addRange(self.processClaims);\r\n self.claims.addRange(self.systemClaims);\r\n self.claims.addRange(Enumerable.from(self.relatedProcessClaims).orderBy(i => i.type).toArray());\r\n\r\n if (!this.processConfigurationId) {\r\n self.claims.push(\r\n {\r\n uniqueIdentifier: this.PROCESS_INITATOR,\r\n type: 'Process Initiator'\r\n });\r\n }\r\n\r\n self.claims.push(\r\n {\r\n uniqueIdentifier: this.NO_CLAIM,\r\n type: 'No Claim'\r\n });\r\n\r\n if (Enumerable.from(self.claims).any(c => c.valueAssignable)) {\r\n this.showTree = true;\r\n }\r\n\r\n this.claimsAndStatesLoaded = true;\r\n self.parseMatrix();\r\n this.isMatrixRebuilt = true;\r\n //console.log(self.claims);\r\n\r\n });\r\n $scope.$watch('matrix',\r\n (newValue, oldValue) => {\r\n this.securityMatrix = this.$scope.matrix;\r\n if (newValue != null && this.claimsAndStatesLoaded) {\r\n this.getStates().then(r => {\r\n this.selectedSubTypeId = this.subTypes[0].uniqueIdentifier;\r\n this.parseMatrix();\r\n });\r\n }\r\n });\r\n }\r\n\r\n public securityMatrixChanged() {\r\n if (this.securityMatrix.reusedSecurityMatrix) {\r\n this.securityMatrix.usesAnotherSecurityMatrix = true;\r\n } else {\r\n this.securityMatrix.usesAnotherSecurityMatrix = false;\r\n }\r\n\r\n this.securityMatrixService.saveAllChanges();\r\n }\r\n\r\n public getClaimValueName(claimUniqueId) {\r\n if (!claimUniqueId)\r\n return \"\";\r\n\r\n var id = (this.securityMatrix).claimTreeItems[claimUniqueId];\r\n var treeItem = Enumerable.from(this.securityMatrix.claimBindings).singleOrDefault(c => c.id === id);\r\n if (treeItem) {\r\n return this.treeService.getDisplayName(treeItem);\r\n }\r\n return \"\";\r\n }\r\n\r\n public onDrop($event, claimUniqueId) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped(() => {\r\n\r\n });\r\n\r\n this.securityMatrix.claimBindings.push(treeItem);\r\n\r\n (this.securityMatrix).claimTreeItems[claimUniqueId] = treeItem.id;\r\n this.securityMatrix.claimTreeItemsJson = JSON.stringify((this.securityMatrix).claimTreeItems);\r\n this.securityMatrixService.saveAllChanges();\r\n }\r\n\r\n public viewSecurityMatrix(securityMatrix: Wars.Domain.Model.SecurityMatrix) {\r\n this.securityMatrixService.openViewSecurityMatrixModal(securityMatrix.id);\r\n }\r\n\r\n private filterReusableSecurityMatrices() {\r\n this.securityMatrices = Enumerable.from(this.securityMatrices)\r\n .where(s => s.matrixType == this.securityMatrix.matrixType)\r\n .toArray();\r\n }\r\n\r\n private parseMatrix() {\r\n let matrix = JSON.parse(this.securityMatrix.matrixJson);\r\n if (this.securityMatrix.matrixType === Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRow) {\r\n this.selectedSubTypeId = this.NO_SUBTYPE;\r\n }\r\n\r\n if (this.securityMatrix.claimTreeItemsJson) {\r\n (this.securityMatrix).claimTreeItems = JSON.parse(this.securityMatrix.claimTreeItemsJson);\r\n } else {\r\n (this.securityMatrix).claimTreeItems = {};\r\n }\r\n\r\n let isChanged: boolean = false;\r\n\r\n if (!matrix) {\r\n matrix = {};\r\n\r\n if (this.securityMatrix.matrixType == Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRow) {\r\n matrix[this.NO_SUBTYPE] = {};\r\n matrix[this.NO_SUBTYPE][this.NO_STATE] = {};\r\n\r\n this.claims.forEach(claim => {\r\n matrix[this.NO_SUBTYPE][this.NO_STATE][claim.uniqueIdentifier] = {};\r\n });\r\n } else if (this.securityMatrix.matrixType ===\r\n Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRowWithSubType) {\r\n this.subTypes.forEach(subType => {\r\n matrix[subType.uniqueIdentifier] = {};\r\n this.claims.forEach(claim => {\r\n matrix[subType.uniqueIdentifier][this.NO_STATE] = {};\r\n matrix[subType.uniqueIdentifier][this.NO_STATE][claim.uniqueIdentifier] = {};\r\n });\r\n });\r\n } else {\r\n this.subTypes.forEach(subType => {\r\n matrix[subType.uniqueIdentifier] = {};\r\n this.states.forEach(state => {\r\n if (!state.isStatus) {\r\n //console.log(state);\r\n return;\r\n }\r\n\r\n\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier] = {};\r\n this.claims.forEach(claim => {\r\n if (this.securityMatrix.matrixType ==\r\n Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrShow) {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][claim.uniqueIdentifier] = {\r\n show: false\r\n };\r\n } else {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][claim.uniqueIdentifier] = {\r\n visibility: 'hidden'\r\n };\r\n }\r\n\r\n });\r\n if (this.securityMatrix.matrixType ==\r\n Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrShow) {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][this.NO_CLAIM] = {\r\n show: false\r\n };\r\n if (!this.processConfigurationId) {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][this.PROCESS_INITATOR] = {\r\n show: false\r\n };\r\n }\r\n } else {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][this.NO_CLAIM] = {\r\n visibility: 'hidden'\r\n };\r\n if (!this.processConfigurationId) {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][this.PROCESS_INITATOR] = {\r\n visibility: 'hidden'\r\n };\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n (this.securityMatrix).matrix = matrix;\r\n } else if (matrix) {\r\n for (let subType in matrix) {\r\n\r\n for (let stateId in matrix[subType]) {\r\n if (matrix[subType].hasOwnProperty(stateId)) {\r\n if (matrix[subType][stateId]) {\r\n if (!Enumerable.from(this.states).any(s => s.uniqueIdentifier === stateId)) {\r\n if (stateId === \"alwaysVisible\") {\r\n continue;\r\n }\r\n delete matrix[subType][stateId];\r\n isChanged = true;\r\n continue;\r\n }\r\n\r\n for (let claimUniqueId in matrix[subType][stateId]) {\r\n if (claimUniqueId === \"isOverridden\") {\r\n continue;\r\n }\r\n\r\n if (matrix.hasOwnProperty(stateId)) {\r\n if (matrix[subType][stateId]) {\r\n var claimsEnumerable = Enumerable.from(this.claims);\r\n\r\n if (!claimsEnumerable.any(c => c.uniqueIdentifier === claimUniqueId)) {\r\n delete matrix[subType][stateId][claimUniqueId];\r\n isChanged = true;\r\n continue;\r\n } else {\r\n if (this.securityMatrix.matrixType ==\r\n Wars.Domain.Model.Codes.Enums.SecurityMatrixType\r\n .HideOrReadOnlyOrUpdateable) {\r\n if (!matrix[subType][stateId][claimUniqueId].visibility) {\r\n matrix[subType][stateId][claimUniqueId].visibility = 'hidden';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n (this.securityMatrix).matrix = matrix;\r\n\r\n if (isChanged) {\r\n this.matrixChanged();\r\n }\r\n }\r\n\r\n public selectAllClaim(claimId: string) {\r\n for (var state in (this.securityMatrix).matrix[this.selectedSubTypeId]) {\r\n (this.securityMatrix).matrix[this.selectedSubTypeId][state][claimId].show = true;\r\n }\r\n\r\n this.saveMatrixChange();\r\n }\r\n\r\n public overrideStatusConfirm(statusId: string, stateName: string) {\r\n //this.statusOverrideName = stateName;\r\n this.overrideStatusId = statusId;\r\n this.isOverriding = true;\r\n this.isCollapsing = false;\r\n var result = confirm(\"Please confirm you want to configure security at the individual state level for status \" + stateName);\r\n\r\n if (result) {\r\n this.confirmOverride();\r\n } else {\r\n this.cancelOverride();\r\n }\r\n }\r\n\r\n public undoOverrideStatusConfirm(statusId: string, stateName: string) {\r\n //this.statusOverrideName = stateName;\r\n this.overrideStatusId = statusId;\r\n this.isCollapsing = true;\r\n this.isOverriding = false;\r\n var result = confirm(\"Please confirm you want to configure security at the status level instead of the state level for status \" + stateName);\r\n\r\n if (result) {\r\n this.confirmOverride();\r\n } else {\r\n this.cancelOverride();\r\n }\r\n }\r\n\r\n public toggleAlwaysShowSecurityMatrixTextHorizontal(): void {\r\n localStorage.setItem(\"alwaysShowSecurityMatrixTextHorizontal\", JSON.stringify(this.alwaysShowSecurityMatrixTextHorizontal));\r\n }\r\n\r\n private getProcessConfigurationInfo(): angular.IPromise {\r\n var d = this.$q.defer();\r\n\r\n if (this.processConfigurationId) {\r\n this.$q.all([\r\n this.processConfigurationService.getPermitSubTypeInfo(this.processConfigurationId)\r\n .then(r => {\r\n if (r) {\r\n this.subTypes = Enumerable.from(r.mySubTypeConfiguration.myProcessSubTypes).orderBy(i => i.name).toArray();\r\n if (this.subTypes.length === 1) {\r\n this.selectedSubTypeId = this.subTypes[0].uniqueIdentifier;\r\n }\r\n }\r\n }),\r\n this.claimService.getAllProcessClaims(this.processConfigurationId)\r\n .then(claims => {\r\n this.processClaims = Enumerable.from(claims).orderBy(i => i.type).toArray();\r\n }),\r\n this.conditionService.getAllConditions(this.processConfigurationId)\r\n .then(conditions => {\r\n this.conditions = conditions;\r\n }),\r\n this.relatedClaimProcessTypeService.getRelatedClaims(this.processConfigurationId)\r\n .then(r => {\r\n this.relatedClaimProcessTypes = r;\r\n })\r\n ])\r\n .then(() => {\r\n d.resolve();\r\n });\r\n } else {\r\n this.systemLevelService.getSystemLevelSubTypeGroups().then(systemLevel => {\r\n this.subTypes = [];\r\n\r\n Enumerable.from(systemLevel.mySubTypeGroups).orderBy(i => i.name).forEach(subType => {\r\n this.subTypes.push({\r\n name: subType.name,\r\n uniqueIdentifier: subType.id\r\n });\r\n });\r\n\r\n if (this.subTypes.length === 1) {\r\n this.selectedSubTypeId = this.subTypes[0].uniqueIdentifier;\r\n }\r\n d.resolve();\r\n });\r\n }\r\n\r\n return d.promise;\r\n }\r\n\r\n\r\n private getStates(): angular.IPromise {\r\n this.states = [];\r\n var d = this.$q.defer();\r\n\r\n if (this.securityMatrix.matrixType ===\r\n Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRowWithSubType ||\r\n this.securityMatrix.matrixType === Wars.Domain.Model.Codes.Enums.SecurityMatrixType.SecurityRow) {\r\n this.states.push({\r\n sortName: \"NO STATUS\",\r\n name: \"NO STATE\",\r\n uniqueIdentifier: this.NO_STATE,\r\n isStatus: true\r\n });\r\n\r\n //console.log(this.states);\r\n d.resolve();\r\n } else if (this.processConfigurationId) {\r\n this.statusService.getProcessStatesWithDetails(this.processConfigurationId)\r\n .then(result => {\r\n\r\n let statusGroups = Enumerable.from(result.statusGroups).orderBy(i => i.statusName).toArray();\r\n\r\n statusGroups.forEach(p => {\r\n const newStatus = {\r\n sortName: p.statusName,\r\n name: p.statusName,\r\n isStatus: true,\r\n uniqueIdentifier: p.uniqueIdentifier\r\n };\r\n\r\n this.states.push(newStatus);\r\n \r\n this.statusToStateDictionary[p.uniqueIdentifier] = [];\r\n\r\n let stateWorkflowBlocks = Enumerable.from(p.workflowBlocks)\r\n .where(i => i.blockType === Wars.Domain.Model.Codes.Enums.BlockType.State)\r\n .orderBy(i => i.name)\r\n .toArray();\r\n\r\n stateWorkflowBlocks.forEach(workflowBlock => {\r\n if (workflowBlock.blockType !== Wars.Domain.Model.Codes.Enums.BlockType.State)\r\n return;\r\n\r\n this.stateToStatusDictionary[workflowBlock.myStateDto.stateCodeUniqueId] = p.uniqueIdentifier;\r\n this.statusToStateDictionary[p.uniqueIdentifier].push(workflowBlock.myStateDto.stateCodeUniqueId);\r\n\r\n const newState = {\r\n sortName: p.statusName + workflowBlock.name,\r\n name: workflowBlock.name,\r\n isStatus: false,\r\n uniqueIdentifier: workflowBlock.myStateDto.stateCodeUniqueId\r\n };\r\n\r\n this.states.push(newState);\r\n });\r\n });\r\n d.resolve();\r\n });\r\n } else {\r\n this.systemLevelService.getSystemLevelStatusesAndStates().then(system => {\r\n Enumerable.from(system.statusCodeGroup.myStatuses).orderBy(i => i.shortDescription).forEach(s => {\r\n const newStatus = {\r\n sortName: s.shortDescription,\r\n name: s.shortDescription,\r\n isStatus: true,\r\n uniqueIdentifier: s.uniqueIdentifier\r\n };\r\n\r\n this.statusToStateDictionary[s.uniqueIdentifier] = [];\r\n\r\n this.states.push(newStatus);\r\n\r\n let stateCodes = Enumerable.from(s.myStates)\r\n .orderBy(i => i.shortDescription)\r\n .toArray();\r\n\r\n stateCodes.forEach(state => {\r\n const newState = {\r\n sortName: s.shortDescription + state.shortDescription,\r\n name: state.shortDescription,\r\n isStatus: false,\r\n uniqueIdentifier: state.uniqueIdentifier\r\n };\r\n\r\n this.stateToStatusDictionary[state.uniqueIdentifier] = s.uniqueIdentifier;\r\n this.statusToStateDictionary[s.uniqueIdentifier].push(newState.uniqueIdentifier);\r\n\r\n this.states.push(newState);\r\n });\r\n });\r\n\r\n this.states = Enumerable.from(this.states).orderBy(i => i.name).toArray();\r\n d.resolve();\r\n });\r\n }\r\n\r\n return d.promise;\r\n }\r\n\r\n public cancelOverride() {\r\n this.statusOverrideName = null;\r\n this.overrideStatusId = null;\r\n this.isCollapsing = false;\r\n this.isOverriding = false;\r\n }\r\n\r\n public confirmOverride() {\r\n if (this.isOverriding) {\r\n this.overrideStatus(this.overrideStatusId);\r\n } else if (this.isCollapsing) {\r\n this.undoOverrideStatus(this.overrideStatusId);\r\n }\r\n\r\n this.cancelOverride();\r\n }\r\n\r\n public pasteState(stateId) {\r\n var copyObj = JSON.parse(JSON.stringify((this.securityMatrix).matrix[this.selectedSubTypeId][this.copyStateId]));\r\n\r\n (this.securityMatrix).matrix[this.selectedSubTypeId][stateId] = copyObj;\r\n\r\n this.matrixChanged();\r\n }\r\n\r\n public pasteSubType() {\r\n var copyObj = JSON.parse(JSON.stringify((this.securityMatrix).matrix[this.copySubTypeId]));\r\n\r\n (this.securityMatrix).matrix[this.selectedSubTypeId] = copyObj;\r\n\r\n this.matrixChanged();\r\n }\r\n\r\n public overrideStatus(statusId: string) {\r\n let object = (this.securityMatrix).matrix[this.selectedSubTypeId][statusId];\r\n if (!object) {\r\n object = (this.securityMatrix).matrix[this.selectedSubTypeId][statusId] = {\r\n isOverridden: true\r\n }\r\n }\r\n object.isOverridden = true;\r\n\r\n for (let propName in object) {\r\n if (object.hasOwnProperty(propName)) {\r\n if (propName === \"isOverridden\") {\r\n continue;\r\n }\r\n\r\n delete object[propName];\r\n }\r\n }\r\n if (this.securityMatrix.matrixType ===\r\n Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrReadOnlyOrUpdateable) {\r\n this.statusToStateDictionary[statusId].forEach(state => {\r\n (this.securityMatrix).matrix[this.selectedSubTypeId][state] = {};\r\n this.claims.forEach(claim => {\r\n (this.securityMatrix).matrix[this.selectedSubTypeId][state][claim.uniqueIdentifier] = { visibility: 'hidden' };\r\n });\r\n });\r\n }\r\n\r\n this.matrixChanged();\r\n }\r\n\r\n public undoOverrideStatus(statusId: string) {\r\n (this.securityMatrix).matrix[this.selectedSubTypeId][statusId].isOverridden = false;\r\n\r\n this.statusToStateDictionary[statusId].forEach(state => {\r\n delete (this.securityMatrix).matrix[this.selectedSubTypeId][state];\r\n });\r\n\r\n if (this.securityMatrix.matrixType ===\r\n Wars.Domain.Model.Codes.Enums.SecurityMatrixType.HideOrReadOnlyOrUpdateable) {\r\n (this.securityMatrix).matrix[this.selectedSubTypeId][statusId] = {};\r\n this.claims.forEach(claim => {\r\n (this.securityMatrix).matrix[this.selectedSubTypeId][statusId][claim.uniqueIdentifier] = { visibility: 'hidden' };\r\n });\r\n }\r\n\r\n this.matrixChanged();\r\n }\r\n\r\n public matrixChanged(stateId?: string, claimUniqueId?: string, propertyName?: string) {\r\n\r\n if (stateId && claimUniqueId) {\r\n delete (this.securityMatrix).matrix[this.selectedSubTypeId][stateId][claimUniqueId].condition_id;\r\n\r\n if (this.stateToStatusDictionary[stateId]) {\r\n (this.securityMatrix).matrix[this.selectedSubTypeId][stateId][claimUniqueId].isStatus = true;\r\n }\r\n }\r\n\r\n this.saveMatrixChange();\r\n }\r\n\r\n private saveMatrixChange() {\r\n this.securityMatrix.matrixJson = JSON.stringify((this.securityMatrix).matrix);\r\n this.securityMatrixService.saveAllChanges();\r\n }\r\n\r\n public conditionChanged() {\r\n this.securityMatrixService.saveAllChanges();\r\n }\r\n\r\n public isAlwaysVisible() {\r\n this.securityMatrix.condition = null;\r\n this.saveMatrixChange();\r\n this.securityMatrixService.saveAllChanges();\r\n }\r\n\r\n public addCondition(claim: any, state: any) {\r\n var self = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/securityMatrixConditionModal.html\",\r\n controller: \"securityMatrixConditionModalController\",\r\n inputs: {\r\n claim: claim,\r\n matrix: (self.securityMatrix).matrix,\r\n state: state,\r\n conditions: self.conditions\r\n }\r\n })\r\n .then(modal => {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to.\r\n modal.element.modal();\r\n\r\n modal.close.then(result => {\r\n if (result) {\r\n self.matrixChanged();\r\n } else {\r\n self.parseMatrix();\r\n }\r\n });\r\n });\r\n }\r\n\r\n public hideClaim(claim: Wars.Domain.Model.ClaimDefinition): void {\r\n this.excludedSecurityMatrixClaimsUniqueIds.push(claim.uniqueIdentifier);\r\n }\r\n\r\n public showAllClaims(): void {\r\n this.excludedSecurityMatrixClaimsUniqueIds = [];\r\n }\r\n\r\n public saveHiddenClaims(): void {\r\n localStorage.setItem(\"excludedSecurityMatrixClaimsUniqueIds\", JSON.stringify(this.excludedSecurityMatrixClaimsUniqueIds));\r\n }\r\n\r\n }\r\n\r\n export class SecurityMatrixController implements IController {\r\n private scope: ISecurityMatrixScope;\r\n\r\n constructor(\r\n $scope: ISecurityMatrixScope,\r\n claimService: services.ClaimDefinitionService,\r\n systemLevelService: services.SystemLevelService,\r\n statusService: services.StatusGroupService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n conditionService: services.ConditionService,\r\n $q: angular.IQService,\r\n modalService: any,\r\n treeService: services.TreeService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n relatedClaimProcessTypeService: services.RelatedClaimProcessTypeService\r\n ) {\r\n $scope.model = new SecurityMatrixModel(\r\n $scope.matrix,\r\n claimService,\r\n systemLevelService,\r\n statusService,\r\n securityMatrixService,\r\n conditionService,\r\n $q,\r\n modalService,\r\n $scope.processConfigurationId,\r\n $scope,\r\n treeService,\r\n processConfigurationService,\r\n relatedClaimProcessTypeService,\r\n $scope.hideReuse\r\n );\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('SecurityMatrix', []);","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var directives;\r\n (function (directives) {\r\n var SecurityMatrix = /** @class */ (function () {\r\n function SecurityMatrix() {\r\n this.templateUrl = './app/views/directives/securityMatrix.html';\r\n this.controller = [\r\n '$scope', 'claimDefinitionService', 'systemLevelService', 'statusGroupService', 'securityMatrixService',\r\n 'conditionService', '$q', 'ModalService', 'treeService', 'processConfigurationService',\r\n 'relatedClaimProcessTypeService',\r\n SecurityMatrixController\r\n ];\r\n this.controllerAs = 'controller';\r\n this.restrict = 'E';\r\n this.scope = {\r\n matrix: \"=\",\r\n processConfigurationId: \"=\",\r\n hideReuse: \"=\"\r\n };\r\n }\r\n SecurityMatrix.prototype.link = function ($scope, element, attrs) {\r\n };\r\n return SecurityMatrix;\r\n }());\r\n directives.SecurityMatrix = SecurityMatrix;\r\n var SecurityMatrixModel = /** @class */ (function () {\r\n function SecurityMatrixModel(securityMatrix, claimService, systemLevelService, statusService, securityMatrixService, conditionService, $q, modalService, processConfigurationId, $scope, treeService, processConfigurationService, relatedClaimProcessTypeService, hideReuse) {\r\n var _this = this;\r\n this.securityMatrix = securityMatrix;\r\n this.claimService = claimService;\r\n this.systemLevelService = systemLevelService;\r\n this.statusService = statusService;\r\n this.securityMatrixService = securityMatrixService;\r\n this.conditionService = conditionService;\r\n this.$q = $q;\r\n this.modalService = modalService;\r\n this.processConfigurationId = processConfigurationId;\r\n this.$scope = $scope;\r\n this.treeService = treeService;\r\n this.processConfigurationService = processConfigurationService;\r\n this.relatedClaimProcessTypeService = relatedClaimProcessTypeService;\r\n this.hideReuse = hideReuse;\r\n this.states = [];\r\n this.relatedProcessClaims = [];\r\n this.stateToStatusDictionary = {};\r\n this.statusToStateDictionary = {};\r\n this.securityMatrices = [];\r\n this.claimsAndStatesLoaded = false;\r\n this.isMatrixRebuilt = false;\r\n this.statusFilter = \"\";\r\n this.NO_SUBTYPE = \"00000000-0000-0000-0000-000000000000\";\r\n this.NO_STATE = \"00000000-0000-0000-0000-000000000000\";\r\n this.NO_CLAIM = \"00000000-0000-0000-0000-000000000000\";\r\n this.PROCESS_INITATOR = \"89877FB0-0816-4263-947D-0159B7CC7AD2\";\r\n this.logType = \"SecurityMatrixModel\";\r\n var self = this;\r\n this.alwaysShowSecurityMatrixTextHorizontal = false;\r\n this.excludedSecurityMatrixClaimsUniqueIds = [];\r\n this.showHideClaimLinks = false;\r\n var stringValueInLocalStorage = localStorage.getItem(\"alwaysShowSecurityMatrixTextHorizontal\");\r\n if (stringValueInLocalStorage) {\r\n this.alwaysShowSecurityMatrixTextHorizontal = JSON.parse(stringValueInLocalStorage);\r\n }\r\n stringValueInLocalStorage = localStorage.getItem(\"excludedSecurityMatrixClaimsUniqueIds\");\r\n if (stringValueInLocalStorage) {\r\n this.excludedSecurityMatrixClaimsUniqueIds = JSON.parse(stringValueInLocalStorage);\r\n }\r\n this.claimFilterFunction = function (claim) {\r\n return _this.excludedSecurityMatrixClaimsUniqueIds.indexOf(claim.uniqueIdentifier) === -1;\r\n };\r\n self.matrixTypeString =\r\n $scope.matrix.matrixType === 2 /* HideOrReadOnlyOrUpdateable */\r\n ? \"Advanced Security Matrix\"\r\n : $scope.matrix.matrixType === 1 /* HideOrShow */\r\n ? \"Security Matrix\"\r\n : $scope.matrix.matrixType === 3 /* SecurityRow */\r\n ? \"Security Row\"\r\n : \"Security Row with Subtypes\";\r\n if (!hideReuse) {\r\n if (processConfigurationId) {\r\n this.securityMatrixService.getProcessConfigurationSecurityMatrices(this.processConfigurationId)\r\n .then(function (m) {\r\n _this.securityMatrices.addRange(Enumerable.from(m)\r\n .where(function (s) { return s.matrixType == $scope.matrix.matrixType; }).toArray());\r\n });\r\n }\r\n this.securityMatrixService.getSystemLevelSecurityMatrices()\r\n .then(function (m) {\r\n _this.securityMatrices.addRange(Enumerable.from(m)\r\n .where(function (s) { return s.matrixType == $scope.matrix.matrixType; }).toArray());\r\n ;\r\n });\r\n }\r\n $q.all([\r\n this.getStates(),\r\n systemLevelService.getSystemLevelClaims()\r\n .then(function (systemLevel) {\r\n self.systemClaims = Enumerable.from(systemLevel.myClaims).orderBy(function (i) { return i.type; }).toArray();\r\n }),\r\n this.getProcessConfigurationInfo()\r\n ])\r\n .then(function () {\r\n var d = _this.$q.defer();\r\n if (_this.relatedClaimProcessTypes && _this.relatedClaimProcessTypes.length > 0) {\r\n var relatedClaimsProcessed_1 = 0;\r\n _this.relatedClaimProcessTypes.forEach(function (relatedClaimProcessType) {\r\n var pertinentRelatedClaimUniqueIds = Enumerable.from(relatedClaimProcessType.relatedClaims).select(function (i) { return i.claimUniqueId; }).toArray();\r\n _this.processConfigurationService.getRelatedProcessTypeClaims(relatedClaimProcessType.field.autoCompleteConfiguration.processType_id).then(function (relatedClaims) {\r\n var pertinentRelatedClaims = Enumerable.from(relatedClaims)\r\n .where(function (i) { return pertinentRelatedClaimUniqueIds.indexOf(i.uniqueIdentifier) !== -1; })\r\n .toArray();\r\n _this.relatedProcessClaims.addRange(pertinentRelatedClaims);\r\n relatedClaimsProcessed_1++;\r\n if (relatedClaimsProcessed_1 === _this.relatedClaimProcessTypes.length) {\r\n d.resolve();\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n d.resolve();\r\n }\r\n return d.promise;\r\n })\r\n .then(function () {\r\n self.claims = [];\r\n self.claims.addRange(self.processClaims);\r\n self.claims.addRange(self.systemClaims);\r\n self.claims.addRange(Enumerable.from(self.relatedProcessClaims).orderBy(function (i) { return i.type; }).toArray());\r\n if (!_this.processConfigurationId) {\r\n self.claims.push({\r\n uniqueIdentifier: _this.PROCESS_INITATOR,\r\n type: 'Process Initiator'\r\n });\r\n }\r\n self.claims.push({\r\n uniqueIdentifier: _this.NO_CLAIM,\r\n type: 'No Claim'\r\n });\r\n if (Enumerable.from(self.claims).any(function (c) { return c.valueAssignable; })) {\r\n _this.showTree = true;\r\n }\r\n _this.claimsAndStatesLoaded = true;\r\n self.parseMatrix();\r\n _this.isMatrixRebuilt = true;\r\n //console.log(self.claims);\r\n });\r\n $scope.$watch('matrix', function (newValue, oldValue) {\r\n _this.securityMatrix = _this.$scope.matrix;\r\n if (newValue != null && _this.claimsAndStatesLoaded) {\r\n _this.getStates().then(function (r) {\r\n _this.selectedSubTypeId = _this.subTypes[0].uniqueIdentifier;\r\n _this.parseMatrix();\r\n });\r\n }\r\n });\r\n }\r\n SecurityMatrixModel.prototype.securityMatrixChanged = function () {\r\n if (this.securityMatrix.reusedSecurityMatrix) {\r\n this.securityMatrix.usesAnotherSecurityMatrix = true;\r\n }\r\n else {\r\n this.securityMatrix.usesAnotherSecurityMatrix = false;\r\n }\r\n this.securityMatrixService.saveAllChanges();\r\n };\r\n SecurityMatrixModel.prototype.getClaimValueName = function (claimUniqueId) {\r\n if (!claimUniqueId)\r\n return \"\";\r\n var id = this.securityMatrix.claimTreeItems[claimUniqueId];\r\n var treeItem = Enumerable.from(this.securityMatrix.claimBindings).singleOrDefault(function (c) { return c.id === id; });\r\n if (treeItem) {\r\n return this.treeService.getDisplayName(treeItem);\r\n }\r\n return \"\";\r\n };\r\n SecurityMatrixModel.prototype.onDrop = function ($event, claimUniqueId) {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped(function () {\r\n });\r\n this.securityMatrix.claimBindings.push(treeItem);\r\n this.securityMatrix.claimTreeItems[claimUniqueId] = treeItem.id;\r\n this.securityMatrix.claimTreeItemsJson = JSON.stringify(this.securityMatrix.claimTreeItems);\r\n this.securityMatrixService.saveAllChanges();\r\n };\r\n SecurityMatrixModel.prototype.viewSecurityMatrix = function (securityMatrix) {\r\n this.securityMatrixService.openViewSecurityMatrixModal(securityMatrix.id);\r\n };\r\n SecurityMatrixModel.prototype.filterReusableSecurityMatrices = function () {\r\n var _this = this;\r\n this.securityMatrices = Enumerable.from(this.securityMatrices)\r\n .where(function (s) { return s.matrixType == _this.securityMatrix.matrixType; })\r\n .toArray();\r\n };\r\n SecurityMatrixModel.prototype.parseMatrix = function () {\r\n var _this = this;\r\n var matrix = JSON.parse(this.securityMatrix.matrixJson);\r\n if (this.securityMatrix.matrixType === 3 /* SecurityRow */) {\r\n this.selectedSubTypeId = this.NO_SUBTYPE;\r\n }\r\n if (this.securityMatrix.claimTreeItemsJson) {\r\n this.securityMatrix.claimTreeItems = JSON.parse(this.securityMatrix.claimTreeItemsJson);\r\n }\r\n else {\r\n this.securityMatrix.claimTreeItems = {};\r\n }\r\n var isChanged = false;\r\n if (!matrix) {\r\n matrix = {};\r\n if (this.securityMatrix.matrixType == 3 /* SecurityRow */) {\r\n matrix[this.NO_SUBTYPE] = {};\r\n matrix[this.NO_SUBTYPE][this.NO_STATE] = {};\r\n this.claims.forEach(function (claim) {\r\n matrix[_this.NO_SUBTYPE][_this.NO_STATE][claim.uniqueIdentifier] = {};\r\n });\r\n }\r\n else if (this.securityMatrix.matrixType ===\r\n 4 /* SecurityRowWithSubType */) {\r\n this.subTypes.forEach(function (subType) {\r\n matrix[subType.uniqueIdentifier] = {};\r\n _this.claims.forEach(function (claim) {\r\n matrix[subType.uniqueIdentifier][_this.NO_STATE] = {};\r\n matrix[subType.uniqueIdentifier][_this.NO_STATE][claim.uniqueIdentifier] = {};\r\n });\r\n });\r\n }\r\n else {\r\n this.subTypes.forEach(function (subType) {\r\n matrix[subType.uniqueIdentifier] = {};\r\n _this.states.forEach(function (state) {\r\n if (!state.isStatus) {\r\n //console.log(state);\r\n return;\r\n }\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier] = {};\r\n _this.claims.forEach(function (claim) {\r\n if (_this.securityMatrix.matrixType ==\r\n 1 /* HideOrShow */) {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][claim.uniqueIdentifier] = {\r\n show: false\r\n };\r\n }\r\n else {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][claim.uniqueIdentifier] = {\r\n visibility: 'hidden'\r\n };\r\n }\r\n });\r\n if (_this.securityMatrix.matrixType ==\r\n 1 /* HideOrShow */) {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][_this.NO_CLAIM] = {\r\n show: false\r\n };\r\n if (!_this.processConfigurationId) {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][_this.PROCESS_INITATOR] = {\r\n show: false\r\n };\r\n }\r\n }\r\n else {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][_this.NO_CLAIM] = {\r\n visibility: 'hidden'\r\n };\r\n if (!_this.processConfigurationId) {\r\n matrix[subType.uniqueIdentifier][state.uniqueIdentifier][_this.PROCESS_INITATOR] = {\r\n visibility: 'hidden'\r\n };\r\n }\r\n }\r\n });\r\n });\r\n }\r\n this.securityMatrix.matrix = matrix;\r\n }\r\n else if (matrix) {\r\n for (var subType in matrix) {\r\n var _loop_1 = function (stateId) {\r\n if (matrix[subType].hasOwnProperty(stateId)) {\r\n if (matrix[subType][stateId]) {\r\n if (!Enumerable.from(this_1.states).any(function (s) { return s.uniqueIdentifier === stateId; })) {\r\n if (stateId === \"alwaysVisible\") {\r\n return \"continue\";\r\n }\r\n delete matrix[subType][stateId];\r\n isChanged = true;\r\n return \"continue\";\r\n }\r\n var _loop_2 = function (claimUniqueId) {\r\n if (claimUniqueId === \"isOverridden\") {\r\n return \"continue\";\r\n }\r\n if (matrix.hasOwnProperty(stateId)) {\r\n if (matrix[subType][stateId]) {\r\n claimsEnumerable = Enumerable.from(this_1.claims);\r\n if (!claimsEnumerable.any(function (c) { return c.uniqueIdentifier === claimUniqueId; })) {\r\n delete matrix[subType][stateId][claimUniqueId];\r\n isChanged = true;\r\n return \"continue\";\r\n }\r\n else {\r\n if (this_1.securityMatrix.matrixType ==\r\n 2 /* HideOrReadOnlyOrUpdateable */) {\r\n if (!matrix[subType][stateId][claimUniqueId].visibility) {\r\n matrix[subType][stateId][claimUniqueId].visibility = 'hidden';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n for (var claimUniqueId in matrix[subType][stateId]) {\r\n _loop_2(claimUniqueId);\r\n }\r\n }\r\n }\r\n };\r\n var this_1 = this, claimsEnumerable;\r\n for (var stateId in matrix[subType]) {\r\n _loop_1(stateId);\r\n }\r\n }\r\n }\r\n this.securityMatrix.matrix = matrix;\r\n if (isChanged) {\r\n this.matrixChanged();\r\n }\r\n };\r\n SecurityMatrixModel.prototype.selectAllClaim = function (claimId) {\r\n for (var state in this.securityMatrix.matrix[this.selectedSubTypeId]) {\r\n this.securityMatrix.matrix[this.selectedSubTypeId][state][claimId].show = true;\r\n }\r\n this.saveMatrixChange();\r\n };\r\n SecurityMatrixModel.prototype.overrideStatusConfirm = function (statusId, stateName) {\r\n //this.statusOverrideName = stateName;\r\n this.overrideStatusId = statusId;\r\n this.isOverriding = true;\r\n this.isCollapsing = false;\r\n var result = confirm(\"Please confirm you want to configure security at the individual state level for status \" + stateName);\r\n if (result) {\r\n this.confirmOverride();\r\n }\r\n else {\r\n this.cancelOverride();\r\n }\r\n };\r\n SecurityMatrixModel.prototype.undoOverrideStatusConfirm = function (statusId, stateName) {\r\n //this.statusOverrideName = stateName;\r\n this.overrideStatusId = statusId;\r\n this.isCollapsing = true;\r\n this.isOverriding = false;\r\n var result = confirm(\"Please confirm you want to configure security at the status level instead of the state level for status \" + stateName);\r\n if (result) {\r\n this.confirmOverride();\r\n }\r\n else {\r\n this.cancelOverride();\r\n }\r\n };\r\n SecurityMatrixModel.prototype.toggleAlwaysShowSecurityMatrixTextHorizontal = function () {\r\n localStorage.setItem(\"alwaysShowSecurityMatrixTextHorizontal\", JSON.stringify(this.alwaysShowSecurityMatrixTextHorizontal));\r\n };\r\n SecurityMatrixModel.prototype.getProcessConfigurationInfo = function () {\r\n var _this = this;\r\n var d = this.$q.defer();\r\n if (this.processConfigurationId) {\r\n this.$q.all([\r\n this.processConfigurationService.getPermitSubTypeInfo(this.processConfigurationId)\r\n .then(function (r) {\r\n if (r) {\r\n _this.subTypes = Enumerable.from(r.mySubTypeConfiguration.myProcessSubTypes).orderBy(function (i) { return i.name; }).toArray();\r\n if (_this.subTypes.length === 1) {\r\n _this.selectedSubTypeId = _this.subTypes[0].uniqueIdentifier;\r\n }\r\n }\r\n }),\r\n this.claimService.getAllProcessClaims(this.processConfigurationId)\r\n .then(function (claims) {\r\n _this.processClaims = Enumerable.from(claims).orderBy(function (i) { return i.type; }).toArray();\r\n }),\r\n this.conditionService.getAllConditions(this.processConfigurationId)\r\n .then(function (conditions) {\r\n _this.conditions = conditions;\r\n }),\r\n this.relatedClaimProcessTypeService.getRelatedClaims(this.processConfigurationId)\r\n .then(function (r) {\r\n _this.relatedClaimProcessTypes = r;\r\n })\r\n ])\r\n .then(function () {\r\n d.resolve();\r\n });\r\n }\r\n else {\r\n this.systemLevelService.getSystemLevelSubTypeGroups().then(function (systemLevel) {\r\n _this.subTypes = [];\r\n Enumerable.from(systemLevel.mySubTypeGroups).orderBy(function (i) { return i.name; }).forEach(function (subType) {\r\n _this.subTypes.push({\r\n name: subType.name,\r\n uniqueIdentifier: subType.id\r\n });\r\n });\r\n if (_this.subTypes.length === 1) {\r\n _this.selectedSubTypeId = _this.subTypes[0].uniqueIdentifier;\r\n }\r\n d.resolve();\r\n });\r\n }\r\n return d.promise;\r\n };\r\n SecurityMatrixModel.prototype.getStates = function () {\r\n var _this = this;\r\n this.states = [];\r\n var d = this.$q.defer();\r\n if (this.securityMatrix.matrixType ===\r\n 4 /* SecurityRowWithSubType */ ||\r\n this.securityMatrix.matrixType === 3 /* SecurityRow */) {\r\n this.states.push({\r\n sortName: \"NO STATUS\",\r\n name: \"NO STATE\",\r\n uniqueIdentifier: this.NO_STATE,\r\n isStatus: true\r\n });\r\n //console.log(this.states);\r\n d.resolve();\r\n }\r\n else if (this.processConfigurationId) {\r\n this.statusService.getProcessStatesWithDetails(this.processConfigurationId)\r\n .then(function (result) {\r\n var statusGroups = Enumerable.from(result.statusGroups).orderBy(function (i) { return i.statusName; }).toArray();\r\n statusGroups.forEach(function (p) {\r\n var newStatus = {\r\n sortName: p.statusName,\r\n name: p.statusName,\r\n isStatus: true,\r\n uniqueIdentifier: p.uniqueIdentifier\r\n };\r\n _this.states.push(newStatus);\r\n _this.statusToStateDictionary[p.uniqueIdentifier] = [];\r\n var stateWorkflowBlocks = Enumerable.from(p.workflowBlocks)\r\n .where(function (i) { return i.blockType === 0 /* State */; })\r\n .orderBy(function (i) { return i.name; })\r\n .toArray();\r\n stateWorkflowBlocks.forEach(function (workflowBlock) {\r\n if (workflowBlock.blockType !== 0 /* State */)\r\n return;\r\n _this.stateToStatusDictionary[workflowBlock.myStateDto.stateCodeUniqueId] = p.uniqueIdentifier;\r\n _this.statusToStateDictionary[p.uniqueIdentifier].push(workflowBlock.myStateDto.stateCodeUniqueId);\r\n var newState = {\r\n sortName: p.statusName + workflowBlock.name,\r\n name: workflowBlock.name,\r\n isStatus: false,\r\n uniqueIdentifier: workflowBlock.myStateDto.stateCodeUniqueId\r\n };\r\n _this.states.push(newState);\r\n });\r\n });\r\n d.resolve();\r\n });\r\n }\r\n else {\r\n this.systemLevelService.getSystemLevelStatusesAndStates().then(function (system) {\r\n Enumerable.from(system.statusCodeGroup.myStatuses).orderBy(function (i) { return i.shortDescription; }).forEach(function (s) {\r\n var newStatus = {\r\n sortName: s.shortDescription,\r\n name: s.shortDescription,\r\n isStatus: true,\r\n uniqueIdentifier: s.uniqueIdentifier\r\n };\r\n _this.statusToStateDictionary[s.uniqueIdentifier] = [];\r\n _this.states.push(newStatus);\r\n var stateCodes = Enumerable.from(s.myStates)\r\n .orderBy(function (i) { return i.shortDescription; })\r\n .toArray();\r\n stateCodes.forEach(function (state) {\r\n var newState = {\r\n sortName: s.shortDescription + state.shortDescription,\r\n name: state.shortDescription,\r\n isStatus: false,\r\n uniqueIdentifier: state.uniqueIdentifier\r\n };\r\n _this.stateToStatusDictionary[state.uniqueIdentifier] = s.uniqueIdentifier;\r\n _this.statusToStateDictionary[s.uniqueIdentifier].push(newState.uniqueIdentifier);\r\n _this.states.push(newState);\r\n });\r\n });\r\n _this.states = Enumerable.from(_this.states).orderBy(function (i) { return i.name; }).toArray();\r\n d.resolve();\r\n });\r\n }\r\n return d.promise;\r\n };\r\n SecurityMatrixModel.prototype.cancelOverride = function () {\r\n this.statusOverrideName = null;\r\n this.overrideStatusId = null;\r\n this.isCollapsing = false;\r\n this.isOverriding = false;\r\n };\r\n SecurityMatrixModel.prototype.confirmOverride = function () {\r\n if (this.isOverriding) {\r\n this.overrideStatus(this.overrideStatusId);\r\n }\r\n else if (this.isCollapsing) {\r\n this.undoOverrideStatus(this.overrideStatusId);\r\n }\r\n this.cancelOverride();\r\n };\r\n SecurityMatrixModel.prototype.pasteState = function (stateId) {\r\n var copyObj = JSON.parse(JSON.stringify(this.securityMatrix.matrix[this.selectedSubTypeId][this.copyStateId]));\r\n this.securityMatrix.matrix[this.selectedSubTypeId][stateId] = copyObj;\r\n this.matrixChanged();\r\n };\r\n SecurityMatrixModel.prototype.pasteSubType = function () {\r\n var copyObj = JSON.parse(JSON.stringify(this.securityMatrix.matrix[this.copySubTypeId]));\r\n this.securityMatrix.matrix[this.selectedSubTypeId] = copyObj;\r\n this.matrixChanged();\r\n };\r\n SecurityMatrixModel.prototype.overrideStatus = function (statusId) {\r\n var _this = this;\r\n var object = this.securityMatrix.matrix[this.selectedSubTypeId][statusId];\r\n if (!object) {\r\n object = this.securityMatrix.matrix[this.selectedSubTypeId][statusId] = {\r\n isOverridden: true\r\n };\r\n }\r\n object.isOverridden = true;\r\n for (var propName in object) {\r\n if (object.hasOwnProperty(propName)) {\r\n if (propName === \"isOverridden\") {\r\n continue;\r\n }\r\n delete object[propName];\r\n }\r\n }\r\n if (this.securityMatrix.matrixType ===\r\n 2 /* HideOrReadOnlyOrUpdateable */) {\r\n this.statusToStateDictionary[statusId].forEach(function (state) {\r\n _this.securityMatrix.matrix[_this.selectedSubTypeId][state] = {};\r\n _this.claims.forEach(function (claim) {\r\n _this.securityMatrix.matrix[_this.selectedSubTypeId][state][claim.uniqueIdentifier] = { visibility: 'hidden' };\r\n });\r\n });\r\n }\r\n this.matrixChanged();\r\n };\r\n SecurityMatrixModel.prototype.undoOverrideStatus = function (statusId) {\r\n var _this = this;\r\n this.securityMatrix.matrix[this.selectedSubTypeId][statusId].isOverridden = false;\r\n this.statusToStateDictionary[statusId].forEach(function (state) {\r\n delete _this.securityMatrix.matrix[_this.selectedSubTypeId][state];\r\n });\r\n if (this.securityMatrix.matrixType ===\r\n 2 /* HideOrReadOnlyOrUpdateable */) {\r\n this.securityMatrix.matrix[this.selectedSubTypeId][statusId] = {};\r\n this.claims.forEach(function (claim) {\r\n _this.securityMatrix.matrix[_this.selectedSubTypeId][statusId][claim.uniqueIdentifier] = { visibility: 'hidden' };\r\n });\r\n }\r\n this.matrixChanged();\r\n };\r\n SecurityMatrixModel.prototype.matrixChanged = function (stateId, claimUniqueId, propertyName) {\r\n if (stateId && claimUniqueId) {\r\n delete this.securityMatrix.matrix[this.selectedSubTypeId][stateId][claimUniqueId].condition_id;\r\n if (this.stateToStatusDictionary[stateId]) {\r\n this.securityMatrix.matrix[this.selectedSubTypeId][stateId][claimUniqueId].isStatus = true;\r\n }\r\n }\r\n this.saveMatrixChange();\r\n };\r\n SecurityMatrixModel.prototype.saveMatrixChange = function () {\r\n this.securityMatrix.matrixJson = JSON.stringify(this.securityMatrix.matrix);\r\n this.securityMatrixService.saveAllChanges();\r\n };\r\n SecurityMatrixModel.prototype.conditionChanged = function () {\r\n this.securityMatrixService.saveAllChanges();\r\n };\r\n SecurityMatrixModel.prototype.isAlwaysVisible = function () {\r\n this.securityMatrix.condition = null;\r\n this.saveMatrixChange();\r\n this.securityMatrixService.saveAllChanges();\r\n };\r\n SecurityMatrixModel.prototype.addCondition = function (claim, state) {\r\n var self = this;\r\n this.modalService.showModal({\r\n templateUrl: \"./app/views/modals/securityMatrixConditionModal.html\",\r\n controller: \"securityMatrixConditionModalController\",\r\n inputs: {\r\n claim: claim,\r\n matrix: self.securityMatrix.matrix,\r\n state: state,\r\n conditions: self.conditions\r\n }\r\n })\r\n .then(function (modal) {\r\n // The modal object has the element built, if this is a bootstrap modal\r\n // you can call 'modal' to show it, if it's a custom modal just show or hide\r\n // it as you need to.\r\n modal.element.modal();\r\n modal.close.then(function (result) {\r\n if (result) {\r\n self.matrixChanged();\r\n }\r\n else {\r\n self.parseMatrix();\r\n }\r\n });\r\n });\r\n };\r\n SecurityMatrixModel.prototype.hideClaim = function (claim) {\r\n this.excludedSecurityMatrixClaimsUniqueIds.push(claim.uniqueIdentifier);\r\n };\r\n SecurityMatrixModel.prototype.showAllClaims = function () {\r\n this.excludedSecurityMatrixClaimsUniqueIds = [];\r\n };\r\n SecurityMatrixModel.prototype.saveHiddenClaims = function () {\r\n localStorage.setItem(\"excludedSecurityMatrixClaimsUniqueIds\", JSON.stringify(this.excludedSecurityMatrixClaimsUniqueIds));\r\n };\r\n return SecurityMatrixModel;\r\n }());\r\n directives.SecurityMatrixModel = SecurityMatrixModel;\r\n var SecurityMatrixController = /** @class */ (function () {\r\n function SecurityMatrixController($scope, claimService, systemLevelService, statusService, securityMatrixService, conditionService, $q, modalService, treeService, processConfigurationService, relatedClaimProcessTypeService) {\r\n $scope.model = new SecurityMatrixModel($scope.matrix, claimService, systemLevelService, statusService, securityMatrixService, conditionService, $q, modalService, $scope.processConfigurationId, $scope, treeService, processConfigurationService, relatedClaimProcessTypeService, $scope.hideReuse);\r\n }\r\n return SecurityMatrixController;\r\n }());\r\n directives.SecurityMatrixController = SecurityMatrixController;\r\n })(directives = warsApp.directives || (warsApp.directives = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerDirective('SecurityMatrix', []);\r\n","/// \r\nmodule warsApp.directives {\r\n\r\n export class SetFieldData implements IDirective {\r\n public controller = [\"$scope\", \"treeItemService\", \"treeService\", SetFieldDataController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/setFieldData.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n setDataOperation: \"=\",\r\n processConfigId: \"=\",\r\n allowListOnly: \"=\"\r\n };\r\n\r\n public link(scope: ISetFieldDataScope,\r\n element: ng.IAugmentedJQuery,\r\n attrs: ng.IAttributes,\r\n controller: SetFieldDataController): void {\r\n }\r\n }\r\n\r\n export interface ISetFieldDataScope extends ng.IScope {\r\n setDataOperation: Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto;\r\n processConfigId: string;\r\n\r\n sourceTreeItem: Wars.Domain.Model.TreeItem;\r\n destinationTreeItem: Wars.Domain.Model.TreeItem;\r\n allowListOnly: boolean;\r\n\r\n onSourceDragOver($event: any): void;\r\n onSourceDrop($event: any): void;\r\n\r\n onDestinationDragOver($event: any): void;\r\n onDestinationDrop($event: any): void;\r\n }\r\n\r\n export class SetFieldDataController implements IController {\r\n\r\n private isSystemLevel: boolean;\r\n\r\n constructor(\r\n private $scope: ISetFieldDataScope,\r\n private treeItemService: services.TreeItemService,\r\n private treeService: services.TreeService)\r\n {\r\n this.$scope.onSourceDragOver = ($event: any) => this.onSourceDragOver($event);\r\n this.$scope.onSourceDrop = ($event: any) => this.onSourceDrop($event);\r\n this.$scope.onDestinationDragOver = ($event: any) => this.onDestinationDragOver($event);\r\n this.$scope.onDestinationDrop = ($event: any) => this.onDestinationDrop($event);\r\n\r\n this.$scope.$watch('setDataOperation',\r\n () => {\r\n this.setDataOperationChanged();\r\n });\r\n }\r\n\r\n private setDataOperationChanged(): void {\r\n if (this.$scope.setDataOperation) {\r\n if (this.$scope.setDataOperation.sourceTreeItem_id) {\r\n this.treeItemService.getTreeItem(this.$scope.setDataOperation.sourceTreeItem_id)\r\n .then((treeItem) => {\r\n this.$scope.sourceTreeItem = treeItem;\r\n (this.$scope.sourceTreeItem).detailedDisplay = this.getTreeItemDisplay(treeItem);\r\n this.treeService.getDetailedDisplayName(treeItem).then((detailedName) => {\r\n if (detailedName) {\r\n (this.$scope.sourceTreeItem).detailedDisplay = detailedName;\r\n }\r\n });\r\n });\r\n }\r\n if (this.$scope.setDataOperation.destinationTreeItem_id) {\r\n this.treeItemService.getTreeItem(this.$scope.setDataOperation.destinationTreeItem_id)\r\n .then((treeItem) => {\r\n this.$scope.destinationTreeItem = treeItem;\r\n (this.$scope.destinationTreeItem).detailedDisplay = this.getTreeItemDisplay(treeItem);\r\n this.treeService.getDetailedDisplayName(treeItem).then((detailedName) => {\r\n if (detailedName) {\r\n (this.$scope.destinationTreeItem).detailedDisplay = detailedName;\r\n }\r\n });\r\n });\r\n }\r\n } else {\r\n this.$scope.sourceTreeItem = undefined;\r\n this.$scope.destinationTreeItem = undefined;\r\n }\r\n }\r\n\r\n private getTreeItemDisplay(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (treeItem) {\r\n return this.treeService.getDisplayName(treeItem) + \" of \" + this.treeService.getParentDisplayName(treeItem);\r\n }\r\n return \"\";\r\n }\r\n\r\n private onSourceDragOver($event: any): void {\r\n \r\n }\r\n\r\n private onSourceDrop($event: any): void {\r\n // Purposely allowing list items on source, they will add a single row in the destination list\r\n\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n\r\n this.$scope.sourceTreeItem = treeItem;\r\n this.$scope.setDataOperation.sourceTreeItem_id = treeItem.id;\r\n (this.$scope.sourceTreeItem).detailedDisplay = this.getTreeItemDisplay(treeItem);\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n }\r\n\r\n private onDestinationDragOver($event: any): void {\r\n\r\n }\r\n\r\n private onDestinationDrop($event: any): void {\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n\r\n if (treeConfig.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.FormField &&\r\n treeConfig.treeItemSource !== Wars.Domain.Model.Codes.Enums.TreeItemSource.Variable) {\r\n alert(\"Data can only be copied into Form Fields and Process Variables.\");\r\n }\r\n else if (this.$scope.allowListOnly && !treeConfig.isList) {\r\n alert(\"Only list properties can be selected.\");\r\n }\r\n else if (treeConfig.isSystemLevel) {\r\n alert(\"Data can only be copied into Process Level Form Fields or Process Level Variables. System Level tree items cannot be selected.\");\r\n } else {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n\r\n this.$scope.destinationTreeItem = treeItem;\r\n this.$scope.setDataOperation.destinationTreeItem_id = treeItem.id;\r\n (this.$scope.destinationTreeItem).detailedDisplay = this.getTreeItemDisplay(treeItem);\r\n }\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('SetFieldData', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export class SetListData implements IDirective {\r\n public controller = [\"$scope\", \"treeItemService\", \"treeService\", \"workflowService\", SetListDataController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/setListData.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n setDataOperation: \"=\",\r\n processConfigId: \"=\",\r\n };\r\n\r\n public link(scope: ISetListDataScope,\r\n element: ng.IAugmentedJQuery,\r\n attrs: ng.IAttributes,\r\n controller: SetListDataController): void {\r\n }\r\n }\r\n\r\n export interface ISetListDataScope extends ng.IScope {\r\n setDataOperation: Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto;\r\n processConfigId: string;\r\n\r\n sourceTreeItem: Wars.Domain.Model.TreeItem;\r\n destinationTreeItem: Wars.Domain.Model.TreeItem;\r\n\r\n onSourceDragOver($event: any): void;\r\n onSourceDrop($event: any): void;\r\n\r\n onDestinationDragOver($event: any): void;\r\n onDestinationDrop($event: any): void;\r\n\r\n getTreeItemDisplay(treeItem: Wars.Domain.Model.TreeItem): string;\r\n\r\n addSetDataOperation(): void;\r\n\r\n updateSourceList(name: string): void;\r\n updateDestinationList(name: string): void;\r\n }\r\n\r\n export class SetListDataController implements IController {\r\n\r\n private isSystemLevel: boolean;\r\n\r\n constructor(\r\n private $scope: ISetListDataScope,\r\n private treeItemService: services.TreeItemService,\r\n private treeService: services.TreeService,\r\n private workflowService: services.WorkflowService)\r\n {\r\n this.$scope.addSetDataOperation = () => this.addSetDataOperation();\r\n }\r\n\r\n private addSetDataOperation(): void {\r\n var newSetDataOperation = this.workflowService.createNewListDataOperation(this.$scope.setDataOperation);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('SetListData', []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface ITreeItemLookupScope extends ng.IScope {\r\n model: models.TreeItemLookupModel;\r\n lookupEntries: Wars.Domain.Model.TreeItemLookup[];\r\n processConfigId: string;\r\n includeTreeSections: string;\r\n isReadonly: boolean;\r\n }\r\n\r\n export class TreeItemLookup implements IDirective {\r\n public link($scope: ITreeItemLookupScope, element: JQuery, attrs: ng.IAttributes, controller: TreeItemLookupController) { }\r\n public templateUrl = \"./app/views/directives/treeItemLookup.html\";\r\n public restrict: string = \"E\";\r\n public controller = [\"$scope\", \"treeItemLookupService\", \"treeService\", TreeItemLookupController];\r\n public controllerAs = \"controller\";\r\n public scope: any = {\r\n lookupEntries: \"=\",\r\n processConfigId: \"=\",\r\n includeTreeSections: \"@\",\r\n isReadonly: \"=\"\r\n };\r\n }\r\n\r\n export class TreeItemLookupController implements IController {\r\n\r\n constructor(\r\n private $scope: ITreeItemLookupScope,\r\n treeItemLookupService: services.TreeItemLookupService,\r\n treeService: services.TreeService)\r\n {\r\n\r\n this.$scope.model = new models.TreeItemLookupModel(\r\n treeItemLookupService,\r\n treeService,\r\n this.$scope.lookupEntries,\r\n this.$scope.processConfigId,\r\n this.$scope.includeTreeSections === undefined ? \"\" : this.$scope.includeTreeSections, \r\n this.$scope.isReadonly);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective(\"TreeItemLookup\", []);","/// \r\nmodule warsApp.directives {\r\n\r\n export interface IUserViewScope extends ng.IScope {\r\n userId: string;\r\n user: Wars.Domain.Model.Dtos.UserSearchDto;\r\n }\r\n\r\n export class UserView implements IDirective {\r\n public link($scope: ITreeItemLookupScope, element: JQuery, attrs: ng.IAttributes, controller: TreeItemLookupController) { }\r\n public controller = ['$scope', \"userService\", UserViewController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/userView.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n userId: '=',\r\n };\r\n }\r\n\r\n export class UserViewController implements IController {\r\n \r\n constructor(\r\n private $scope: IUserViewScope,\r\n private userService: services.UserService)\r\n {\r\n $scope.$watch(\"userId\", () => {\r\n if (this.$scope.userId) {\r\n this.userService.getUser(this.$scope.userId).then((user) => this.$scope.user = user);\r\n } else {\r\n this.$scope.user = undefined;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('UserView', []);","/// \r\n/// \r\nmodule warsApp.directives {\r\n\r\n export class WorkflowWorkspace implements IDirective {\r\n public controller = ['$scope', '$rootScope', '$timeout', 'workflowService', 'workflowDrawingService', 'ModalService', WorkflowWorkspaceController];\r\n public controllerAs = 'controller';\r\n public templateUrl = './app/views/directives/workflowWorkspace.html';\r\n public restrict: string = \"E\";\r\n\r\n public scope: any = {\r\n model: '='\r\n };\r\n\r\n public link(scope: IWorkflowWorkspaceScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, controller: WorkflowWorkspaceController): void\r\n { }\r\n }\r\n\r\n export interface IWorkflowWorkspaceScope extends ng.IScope {\r\n model: models.WorkflowWorkspaceModel;\r\n }\r\n\r\n export class WorkflowWorkspaceController implements IController {\r\n private scope: IWorkflowWorkspaceScope;\r\n\r\n constructor(\r\n $scope: IWorkflowWorkspaceScope,\r\n $rootScope: ng.IRootScopeService,\r\n $timeout: ng.ITimeoutService,\r\n workflowService: services.WorkflowService,\r\n workflowDrawingService: services.WorkflowDrawingService,\r\n modalService: any) {\r\n this.scope = $scope;\r\n this.scope.model.injectDependencies(workflowService, workflowDrawingService, modalService, this.scope, $rootScope);\r\n\r\n $timeout(() => {\r\n this.scope.model.initialize();\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerDirective('WorkflowWorkspace', []);","/// \r\nmodule warsApp.filters {\r\n export class BreezeDeleted implements IFilter {\r\n filter(input:Array, ...args: any[]) {\r\n if (input == undefined)\r\n return undefined;\r\n var x= input.filter(item => {\r\n return !item.entityAspect.entityState.isDeleted();\r\n });\r\n\r\n return x;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerFilter('BreezeDeleted');","/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var filters;\r\n (function (filters) {\r\n var BreezeDeleted = /** @class */ (function () {\r\n function BreezeDeleted() {\r\n }\r\n BreezeDeleted.prototype.filter = function (input) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (input == undefined)\r\n return undefined;\r\n var x = input.filter(function (item) {\r\n return !item.entityAspect.entityState.isDeleted();\r\n });\r\n return x;\r\n };\r\n return BreezeDeleted;\r\n }());\r\n filters.BreezeDeleted = BreezeDeleted;\r\n })(filters = warsApp.filters || (warsApp.filters = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerFilter('BreezeDeleted');\r\n","angular.module(\"warsApp.filters\").filter('defaultText', function () {\r\n return function (value, defaultValue) {\r\n return isUndefinedNullOrWhiteSpace(value)\r\n ? defaultValue\r\n : value;\r\n };\r\n});","angular.module(\"warsApp.filters\").filter('phone', function () {\r\n return function (tel) {\r\n if (!tel) { return ''; }\r\n var value = tel.toString().trim().replace(/^\\+/, '');\r\n if (value.match(/[^0-9]/)) {\r\n return tel;\r\n }\r\n //var country, city, number;\r\n var city, number;\r\n var ext = undefined;\r\n switch (value.length) {\r\n case 10: // +1PPP####### -> C (PPP) ###-####\r\n //country = 1;\r\n city = value.slice(0, 3);\r\n number = value.slice(3);\r\n break;\r\n\r\n //case 11: // +CPPP####### -> CCC (PP) ###-####\r\n // country = value[0];\r\n // city = value.slice(1, 4);\r\n // number = value.slice(4);\r\n // break;\r\n\r\n //case 12: // +CCCPP####### -> CCC (PP) ###-####\r\n // country = value.slice(0, 3);\r\n // city = value.slice(3, 5);\r\n // number = value.slice(5);\r\n // break;\r\n\r\n case 11, 12, 13, 14, 15, 16:\r\n city = value.slice(0, 3);\r\n number = value.slice(3, 10);\r\n ext = value.slice(10);\r\n break;\r\n default:\r\n return tel;\r\n\r\n }\r\n //if (country == 1) {\r\n // country = \"\";\r\n //}\r\n number = number.slice(0, 3) + '-' + number.slice(3, 7);\r\n //return (country + \" (\" + city + \") \" + number).trim();\r\n return (\"(\" + city + \") \" + number + (ext ? ' ext. ' + ext : '')).trim();\r\n };\r\n});","/// \r\nmodule warsApp.filters {\r\n \r\n export class ReadableFileSize implements IFilter {\r\n constructor(private documentService: services.DocumentService) { }\r\n\r\n public filter(input: string): string {\r\n if (!input) return 'N/A';\r\n var displayString = this.documentService.getFileSizeStringFilter(input);\r\n return displayString;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerFilter('ReadableFileSize', [\"documentService\"]);","angular.module(\"warsApp.filters\").filter('startFrom', function () {\r\n return function (input, start) {\r\n if (input == undefined) return null;\r\n return input.slice(start);\r\n }\r\n});","angular.module(\"warsApp.filters\").filter('substring', function () {\r\n return function (str, start, end) {\r\n if (str == undefined)\r\n return str;\r\n\r\n return str.substring(start, end);\r\n };\r\n});","angular.module(\"warsApp.filters\")\r\n .filter('toTrusted', ['$sce', function ($sce) {\r\n return function (text) {\r\n return $sce.trustAsHtml(text);\r\n };\r\n}]);","angular.module(\"warsApp.filters\")\r\n .filter('toTrustedUrl', ['$sce', function ($sce) {\r\n return function (url) {\r\n return $sce.trustAsResourceUrl(url);\r\n };\r\n}]);","(function () {\r\n \"use strict\";\r\n angular\r\n .module(\"warsApp.filters\")\r\n .filter(\"utcToLocal\", Filter);\r\n function Filter($filter) {\r\n return function (utcDateString, format) {\r\n // return if input date is null or undefined\r\n if (!utcDateString) {\r\n return;\r\n }\r\n // append 'Z' to the date string to indicate UTC time if the timezone isn't already specified\r\n if (utcDateString.indexOf('Z') === -1 && utcDateString.indexOf('+') === -1) {\r\n utcDateString += 'Z';\r\n }\r\n // convert and format date using the built in angularjs date filter\r\n return $filter('date')(utcDateString, format);\r\n };\r\n }\r\n})();","angular.module(\"warsApp.filters\").filter('yesNoFilter', function () {\r\n return function (input) {\r\n if (input === true)\r\n return \"Yes\";\r\n return \"No\";\r\n }\r\n});","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IBaseModalControllerScope extends angular.IScope {\r\n close: any;\r\n dismissModal: any;\r\n }\r\n\r\n export class BaseModalController implements IController {\r\n scope: IBaseModalControllerScope;\r\n\r\n constructor($scope: IBaseModalControllerScope, close: any) {\r\n this.scope = $scope;\r\n this.scope.close = close;\r\n this.scope.dismissModal = (result) => this.dismissModal(result);\r\n }\r\n\r\n protected dismissModal(result: any): void {\r\n this.scope.close(result, 200); // close, but give 200ms for bootstrap to animate\r\n setTimeout(function() {\r\n var body = jQuery('body');\r\n body.removeClass('modal-open');\r\n $('.modal-backdrop').remove();\r\n body.css(\"padding-right\", \"0\");\r\n }, 201);\r\n }\r\n }\r\n}","/// \r\nmodule warsApp.controllers {\r\n export interface IActiveProcessTypesScope extends angular.IScope {\r\n model: models.ActiveProcessTypesModel\r\n }\r\n\r\n\r\n export class ActiveProcessTypesController implements IController {\r\n constructor(\r\n private scope: IActiveProcessTypesScope,\r\n processTypeService: services.ProcessTypeService) {\r\n this.scope.model = new models.ActiveProcessTypesModel(processTypeService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ActiveProcessTypesController', ['$scope', 'processTypeService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IBatchJobDashboardScope extends angular.IScope {\r\n model: models.BatchJobDashboardModel;\r\n }\r\n\r\n export class BatchJobDashboardController implements IController {\r\n\r\n constructor(\r\n private scope: IBatchJobDashboardScope,\r\n growl: angular.growl.IGrowlService,\r\n batchJobDashboardService: services.BatchJobDashboardService) {\r\n this.scope.model = new models.BatchJobDashboardModel(\r\n scope,\r\n growl,\r\n batchJobDashboardService\r\n );\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('BatchJobDashboardController', ['$scope', 'growl', 'batchJobDashboardService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IChangeSystemTimeScope extends angular.IScope {\r\n offSetDto: Wars.Domain.Model.Dtos.DateTimeOffsetDto;\r\n changeDateTime(): void;\r\n endChangeDateTime() : void;\r\n }\r\n\r\n export class ChangeSystemTimeController implements IController {\r\n constructor(\r\n private scope: IChangeSystemTimeScope,\r\n private testService: services.TestService,\r\n private userService: services.UserService)\r\n {\r\n scope.offSetDto = {\r\n timeDurationOption: Wars.Domain.Model.Codes.Enums.TimeDurationOption.Days,\r\n timeDurationValue: 0\r\n };\r\n scope.changeDateTime = () => this.changeDateTime();\r\n scope.endChangeDateTime = () => this.endChangeDateTime();\r\n this.clearDateTimeOffset();\r\n }\r\n\r\n private changeDateTime() {\r\n this.testService.changeDateTime(this.scope.offSetDto).then(() => {\r\n alert(\"The specified Date/Time offset has been set\");\r\n });\r\n }\r\n\r\n private endChangeDateTime() {\r\n this.clearDateTimeOffset();\r\n this.testService.endChangeDateTime().then(() => {\r\n alert(\"The system Date/Time offset has been cleared\");\r\n });\r\n }\r\n\r\n private clearDateTimeOffset() {\r\n this.scope.offSetDto = {\r\n timeDurationOption: Wars.Domain.Model.Codes.Enums.TimeDurationOption.Days,\r\n timeDurationValue: 0\r\n };\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ChangeSystemTimeController', ['$scope', 'testService', \"userService\"]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IActivateSystemConfigurationScope extends angular.IScope {\r\n activate: () => void;\r\n activeSystemConfig: Wars.Domain.Model.Dtos.ConfigSnapshotDto;\r\n validationIssues: Array;\r\n }\r\n\r\n export class ActivateSystemConfigurationController implements IController {\r\n \r\n constructor(private $scope: IActivateSystemConfigurationScope, private configurationCacheService: services.ConfigurationCacheService)\r\n {\r\n this.$scope.activate = () => this.activateInternal();\r\n\r\n this.configurationCacheService.getActiveSystemLevelConfiguration().then(\r\n (systemConfig) => {\r\n this.$scope.activeSystemConfig = systemConfig;\r\n });\r\n }\r\n\r\n public activateInternal() {\r\n this.configurationCacheService.activateSystemLevelConfiguration().then(\r\n (systemConfig) => {\r\n this.$scope.activeSystemConfig = systemConfig;\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ActivateSystemConfigurationController', ['$scope', 'configurationCacheService']);","/// \r\nmodule warsApp.controllers {\r\n export interface ApiConfigurationScope extends angular.IScope {\r\n model: models.ApiConfigurationModel\r\n }\r\n\r\n export class ApiConfigurationController implements IController {\r\n constructor(\r\n private scope: ApiConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n growlService: angular.growl.IGrowlService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n systemLevelService: services.SystemLevelService,\r\n apiConfigurationService: services.ApiConfigurationService,\r\n queryConfigurationService: services.QueryConfigurationService,\r\n objectQueryService: services.ObjectQueryService,\r\n deleteService: services.DeleteService,\r\n apiKeyService:services.ApiKeyService,\r\n externalApiService: services.ExternalApiService,\r\n ngAuthSettings: any) {\r\n var processConfigurationId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.ApiConfigurationModel(\r\n scope,\r\n growlService,\r\n processConfigurationId,\r\n processConfigurationService,\r\n systemLevelService,\r\n apiConfigurationService,\r\n queryConfigurationService,\r\n objectQueryService,\r\n deleteService,\r\n apiKeyService,\r\n externalApiService,\r\n ngAuthSettings.apiServiceBaseUri);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ApiConfigurationController',\r\n ['$scope', '$routeParams', 'growl', 'processConfigurationService', 'systemLevelService', 'apiConfigurationService', 'queryConfigurationService',\r\n 'objectQueryService', 'deleteService', 'apiKeyService', 'externalApiService', 'ngAuthSettings']\r\n);","/// \r\nmodule warsApp.controllers {\r\n export interface IApiKeyScope extends angular.IScope{\r\n model: models.ApiKeyModel; \r\n }\r\n export class ApiKeyController {\r\n constructor(private $scope: IApiKeyScope, private apiKeyService: warsApp.services.ApiKeyService) {\r\n this.$scope.model = new warsApp.models.ApiKeyModel(apiKeyService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ApiKeyController', ['$scope','apiKeyService']);","/// \r\nmodule warsApp.controllers {\r\n export interface BatchJobConfigurationScope extends angular.IScope {\r\n model: models.BatchJobConfigurationModel\r\n }\r\n\r\n export class BatchJobConfigurationController implements IController {\r\n constructor(\r\n private scope: BatchJobConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n growlService: angular.growl.IGrowlService,\r\n batchJobConfigurationService: services.BatchJobConfigurationService,\r\n systemLevelService: services.SystemLevelService,\r\n deleteService: services.DeleteService,\r\n objectQueryService: services.ObjectQueryService,\r\n processActionService: services.ProcessActionService,\r\n treeService: services.TreeService,\r\n queryConfigurationService: services.QueryConfigurationService,\r\n timeZoneService: services.TimeZoneService) {\r\n var processConfigurationId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.BatchJobConfigurationModel(\r\n scope,\r\n growlService,\r\n batchJobConfigurationService,\r\n systemLevelService,\r\n deleteService,\r\n objectQueryService,\r\n processActionService,\r\n treeService,\r\n queryConfigurationService,\r\n timeZoneService,\r\n processConfigurationId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('BatchJobConfigurationController',\r\n ['$scope', '$routeParams', 'growl', 'batchJobConfigurationService', 'systemLevelService', 'deleteService', 'objectQueryService', 'processActionService', 'treeService', 'queryConfigurationService', 'timeZoneService']\r\n);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ICalculationConfigurationScope extends angular.IScope {\r\n model: models.CalculationConfigurationModel\r\n }\r\n\r\n export class CalculationConfigurationController implements IController {\r\n constructor(\r\n private scope: ICalculationConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n systemLevelService: services.SystemLevelService,\r\n calculationService: services.CalculationService,\r\n objectSchemaService: services.ObjectSchemaService,\r\n deleteService: services.DeleteService,\r\n growlService: angular.growl.IGrowlService)\r\n {\r\n var processConfigurationId = $routeParams[\"id\"];\r\n var calculationId = $routeParams[\"subId\"];\r\n\r\n this.scope.model = new models.CalculationConfigurationModel(\r\n processConfigurationId,\r\n calculationId,\r\n processConfigurationService,\r\n systemLevelService,\r\n calculationService,\r\n objectSchemaService,\r\n deleteService,\r\n growlService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('CalculationConfigurationController', [\r\n '$scope', '$routeParams', 'processConfigurationService', 'systemLevelService', 'calculationService', 'objectSchemaService', 'deleteService', 'growl'\r\n]);","/// \r\nmodule warsApp.controllers {\r\n export interface IConfigurationScope extends angular.IScope {\r\n model: models.ConfigurationModel;\r\n }\r\n\r\n export class ConfigurationController implements IController {\r\n constructor(\r\n private scope: IConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n processTypeService: services.ProcessTypeService)\r\n {\r\n var processConfigId = $routeParams[\"id\"];\r\n var section = $routeParams[\"section\"];\r\n var model = new models.ConfigurationModel(processConfigId, section, processConfigurationService, processTypeService);\r\n scope.model = model;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ConfigurationController', ['$scope', '$routeParams', 'processConfigurationService', 'processTypeService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IEsriQueryConfigurationScope extends angular.IScope {\r\n model:warsApp.models.EsriQueryConfigurationModel; \r\n }\r\n\r\n export class EsriQueryConfigurationController {\r\n constructor(\r\n scope:IEsriQueryConfigurationScope,\r\n mapConfigurationService: services.MapConfigurationService,\r\n deleteService: services.DeleteService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n $q: angular.IQService,\r\n esriMapService:services.EsriMapService) {\r\n\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n\r\n scope.model = new warsApp.models.EsriQueryConfigurationModel(mapConfigurationService,\r\n deleteService, $q,esriMapService, mapConfigurationId);\r\n }\r\n } \r\n}\r\n\r\nwarsApp.registerController('EsriQueryConfigurationController',['$scope','mapConfigurationService','deleteService','$routeParams','$q','esriMapService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IGisActionWorkflowConfigurationControllerScope extends angular.IScope {\r\n model:models.GisActionWorkflowConfigurationModel;\r\n }\r\n\r\n export class GisActionWorkflowConfigurationController {\r\n constructor($scope: IGisActionWorkflowConfigurationControllerScope,\r\n mapConfigurationService: services.MapConfigurationService,\r\n $routeParams: angular.route.IRouteService) {\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n\r\n $scope.model = new models.GisActionWorkflowConfigurationModel(mapConfigurationService, mapConfigurationId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('GisActionWorkflowConfigurationController',\r\n ['$scope', 'mapConfigurationService', '$routeParams'])","/// \r\nmodule warsApp.controllers {\r\n export interface IGisDatastoreQueryConfigurationScope extends angular.IScope {\r\n model:warsApp.models.GisDatastoreQueryConfigurationModel;\r\n }\r\n\r\n export class GisDatastoreQueryConfigurationController {\r\n constructor(\r\n scope: IGisDatastoreQueryConfigurationScope,\r\n mapConfigurationService: services.MapConfigurationService,\r\n deleteService: services.DeleteService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n $q: angular.IQService,\r\n esriMapService: services.EsriMapService,\r\n gisDatastoreService:services.GisDatastoreService) {\r\n\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n\r\n scope.model = new warsApp.models.GisDatastoreQueryConfigurationModel(mapConfigurationService,\r\n deleteService,\r\n $q,\r\n esriMapService,\r\n gisDatastoreService,\r\n mapConfigurationId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('GisDatastoreQueryConfigurationController',['$scope','mapConfigurationService','deleteService','$routeParams','$q','esriMapService','gisDatastoreService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IJavascriptTransformerScope extends angular.IScope {\r\n model: warsApp.models.JavascriptTransformerModel;\r\n }\r\n\r\n\r\n export class JavascriptTransformerController {\r\n constructor(scope: IJavascriptTransformerScope,\r\n mapConfigurationService: services.MapConfigurationService,\r\n $routeParams: angular.route.IRouteParamsService) {\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n\r\n scope.model = new warsApp.models.JavascriptTransformerModel(mapConfigurationService,\r\n mapConfigurationId);\r\n }\r\n } \r\n}\r\n\r\nwarsApp.registerController('JavascriptTransformerController',\r\n ['$scope', 'mapConfigurationService','$routeParams']);","/// \r\n/// \r\nmodule warsApp.controllers {\r\n interface ILayerConfigurationScope {\r\n model: warsApp.models.LayerConfigurationModel;\r\n }\r\n export class LayerConfigurationController {\r\n constructor(scope: ILayerConfigurationScope,\r\n private mapConfigurationService: services.MapConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n private gisDatastoreService: services.GisDatastoreService,\r\n private esriMapService:services.EsriMapService) {\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n\r\n scope.model = new warsApp.models\r\n .LayerConfigurationModel(mapConfigurationService,\r\n systemLevelService,\r\n deleteService,\r\n gisDatastoreService,\r\n esriMapService,\r\n mapConfigurationId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('LayerConfigurationController', ['$scope', 'mapConfigurationService',\r\n 'systemLevelService', 'deleteService', '$routeParams', 'gisDatastoreService','esriMapService']);","/// \r\nmodule warsApp.controllers {\r\n export interface ILegendConfigurationScope extends angular.IScope {\r\n model: warsApp.models.LegendConfigurationModel;\r\n }\r\n\r\n export class LegendConfigurationController {\r\n constructor(scope: ILegendConfigurationScope,\r\n mapConfigurationService: services.MapConfigurationService,\r\n legendConfigurationService: services.LegendConfigurationService,\r\n private deleteService: services.DeleteService,\r\n $routeParams: angular.route.IRouteParamsService) {\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n\r\n scope.model = new warsApp.models.LegendConfigurationModel(mapConfigurationService,\r\n legendConfigurationService,\r\n deleteService,\r\n mapConfigurationId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('LegendConfigurationController',\r\n[ '$scope', 'mapConfigurationService', 'legendConfigurationService', 'deleteService', '$routeParams' ]);","/// \r\nmodule warsApp.controllers {\r\n interface IMapConfigurationScope {\r\n model: warsApp.models.MapConfigurationModel;\r\n }\r\n export class MapConfigurationController {\r\n constructor(scope: IMapConfigurationScope,\r\n private mapConfigurationService: services.MapConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n private gisDatastoreService: services.GisDatastoreService) {\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n\r\n scope.model = new warsApp.models\r\n .MapConfigurationModel(mapConfigurationService,\r\n systemLevelService,\r\n deleteService,\r\n gisDatastoreService,\r\n mapConfigurationId);\r\n }\r\n }\r\n}\r\n\r\n\r\nwarsApp.registerController('MapConfigurationController', ['$scope', 'mapConfigurationService', 'systemLevelService', 'deleteService', '$routeParams', 'gisDatastoreService']);","/// \r\nmodule warsApp.controllers {\r\n interface IMapConfigurationPreviewScope extends angular.IScope {\r\n model: warsApp.models.MapConfigurationPreviewModel;\r\n }\r\n export class MapConfigurationPreviewController {\r\n constructor($scope: IMapConfigurationPreviewScope, mapConfigurationService: services.MapConfigurationService,\r\n $routeParams: angular.route.IRouteService, private gisMapService: services.GisMapService) {\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n $scope.model = new models.MapConfigurationPreviewModel(mapConfigurationService, gisMapService, mapConfigurationId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('MapConfigurationPreviewController', ['$scope', 'mapConfigurationService', '$routeParams', 'gisMapService']);","/// \r\nmodule warsApp.controllers {\r\n interface IMapConfigurationsScope {\r\n model: warsApp.models.MapConfigurationsModel;\r\n }\r\n export class MapConfigurationsController {\r\n constructor(scope: IMapConfigurationsScope,\r\n private mapConfigurationService: services.MapConfigurationService,\r\n private systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n private gisDatastoreService: services.GisDatastoreService,\r\n $location:angular.ILocationService) {\r\n const processConfigurationId = $routeParams[\"id\"];\r\n\r\n scope.model = new warsApp.models\r\n .MapConfigurationsModel(mapConfigurationService,\r\n systemLevelService,\r\n deleteService,\r\n processConfigurationId,$location);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('MapConfigurationsController', ['$scope', 'mapConfigurationService',\r\n 'systemLevelService', 'deleteService', '$routeParams', 'gisDatastoreService','$location']);","/// \r\nmodule warsApp.controllers {\r\n export interface IMapFunctionConfigurationScope extends angular.IScope {\r\n model: warsApp.models.MapFunctionConfigurationModel;\r\n }\r\n\r\n export class MapFunctionConfigurationController {\r\n constructor(scope: IMapFunctionConfigurationScope,\r\n mapConfigurationService: services.MapConfigurationService,\r\n private deleteService: services.DeleteService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n systemLevelService:services.SystemLevelService) {\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n\r\n scope.model = new models.MapFunctionConfigurationModel(mapConfigurationService, deleteService,systemLevelService, mapConfigurationId);\r\n console.log(scope);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('MapFunctionConfigurationController', ['$scope', 'mapConfigurationService', 'deleteService', '$routeParams','systemLevelService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IQueryGridConfigurationScope extends angular.IScope {\r\n model: warsApp.models.QueryGridConfigurationModel;\r\n }\r\n\r\n export class QueryGridConfigurationController {\r\n constructor(scope: IQueryGridConfigurationScope,\r\n mapConfigurationService: services.MapConfigurationService,\r\n private deleteService: services.DeleteService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n systemLevelService:services.SystemLevelService) {\r\n const mapConfigurationId = $routeParams[\"mapConfigurationId\"];\r\n\r\n scope.model = new warsApp.models.QueryGridConfigurationModel(mapConfigurationService,\r\n deleteService,systemLevelService, mapConfigurationId);\r\n }\r\n }\r\n}\r\n\r\n warsApp.registerController(\"QueryGridConfigurationController\",\r\n ['$scope', 'mapConfigurationService', 'deleteService', '$routeParams','systemLevelService']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageClaimGroupsScope extends angular.IScope {\r\n model: models.ManageClaimGroupModel;\r\n }\r\n\r\n export class ManageClaimGroupsController implements IController {\r\n constructor(\r\n private scope: IManageClaimGroupsScope,\r\n claimGroupService: services.ClaimGroupService,\r\n deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService) {\r\n\r\n this.scope.model = new models.ManageClaimGroupModel(\r\n claimGroupService,\r\n deleteService,\r\n systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageClaimGroupsController', [\"$scope\", \"claimGroupService\", \"deleteService\", \"systemLevelService\"]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageFormContainerAssociationssScope extends angular.IScope {\r\n model: models.ManageFormContainerAssociationModel;\r\n }\r\n\r\n export class ManageFormContainerAssociationsController implements IController {\r\n constructor(\r\n private scope: IManageFormContainerAssociationssScope,\r\n systemActionService: services.FormContainerAssociationService,\r\n deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService) {\r\n\r\n this.scope.model = new models.ManageFormContainerAssociationModel(\r\n systemActionService,\r\n deleteService,\r\n systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageFormContainerAssociationsController', [\"$scope\", \"formContainerAssociationService\", \"deleteService\", \"systemLevelService\"]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageReviewGroupsScope extends angular.IScope {\r\n model: models.ManageReviewGroupModel;\r\n }\r\n\r\n export class ManageReviewGroupsController implements IController {\r\n constructor(\r\n private scope: IManageReviewGroupsScope,\r\n reviewGroupService: services.ReviewGroupService,\r\n deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService) {\r\n\r\n this.scope.model = new models.ManageReviewGroupModel(\r\n reviewGroupService,\r\n deleteService,\r\n systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageReviewGroupsController', [\"$scope\", \"reviewGroupService\", \"deleteService\", \"systemLevelService\"]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageSceduledResourcesScope extends angular.IScope {\r\n model: models.ManageScheduledResourcesModel;\r\n }\r\n\r\n export class ManageScheduledResourcesController implements IController {\r\n scope: IManageSceduledResourcesScope;\r\n\r\n constructor(\r\n $scope: IManageSceduledResourcesScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n manageScheduledResourcesService: services.ManageScheduledResourcesService,\r\n manageSystemCodesService: services.ManageSystemCodesService,\r\n systemLevelService: services.SystemLevelService,\r\n deleteService: services.DeleteService,\r\n modalService: any)\r\n {\r\n this.scope = $scope;\r\n var id = $routeParams[\"id\"];\r\n this.scope.model = new models.ManageScheduledResourcesModel(id, manageScheduledResourcesService, manageSystemCodesService, systemLevelService, deleteService, modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageScheduledResourcesController',\r\n [\r\n '$scope', '$routeParams', 'manageScheduledResourcesService', 'manageSystemCodesService',\r\n 'systemLevelService', 'deleteService', 'ModalService'\r\n ]);","/// \r\nmodule warsApp.controllers {\r\n export interface IManageStatusesScope extends angular.IScope {\r\n model: models.ManageStatusesModel;\r\n }\r\n\r\n export class ManageStatusesController implements IController {\r\n constructor(\r\n private scope: IManageStatusesScope,\r\n statusAndStateService: services.StatusAndStateService,\r\n systemLevelService: services.SystemLevelService,\r\n deleteService: services.DeleteService) {\r\n\r\n scope.model = new models.ManageStatusesModel(statusAndStateService, systemLevelService, deleteService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageStatusesController', ['$scope', 'statusAndStateService', 'systemLevelService', 'deleteService']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageSubTypeGroupsScope extends angular.IScope {\r\n model: models.ManageSubTypeGroupModel;\r\n }\r\n\r\n export class ManageSubTypeGroupsController implements IController {\r\n constructor(\r\n private scope: IManageSubTypeGroupsScope,\r\n subTypeGroupService: services.SubTypeGroupService,\r\n deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService) {\r\n\r\n this.scope.model = new models.ManageSubTypeGroupModel(\r\n subTypeGroupService,\r\n deleteService,\r\n systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageSubTypeGroupsController', [\"$scope\", \"subTypeGroupService\", \"deleteService\", \"systemLevelService\"]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageSystemActionsScope extends angular.IScope {\r\n model: models.ManageSystemActionModel;\r\n }\r\n\r\n export class ManageSystemActionsController implements IController {\r\n constructor(\r\n private scope: IManageSystemActionsScope,\r\n systemActionService: services.SystemActionService,\r\n deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService) {\r\n\r\n this.scope.model = new models.ManageSystemActionModel(\r\n systemActionService,\r\n deleteService,\r\n systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageSystemActionsController', [\"$scope\", \"systemActionService\", \"deleteService\", \"systemLevelService\"]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageSystemCodesScope extends angular.IScope {\r\n model: models.ManageSystemCodeModel;\r\n }\r\n\r\n export class ManageSystemCodesController implements IController {\r\n scope: IManageSystemCodesScope;\r\n\r\n constructor(\r\n $scope: IManageSystemCodesScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n manageSystemCodesService: services.ManageSystemCodesService,\r\n systemLevelService: services.SystemLevelService,\r\n deleteService: services.DeleteService,\r\n modalService: any)\r\n {\r\n this.scope = $scope;\r\n var id = $routeParams[\"id\"];\r\n this.scope.model = new models.ManageSystemCodeModel(id, manageSystemCodesService, systemLevelService, deleteService, modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageSystemCodesController', ['$scope', '$routeParams', 'manageSystemCodesService', 'systemLevelService', 'deleteService', 'ModalService']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IPaymentConfigurationScope extends angular.IScope {\r\n model: models.PaymentConfigurationModel\r\n }\r\n\r\n export class PaymentConfigurationController implements IController {\r\n constructor(\r\n private scope: IPaymentConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n systemLevelService: services.SystemLevelService,\r\n paymentConfigurationService: services.PaymentConfigurationService,\r\n calculationService: services.CalculationService,\r\n extensibilityService: services.ExtensibilityService,\r\n processActionService: services.ProcessActionService,\r\n deleteService: services.DeleteService,\r\n treeService: services.TreeService,\r\n growlService: angular.growl.IGrowlService)\r\n {\r\n var processConfigurationId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.PaymentConfigurationModel(\r\n processConfigurationId,\r\n processConfigurationService,\r\n systemLevelService,\r\n paymentConfigurationService,\r\n calculationService,\r\n extensibilityService,\r\n processActionService,\r\n deleteService,\r\n treeService,\r\n growlService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('PaymentConfigurationController', [\r\n \"$scope\", \"$routeParams\", \"processConfigurationService\", \"systemLevelService\", \"paymentConfigurationService\", \"calculationService\", \"extensibilityService\",\r\n \"processActionService\", \"deleteService\", \"treeService\", \"growl\"\r\n]);","/// \r\n\r\nmodule warsApp.controllers {\r\n export interface ApiActionControllerScope extends angular.IScope {\r\n model: models.ApiActionsModel;\r\n\r\n }\r\n\r\n export class ApiActionsController implements IController {\r\n\r\n constructor(scope: ApiActionControllerScope, $routeParams: angular.route.IRouteParamsService,\r\n growlService: angular.growl.IGrowlService,\r\n apiConfigurationService: services.ApiActionService,\r\n objectQueryService: services.ObjectQueryService,\r\n objectSchemaService: services.ObjectSchemaService,\r\n apiSchemaMappingService: services.ApiSchemaMappingService) {\r\n\r\n var processConfigurationId: string = $routeParams[\"id\"];\r\n scope.model = new models.ApiActionsModel(processConfigurationId, apiConfigurationService, objectQueryService, objectSchemaService, apiSchemaMappingService);\r\n }\r\n }\r\n}\r\nwarsApp.registerController('ApiActionsController',\r\n ['$scope', '$routeParams', 'growl', 'apiActionService', 'objectQueryService', 'objectSchemaService', 'apiSchemaMappingService']\r\n);","/// \r\n\r\nmodule warsApp.controllers {\r\n export interface ApiGridConfigurationScope extends angular.IScope {\r\n model: models.ApiGridConfigurationModel;\r\n\r\n }\r\n\r\n export class ApiGridConfigurationController implements IController {\r\n\r\n constructor(scope: ApiGridConfigurationScope, $routeParams: angular.route.IRouteParamsService,\r\n growlService: angular.growl.IGrowlService,\r\n apiGridConfigurationService: services.ApiGridConfigurationService,\r\n apiActionService: services.ApiActionService,\r\n deleteService: services.DeleteService,systemLevelService:services.SystemLevelService) {\r\n\r\n var processConfigurationId = $routeParams[\"id\"];\r\n scope.model = new models.ApiGridConfigurationModel(processConfigurationId, apiGridConfigurationService, apiActionService,deleteService,systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ApiGridConfigurationController', ['$scope', '$routeParams', 'growl', 'apiGridConfigurationService', 'apiActionService', 'deleteService','systemLevelService']);","/// \r\n\r\nmodule warsApp.controllers {\r\n export interface AutoCompleteConfigurationScope extends angular.IScope {\r\n model: models.AutoCompleteConfigurationModel;\r\n\r\n }\r\n\r\n export class AutoCompleteConfigurationController implements IController {\r\n\r\n constructor(scope: AutoCompleteConfigurationScope, $routeParams: angular.route.IRouteParamsService,\r\n growlService: angular.growl.IGrowlService,\r\n autoCompleteConfigurationService: services.AutoCompleteConfigurationService,\r\n apiConfigurationService: services.ApiActionService,\r\n systemLevelService:services.SystemLevelService) {\r\n\r\n var processConfigurationId = $routeParams[\"id\"];\r\n scope.model = new models.AutoCompleteConfigurationModel(processConfigurationId, autoCompleteConfigurationService, apiConfigurationService,systemLevelService);\r\n }\r\n }\r\n}\r\nwarsApp.registerController('AutoCompleteConfigurationController',\r\n ['$scope', '$routeParams', 'growl', 'autoCompleteConfigurationService', 'apiActionService', 'systemLevelService']\r\n);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IDataLinkConfigurationScope extends angular.IScope {\r\n processConfigId: string;\r\n dataLinks: Wars.Domain.Model.DataLink[];\r\n\r\n addDataLink(): void;\r\n removeDataLink(dataLink: Wars.Domain.Model.DataLink): void;\r\n\r\n onItem1DragOver(dataLink: Wars.Domain.Model.DataLink, $event: any): void;\r\n onItem1Drop(dataLink: Wars.Domain.Model.DataLink, $event: any): void;\r\n\r\n onItem2DragOver(dataLink: Wars.Domain.Model.DataLink, $event: any): void;\r\n onItem2Drop(dataLink: Wars.Domain.Model.DataLink, $event: any): void;\r\n\r\n filterText: string;\r\n filterMethod(dataLink: Wars.Domain.Model.DataLink): boolean; \r\n }\r\n\r\n export class DataLinkConfigurationController implements IController {\r\n private addIndex: number = 0;\r\n\r\n constructor(\r\n private $scope: IDataLinkConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n private treeService: services.TreeService,\r\n private dataLinkService: services.DataLinkService)\r\n {\r\n this.$scope.processConfigId = $routeParams[\"id\"];\r\n this.$scope.filterText = '';\r\n\r\n this.dataLinkService.getDataLinks(this.$scope.processConfigId).then(\r\n (dataLinks) => {\r\n this.$scope.dataLinks = dataLinks;\r\n this.$scope.dataLinks.forEach((dataLink) => {\r\n if (dataLink.item1TreeItem_id !== null) {\r\n this.treeService.getDetailedDisplayName(dataLink.item1TreeItem).then((name) => {\r\n (dataLink.item1TreeItem).detailedDisplay = name;\r\n (dataLink.item1TreeItem).orderHelper = \"existing\";\r\n });\r\n }\r\n if (dataLink.item2TreeItem_id !== null) {\r\n this.treeService.getDetailedDisplayName(dataLink.item2TreeItem).then((name) => {\r\n (dataLink.item2TreeItem).detailedDisplay = name;\r\n });\r\n }\r\n });\r\n });\r\n\r\n this.$scope.addDataLink = () => this.addDataLink();\r\n this.$scope.removeDataLink = (dataLink: Wars.Domain.Model.DataLink) => this.removeDataLink(dataLink);\r\n\r\n this.$scope.onItem1DragOver = (dataLink: Wars.Domain.Model.DataLink, $event: any) => this.onItem1DragOver(dataLink, $event);\r\n this.$scope.onItem1Drop = (dataLink: Wars.Domain.Model.DataLink, $event: any) => this.onItem1Drop(dataLink, $event);\r\n this.$scope.onItem2DragOver = (dataLink: Wars.Domain.Model.DataLink, $event: any) => this.onItem2DragOver(dataLink, $event);\r\n this.$scope.onItem2Drop = (dataLink: Wars.Domain.Model.DataLink, $event: any) => this.onItem2Drop(dataLink, $event);\r\n this.$scope.filterMethod = (dataLink: Wars.Domain.Model.DataLink) =>\r\n {\r\n var lowerCaseFilterText = this.$scope.filterText.toLowerCase();\r\n return (\r\n dataLink.item1TreeItem === undefined ||\r\n dataLink.item1TreeItem === null ||\r\n (dataLink.item1TreeItem).detailedDisplay === undefined ||\r\n (dataLink.item1TreeItem).detailedDisplay.toLowerCase().indexOf(lowerCaseFilterText) !== -1\r\n )\r\n ||\r\n (\r\n dataLink.item2TreeItem === undefined ||\r\n dataLink.item2TreeItem === null ||\r\n (dataLink.item2TreeItem).detailedDisplay == null ||\r\n (dataLink.item2TreeItem).detailedDisplay.toLowerCase().indexOf(lowerCaseFilterText) !== -1);\r\n };\r\n }\r\n\r\n private addDataLink() : void {\r\n var newDataLink = this.dataLinkService.createNewDataLink(this.$scope.processConfigId);\r\n this.$scope.dataLinks.push(newDataLink);\r\n this.dataLinkService.saveAllChanges();\r\n this.addIndex++;\r\n }\r\n\r\n private removeDataLink(dataLink: Wars.Domain.Model.DataLink): void {\r\n // Nothing should reference data links, if this changes stop the manual delete and use the delete service\r\n if (dataLink.item1TreeItem) {\r\n dataLink.item1TreeItem.entityAspect.setDeleted();\r\n }\r\n if (dataLink.item2TreeItem) {\r\n dataLink.item2TreeItem.entityAspect.setDeleted();\r\n }\r\n dataLink.entityAspect.setDeleted();\r\n this.dataLinkService.saveAllChanges();\r\n this.$scope.dataLinks.remove(dataLink);\r\n }\r\n\r\n private onItem1DragOver(dataLink: Wars.Domain.Model.DataLink, $event: any): void {\r\n\r\n }\r\n\r\n private onItem1Drop(dataLink: Wars.Domain.Model.DataLink, $event: any): void {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n dataLink.item1TreeItem = treeItem;\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n\r\n this.dataLinkService.saveAllChanges(() => {\r\n if (dataLink.item1TreeItem_id !== null) {\r\n this.treeService.getDetailedDisplayName(dataLink.item1TreeItem).then((name) => {\r\n (dataLink.item1TreeItem).detailedDisplay = name;\r\n (dataLink.item1TreeItem).orderHelper = \"new\" + this.addIndex;\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n private onItem2DragOver(dataLink: Wars.Domain.Model.DataLink, $event: any): void {\r\n\r\n }\r\n\r\n private onItem2Drop(dataLink: Wars.Domain.Model.DataLink, $event: any): void {\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n dataLink.item2TreeItem = treeItem;\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n\r\n this.dataLinkService.saveAllChanges(() => {\r\n if (dataLink.item2TreeItem_id !== null) {\r\n this.treeService.getDetailedDisplayName(dataLink.item2TreeItem).then((name) => {\r\n (dataLink.item2TreeItem).detailedDisplay = name;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('DataLinkConfigurationController', ['$scope', '$routeParams', 'treeService', 'dataLinkService']);","/// \r\nmodule warsApp.controllers {\r\n export interface DocumentConfigurationScope extends angular.IScope {\r\n configs: Wars.Domain.Model.Documents.DocumentConfiguration[];\r\n systemDocumentConfig: Wars.Domain.Model.Documents.SystemDocumentConfiguration;\r\n selectedConfig: Wars.Domain.Model.Documents.DocumentConfiguration;\r\n processConfigId: string;\r\n addDocumentConfig(): void;\r\n edit(documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration): void;\r\n delete(documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration): void;\r\n }\r\n\r\n export class DocumentConfigurationController implements IController {\r\n\r\n constructor(\r\n private scope: DocumentConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n private documentService: services.DocumentService,\r\n private deleteService: services.DeleteService,\r\n private systemLevelService: services.SystemLevelService)\r\n {\r\n\r\n this.scope.processConfigId = $routeParams[\"id\"];\r\n\r\n if (this.scope.processConfigId) {\r\n this.documentService.getDocumentConfigs(this.scope.processConfigId).then(\r\n (configs) => {\r\n this.scope.configs = configs;\r\n });\r\n\r\n this.systemLevelService.getSystemLevelDocumentConfiguration().then(\r\n (sysLevel) => {\r\n this.scope.systemDocumentConfig = sysLevel.systemDocumentConfiguration;\r\n });\r\n } else {\r\n this.systemLevelService.getSystemLevelDocumentConfiguration().then(\r\n (sysLevel) => {\r\n this.scope.systemDocumentConfig = sysLevel.systemDocumentConfiguration;\r\n this.scope.configs = sysLevel.myDocumentConfigurations;\r\n });\r\n }\r\n \r\n\r\n this.scope.addDocumentConfig = () => this.addDocumentConfig();\r\n this.scope.edit = (documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration) => this.edit(documentConfiguration);\r\n this.scope.delete = (documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration) => this.delete(documentConfiguration);\r\n }\r\n\r\n private addDocumentConfig(): void {\r\n var docConfig = this.documentService.createDocumentConfig();\r\n if (this.scope.processConfigId) {\r\n docConfig.processConfiguration_id = this.scope.processConfigId;\r\n } else {\r\n docConfig.systemLevel_id = this.scope.systemDocumentConfig.systemLevel_id;\r\n }\r\n this.scope.configs.push(docConfig);\r\n this.scope.selectedConfig = docConfig;\r\n this.documentService.saveAllChanges();\r\n }\r\n\r\n private edit(documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration): void {\r\n this.scope.selectedConfig = documentConfiguration;\r\n }\r\n\r\n private delete(documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration): void {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"DocumentConfiguration\",\r\n documentConfiguration.id,\r\n \"Document Configuration\",\r\n () => {\r\n this.scope.configs.remove(documentConfiguration);\r\n this.scope.selectedConfig = undefined;\r\n });\r\n }\r\n }\r\n}\r\nwarsApp.registerController(\"DocumentConfigurationController\", [\"$scope\", \"$routeParams\", \"documentService\", \"deleteService\", \"systemLevelService\" ]\r\n);","/// \r\nmodule warsApp.controllers {\r\n export interface EmailSystemActionConfigurationScope extends angular.IScope {\r\n model: models.EmailSystemActionsModel\r\n }\r\n\r\n export class EmailSystemActionConfigurationController implements IController {\r\n constructor(\r\n private scope: EmailSystemActionConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n growlService: angular.growl.IGrowlService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n treeService: services.TreeService,\r\n treeItemService: services.TreeItemService,\r\n manageStaticDocumentsService: services.ManageStaticDocumentsService,\r\n systemLevelService: services.SystemLevelService,\r\n emailConfigurationService: services.EmailConfigurationService,\r\n deleteService: services.DeleteService,\r\n contentPageService: services.ContentPageService,\r\n processTypeService: services.ProcessTypeService,\r\n formService: services.FormService,\r\n modalService: any)\r\n {\r\n var processConfigurationId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.EmailSystemActionsModel(\r\n scope,\r\n growlService,\r\n processConfigurationId,\r\n processConfigurationService,\r\n treeService,\r\n treeItemService,\r\n manageStaticDocumentsService,\r\n systemLevelService,\r\n emailConfigurationService,\r\n deleteService,\r\n contentPageService,\r\n processTypeService,\r\n formService,\r\n modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('EmailSystemActionConfigurationController',\r\n ['$scope', '$routeParams', 'growl', 'processConfigurationService', 'treeService', 'treeItemService',\r\n 'manageStaticDocumentsService', 'systemLevelService', 'emailConfigurationService', 'deleteService', 'contentPageService', 'processTypeService', 'formService', 'ModalService']\r\n);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IExternalApiConfigurationControllerScope extends angular.IScope {\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n processConfigId: string;\r\n\r\n updateAllMappings: () => void;\r\n save: () => void;\r\n }\r\n\r\n export class ExternalApiConfigurationController implements IController {\r\n constructor(\r\n private scope: IExternalApiConfigurationControllerScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n private externalApiService: services.ExternalApiService)\r\n {\r\n this.scope.processConfigId = $routeParams[\"id\"];\r\n\r\n this.scope.updateAllMappings = () => this.updateAllMappings();\r\n this.scope.save = () => this.save();\r\n\r\n this.externalApiService.getExternalApiConfiguration(this.scope.processConfigId).then(\r\n (processConfig) => {\r\n this.scope.processConfiguration = processConfig;\r\n if (!this.scope.processConfiguration) this.updateAllMappings();\r\n });\r\n }\r\n\r\n private updateAllMappings(): void {\r\n this.externalApiService.updateAllMappings(this.scope.processConfigId).then(() => {\r\n this.externalApiService.getExternalApiConfiguration(this.scope.processConfigId).then(\r\n (processConfig) => this.scope.processConfiguration = processConfig);\r\n });\r\n }\r\n\r\n private save(): void {\r\n this.externalApiService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ExternalApiConfigurationController', [\"$scope\", \"$routeParams\", \"externalApiService\"]);","\r\n/// \r\nmodule warsApp.controllers {\r\n export interface IFormConfigurationScope extends angular.IScope {\r\n model: models.FormConfigurationModel\r\n }\r\n\r\n export class FormConfigurationController implements IController {\r\n constructor(\r\n private scope: IFormConfigurationScope,\r\n formService: services.FormService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n modalService: any,\r\n growl: angular.growl.IGrowlService,\r\n $http: ng.IHttpService, contentPageService: services.ContentPageService,\r\n formSectionService: services.FormSectionService,\r\n dataSourceService: services.DataSourceService,\r\n $q: angular.IQService,\r\n processConfigurationService:services.ProcessConfigurationService) {\r\n\r\n var processId = $routeParams[\"id\"];\r\n var formId = $routeParams[\"subId\"];\r\n\r\n this.scope.model = new models.FormConfigurationModel(\r\n formId,\r\n processId,\r\n formService,\r\n modalService,\r\n growl,\r\n $http,\r\n contentPageService,\r\n formSectionService,\r\n scope,\r\n dataSourceService,\r\n $q,\r\n processConfigurationService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('FormConfigurationController', ['$scope', 'formService',\r\n '$routeParams', 'ModalService', 'growl', '$http', 'contentPageService', 'formSectionService', 'dataSourceService','$q','processConfigurationService']);\r\n","/// \r\nmodule warsApp.controllers{\r\n interface IFormContainerScope extends angular.IScope {\r\n model:warsApp.models.FormContainerModel;\r\n }\r\n export class FormContainerController {\r\n constructor(\r\n $scope: IFormContainerScope,\r\n private formContainerService: services.FormContainerService,\r\n private formService: services.FormService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService,\r\n securityMatrixService: services.SecurityMatrixService)\r\n {\r\n var processId = $routeParams[\"id\"];\r\n\r\n $scope.model = new warsApp.models.FormContainerModel(\r\n formContainerService,\r\n formService,\r\n deleteService,\r\n systemLevelService,\r\n securityMatrixService,\r\n processId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('FormContainerController',\r\n ['$scope', 'formContainerService', 'formService', '$routeParams', 'deleteService', \"systemLevelService\", \"securityMatrixService\"]);","/// \r\nmodule warsApp.controllers {\r\n export interface IGisDataStoreMetadataMappingScope extends angular.IScope {\r\n model: warsApp.models.GisDataStoreMetadataMappingModel;\r\n }\r\n\r\n export class GisDataStoreMetadataMappingController implements IController {\r\n constructor(scope: IGisDataStoreMetadataMappingScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n gisDatastoreMetadataMappingService: services.GisDataStoreMetadataMappingService,\r\n gisDatastoreService:services.GisDatastoreService,\r\n treeService:services.TreeService,\r\n $q:angular.IQService) {\r\n let processConfigurationId = $routeParams[\"id\"];\r\n scope.model = new models.GisDataStoreMetadataMappingModel(processConfigurationId, gisDatastoreMetadataMappingService,gisDatastoreService,treeService,$q);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('GisDataStoreMetadataMappingController',\r\n ['$scope', '$routeParams', 'gisDataStoreMetadataMappingService','gisDatastoreService','treeService','$q']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IInterProcessApiConfigurationControllerScope extends angular.IScope {\r\n processConfigId: string;\r\n interProcessApis: Wars.Domain.Model.InterProcessApi[];\r\n selectedInterProcessApi: Wars.Domain.Model.InterProcessApi;\r\n isReadonly: boolean;\r\n processSchemaProperties: Wars.Domain.Model.SchemaProperty[];\r\n processTypes: Wars.Domain.Model.ProcessType[];\r\n codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n otherProcessSchemaProperties: Wars.Domain.Model.SchemaProperty[];\r\n otherProcessCalculations: Wars.Domain.Model.Calculations.Calculation[];\r\n \r\n processTypeChanged() : void;\r\n save(): void;\r\n cancel(): void;\r\n addInterProcessApi(): void;\r\n addOutputMapping() : void;\r\n editInterProcessApi(interProcessApi: Wars.Domain.Model.InterProcessApi): void;\r\n deleteInterProcessApi(interProcessApi: Wars.Domain.Model.InterProcessApi): void;\r\n deleteOutputMapping(outputMapping: Wars.Domain.Model.InterProcessOutputMapping): void;\r\n getOutputSchemaProperties(): Wars.Domain.Model.SchemaProperty[];\r\n }\r\n\r\n export class InterProcessApiConfigurationController implements IController {\r\n constructor(\r\n private scope: IInterProcessApiConfigurationControllerScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private processTypeService: services.ProcessTypeService,\r\n private interProcessApiService: services.InterProcessApiService,\r\n private systemLevelService: services.SystemLevelService,\r\n private manageSystemCodesService: services.ManageSystemCodesService,\r\n private objectSchemaService: services.ObjectSchemaService,\r\n private growlService: angular.growl.IGrowlService,\r\n private deleteService: services.DeleteService)\r\n {\r\n this.scope.processConfigId = $routeParams[\"id\"];\r\n // TODO: set this based on whether the process configuration is editable or not\r\n this.scope.isReadonly = false;\r\n\r\n this.interProcessApiService.getInterProcessApis(this.scope.processConfigId).then((apis) => {\r\n this.scope.interProcessApis = apis;\r\n });\r\n\r\n this.processConfigurationService.getProcessSchemaProperties(this.scope.processConfigId).then((schemaProperties) => {\r\n this.scope.processSchemaProperties = schemaProperties;\r\n });\r\n\r\n this.processTypeService.getAllProcessTypes().then((processTypes) => {\r\n this.scope.processTypes = processTypes;\r\n });\r\n\r\n this.loadCodes();\r\n\r\n this.scope.processTypeChanged = () => {\r\n this.loadOtherProcessSchemaProperties();\r\n this.loadOtherProcessCalculations();\r\n };\r\n this.scope.save = () => this.save();\r\n this.scope.cancel = () => this.cancel();\r\n this.scope.addInterProcessApi = () => this.addInterProcessApi();\r\n this.scope.addOutputMapping = () => this.addOutputMapping();\r\n this.scope.editInterProcessApi = (interProcessApi: Wars.Domain.Model.InterProcessApi) => this.editInterProcessApi(interProcessApi);\r\n this.scope.deleteInterProcessApi = (interProcessApi: Wars.Domain.Model.InterProcessApi) => this.deleteInterProcessApi(interProcessApi);\r\n this.scope.deleteOutputMapping = (outputMapping: Wars.Domain.Model.InterProcessOutputMapping) => this.deleteOutputMapping(outputMapping);\r\n this.scope.getOutputSchemaProperties = () => this.getOutputSchemaProperties();\r\n }\r\n\r\n private save(): void {\r\n var validationResults = this.objectSchemaService.validateObjectSchema(this.scope.selectedInterProcessApi.myOutputSchema);\r\n if (validationResults.length === 0) {\r\n this.interProcessApiService.saveAllChanges();\r\n } else {\r\n validationResults.forEach(error => this.growlService.error(error));\r\n }\r\n }\r\n\r\n private cancel(): void {\r\n this.interProcessApiService.rejectChanges();\r\n this.scope.selectedInterProcessApi = undefined;\r\n }\r\n\r\n private addInterProcessApi(): void {\r\n var newApi = this.interProcessApiService.createInterProcessApi(this.scope.processConfigId);\r\n\r\n newApi.myOutputSchema = this.objectSchemaService.createNewObjectSchema();\r\n newApi.outputSchema_id = newApi.myOutputSchema.id;\r\n\r\n this.scope.interProcessApis.push(newApi);\r\n this.scope.selectedInterProcessApi = newApi;\r\n this.save();\r\n }\r\n\r\n private addOutputMapping(): void {\r\n var newMapping = this.interProcessApiService.createInterProcessOutputMapping(this.scope.selectedInterProcessApi.id);\r\n this.scope.selectedInterProcessApi.myOutputMappings.push(newMapping);\r\n }\r\n\r\n private editInterProcessApi(interProcessApi: Wars.Domain.Model.InterProcessApi): void {\r\n if (this.interProcessApiService.hasChanges()) {\r\n alert(\"Please save or cancel your current changes before editing a new Inter Process API.\");\r\n return;\r\n }\r\n this.scope.selectedInterProcessApi = interProcessApi;\r\n this.loadOtherProcessSchemaProperties();\r\n this.loadOtherProcessCalculations();\r\n }\r\n\r\n private deleteInterProcessApi(interProcessApi: Wars.Domain.Model.InterProcessApi): void {\r\n this.deleteService.deleteWithModalConfirmIfNecessary(\r\n \"InterProcessApi\",\r\n interProcessApi.id,\r\n \"Inter-Process API\",\r\n () => {\r\n this.scope.interProcessApis.remove(interProcessApi);\r\n this.scope.selectedInterProcessApi = undefined;\r\n });\r\n }\r\n\r\n private deleteOutputMapping(outputMapping: Wars.Domain.Model.InterProcessOutputMapping): void {\r\n outputMapping.entityAspect.setDeleted();\r\n this.scope.selectedInterProcessApi.myOutputMappings.remove(outputMapping);\r\n }\r\n\r\n /// This is a method and not just using the properties directly so when we allow list data the changes will be more seamless\r\n private getOutputSchemaProperties(): Wars.Domain.Model.SchemaProperty[] {\r\n if (this.scope.selectedInterProcessApi) {\r\n return this.scope.selectedInterProcessApi.myOutputSchema.properties;\r\n }\r\n return [];\r\n }\r\n\r\n private loadCodes(): void {\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n (systemLevel) => {\r\n this.scope.codeGroups = systemLevel.myCodeGroups;\r\n if (this.scope.processConfigId) {\r\n this.manageSystemCodesService.getAllCodesForProcessConfiguration(this.scope.processConfigId).then(\r\n (codeGroups) => {\r\n this.scope.codeGroups = this.scope.codeGroups.concat(codeGroups);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private loadOtherProcessSchemaProperties() {\r\n if (this.scope.selectedInterProcessApi && this.scope.selectedInterProcessApi.processType_id) {\r\n this.processTypeService.getByIdEagerLoadAppConfigs(this.scope.selectedInterProcessApi.processType_id)\r\n .then((processType) => {\r\n if (!processType) {\r\n this.scope.otherProcessSchemaProperties = [];\r\n } else {\r\n var inWorkProcessConfig = Enumerable.from(processType.processConfigurations)\r\n .single(i => i.minorVersion == null);\r\n\r\n this.processConfigurationService.getTopLevelSchemaProperties(inWorkProcessConfig.id)\r\n .then((schemaProperties) => {\r\n this.scope.otherProcessSchemaProperties = schemaProperties;\r\n });\r\n }\r\n });\r\n } else {\r\n this.scope.otherProcessSchemaProperties = [];\r\n }\r\n }\r\n\r\n private loadOtherProcessCalculations() {\r\n if (this.scope.selectedInterProcessApi && this.scope.selectedInterProcessApi.processType_id) {\r\n this.processTypeService.getByIdEagerLoadAppConfigs(this.scope.selectedInterProcessApi.processType_id)\r\n .then((processType) => {\r\n if (!processType) {\r\n this.scope.otherProcessCalculations = [];\r\n } else {\r\n var inWorkProcessConfig = Enumerable.from(processType.processConfigurations)\r\n .single(i => i.minorVersion == null);\r\n\r\n this.processConfigurationService.getProcessConfigurationEagerLoadCalculations(inWorkProcessConfig.id)\r\n .then((processConfig) => {\r\n this.scope.otherProcessCalculations = processConfig.myCalculations;\r\n });\r\n }\r\n });\r\n } else {\r\n this.scope.otherProcessCalculations = [];\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('InterProcessApiConfigurationController', [\r\n \"$scope\", \"$routeParams\", \"processConfigurationService\", \"processTypeService\", \"interProcessApiService\",\r\n \"systemLevelService\", \"manageSystemCodesService\", \"objectSchemaService\", \"growl\", \"deleteService\"]);","/// \r\nmodule warsApp.controllers {\r\n interface IMapConfigurationOverridesScope {\r\n model:models.MapConfigurationOverridesModel;\r\n }\r\n export class MapConfigurationOverridesController {\r\n constructor($scope: IMapConfigurationOverridesScope,\r\n mapConfigurationOverridesService: services.MapConfigurationOverridesService,\r\n mapConfigurationService: services.MapConfigurationService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n formService:services.FormService,deleteService:services.DeleteService) {\r\n\r\n var processConfigId = $routeParams[\"id\"];\r\n $scope.model = new models .MapConfigurationOverridesModel(mapConfigurationOverridesService,\r\n mapConfigurationService,formService,deleteService, processConfigId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('MapConfigurationOverridesController',\r\n ['$scope', 'mapConfigurationOverridesService', 'mapConfigurationService', '$routeParams','formService','deleteService']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IMapToSystemStatusAndStatesScope extends angular.IScope {\r\n model: models.MapToSystemStatusAndStatesModel;\r\n }\r\n\r\n export class MapToSystemStatusAndStatesController implements IController {\r\n constructor(\r\n private scope: IMapToSystemStatusAndStatesScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n systemLevelService: services.SystemLevelService)\r\n {\r\n var processConfigId = $routeParams[\"id\"];\r\n this.scope.model = new models.MapToSystemStatusAndStatesModel(processConfigId, processConfigurationService, systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('MapToSystemStatusAndStatesController', ['$scope', '$routeParams', 'processConfigurationService', 'systemLevelService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IPdfGenerationConfigurationScope extends angular.IScope {\r\n model: models.PdfGenerationConfigurationModel\r\n }\r\n\r\n export class PdfGenerationConfigurationController implements IController {\r\n\r\n constructor(\r\n private scope: IPdfGenerationConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n $route: angular.route.IRouteService,\r\n pdfBindingService: services.PdfBindingService,\r\n boundItemService: services.BoundItemService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n treeService: services.TreeService,\r\n deleteService: services.DeleteService)\r\n {\r\n var processConfigurationId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.PdfGenerationConfigurationModel(\r\n scope,\r\n $route,\r\n processConfigurationId,\r\n pdfBindingService,\r\n boundItemService,\r\n processConfigurationService,\r\n treeService,\r\n deleteService);\r\n\r\n var resizeId;\r\n var self = this;\r\n var resizeFunc = $(window).resize(() => {\r\n clearTimeout(resizeId);\r\n resizeId = setTimeout(() => {self.scope.model.reloadPage(); }, 500);\r\n });\r\n\r\n \r\n var listenerCallback = scope.$on('$locationChangeStart', function (event) {\r\n resizeFunc = null;\r\n });\r\n\r\n scope.$on(\"$destroy\", () => {\r\n listenerCallback();\r\n });\r\n\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('PdfGenerationConfigurationController', ['$scope', \"$routeParams\", \"$route\", 'pdfBindingService', 'boundItemService', 'processConfigurationService', 'treeService', 'deleteService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IProcessActionsScope extends angular.IScope {\r\n model: models.ProcessActionsModel;\r\n workflowWorkspaceModel: models.WorkflowWorkspaceModel;\r\n }\r\n\r\n export class ProcessActionsController implements IController {\r\n private processConfigId: string;\r\n\r\n constructor(\r\n private scope: IProcessActionsScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n deleteService: services.DeleteService,\r\n processActionService: services.ProcessActionService,\r\n systemLevelService: services.SystemLevelService,\r\n processConfigurationService: services.ProcessConfigurationService)\r\n {\r\n this.processConfigId = $routeParams[\"id\"];\r\n var processActionId = $routeParams[\"subId\"];\r\n\r\n this.scope.workflowWorkspaceModel = new models.WorkflowWorkspaceModel(\r\n new models.WorkflowDrawingSettings(3200, 1800),\r\n models.WorkflowMode.ProcessAction,\r\n undefined);\r\n\r\n this.scope.model = new models.ProcessActionsModel(\r\n this.processConfigId,\r\n processActionService,\r\n deleteService,\r\n systemLevelService,\r\n processConfigurationService,\r\n (processActionGroup: models.ProcessActionGroup) => this.newProcessActionSelected(processActionGroup),\r\n processActionId);\r\n }\r\n\r\n private newProcessActionSelected(processActionGroup: models.ProcessActionGroup): void {\r\n this.scope.workflowWorkspaceModel.setNewSelectedProcessAction(this.processConfigId, processActionGroup);\r\n this.scope.workflowWorkspaceModel.drawShapesForToolbox();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessActionsController',\r\n [\r\n '$scope', '$routeParams', 'deleteService', 'processActionService', 'systemLevelService', \"processConfigurationService\"\r\n ]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IProcessClaimsAssignmentConfigurationScope extends angular.IScope {\r\n model: models.ClaimsAssignmentConfigurationModel;\r\n }\r\n\r\n export class ProcessClaimsAssignmentConfigurationController implements IController {\r\n scope: IProcessClaimsAssignmentConfigurationScope;\r\n\r\n constructor(\r\n $scope: IProcessClaimsAssignmentConfigurationScope,\r\n claimDefinitionService: services.ClaimDefinitionService,\r\n claimsAssignmentConfigurationService: services.ClaimsAssignmentConfigurationService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n treeService: services.TreeService,\r\n conditionService: services.ConditionService,\r\n growl: angular.growl.IGrowlService)\r\n {\r\n this.scope = $scope;\r\n this.scope.model = new models.ClaimsAssignmentConfigurationModel(\r\n ($routeParams[\"id\"]),\r\n claimsAssignmentConfigurationService,\r\n claimDefinitionService,\r\n processConfigurationService,\r\n treeService,\r\n conditionService,\r\n growl);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessClaimsAssignmentConfigurationController',\r\n ['$scope', 'claimDefinitionService', 'claimsAssignmentConfigurationService', 'processConfigurationService', '$routeParams', 'treeService', \"conditionService\", 'growl']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IMProcessClaimsConfiguration extends angular.IScope {\r\n model: models.ManageProcessClaimsModel;\r\n }\r\n\r\n export class ProcessClaimsConfigurationController implements IController {\r\n scope: IMProcessClaimsConfiguration;\r\n\r\n constructor(\r\n $scope: IMProcessClaimsConfiguration,\r\n $routeParams: angular.route.IRouteParamsService,\r\n claimDefinitionService: services.ClaimDefinitionService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n systemLevelService: services.SystemLevelService,\r\n processActionService: services.ProcessActionService,\r\n deleteService: services.DeleteService,\r\n modalService: any)\r\n {\r\n this.scope = $scope;\r\n var processConfigId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.ManageProcessClaimsModel(\r\n processConfigId,\r\n processConfigurationService,\r\n claimDefinitionService,\r\n systemLevelService,\r\n processActionService,\r\n deleteService,\r\n modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"ProcessClaimsConfigurationController\", [\r\n \"$scope\", \"$routeParams\", \"claimDefinitionService\", \"processConfigurationService\", \"systemLevelService\", \"processActionService\", \"deleteService\", \"ModalService\"\r\n]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IProcessConditionsScope extends angular.IScope {\r\n model: models.ProcessConditionsModel\r\n }\r\n\r\n export class ProcessConditionsController implements IController {\r\n constructor(\r\n private scope: IProcessConditionsScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n conditionService: services.ConditionService,\r\n deleteService: services.DeleteService)\r\n {\r\n var processConfigId = $routeParams[\"id\"];\r\n var conditionId = $routeParams[\"subId\"];\r\n\r\n this.scope.model = new models.ProcessConditionsModel(processConfigId, conditionId, processConfigurationService, conditionService, deleteService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessConditionsController', ['$scope', '$routeParams', 'processConfigurationService', 'conditionService', 'deleteService']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IProcessConfigVersionScope extends angular.IScope {\r\n model: models.ProcessConfigVersionModel,\r\n }\r\n\r\n export class ProcessConfigVersionController implements IController {\r\n constructor(\r\n private scope: IProcessConfigVersionScope,\r\n private $rootScope: angular.IRootScopeService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n $location: ng.ILocationService,\r\n $route: ng.route.IRouteService,\r\n processTypeService: services.ProcessTypeService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n deleteService: services.DeleteService,\r\n growl:angular.growl.IGrowlService)\r\n {\r\n var processConfigurationId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.ProcessConfigVersionModel(\r\n $location,\r\n $route,\r\n processTypeService,\r\n processConfigurationService,\r\n deleteService,\r\n processConfigurationId, () => this.sendConfigActivatedEvent(),\r\n growl);\r\n }\r\n\r\n private sendConfigActivatedEvent(): void {\r\n this.$rootScope.$broadcast('process-configuration-activated');\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessConfigVersionController',\r\n ['$scope', '$rootScope', '$routeParams', '$location', '$route', 'processTypeService', 'processConfigurationService', 'deleteService', 'growl']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IProcessDataScope extends angular.IScope {\r\n model: models.ProcessDataModel,\r\n treeReadyCallback: any,\r\n changed: any,\r\n }\r\n\r\n export class ProcessDataController implements IController {\r\n constructor(\r\n private scope: IProcessDataScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n objectSchemaService: services.ObjectSchemaService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n systemLevelService: services.SystemLevelService,\r\n manageSystemCodesService: services.ManageSystemCodesService,\r\n growlService: angular.growl.IGrowlService) {\r\n var processConfigId = $routeParams[\"id\"];\r\n this.scope.model = new models.ProcessDataModel(objectSchemaService, processConfigurationService, systemLevelService, manageSystemCodesService, growlService, processConfigId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessDataController', ['$scope', '$routeParams', 'objectSchemaService', 'processConfigurationService', 'systemLevelService', 'manageSystemCodesService', 'growl']);","\r\n/// \r\nmodule warsApp.controllers {\r\n export interface IProcessFormsConfigurationScope extends angular.IScope {\r\n model: models.ProcessFormsConfigurationModel\r\n }\r\n\r\n export class ProcessFormsConfigurationController implements IController {\r\n constructor(\r\n private scope: IProcessFormsConfigurationScope,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n formService: services.FormService,\r\n locationService: angular.ILocationService,\r\n dataSourceService: services.DataSourceService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n deleteService: services.DeleteService,\r\n modalService:any)\r\n {\r\n var processConfigId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.ProcessFormsConfigurationModel(\r\n processConfigId,\r\n processConfigurationService,\r\n formService,\r\n locationService,\r\n dataSourceService,\r\n securityMatrixService,\r\n deleteService,\r\n modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessFormsConfigurationController',\r\n [ '$scope', 'processConfigurationService', '$routeParams', 'formService', '$location',\r\n 'dataSourceService', 'securityMatrixService', 'deleteService', 'ModalService']);","/// \r\n\r\nmodule warsApp.controllers {\r\n export interface IProcessHeaderConfiguration extends angular.IScope {\r\n model: models.ProcessHeaderModel ;\r\n }\r\n\r\n export class ProcessHeaderConfigurationController implements IController {\r\n scope: IProcessHeaderConfiguration;\r\n\r\n constructor(\r\n $scope: IProcessHeaderConfiguration,\r\n processHeaderService: services.ProcessHeaderService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n manageStaticDocumentsService: services.ManageStaticDocumentsService,\r\n treeService: services.TreeService,\r\n growlService: angular.growl.IGrowlService,\r\n securityMatrixService: services.SecurityMatrixService) {\r\n this.scope = $scope;\r\n var id = $routeParams[\"id\"];\r\n this.scope.model = new models.ProcessHeaderModel(id, processHeaderService, manageStaticDocumentsService, treeService, growlService,securityMatrixService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessHeaderConfigurationController', ['$scope', 'processHeaderService', '$routeParams', 'manageStaticDocumentsService', 'treeService', 'growl','securityMatrixService' ]);","/// \r\nmodule warsApp.controllers {\r\n export interface IProcessSecurityScope extends angular.IScope {\r\n model: models.ProcessSecurityModel;\r\n }\r\n\r\n\r\n export class ProcessSecurityController implements IController {\r\n constructor(\r\n private $scope: IProcessSecurityScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n processConfigurtaionService: services.ProcessConfigurationService,\r\n processTypeService: services.ProcessTypeService,\r\n objectQueryService: services.ObjectQueryService,\r\n systemLevelService: services.SystemLevelService)\r\n {\r\n var processConfigId = $routeParams[\"id\"];\r\n this.$scope.model = new models.ProcessSecurityModel(processConfigId, securityMatrixService, processConfigurtaionService, processTypeService, objectQueryService, systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessSecurityController', ['$scope', '$routeParams', 'securityMatrixService', 'processConfigurationService', 'processTypeService', 'objectQueryService', 'systemLevelService']);","/// \r\n\r\nmodule warsApp.controllers {\r\n export interface IProcessSubTypesConfigurationScope extends angular.IScope {\r\n model: models.ProcessSubTypesModel;\r\n }\r\n\r\n export class ProcessSubTypesConfigurationController implements IController {\r\n scope: IProcessSubTypesConfigurationScope;\r\n\r\n constructor(\r\n $scope: IProcessSubTypesConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n processSubTypeService: services.ProcessSubTypeService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n systemLevelService: services.SystemLevelService,\r\n processActionService: services.ProcessActionService,\r\n claimDefinitionService: services.ClaimDefinitionService)\r\n {\r\n this.scope = $scope;\r\n var id = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.ProcessSubTypesModel(\r\n id,\r\n processConfigurationService,\r\n processSubTypeService,\r\n securityMatrixService,\r\n systemLevelService,\r\n processActionService,\r\n claimDefinitionService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"ProcessSubTypesConfigurationController\",\r\n [\r\n \"$scope\", \"$routeParams\", \"processConfigurationService\", \"processSubTypeService\", \"securityMatrixService\",\r\n \"systemLevelService\", \"processActionService\", \"claimDefinitionService\"\r\n ]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IProcessTypeScope extends angular.IScope {\r\n model: models.ProcessTypeModel;\r\n }\r\n\r\n export class ProcessTypeController implements IController {\r\n scope: IProcessTypeScope;\r\n\r\n constructor(\r\n $scope: IProcessTypeScope,\r\n processTypeService: services.ProcessTypeService,\r\n locationService: angular.ILocationService,\r\n dataSourceService: services.DataSourceService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n deleteService: services.DeleteService)\r\n {\r\n var processConfigurationId = $routeParams[\"id\"];\r\n\r\n this.scope = $scope;\r\n this.scope.model = new models.ProcessTypeModel(processTypeService, locationService, dataSourceService, processConfigurationService, deleteService, processConfigurationId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessTypeController', ['$scope', 'processTypeService', '$location', 'dataSourceService', 'processConfigurationService', '$routeParams', \"deleteService\"]);","/// \r\nmodule warsApp.controllers{\r\n export interface RelatedClaimProcessTypeScope extends angular.IScope {\r\n model: models.RelatedClaimProcessTypeModel;\r\n\r\n }\r\n\r\n export class RelatedClaimProcessTypeController {\r\n constructor(scope: RelatedClaimProcessTypeScope, $routeParams: angular.route.IRouteParamsService,\r\n private relatedClaimProcessTypeService: services.RelatedClaimProcessTypeService,\r\n private processConfigurationService:services.ProcessConfigurationService) {\r\n\r\n var processConfigurationId: string = $routeParams[\"id\"];\r\n scope.model = new models.RelatedClaimProcessTypeModel(processConfigurationId,relatedClaimProcessTypeService,processConfigurationService);\r\n\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('RelatedClaimProcessTypeController', ['$scope', '$routeParams','relatedClaimProcessTypeService','processConfigurationService']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IReviewConfigurationScope extends angular.IScope {\r\n model: models.ReviewConfigurationModel\r\n }\r\n\r\n export class ReviewConfigurationController implements IController {\r\n constructor(\r\n private scope: IReviewConfigurationScope,\r\n reviewConfigurationService:services.ReviewConfigurationService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n formService: services.FormService,\r\n claimService: services.ClaimDefinitionService,\r\n emailConfigurationService: services.EmailConfigurationService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n deleteService: services.DeleteService,\r\n systemLevelService: services.SystemLevelService,\r\n manageSystemCodesService: services.ManageSystemCodesService)\r\n {\r\n\r\n var processConfigId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.ReviewConfigurationModel(\r\n reviewConfigurationService,\r\n formService,\r\n claimService,\r\n emailConfigurationService,\r\n securityMatrixService,\r\n deleteService,\r\n systemLevelService,\r\n manageSystemCodesService,\r\n processConfigId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"ReviewConfigurationController\",\r\n [\r\n \"$scope\", \"reviewConfigurationService\", \"$routeParams\", \"formService\", \"claimDefinitionService\", \"emailConfigurationService\",\r\n \"securityMatrixService\", \"deleteService\", \"systemLevelService\", \"manageSystemCodesService\"\r\n ]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ITimePeriodConfigurationScope extends angular.IScope {\r\n model: models.TimeTrackerConfigurationModel;\r\n }\r\n\r\n export class TimePeriodConfigurationController implements IController {\r\n scope: ITimePeriodConfigurationScope;\r\n\r\n constructor(\r\n $scope: ITimePeriodConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n $timeout: angular.ITimeoutService,\r\n timeTrackerService: services.TimeTrackerService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n systemLevelService: services.SystemLevelService,\r\n statusAndStateService: services.StatusAndStateService,\r\n holidaySetService: services.HolidaySetService,\r\n timeZoneService: services.TimeZoneService,\r\n deleteService: services.DeleteService) {\r\n this.scope = $scope;\r\n\r\n var processConfigId = $routeParams[\"id\"];\r\n this.scope.model = new models.TimeTrackerConfigurationModel(\r\n processConfigId,\r\n $timeout,\r\n timeTrackerService,\r\n processConfigurationService,\r\n systemLevelService,\r\n statusAndStateService,\r\n holidaySetService,\r\n timeZoneService,\r\n deleteService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"TimePeriodConfigurationController\",\r\n [\r\n \"$scope\", \"$routeParams\", \"$timeout\", \"timeTrackerService\", \"processConfigurationService\", \"systemLevelService\",\r\n \"statusAndStateService\", \"holidaySetService\", \"timeZoneService\", \"deleteService\"\r\n ]);","///// \r\n//module warsApp.controllers {\r\n// export interface IWorkflowClaimsConfiguration extends angular.IScope {\r\n// model: models.ClaimsConfigurationModel;\r\n// }\r\n// export class WorkflowClaimsConfigurationController implements IController {\r\n// scope: IWorkflowClaimsConfiguration;\r\n// constructor($scope: IWorkflowClaimsConfiguration,\r\n// claimDefinitionService: services.ClaimDefinitionService,\r\n// processConfigurationService: warsApp.services.ProcessConfigurationService,\r\n// claimsAssignmentService: warsApp.services.ClaimsAssignmentConfigurationService,\r\n// $routeParams: angular.route.IRouteParamsService)\r\n// {\r\n// this.scope = $scope;\r\n// var processConfigId = $routeParams[\"id\"];\r\n// this.scope.model = new models.ClaimsConfigurationModel(processConfigId,\r\n// claimsAssignmentService, claimDefinitionService, processConfigurationService);\r\n// }\r\n// }\r\n//}\r\n//warsApp.registerController('WorkflowClaimsConfigurationController', ['$scope', 'claimDefinitionService', 'processConfigurationService', 'claimsAssignmentConfigurationService', '$routeParams' ]);\r\n//# sourceMappingURL=WorkflowClaimsConfigurationController.js.map","/// \r\nmodule warsApp.controllers {\r\n export interface IWorkflowConfigurationScope extends angular.IScope {\r\n model: models.WorkflowConfigurationModel\r\n }\r\n\r\n export class WorkflowConfigurationController implements IController {\r\n constructor(\r\n private scope: IWorkflowConfigurationScope,\r\n $timeout: ng.ITimeoutService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n workflowService: services.WorkflowService,\r\n deleteService: services.DeleteService,\r\n workflowDrawingService: services.WorkflowDrawingService,\r\n modalService: any)\r\n {\r\n var processConfigId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.WorkflowConfigurationModel(\r\n scope,\r\n $timeout,\r\n processConfigId,\r\n models.WorkflowMode.Workflow,\r\n workflowService,\r\n deleteService,\r\n workflowDrawingService,\r\n modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('WorkflowConfigurationController', ['$scope', '$timeout', '$routeParams', 'workflowService', 'deleteService', 'workflowDrawingService', 'ModalService']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IProcessEventConfigurationScope extends angular.IScope {\r\n model: models.ProcessEventConfigurationModel;\r\n }\r\n\r\n export class ProcessEventConfigurationController implements IController {\r\n scope: IProcessEventConfigurationScope;\r\n\r\n constructor(\r\n $scope: IProcessEventConfigurationScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n processEventConfigurationService: services.ProcessEventConfigurationService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n systemLevelService: services.SystemLevelService,\r\n processActionService: services.ProcessActionService,\r\n deleteService: services.DeleteService) {\r\n this.scope = $scope;\r\n\r\n var processConfigId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.ProcessEventConfigurationModel(\r\n processConfigId,\r\n processEventConfigurationService,\r\n securityMatrixService,\r\n systemLevelService,\r\n processActionService,\r\n deleteService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"ProcessEventConfigurationController\", [\"$scope\", \"$routeParams\", \"processEventConfigurationService\", \"securityMatrixService\", \"systemLevelService\", \"processActionService\", \"deleteService\"]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ISystemDocumentScope extends angular.IScope {\r\n config: Wars.Domain.Model.Documents.SystemDocumentConfiguration;\r\n addNewDocumentType(): void;\r\n save(): void;\r\n }\r\n\r\n export class SystemDocumentController implements IController {\r\n constructor(\r\n private scope: ISystemDocumentScope,\r\n private systemLevelService: services.SystemLevelService,\r\n private manageSystemCodesService: services.ManageSystemCodesService)\r\n {\r\n this.systemLevelService.getSystemLevelDocumentConfiguration().then(\r\n (sysLevel) => {\r\n this.scope.config = sysLevel.systemDocumentConfiguration;\r\n });\r\n\r\n this.scope.save = () => this.save();\r\n this.scope.addNewDocumentType = () => this.addNewDocumentType();\r\n }\r\n\r\n private addNewDocumentType(): void {\r\n const newCode = this.manageSystemCodesService.createNewSystemCode(this.scope.config.documentTypeCodeGroup, true);\r\n newCode.isActive = true;\r\n this.scope.config.documentTypeCodeGroup.codes.push(newCode);\r\n newCode.myParentCodeGroup = this.scope.config.documentTypeCodeGroup;\r\n }\r\n\r\n private save(): void {\r\n this.systemLevelService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('SystemDocumentController', [\"$scope\", \"systemLevelService\", \"manageSystemCodesService\"]);","/// \r\nmodule warsApp.controllers {\r\n export interface IConstantConfigurationScope extends angular.IScope {\r\n model: models.ConstantConfigurationModel;\r\n }\r\n\r\n export class ConstantConfigurationController implements IController {\r\n scope: IConstantConfigurationScope;\r\n\r\n constructor(\r\n $scope: IConstantConfigurationScope,\r\n constantService: services.ConstantService,\r\n systemLevelService: services.SystemLevelService,\r\n deleteService: services.DeleteService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n growl: angular.growl.IGrowlService)\r\n {\r\n this.scope = $scope;\r\n var id = $routeParams[\"id\"];\r\n this.scope.model = new models.ConstantConfigurationModel(constantService, systemLevelService, deleteService, id, growl);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ConstantConfigurationController', ['$scope', 'constantService', 'systemLevelService', 'deleteService', '$routeParams', 'growl']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IContentPageScope extends angular.IScope {\r\n model: models.ContentPageModel;\r\n }\r\n\r\n export class ContentPageController implements IController {\r\n scope: IContentPageScope;\r\n\r\n constructor(\r\n $scope: IContentPageScope,\r\n contentPageService: warsApp.services.ContentPageService,\r\n editableContentPageService: warsApp.services.EditableContentPageService,\r\n growlService: angular.growl.IGrowlService,\r\n $routeParams: angular.route.IRouteParamsService)\r\n {\r\n this.scope = $scope;\r\n var id = $routeParams[\"id\"];\r\n this.scope.model = new models.ContentPageModel(contentPageService, editableContentPageService, growlService, id);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ContentPageController', ['$scope', 'contentPageService', 'editableContentPageService', 'growl', '$routeParams']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IContentPagesScope extends angular.IScope {\r\n model: models.ContentPagesModel;\r\n }\r\n\r\n export class ContentPagesController implements IController {\r\n scope: IContentPagesScope;\r\n\r\n constructor(\r\n $scope: IContentPagesScope,\r\n contentPageService: warsApp.services.ContentPageService,\r\n securityMatrixService: warsApp.services.SecurityMatrixService,\r\n processTypeService: services.ProcessTypeService,\r\n systemLevelService: services.SystemLevelService,\r\n modalService: any) {\r\n this.scope = $scope;\r\n this.scope.model = new models.ContentPagesModel(contentPageService, securityMatrixService, processTypeService, systemLevelService, modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ContentPagesController', ['$scope', 'contentPageService', 'securityMatrixService', 'processTypeService', 'systemLevelService', 'ModalService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IDataSourceConfigurationScope extends angular.IScope {\r\n model: models.DataSourceConfigurationModel;\r\n }\r\n\r\n export class DataSourceConfigurationController implements IController {\r\n scope: IDataSourceConfigurationScope;\r\n\r\n constructor($scope: IDataSourceConfigurationScope,\r\n dataSourceService: services.DataSourceService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n codeService: services.ManageSystemCodesService,\r\n $http: angular.IHttpService,\r\n growl: angular.growl.IGrowlService,\r\n $location: angular.ILocationService)\r\n {\r\n this.scope = $scope;\r\n var id = null;\r\n if ($routeParams[\"id\"]) {\r\n id = $routeParams[\"id\"];\r\n }\r\n this.scope.model = new models.DataSourceConfigurationModel(dataSourceService, id, $scope, codeService, $http, growl, $location);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('DataSourceConfigurationController', ['$scope', 'dataSourceService', '$routeParams','manageSystemCodesService','$http','growl','$location']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IDocumentationScope extends angular.IScope {\r\n model: models.DocumentationModel;\r\n }\r\n\r\n export class DocumentationController implements IController {\r\n scope: IDocumentationScope;\r\n\r\n constructor(\r\n $scope: IDocumentationScope,\r\n $rootScope: ng.IRootScopeService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n $location: ng.ILocationService,\r\n $anchorScroll: ng.IAnchorScrollService,\r\n processConfigurationService: warsApp.services.ProcessConfigurationService,\r\n processTypeService: warsApp.services.ProcessTypeService,\r\n workflowService: warsApp.services.WorkflowService,\r\n workflowDrawingService: warsApp.services.WorkflowDrawingService,\r\n conditionService: warsApp.services.ConditionService,\r\n emailConfigurationService: warsApp.services.EmailConfigurationService,\r\n pdfBindingService: warsApp.services.PdfBindingService,\r\n modalService: any)\r\n {\r\n var processConfigId = $routeParams[\"id\"];\r\n var anchor = $routeParams[\"anchor\"];\r\n this.scope = $scope;\r\n this.scope.model = new models.DocumentationModel(\r\n processConfigId,\r\n anchor,\r\n $location,\r\n $anchorScroll,\r\n $scope,\r\n $rootScope,\r\n processConfigurationService,\r\n processTypeService,\r\n workflowService,\r\n workflowDrawingService,\r\n conditionService,\r\n emailConfigurationService,\r\n pdfBindingService,\r\n modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('DocumentationController',\r\n [\r\n '$scope', '$rootScope', '$routeParams', '$location', '$anchorScroll',\r\n 'processConfigurationService', 'processTypeService', 'workflowService', 'workflowDrawingService', 'conditionService', 'emailConfigurationService', 'pdfBindingService',\r\n 'ModalService'\r\n ]);","\r\n/// \r\nmodule warsApp.controllers {\r\n export interface IEditableWebPageScope extends angular.IScope {\r\n model: models.EditableWebPageModel\r\n }\r\n\r\n export class EditableWebPageController implements IController {\r\n constructor(\r\n private scope: IEditableWebPageScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n contentPageService: warsApp.services.ContentPageService,\r\n editableContentPageService: warsApp.services.EditableContentPageService,\r\n processTypeService: services.ProcessTypeService,\r\n modalService: any) {\r\n\r\n var contentPageId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.EditableWebPageModel(\r\n contentPageId,\r\n contentPageService,\r\n editableContentPageService,\r\n processTypeService,\r\n modalService\r\n );\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('EditableWebPageController', ['$scope', '$routeParams', 'contentPageService', 'editableContentPageService', 'processTypeService', 'ModalService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IEmailNotificationScope extends angular.IScope {\r\n model: models.EmailNotificationModel;\r\n }\r\n\r\n export class EmailNotificationController implements IController {\r\n\r\n constructor(\r\n private scope: IEmailNotificationScope,\r\n private $rootScope: angular.IRootScopeService,\r\n $timeout: ng.ITimeoutService,\r\n $filter: ng.IFilterService,\r\n growl: angular.growl.IGrowlService,\r\n emailService: services.EmailService) {\r\n this.scope.model = new models.EmailNotificationModel(\r\n scope,\r\n $rootScope,\r\n $timeout,\r\n $filter,\r\n growl,\r\n emailService\r\n );\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('EmailNotificationController', ['$scope', '$rootScope', '$timeout', '$filter', 'growl', 'emailService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IGisDatastoreScope extends angular.IScope {\r\n model: models.GisDatastoreModel;\r\n }\r\n\r\n export class GisDatastoreController implements IController {\r\n scope: IGisDatastoreScope;\r\n\r\n constructor($scope: IGisDatastoreScope,\r\n gisDatastoreService: services.GisDatastoreService,\r\n growl: angular.growl.IGrowlService,\r\n systemLevelService:services.SystemLevelService) {\r\n $scope.model = new models.GisDatastoreModel(gisDatastoreService, growl,systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('GisDatastoreController', ['$scope', 'gisDatastoreService', 'growl','systemLevelService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IHeaderFooterScope extends angular.IScope {\r\n model: models.HeaderFooterModel;\r\n }\r\n\r\n export class HeaderFooterController implements IController {\r\n scope: IHeaderFooterScope;\r\n\r\n constructor($scope: IHeaderFooterScope,\r\n growl: angular.growl.IGrowlService) {\r\n $scope.model = new models.HeaderFooterModel($scope, growl);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('HeaderFooterController', ['$scope', 'growl']);","/// \r\nmodule warsApp.controllers {\r\n export interface IHolidaySetConfiguration extends angular.IScope {\r\n model: warsApp.models.HolidaySetModel;\r\n }\r\n\r\n export class HolidaySetConfigurationController implements warsApp.IController {\r\n scope: IHolidaySetConfiguration;\r\n\r\n constructor($scope: IHolidaySetConfiguration, holidaySetService: warsApp.services.HolidaySetService, modalService: any) {\r\n this.scope = $scope;\r\n this.scope.model = new warsApp.models.HolidaySetModel(holidaySetService, modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('HolidaySetConfigurationController', ['$scope', 'holidaySetService','ModalService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IImpersonationScope extends angular.IScope {\r\n selectedUser: any;\r\n searchUsers: any;\r\n impersonate(): void;\r\n endImpersonation() : void\r\n isCurrentlyImpersonating() : boolean;\r\n }\r\n\r\n\r\n export class ImpersonationController implements IController {\r\n constructor(\r\n private scope: IImpersonationScope,\r\n private testService: services.TestService,\r\n private userService: services.UserService)\r\n {\r\n scope.searchUsers = (a) => this.searchUsers(a);\r\n scope.impersonate = () => this.impersonate();\r\n scope.endImpersonation = () => this.endImpersonation();\r\n scope.isCurrentlyImpersonating = () => this.isCurrentlyImpersonating();\r\n }\r\n\r\n private searchUsers(viewValue) {\r\n var searchCriteria = new models.UserSearchCriteria();\r\n searchCriteria.userRepository = undefined;\r\n searchCriteria.userName = viewValue;\r\n return this.userService.searchUsers(searchCriteria);;\r\n }\r\n\r\n private impersonate() {\r\n if (this.scope.selectedUser) {\r\n this.testService.impersonate(this.scope.selectedUser.id).then(() => {\r\n this.userService.setImpersonationUserId(this.scope.selectedUser.id);\r\n alert(\"You are now impersonating the selected user\");\r\n });\r\n } else {\r\n alert(\"Pick a user first\");\r\n }\r\n }\r\n\r\n private endImpersonation() {\r\n this.testService.endImpersonation().then(() => {\r\n this.userService.clearImpersonationUserId();\r\n alert(\"You are no longer impersonating\");\r\n });\r\n }\r\n\r\n private isCurrentlyImpersonating(): boolean {\r\n return this.userService.isCurrentlyImpersonating()\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ImpersonationController', ['$scope', 'testService', \"userService\"]);","/// \r\nmodule warsApp.controllers {\r\n interface IJsonDictionaryStoresScope extends angular.IScope {\r\n model:warsApp.models.JsonDictionaryStoresModel;\r\n }\r\n export class JsonDictionaryStoresController {\r\n constructor($scope: IJsonDictionaryStoresScope, systemLevelService: services.SystemLevelService) {\r\n $scope.model = new models.JsonDictionaryStoresModel(systemLevelService);\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerController('JsonDictionaryStoresController',['$scope','systemLevelService']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ILandingPageConfigurationScope extends angular.IScope {\r\n model: models.LandingPageConfigurationModel;\r\n }\r\n\r\n export class LandingPageConfigurationController implements IController {\r\n scope: ILandingPageConfigurationScope;\r\n\r\n constructor(\r\n $scope: ILandingPageConfigurationScope,\r\n landingPageConfigurationService: services.LandingPageConfigurationService,\r\n contentPageService: services.ContentPageService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n processTypeService: services.ProcessTypeService,\r\n modalService: any,\r\n growlService: angular.growl.IGrowlService) {\r\n this.scope = $scope;\r\n this.scope.model = new models.LandingPageConfigurationModel(\r\n landingPageConfigurationService,\r\n contentPageService,\r\n securityMatrixService,\r\n processTypeService,\r\n modalService,\r\n growlService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('LandingPageConfigurationController', ['$scope', 'landingPageConfigurationService', 'contentPageService', 'securityMatrixService', 'processTypeService', 'ModalService', 'growl']);","/// \r\nmodule warsApp.controllers {\r\n export interface ILayoutControllerScope extends angular.IScope {\r\n model: models.LayoutModel\r\n }\r\n\r\n export class LayoutController implements IController {\r\n\r\n timeoutService: angular.ITimeoutService;\r\n httpService: angular.IHttpService;\r\n windowService: angular.IWindowService;\r\n locationService: angular.ILocationService;\r\n rootScopeService: angular.IRootScopeService;\r\n authService: any;\r\n localStorageService: any;\r\n signalrService: services.ISignalrService;\r\n\r\n constructor(\r\n private scope: ILayoutControllerScope,\r\n rootScopeService: angular.IRootScopeService,\r\n locationService: angular.ILocationService,\r\n timeoutService: angular.ITimeoutService,\r\n httpService: angular.IHttpService,\r\n windowService: angular.IWindowService,\r\n documentService: angular.IDocumentService,\r\n private processTypeService: services.ProcessTypeService,\r\n menuItemService: services.MenuItemService,\r\n signalrService: services.ISignalrService,\r\n private emailService: services.EmailService,\r\n siteConfigurationService: services.SiteConfigurationService,\r\n private siteInitializationService: services.SiteInitializationService,\r\n private userService: services.UserService,\r\n private userAdministrationService: services.UserAdministrationService,\r\n authService: any,\r\n localStorageService: any,\r\n testService: services.TestService,\r\n $q: angular.IQService) {\r\n\r\n this.timeoutService = timeoutService;\r\n this.httpService = httpService;\r\n this.windowService = windowService;\r\n this.authService = authService;\r\n this.locationService = locationService;\r\n this.localStorageService = localStorageService;\r\n this.signalrService = signalrService;\r\n this.rootScopeService = rootScopeService;\r\n \r\n var model = new models.LayoutModel(\r\n scope,\r\n userAdministrationService,\r\n windowService,\r\n localStorageService,\r\n signalrService,\r\n httpService,\r\n rootScopeService,\r\n locationService,\r\n processTypeService,\r\n menuItemService,\r\n emailService,\r\n siteConfigurationService,\r\n siteInitializationService,\r\n userService,\r\n authService,\r\n testService,\r\n $q);\r\n this.scope.model = model; \r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('LayoutController', ['$scope', '$rootScope', '$location', '$timeout', '$http', '$window', '$document', 'processTypeService', 'menuItemService', 'signalrService', 'emailService', 'siteConfigurationService', 'siteInitializationService', 'userService', 'userAdministrationService', 'authService', 'localStorageService', \"testService\", \"$q\"]);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageClaimsScope extends angular.IScope {\r\n model: models.ManageClaimsModel;\r\n }\r\n\r\n export class ManageClaimsController implements IController {\r\n scope: IManageClaimsScope;\r\n\r\n constructor(\r\n $scope: IManageClaimsScope,\r\n claimDefinitionService: services.ClaimDefinitionService,\r\n systemLevelService: services.SystemLevelService,\r\n deleteService: services.DeleteService,\r\n modalService: any) {\r\n this.scope = $scope;\r\n this.scope.model = new models.ManageClaimsModel(claimDefinitionService, systemLevelService, deleteService, modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"ManageClaimsController\", [\"$scope\", \"claimDefinitionService\", \"systemLevelService\", \"deleteService\", \"ModalService\"]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageContentScope extends angular.IScope {\r\n model: models.ContentManagementModel;\r\n }\r\n\r\n export class ManageContentController implements IController {\r\n scope: IManageContentScope;\r\n\r\n constructor($scope: IManageContentScope) {\r\n this.scope = $scope;\r\n this.scope.model = new models.ContentManagementModel();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageContentController', ['$scope']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageEmailGroupsScope extends angular.IScope {\r\n model: models.ManageEmailGroupsModel;\r\n }\r\n\r\n export class ManageEmailGroupsController implements IController {\r\n scope: IManageEmailGroupsScope;\r\n\r\n constructor(\r\n $scope: IManageEmailGroupsScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n emailGroupService: services.EmailGroupService,\r\n systemLevelService: services.SystemLevelService,\r\n private deleteService: services.DeleteService,\r\n modalService: any)\r\n {\r\n this.scope = $scope;\r\n var processConfigurationId = $routeParams[\"id\"];\r\n this.scope.model = new models.ManageEmailGroupsModel(processConfigurationId, emailGroupService, systemLevelService, deleteService, modalService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageEmailGroupsController', ['$scope', '$routeParams', 'emailGroupService', 'systemLevelService', 'deleteService', 'ModalService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IExtensibleComponentScope extends angular.IScope {\r\n model: models.ExtensibleComponentConfigurationModel\r\n }\r\n\r\n export class ManageExtensibleComponentController implements IController {\r\n constructor(\r\n private scope: IExtensibleComponentScope,\r\n $http: angular.IHttpService,\r\n $timeout: angular.ITimeoutService,\r\n growlService: angular.growl.IGrowlService,\r\n Upload: any) {\r\n this.scope.model = new models.ExtensibleComponentConfigurationModel($http, Upload, $timeout, growlService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageExtensibleComponentController', ['$scope','$http','$timeout','growl','Upload']);\r\n","/// \r\nmodule warsApp.controllers {\r\n export interface IManageSecurityMatrixScope extends angular.IScope {\r\n model: models.ManageSecurityMatrixModel;\r\n }\r\n\r\n\r\n export class ManageSecurityMatrixController implements IController {\r\n constructor(\r\n private scope: IManageSecurityMatrixScope,\r\n securityMatrixService: services.SecurityMatrixService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n systemLevelService: services.SystemLevelService,\r\n deleteService: services.DeleteService,\r\n processConfigurtaionService: services.ProcessConfigurationService) {\r\n var processConfigId = $routeParams[\"id\"];\r\n\r\n this.scope.model = new models.ManageSecurityMatrixModel(processConfigId, securityMatrixService, systemLevelService, deleteService, processConfigurtaionService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageSecurityMatrixController', ['$scope', 'securityMatrixService', '$routeParams', 'systemLevelService', 'deleteService', 'processConfigurationService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IManageStaticDocumentsScope extends angular.IScope {\r\n model: models.StaticDocumentsModel\r\n }\r\n\r\n export class ManageStaticDocumentsController implements IController {\r\n\r\n constructor(\r\n private scope: IManageStaticDocumentsScope,\r\n $routeParams: angular.route.IRouteParamsService,\r\n manageStaticDocumentsService: services.ManageStaticDocumentsService,\r\n systemLevelService: services.SystemLevelService,\r\n deleteService: services.DeleteService,\r\n growl: angular.growl.IGrowlService)\r\n {\r\n\r\n this.scope.model = new models.StaticDocumentsModel(manageStaticDocumentsService, systemLevelService, deleteService, growl, $routeParams);\r\n\r\n this.scope.$watchCollection('model.uploadedFiles', (uploadedFiles : Wars.Domain.Model.Dtos.DocumentDto[]) => {\r\n if (uploadedFiles && uploadedFiles.length === 1) {\r\n var document = uploadedFiles[0];\r\n this.scope.model.name = document.name;\r\n\r\n manageStaticDocumentsService.getStaticDocumentById(document.id)\r\n .then(result => {\r\n this.scope.model.staticDocument = result;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageStaticDocumentsController', ['$scope', '$routeParams', 'manageStaticDocumentsService', 'systemLevelService', 'deleteService', 'growl']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IManageUsersScope extends angular.IScope {\r\n model: models.ManageUserModel;\r\n }\r\n\r\n export class ManageUsersController implements IController {\r\n scope: IManageUsersScope;\r\n\r\n constructor(\r\n $scope: IManageUsersScope,\r\n userService: services.UserService,\r\n systemLevelService: services.SystemLevelService) {\r\n this.scope = $scope;\r\n this.scope.model = new models.ManageUserModel(userService, systemLevelService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ManageUsersController', ['$scope', 'userService', 'systemLevelService']);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IMenuConfigurationScope extends angular.IScope {\r\n model: models.MenuConfigurationModel;\r\n }\r\n\r\n export class MenuConfigurationController implements IController {\r\n scope: IMenuConfigurationScope;\r\n\r\n constructor(\r\n $scope: IMenuConfigurationScope,\r\n menuConfigurationService: warsApp.services.MenuItemService,\r\n menuLinkService: warsApp.services.MenuLinkService,\r\n contentPageService: warsApp.services.ContentPageService,\r\n securityMatrixService: warsApp.services.SecurityMatrixService,\r\n processTypeService: services.ProcessTypeService) {\r\n this.scope = $scope;\r\n this.scope.model = new warsApp.models.MenuConfigurationModel(menuConfigurationService, menuLinkService, contentPageService, securityMatrixService, processTypeService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('MenuConfigurationController', ['$scope', 'menuItemService', 'menuLinkService', 'contentPageService', 'securityMatrixService', 'processTypeService']);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var AddFormModalController = /** @class */ (function (_super) {\r\n __extends(AddFormModalController, _super);\r\n function AddFormModalController(scope, close, form) {\r\n var _this = _super.call(this, scope, close) || this;\r\n _this.scope = scope;\r\n _this.scope.form = form;\r\n return _this;\r\n }\r\n return AddFormModalController;\r\n }(controllers.BaseModalController));\r\n controllers.AddFormModalController = AddFormModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('AddFormModalController', [\"$scope\", \"close\", \"form\"]);\r\n","/// \r\n\r\nmodule warsApp.controllers {\r\n\r\n export interface IAddFormScope extends angular.IScope {\r\n close: any;\r\n dismissModal: any;\r\n form: Wars.Domain.Model.Form;\r\n isReportProcess: boolean;\r\n }\r\n\r\n export class AddFormModalController extends BaseModalController {\r\n scope: IAddFormScope;\r\n\r\n constructor(\r\n scope: IAddFormScope,\r\n close: any,\r\n form: Wars.Domain.Model.Form) {\r\n super(scope, close);\r\n\r\n this.scope = scope;\r\n this.scope.form = form;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('AddFormModalController', [\"$scope\", \"close\", \"form\"]);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var AddFormSectionController = /** @class */ (function (_super) {\r\n __extends(AddFormSectionController, _super);\r\n function AddFormSectionController(scope, formSection, close, form, formService, systemLevelService) {\r\n var _this = _super.call(this, scope, close) || this;\r\n var self = _this;\r\n formService.getProcessConfigurationForms(form.processConfiguration_id).then(function (forms) {\r\n self.scope.forms = Enumerable.from(forms).where(function (f) { return f.id !== form.id; }).toArray();\r\n });\r\n systemLevelService.getSystemLevelVariables()\r\n .then(function (s) {\r\n self.scope.listVariables = s.variableSchema.properties.filter(function (v) {\r\n return v.propertyType === 7 /* List */;\r\n });\r\n });\r\n _this.scope = scope;\r\n _this.scope.formSection = formSection;\r\n return _this;\r\n }\r\n return AddFormSectionController;\r\n }(controllers.BaseModalController));\r\n controllers.AddFormSectionController = AddFormSectionController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('AddFormSectionController', ['$scope', 'formSection', 'close', 'form', 'formService', 'systemLevelService']);\r\n","/// \r\n\r\nmodule warsApp.controllers {\r\n export interface IAddFormSectionScope extends angular.IScope {\r\n close: any;\r\n dismissModal: any;\r\n forms: Wars.Domain.Model.Form[];\r\n formSection: warsApp.models.FormSection;\r\n listVariables:Wars.Domain.Model.SchemaProperty[];\r\n }\r\n\r\n export class AddFormSectionController extends BaseModalController {\r\n scope: IAddFormSectionScope;\r\n\r\n constructor(\r\n scope: IAddFormSectionScope,\r\n formSection: warsApp.models.FormSection,\r\n close: any,\r\n form:Wars.Domain.Model.Form,\r\n formService: services.FormService,\r\n systemLevelService:services.SystemLevelService) {\r\n super(scope, close);\r\n\r\n var self = this;\r\n formService.getProcessConfigurationForms(form.processConfiguration_id).then(forms => {\r\n self.scope.forms = Enumerable.from(forms).where(f => f.id !== form.id).toArray();\r\n });\r\n\r\n systemLevelService.getSystemLevelVariables()\r\n .then(s => {\r\n self.scope.listVariables=s.variableSchema.properties.filter(v => {\r\n return v.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.List;\r\n });\r\n });\r\n\r\n this.scope = scope;\r\n this.scope.formSection = formSection;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('AddFormSectionController', ['$scope', 'formSection', 'close', 'form', 'formService', 'systemLevelService']);","angular.module(\"warsApp.controllers\").controller('confirmationModalController', ['$scope', '$modalInstance', 'title', 'message', 'heading', function ($scope, $modalInstance, title, message, heading) {\r\n\r\n $scope.message = message;\r\n $scope.title = title;\r\n $scope.heading = heading;\r\n\r\n $scope.yesClicked = function () {\r\n $modalInstance.close();\r\n };\r\n\r\n $scope.noClicked = function () {\r\n $modalInstance.dismiss('cancel');\r\n };\r\n}]);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var ContentPageProcessLinkModalController = /** @class */ (function (_super) {\r\n __extends(ContentPageProcessLinkModalController, _super);\r\n function ContentPageProcessLinkModalController($scope, activeProcessTypes, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.activeProcessTypes = activeProcessTypes;\r\n return _this;\r\n }\r\n return ContentPageProcessLinkModalController;\r\n }(controllers.BaseModalController));\r\n controllers.ContentPageProcessLinkModalController = ContentPageProcessLinkModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('ContentPageProcessLinkModalController', ['$scope', 'activeProcessTypes', 'close']);\r\n","/// \r\n\r\nmodule warsApp.controllers {\r\n\r\n export interface IContentPageProcessLinkModalControllerScope extends IBaseModalControllerScope {\r\n activeProcessTypes: Wars.Domain.Model.ProcessType[];\r\n selectedProcessType: Wars.Domain.Model.ProcessType;\r\n }\r\n\r\n export class ContentPageProcessLinkModalController extends BaseModalController {\r\n scope: IContentPageProcessLinkModalControllerScope;\r\n\r\n constructor(\r\n $scope: IContentPageProcessLinkModalControllerScope,\r\n activeProcessTypes: Wars.Domain.Model.ProcessType[],\r\n close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.activeProcessTypes = activeProcessTypes;\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerController('ContentPageProcessLinkModalController', ['$scope', 'activeProcessTypes', 'close']);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var ContentPageStaticLinkModalController = /** @class */ (function (_super) {\r\n __extends(ContentPageStaticLinkModalController, _super);\r\n function ContentPageStaticLinkModalController($scope, contentPages, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.contentPageDtos = contentPages;\r\n return _this;\r\n }\r\n return ContentPageStaticLinkModalController;\r\n }(controllers.BaseModalController));\r\n controllers.ContentPageStaticLinkModalController = ContentPageStaticLinkModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('ContentPageStaticLinkModalController', ['$scope', 'contentPages', 'close']);\r\n","/// \r\n\r\nmodule warsApp.controllers {\r\n\r\n export interface IContentPageStaticLinkModalControllerScope extends IBaseModalControllerScope {\r\n contentPageDtos: Wars.Domain.Model.Dtos.ContentPageDto[];\r\n selectedContentPageDto: Wars.Domain.Model.Dtos.ContentPageDto;\r\n }\r\n\r\n export class ContentPageStaticLinkModalController extends BaseModalController {\r\n scope: IContentPageStaticLinkModalControllerScope;\r\n\r\n constructor(\r\n $scope: IContentPageStaticLinkModalControllerScope,\r\n contentPages: Wars.Domain.Model.Dtos.ContentPageDto[],\r\n close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.contentPageDtos = contentPages;\r\n }\r\n \r\n }\r\n}\r\n\r\nwarsApp.registerController('ContentPageStaticLinkModalController', ['$scope', 'contentPages', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var DeleteModalController = /** @class */ (function (_super) {\r\n __extends(DeleteModalController, _super);\r\n function DeleteModalController($scope, deleteService, deleteResult, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.$scope = $scope;\r\n _this.deleteService = deleteService;\r\n _this.deleteResult = deleteResult;\r\n _this.$scope.deleteResult = deleteResult;\r\n _this.$scope.attemptRecursiveDelete = function () { return _this.attemptRecursiveDeleteInternal(); };\r\n return _this;\r\n }\r\n DeleteModalController.prototype.attemptRecursiveDeleteInternal = function () {\r\n var _this = this;\r\n this.deleteService.deleteRecursivelyWithoutWarning(this.$scope.deleteResult.entityName, this.$scope.deleteResult.entityId, false).then(function (result) {\r\n _this.$scope.dismissModal({ cancel: false, deleteResult: result });\r\n });\r\n };\r\n DeleteModalController.prototype.cancel = function () {\r\n this.$scope.dismissModal({ cancel: true, deleteResult: undefined });\r\n };\r\n return DeleteModalController;\r\n }(controllers.BaseModalController));\r\n controllers.DeleteModalController = DeleteModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('DeleteModalController', ['$scope', 'deleteService', 'deleteResult', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IDeleteModalControllerScope extends controllers.IBaseModalControllerScope {\r\n deleteResult: Wars.Domain.Model.Dtos.Delete.DeleteResult,\r\n attemptRecursiveDelete: () => void;\r\n }\r\n\r\n export class DeleteModalController extends BaseModalController {\r\n\r\n constructor(\r\n private $scope: IDeleteModalControllerScope,\r\n private deleteService: services.DeleteService,\r\n private deleteResult: Wars.Domain.Model.Dtos.Delete.DeleteResult,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.$scope.deleteResult = deleteResult;\r\n this.$scope.attemptRecursiveDelete = () => this.attemptRecursiveDeleteInternal();\r\n }\r\n\r\n public attemptRecursiveDeleteInternal(): void {\r\n this.deleteService.deleteRecursivelyWithoutWarning(\r\n this.$scope.deleteResult.entityName,\r\n this.$scope.deleteResult.entityId, false).then(\r\n (result: Wars.Domain.Model.Dtos.Delete.DeleteResult) => {\r\n this.$scope.dismissModal({ cancel: false, deleteResult: result });\r\n });\r\n }\r\n\r\n public cancel(): void {\r\n this.$scope.dismissModal({ cancel: true, deleteResult: undefined });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('DeleteModalController', ['$scope', 'deleteService', 'deleteResult', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var EditClaimModalController = /** @class */ (function (_super) {\r\n __extends(EditClaimModalController, _super);\r\n function EditClaimModalController($scope, claim, mapping, systemClaimGroups, variableTypeContext, codeGroups, processActions, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.claim = claim;\r\n _this.scope.mapping = mapping;\r\n _this.scope.systemClaimGroups = systemClaimGroups;\r\n _this.scope.variableTypeContext = variableTypeContext;\r\n _this.scope.codeGroups = codeGroups;\r\n _this.scope.processActions = processActions;\r\n return _this;\r\n }\r\n return EditClaimModalController;\r\n }(controllers.BaseModalController));\r\n controllers.EditClaimModalController = EditClaimModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController(\"EditClaimModalController\", [\"$scope\", \"claim\", \"mapping\", \"systemClaimGroups\", \"variableTypeContext\", \"codeGroups\", \"processActions\", \"close\"]);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IEditClaimModalControllerScope extends IBaseModalControllerScope {\r\n claim: Wars.Domain.Model.ClaimDefinition;\r\n mapping: any;\r\n systemClaimGroups: Wars.Domain.Model.ClaimGroup[];\r\n variableTypeContext: Array;\r\n codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n processActions: Wars.Domain.Model.ProcessAction[];\r\n }\r\n\r\n export class EditClaimModalController extends BaseModalController {\r\n scope: IEditClaimModalControllerScope;\r\n\r\n constructor(\r\n $scope: IEditClaimModalControllerScope,\r\n claim: Wars.Domain.Model.ClaimDefinition,\r\n mapping: any,\r\n systemClaimGroups: Wars.Domain.Model.ClaimGroup[],\r\n variableTypeContext: Array,\r\n codeGroups: Array,\r\n processActions: Wars.Domain.Model.ProcessAction[],\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.claim = claim;\r\n this.scope.mapping = mapping;\r\n this.scope.systemClaimGroups = systemClaimGroups;\r\n this.scope.variableTypeContext = variableTypeContext;\r\n this.scope.codeGroups = codeGroups;\r\n this.scope.processActions = processActions;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"EditClaimModalController\", [\"$scope\", \"claim\", \"mapping\", \"systemClaimGroups\", \"variableTypeContext\", \"codeGroups\", \"processActions\", \"close\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var EditEmailAddressModalController = /** @class */ (function (_super) {\r\n __extends(EditEmailAddressModalController, _super);\r\n function EditEmailAddressModalController($scope, emailAddress, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.emailAddress = emailAddress;\r\n return _this;\r\n }\r\n return EditEmailAddressModalController;\r\n }(controllers.BaseModalController));\r\n controllers.EditEmailAddressModalController = EditEmailAddressModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('EditEmailAddressModalController', ['$scope', 'emailAddress', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IEditEmailAddressModalControllerScope extends IBaseModalControllerScope {\r\n emailAddress: Wars.Domain.Model.EmailAddress;\r\n }\r\n\r\n export class EditEmailAddressModalController extends BaseModalController {\r\n scope: IEditEmailAddressModalControllerScope;\r\n\r\n constructor($scope: IEditEmailAddressModalControllerScope, emailAddress: Wars.Domain.Model.EmailAddress, close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.emailAddress = emailAddress;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('EditEmailAddressModalController', ['$scope', 'emailAddress', 'close']);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var EditFieldController = /** @class */ (function (_super) {\r\n __extends(EditFieldController, _super);\r\n function EditFieldController(scope, field, close, service, manageSystemCodesService, systemLevelService, processConfigurationId, formSection, treeService, manageScheduledResourcesService, objectSchemaService, manageStaticDocumemtsService, autoCompleteConfigurationService, processConfiguration, form, apiGridConfigurationService, calculationService, reviewConfigurationService, apiActionService, securityMatrixService, documentService, fieldService, growl, processActionService, processTypeService, mapConfigurationService, mapOverridesService) {\r\n var _this = _super.call(this, scope, close) || this;\r\n _this.scope = scope;\r\n _this.scope.model = new warsApp.models.EditFieldModel(field, service, manageSystemCodesService, systemLevelService, processTypeService, processConfigurationId, formSection, treeService, manageScheduledResourcesService, objectSchemaService, manageStaticDocumemtsService, autoCompleteConfigurationService, processConfiguration, apiGridConfigurationService, calculationService, reviewConfigurationService, apiActionService, securityMatrixService, documentService, form, fieldService, growl, processActionService, mapConfigurationService, mapOverridesService);\r\n return _this;\r\n }\r\n return EditFieldController;\r\n }(controllers.BaseModalController));\r\n controllers.EditFieldController = EditFieldController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController(\"EditFieldController\", [\"$scope\", \"field\", \"close\", \"processConfigurationService\", \"manageSystemCodesService\", \"systemLevelService\", \"processConfigurationId\",\r\n \"formSection\", \"treeService\", \"manageScheduledResourcesService\", \"objectSchemaService\", \"manageStaticDocumentsService\", \"autoCompleteConfigurationService\",\r\n \"processConfiguration\", \"form\", \"apiGridConfigurationService\", \"calculationService\", \"reviewConfigurationService\", \"apiActionService\", \"securityMatrixService\",\r\n \"documentService\", \"fieldService\", 'growl', 'processActionService', 'processTypeService', 'mapConfigurationService', 'mapConfigurationOverridesService']);\r\n","/// \r\n\r\nmodule warsApp.controllers {\r\n export interface IEditFieldScope extends angular.IScope {\r\n model: models.EditFieldModel;\r\n close: any;\r\n dismissModal: any;\r\n }\r\n\r\n export class EditFieldController extends BaseModalController {\r\n scope: IEditFieldScope;\r\n\r\n constructor(\r\n scope: IEditFieldScope,\r\n field: Wars.Domain.Model.Field,\r\n close: any,\r\n service: services.ProcessConfigurationService,\r\n manageSystemCodesService: services.ManageSystemCodesService,\r\n systemLevelService: services.SystemLevelService,\r\n processConfigurationId: string,\r\n formSection: Wars.Domain.Model.FormSection,\r\n treeService: services.TreeService,\r\n manageScheduledResourcesService: services.ManageScheduledResourcesService,\r\n objectSchemaService: services.ObjectSchemaService,\r\n manageStaticDocumemtsService: services.ManageStaticDocumentsService,\r\n autoCompleteConfigurationService: services.AutoCompleteConfigurationService,\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration,\r\n form: Wars.Domain.Model.Form,\r\n apiGridConfigurationService: services.ApiGridConfigurationService,\r\n calculationService: services.CalculationService,\r\n reviewConfigurationService: services.ReviewConfigurationService,\r\n apiActionService: services.ApiActionService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n documentService: services.DocumentService,\r\n fieldService:services.FieldService,\r\n growl: angular.growl.IGrowlService,\r\n processActionService: services.ProcessActionService,\r\n processTypeService: services.ProcessTypeService,\r\n mapConfigurationService: services.MapConfigurationService,\r\n mapOverridesService: services.MapConfigurationOverridesService)\r\n {\r\n super(scope, close);\r\n this.scope = scope;\r\n this.scope.model = new models.EditFieldModel(\r\n field,\r\n service,\r\n manageSystemCodesService,\r\n systemLevelService,\r\n processTypeService,\r\n processConfigurationId,\r\n formSection,\r\n treeService, manageScheduledResourcesService,\r\n objectSchemaService, manageStaticDocumemtsService, autoCompleteConfigurationService,\r\n processConfiguration,\r\n apiGridConfigurationService,\r\n calculationService,\r\n reviewConfigurationService,\r\n apiActionService,\r\n securityMatrixService,\r\n documentService,\r\n form,fieldService,growl,processActionService,mapConfigurationService,mapOverridesService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"EditFieldController\",\r\n [ \"$scope\", \"field\", \"close\", \"processConfigurationService\", \"manageSystemCodesService\", \"systemLevelService\", \"processConfigurationId\",\r\n \"formSection\", \"treeService\", \"manageScheduledResourcesService\", \"objectSchemaService\", \"manageStaticDocumentsService\", \"autoCompleteConfigurationService\",\r\n \"processConfiguration\", \"form\", \"apiGridConfigurationService\", \"calculationService\", \"reviewConfigurationService\", \"apiActionService\", \"securityMatrixService\",\r\n \"documentService\", \"fieldService\", 'growl', 'processActionService', 'processTypeService', 'mapConfigurationService','mapConfigurationOverridesService']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var EditScheduledResourceModalController = /** @class */ (function (_super) {\r\n __extends(EditScheduledResourceModalController, _super);\r\n function EditScheduledResourceModalController($scope, scheduledResource, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.scheduledResource = scheduledResource;\r\n return _this;\r\n }\r\n return EditScheduledResourceModalController;\r\n }(controllers.BaseModalController));\r\n controllers.EditScheduledResourceModalController = EditScheduledResourceModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('EditScheduledResourceModalController', ['$scope', 'scheduledResource', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IEditScheduledResourceModalController extends IBaseModalControllerScope {\r\n scheduledResource: Wars.Domain.Model.ScheduledResourceConfiguration;\r\n }\r\n\r\n export class EditScheduledResourceModalController extends BaseModalController {\r\n scope: IEditScheduledResourceModalController;\r\n \r\n constructor($scope: IEditScheduledResourceModalController, scheduledResource: Wars.Domain.Model.ScheduledResourceConfiguration, close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.scheduledResource = scheduledResource;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('EditScheduledResourceModalController', ['$scope', 'scheduledResource', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var EditSystemCodeModalController = /** @class */ (function (_super) {\r\n __extends(EditSystemCodeModalController, _super);\r\n function EditSystemCodeModalController($scope, systemCode, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.systemCode = systemCode;\r\n return _this;\r\n }\r\n return EditSystemCodeModalController;\r\n }(controllers.BaseModalController));\r\n controllers.EditSystemCodeModalController = EditSystemCodeModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('EditSystemCodeModalController', ['$scope', 'systemCode', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IEditSystemCodeModalController extends IBaseModalControllerScope {\r\n systemCode: Wars.Domain.Model.Codes.SystemCode;\r\n }\r\n\r\n export class EditSystemCodeModalController extends BaseModalController {\r\n scope: IEditSystemCodeModalController;\r\n \r\n constructor($scope: IEditSystemCodeModalController, systemCode: Wars.Domain.Model.Codes.SystemCode, close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.systemCode = systemCode;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('EditSystemCodeModalController', ['$scope', 'systemCode', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var FileUploadModalController = /** @class */ (function (_super) {\r\n __extends(FileUploadModalController, _super);\r\n function FileUploadModalController($scope, $timeout, documentIds, process, documentConfiguration, systemDocumentConfiguration, uniqueIdentifier, model, fileUploadDownloadService, processDocumentService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.$timeout = $timeout;\r\n _this.fileUploadDownloadService = fileUploadDownloadService;\r\n _this.processDocumentService = processDocumentService;\r\n _this.scope = $scope;\r\n _this.scope.documentIds = documentIds;\r\n _this.scope.process = process;\r\n _this.scope.documentConfiguration = documentConfiguration;\r\n _this.scope.systemDocumentConfiguration = systemDocumentConfiguration;\r\n _this.scope.uniqueIdentifier = uniqueIdentifier;\r\n _this.scope.model = model;\r\n _this.scope.uploadFiles = function (files) { return _this.uploadFiles(files); };\r\n _this.scope.removeDocument = function (index) { return _this.removeDocument(index); };\r\n _this.scope.canSave = function () { return _this.canSave(); };\r\n _this.scope.save = function () { return _this.save(); };\r\n _this.initialize();\r\n return _this;\r\n }\r\n FileUploadModalController.prototype.save = function () {\r\n for (var i = 0; i < this.scope.model.documents.length; i++) {\r\n this.scope.documentMetadataModel.updateDocumentDto(this.scope.model.documents[i]);\r\n }\r\n this.dismissModal(true);\r\n };\r\n FileUploadModalController.prototype.initialize = function () {\r\n var _this = this;\r\n this.scope.myId = warsApp.services.UtilityService.generateGuidComb();\r\n this.scope.model.documents = [];\r\n if (this.scope.documentIds) {\r\n for (var i = 0; i < this.scope.documentIds.length; i++) {\r\n var document = this.processDocumentService.getDocumentById(this.scope.process, this.scope.documentIds[i]);\r\n if (document) {\r\n this.scope.model.documents.push(document);\r\n // If multiple files all have the same metadata so don't worry about which document to use to initialize\r\n this.scope.documentMetadataModel = new warsApp.models.DocumentMetadataModel(document);\r\n }\r\n }\r\n }\r\n if (!this.scope.documentMetadataModel) {\r\n this.scope.documentMetadataModel = new warsApp.models.DocumentMetadataModel(undefined);\r\n }\r\n this.scope.acceptsText = this.scope.documentConfiguration.overrideSystemDocumentAccepts\r\n ? this.scope.documentConfiguration.documentAccepts\r\n : this.scope.systemDocumentConfiguration.documentAccepts;\r\n this.scope.documentTypeContext = new warsApp.models.CodeDropDownContext();\r\n this.scope.documentTypeContext.includeSpecifiedOptionsOnly = Enumerable.from(this.scope.documentConfiguration.myAvailableDocumentTypes)\r\n .where(function (i) { return i.isAvailable; })\r\n .select(function (i) { return i.mySystemCode.uniqueIdentifier; })\r\n .toArray();\r\n this.scope.showDocumentTypeDropDown = this.scope.documentConfiguration.includeDocumentType &&\r\n Enumerable.from(this.scope.documentConfiguration.myAvailableDocumentTypes).count(function (i) { return i.isAvailable; }) > 1;\r\n // If no metadata then go ahead and open browsers file upload window\r\n if (!this.areInputsDisplayed()) {\r\n this.$timeout(function () {\r\n angular.element(\"#\" + _this.scope.myId).triggerHandler('click');\r\n });\r\n }\r\n };\r\n FileUploadModalController.prototype.areInputsDisplayed = function () {\r\n var docConfig = this.scope.documentConfiguration;\r\n return docConfig.includeDocumentComment ||\r\n (docConfig.documentSecurity === 2 /* CanBeMarkedSecured */ && this.scope.process.canSecureDocment[this.scope.uniqueIdentifier]) ||\r\n this.scope.showDocumentTypeDropDown;\r\n };\r\n FileUploadModalController.prototype.removeDocument = function (index) {\r\n this.scope.model.documents.splice(index, 1);\r\n this.scope.model.fileUploadProgress = undefined;\r\n };\r\n FileUploadModalController.prototype.uploadFiles = function (files) {\r\n var _this = this;\r\n this.scope.model.fileUploadProgress = undefined;\r\n this.fileUploadDownloadService.uploadFiles(files, this.scope.model).then(function (documents) {\r\n _this.scope.model.documents = documents;\r\n for (var i = 0; i < _this.scope.model.documents.length; i++) {\r\n _this.scope.documentMetadataModel.updateDocumentDto(_this.scope.model.documents[i]);\r\n }\r\n }, function (response) {\r\n if (response.status > 0) {\r\n _this.scope.model.errorMessage = response.status + ': ' + response.data;\r\n }\r\n }, function (evt) {\r\n _this.scope.model.fileUploadProgress = Math.min(100, parseInt((100.0 * evt.loaded / evt.total)));\r\n });\r\n };\r\n FileUploadModalController.prototype.canSave = function () {\r\n if (this.scope.model.documents && this.scope.model.documents.length > 0) {\r\n if (!this.scope.showDocumentTypeDropDown || this.scope.documentMetadataModel.documentTypeUniqueId) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return FileUploadModalController;\r\n }(controllers.BaseModalController));\r\n controllers.FileUploadModalController = FileUploadModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController(\"FileUploadModalController\", [\r\n \"$scope\", \"$timeout\", \"documentIds\", \"process\", \"documentConfiguration\", \"systemDocumentConfiguration\", \"uniqueIdentifier\", \"model\", \"fileUploadDownloadService\", \"processDocumentService\", \"close\"\r\n]);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IFileUploadModalControllerScope extends IBaseModalControllerScope {\r\n documentIds: string[],\r\n documentMetadataModel: models.DocumentMetadataModel;\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration;\r\n systemDocumentConfiguration: Wars.Domain.Model.Documents.SystemDocumentConfiguration;\r\n uniqueIdentifier: string;\r\n fileUploadModel: models.FileUploadModel;\r\n documentTypeContext: models.CodeDropDownContext;\r\n acceptsText: string;\r\n model: models.FileUploadModel;\r\n showDocumentTypeDropDown: boolean;\r\n myId: string;\r\n uploadFiles(files: any[]): void;\r\n removeDocument(index: number): void;\r\n canSave(): boolean;\r\n save(): void;\r\n }\r\n\r\n export class FileUploadModalController extends BaseModalController {\r\n scope: IFileUploadModalControllerScope;\r\n\r\n constructor(\r\n $scope: IFileUploadModalControllerScope,\r\n private $timeout: ng.ITimeoutService,\r\n documentIds: string[],\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration,\r\n systemDocumentConfiguration: Wars.Domain.Model.Documents.SystemDocumentConfiguration,\r\n uniqueIdentifier: string,\r\n model: models.FileUploadModel,\r\n private fileUploadDownloadService: services.FileUploadDownloadService,\r\n private processDocumentService: services.ProcessDocumentService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n\r\n this.scope = $scope;\r\n this.scope.documentIds = documentIds;\r\n this.scope.process = process;\r\n this.scope.documentConfiguration = documentConfiguration;\r\n this.scope.systemDocumentConfiguration = systemDocumentConfiguration;\r\n this.scope.uniqueIdentifier = uniqueIdentifier;\r\n this.scope.model = model;\r\n\r\n this.scope.uploadFiles = (files: any[]) => this.uploadFiles(files);\r\n this.scope.removeDocument = (index: number) => this.removeDocument(index);\r\n this.scope.canSave = () => this.canSave();\r\n this.scope.save = () => this.save();\r\n \r\n this.initialize();\r\n }\r\n\r\n public save() {\r\n for (var i = 0; i < this.scope.model.documents.length; i++) {\r\n this.scope.documentMetadataModel.updateDocumentDto(this.scope.model.documents[i]);\r\n }\r\n this.dismissModal(true);\r\n }\r\n\r\n private initialize(): void {\r\n this.scope.myId = services.UtilityService.generateGuidComb();\r\n this.scope.model.documents = [];\r\n if (this.scope.documentIds) {\r\n for (var i = 0; i < this.scope.documentIds.length; i++) {\r\n var document = this.processDocumentService.getDocumentById(this.scope.process, this.scope.documentIds[i]);\r\n if (document) {\r\n this.scope.model.documents.push(document);\r\n // If multiple files all have the same metadata so don't worry about which document to use to initialize\r\n this.scope.documentMetadataModel = new models.DocumentMetadataModel(document);\r\n }\r\n }\r\n }\r\n\r\n if (!this.scope.documentMetadataModel) {\r\n this.scope.documentMetadataModel = new models.DocumentMetadataModel(undefined);\r\n }\r\n\r\n this.scope.acceptsText = this.scope.documentConfiguration.overrideSystemDocumentAccepts\r\n ? this.scope.documentConfiguration.documentAccepts\r\n : this.scope.systemDocumentConfiguration.documentAccepts;\r\n\r\n this.scope.documentTypeContext = new models.CodeDropDownContext();\r\n\r\n this.scope.documentTypeContext.includeSpecifiedOptionsOnly = Enumerable.from(this.scope.documentConfiguration.myAvailableDocumentTypes)\r\n .where(i => i.isAvailable)\r\n .select(i => i.mySystemCode.uniqueIdentifier)\r\n .toArray();\r\n\r\n this.scope.showDocumentTypeDropDown = this.scope.documentConfiguration.includeDocumentType &&\r\n Enumerable.from(this.scope.documentConfiguration.myAvailableDocumentTypes).count(i => i.isAvailable) > 1;\r\n\r\n // If no metadata then go ahead and open browsers file upload window\r\n if (!this.areInputsDisplayed()) {\r\n this.$timeout(() => {\r\n angular.element(\"#\" + this.scope.myId).triggerHandler('click');\r\n });\r\n }\r\n }\r\n\r\n private areInputsDisplayed(): boolean {\r\n var docConfig = this.scope.documentConfiguration;\r\n return docConfig.includeDocumentComment ||\r\n (docConfig.documentSecurity === Wars.Domain.Model.Codes.Enums.DocumentSecurity.CanBeMarkedSecured && this.scope.process.canSecureDocment[this.scope.uniqueIdentifier]) ||\r\n this.scope.showDocumentTypeDropDown;\r\n }\r\n\r\n private removeDocument(index: number) {\r\n this.scope.model.documents.splice(index, 1);\r\n this.scope.model.fileUploadProgress = undefined;\r\n }\r\n\r\n private uploadFiles(files: any[]) {\r\n this.scope.model.fileUploadProgress = undefined;\r\n\r\n this.fileUploadDownloadService.uploadFiles(files, this.scope.model).then(\r\n (documents) => {\r\n this.scope.model.documents = documents;\r\n for (var i = 0; i < this.scope.model.documents.length; i++) {\r\n this.scope.documentMetadataModel.updateDocumentDto(this.scope.model.documents[i]);\r\n }\r\n },\r\n response => {\r\n if (response.status > 0) {\r\n this.scope.model.errorMessage = response.status + ': ' + response.data;\r\n }\r\n },\r\n evt => {\r\n this.scope.model.fileUploadProgress = Math.min(100, parseInt(((100.0 * evt.loaded / evt.total))));\r\n });\r\n }\r\n\r\n private canSave(): boolean {\r\n if (this.scope.model.documents && this.scope.model.documents.length > 0) {\r\n if (!this.scope.showDocumentTypeDropDown || this.scope.documentMetadataModel.documentTypeUniqueId) {\r\n return true;\r\n }\r\n }\r\n \r\n return false;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"FileUploadModalController\", [\r\n \"$scope\", \"$timeout\", \"documentIds\", \"process\", \"documentConfiguration\", \"systemDocumentConfiguration\", \"uniqueIdentifier\", \"model\", \"fileUploadDownloadService\", \"processDocumentService\", \"close\"\r\n]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var FormChangeModel = /** @class */ (function () {\r\n function FormChangeModel() {\r\n }\r\n return FormChangeModel;\r\n }());\r\n controllers.FormChangeModel = FormChangeModel;\r\n var FormChangeModalController = /** @class */ (function (_super) {\r\n __extends(FormChangeModalController, _super);\r\n function FormChangeModalController($scope, formSection, form, processConfigId, formService, processConfigurationService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.formService = formService;\r\n _this.processConfigurationService = processConfigurationService;\r\n _this.scope = $scope;\r\n _this.scope.form = form;\r\n _this.scope.formSection = formSection;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.destinationFormChanged = function () { return _this.destinationFormChanged(); };\r\n _this.scope.saveChanges = function () { return _this.saveChanges(); };\r\n _this.processConfigurationService.getExpandFields(_this.scope.processConfigId).then(function (processConfig) {\r\n _this.scope.processConfiguration = processConfig;\r\n _this.scope.forms = Enumerable.from(_this.scope.processConfiguration.myForms)\r\n .where(function (i) { return i.formType === 4 /* MultiStep */ ||\r\n i.formType === 5 /* SinglePage */; })\r\n .toArray();\r\n });\r\n _this.scope.model = new FormChangeModel();\r\n return _this;\r\n }\r\n FormChangeModalController.prototype.destinationFormChanged = function () {\r\n if (this.scope.model.destinationForm === undefined || this.scope.model.destinationForm === null) {\r\n this.scope.steps = [];\r\n }\r\n else {\r\n this.scope.steps = this.scope.model.destinationForm.mySteps;\r\n }\r\n };\r\n FormChangeModalController.prototype.saveChanges = function () {\r\n var _this = this;\r\n if (this.scope.formSection !== null && this.scope.formSection !== undefined) {\r\n // Dealing with a form section move\r\n if (this.scope.model.destinationForm === undefined ||\r\n this.scope.model.destinationForm === null ||\r\n this.scope.model.destinationStep === undefined ||\r\n this.scope.model.destinationStep === null) {\r\n alert(\"Please select both a destination form and step if you wish to move this form section.\");\r\n }\r\n else {\r\n // Remove from old Form and Step\r\n var currentStep = Enumerable.from(this.scope.form.mySteps)\r\n .single(function (i) { return i.id === _this.scope.formSection.formStep_id; });\r\n currentStep.formSections.remove(this.scope.formSection);\r\n var orderedFormSections = Enumerable.from(currentStep.formSections)\r\n .orderBy(function (i) { return i.position; })\r\n .toArray();\r\n for (var i = 0; i < orderedFormSections.length; i++) {\r\n orderedFormSections[i].position = i;\r\n }\r\n // Add to new Form and Step\r\n this.scope.model.destinationStep.formSections.push(this.scope.formSection);\r\n this.scope.formSection.formStep_id = this.scope.model.destinationStep.id;\r\n this.scope.formSection.position = this.scope.model.destinationStep.formSections.length - 1;\r\n this.formService.saveAllChanges(function () {\r\n _this.formService.setupFormSchema(_this.scope.form);\r\n _this.formService.saveAllChanges(function () {\r\n _this.formService.getFormConfiguration(_this.scope.model.destinationForm.id).then(function (form) {\r\n _this.formService.setupFormSchema(form);\r\n _this.formService.saveAllChanges(function () {\r\n var dto = {\r\n formSectionId: _this.scope.formSection.id,\r\n formSectionObjectSchemaId: _this.scope.formSection.objectSchema.id,\r\n originalFormId: _this.scope.form.id,\r\n newFormId: _this.scope.model.destinationForm.id\r\n };\r\n _this.formService.performFormChangeUpdates(dto);\r\n _this.dismissModal(true);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n }\r\n else {\r\n alert(\"This modal only supports moving a form section currently.\");\r\n this.dismissModal(true);\r\n }\r\n };\r\n return FormChangeModalController;\r\n }(controllers.BaseModalController));\r\n controllers.FormChangeModalController = FormChangeModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('FormChangeModalController', [\r\n '$scope', 'formSection', \"form\", 'processConfigId',\r\n 'formService', \"processConfigurationService\", 'close'\r\n]);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IFormChangeModalController extends IBaseModalControllerScope {\r\n formSection: Wars.Domain.Model.FormSection;\r\n form: Wars.Domain.Model.Form;\r\n processConfigId: string;\r\n processConfiguration: Wars.Domain.Model.ProcessConfiguration;\r\n forms: Wars.Domain.Model.Form[];\r\n steps: Wars.Domain.Model.FormStep[];\r\n model: FormChangeModel;\r\n destinationFormChanged(): void;\r\n saveChanges(): void;\r\n }\r\n\r\n export class FormChangeModel {\r\n destinationForm: Wars.Domain.Model.Form;\r\n destinationStep: Wars.Domain.Model.FormStep;\r\n }\r\n\r\n export class FormChangeModalController extends BaseModalController {\r\n scope: IFormChangeModalController;\r\n\r\n constructor(\r\n $scope: IFormChangeModalController,\r\n formSection: Wars.Domain.Model.FormSection,\r\n form: Wars.Domain.Model.Form,\r\n processConfigId: string,\r\n private formService: services.FormService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n\r\n this.scope.form = form;\r\n this.scope.formSection = formSection;\r\n this.scope.processConfigId = processConfigId;\r\n this.scope.destinationFormChanged = () => this.destinationFormChanged();\r\n this.scope.saveChanges = () => this.saveChanges();\r\n\r\n\r\n this.processConfigurationService.getExpandFields(this.scope.processConfigId).then(\r\n (processConfig) => {\r\n this.scope.processConfiguration = processConfig;\r\n this.scope.forms = Enumerable.from(this.scope.processConfiguration.myForms)\r\n .where(i => i.formType === Wars.Domain.Model.Codes.Enums.FormType.MultiStep ||\r\n i.formType === Wars.Domain.Model.Codes.Enums.FormType.SinglePage)\r\n .toArray();\r\n });\r\n \r\n\r\n this.scope.model = new FormChangeModel();\r\n }\r\n\r\n private destinationFormChanged() {\r\n if (this.scope.model.destinationForm === undefined || this.scope.model.destinationForm === null) {\r\n this.scope.steps = [];\r\n } else {\r\n this.scope.steps = this.scope.model.destinationForm.mySteps;\r\n }\r\n }\r\n\r\n private saveChanges(): void {\r\n if (this.scope.formSection !== null && this.scope.formSection !== undefined) {\r\n // Dealing with a form section move\r\n if (this.scope.model.destinationForm === undefined ||\r\n this.scope.model.destinationForm === null ||\r\n this.scope.model.destinationStep === undefined ||\r\n this.scope.model.destinationStep === null) {\r\n alert(\"Please select both a destination form and step if you wish to move this form section.\");\r\n } else {\r\n // Remove from old Form and Step\r\n var currentStep = Enumerable.from(this.scope.form.mySteps)\r\n .single(i => i.id === this.scope.formSection.formStep_id);\r\n currentStep.formSections.remove(this.scope.formSection);\r\n\r\n var orderedFormSections = Enumerable.from(currentStep.formSections)\r\n .orderBy(i => i.position)\r\n .toArray();\r\n\r\n for (let i = 0; i < orderedFormSections.length; i++) {\r\n orderedFormSections[i].position = i;\r\n }\r\n\r\n // Add to new Form and Step\r\n this.scope.model.destinationStep.formSections.push(this.scope.formSection);\r\n this.scope.formSection.formStep_id = this.scope.model.destinationStep.id;\r\n\r\n this.scope.formSection.position = this.scope.model.destinationStep.formSections.length - 1;\r\n\r\n this.formService.saveAllChanges(() => {\r\n\r\n this.formService.setupFormSchema(this.scope.form);\r\n\r\n this.formService.saveAllChanges(() => {\r\n this.formService.getFormConfiguration(this.scope.model.destinationForm.id).then(\r\n (form) => {\r\n this.formService.setupFormSchema(form);\r\n this.formService.saveAllChanges(() => {\r\n var dto: Wars.Domain.Model.Dtos.FormChangeDto = {\r\n formSectionId: this.scope.formSection.id,\r\n formSectionObjectSchemaId: this.scope.formSection.objectSchema.id,\r\n originalFormId: this.scope.form.id,\r\n newFormId: this.scope.model.destinationForm.id\r\n };\r\n this.formService.performFormChangeUpdates(dto);\r\n this.dismissModal(true);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n } else {\r\n alert(\"This modal only supports moving a form section currently.\");\r\n this.dismissModal(true);\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('FormChangeModalController',\r\n [\r\n '$scope', 'formSection', \"form\", 'processConfigId', \r\n 'formService', \"processConfigurationService\", 'close'\r\n ]\r\n);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var FormGridModalController = /** @class */ (function (_super) {\r\n __extends(FormGridModalController, _super);\r\n function FormGridModalController(scope, formSection, processConfigurationId, close, formService, treeService, schemaPropertyService) {\r\n var _this = _super.call(this, scope, close) || this;\r\n _this.formService = formService;\r\n _this.treeService = treeService;\r\n _this.schemaPropertyService = schemaPropertyService;\r\n var self = _this;\r\n _this.scope = scope;\r\n _this.scope.formSection = formSection;\r\n _this.scope.processConfigurationId = processConfigurationId;\r\n _this.scope.includedFormIds = [formSection.form_id];\r\n _this.scope.addColumn = function () { return _this.addColumn(); };\r\n _this.scope.onDropTreeItem = function (e, column) { return _this.onDropTreeItem(e, column); };\r\n _this.scope.isSaveDisabled = function () { return _this.isSaveDisabled(); };\r\n return _this;\r\n }\r\n FormGridModalController.prototype.isSaveDisabled = function () {\r\n return !Enumerable.from(this.scope.formSection.columns).all(function (c) { return c.schemaProperty != null; });\r\n };\r\n FormGridModalController.prototype.onDropTreeItem = function ($event, column) {\r\n var ti = this.treeService.getTreeConfigurationItem();\r\n this.schemaPropertyService.getSchemaProperty(ti.schemaPropertyId).then(function (prop) {\r\n column.schemaProperty = prop;\r\n });\r\n };\r\n FormGridModalController.prototype.addColumn = function () {\r\n var column = this.formService.createFormGridColumn(this.scope.formSection);\r\n column.position = this.scope.formSection.columns.length;\r\n this.scope.formSection.columns.push(column);\r\n //this.formService.saveAllChanges();\r\n };\r\n return FormGridModalController;\r\n }(controllers.BaseModalController));\r\n controllers.FormGridModalController = FormGridModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('FormGridModalController', ['$scope', 'formSection', 'processConfigurationId', 'close', 'formService', 'treeService', 'schemaPropertyService']);\r\n","/// \r\n\r\nmodule warsApp.controllers {\r\n export interface IFormGridModalScope extends angular.IScope {\r\n close: any;\r\n dismissModal: any;\r\n forms: Wars.Domain.Model.Form[];\r\n formSection:Wars.Domain.Model.FormSection;\r\n processConfigurationId:string;\r\n includedFormIds: string[];\r\n addColumn: any;\r\n onDragOver: any;\r\n onDropTreeItem: any;\r\n isSaveDisabled:any;\r\n }\r\n\r\n export class FormGridModalController extends BaseModalController {\r\n scope: IFormGridModalScope;\r\n\r\n constructor(\r\n scope: IFormGridModalScope,\r\n formSection: Wars.Domain.Model.FormSection,\r\n processConfigurationId:string,\r\n close: any,\r\n private formService: services.FormService,\r\n private treeService: services.TreeService,\r\n private schemaPropertyService:services.SchemaPropertyService) {\r\n super(scope, close);\r\n\r\n var self = this;\r\n\r\n this.scope = scope;\r\n this.scope.formSection=formSection;\r\n this.scope.processConfigurationId = processConfigurationId;\r\n this.scope.includedFormIds = [formSection.form_id];\r\n\r\n this.scope.addColumn = () => this.addColumn();\r\n this.scope.onDropTreeItem = (e, column) => this.onDropTreeItem(e, column);\r\n this.scope.isSaveDisabled=()=> this.isSaveDisabled();\r\n\r\n }\r\n\r\n public isSaveDisabled():boolean {\r\n return !Enumerable.from(this.scope.formSection.columns).all(c => c.schemaProperty != null);\r\n }\r\n\r\n public onDropTreeItem($event:any,column:Wars.Domain.Model.FormGridColumn) {\r\n var ti = this.treeService.getTreeConfigurationItem();\r\n this.schemaPropertyService.getSchemaProperty(ti.schemaPropertyId).then(prop => {\r\n column.schemaProperty = prop;\r\n });\r\n }\r\n\r\n public addColumn() {\r\n let column = this.formService.createFormGridColumn(this.scope.formSection);\r\n column.position = this.scope.formSection.columns.length;\r\n this.scope.formSection.columns.push(column);\r\n //this.formService.saveAllChanges();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('FormGridModalController', ['$scope', 'formSection', 'processConfigurationId', 'close', 'formService', 'treeService','schemaPropertyService']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var HistoryModalController = /** @class */ (function (_super) {\r\n __extends(HistoryModalController, _super);\r\n function HistoryModalController($scope, process, processConfigId, formDataId, propertyId, codeGroupId, rowId, uniqueId, historyService, variableTypeService, processDocumentService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.historyService = historyService;\r\n _this.variableTypeService = variableTypeService;\r\n _this.processDocumentService = processDocumentService;\r\n _this.scope = $scope;\r\n _this.scope.getValue = function (i) { return _this.getValue(i); };\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.codeGroupId = codeGroupId;\r\n _this.scope.process = process;\r\n if (formDataId) {\r\n if (propertyId && rowId) {\r\n _this.historyService.getListFormFieldHistory(process.id, formDataId, uniqueId, rowId, propertyId).then(function (items) {\r\n $scope.historyItems = items;\r\n });\r\n }\r\n else {\r\n _this.historyService.getFormFieldHistory(process.id, formDataId, uniqueId).then(function (items) {\r\n $scope.historyItems = items;\r\n //add missing history documents to process documents list \r\n _this.addMissingDocumentsToProcessDto();\r\n });\r\n }\r\n }\r\n else {\r\n if (propertyId && rowId) {\r\n _this.historyService.getListProcessDataHistory(process.id, uniqueId, rowId, propertyId).then(function (items) {\r\n $scope.historyItems = items;\r\n });\r\n }\r\n else {\r\n _this.historyService.getProcessDataHistory(process.id, uniqueId).then(function (items) {\r\n $scope.historyItems = items;\r\n //add missing history documents to process documents list \r\n _this.addMissingDocumentsToProcessDto();\r\n });\r\n }\r\n }\r\n return _this;\r\n }\r\n HistoryModalController.prototype.addMissingDocumentsToProcessDto = function () {\r\n var _this = this;\r\n if (this.scope.historyItems != null && this.scope.historyItems.length > 0) {\r\n for (var i = 0; i < this.scope.historyItems.length; i++) {\r\n if (this.scope.process && this.scope.process.documents) {\r\n if (!this.scope.historyItems[i].document)\r\n continue;\r\n var match = Enumerable.from(this.scope.process.documents).singleOrDefault(function (x) { return x.id === _this.scope.historyItems[i].document.id; });\r\n if (!match) {\r\n this.scope.process.documents.push(this.scope.historyItems[i].document);\r\n if (this.scope.historyItems[i].document.isSecured) {\r\n this.scope.process.canDownloadSecureDocument[this.scope.historyItems[i].document.id] = this.scope.historyItems[i].canDownloadDocument;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n HistoryModalController.prototype.getValue = function (item) {\r\n if (item.variableType === 13 /* Document */) {\r\n //return this.processDocumentService.getDocumentById(this.scope.process, item.value);\r\n return item.document;\r\n }\r\n else {\r\n var returnValue = this.variableTypeService.format(item.value, item.variableType);\r\n return returnValue;\r\n }\r\n };\r\n return HistoryModalController;\r\n }(controllers.BaseModalController));\r\n controllers.HistoryModalController = HistoryModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('HistoryModalController', [\r\n '$scope', 'process', \"processConfigId\", 'formDataId', 'propertyId', \"codeGroupId\",\r\n 'rowId', 'uniqueId', 'historyService', 'variableTypeService', \"processDocumentService\", 'close'\r\n]);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IHistoryModalController extends IBaseModalControllerScope {\r\n historyItems: Wars.Domain.Model.Dtos.HistoryDto[];\r\n getValue: any;\r\n processConfigId: string;\r\n codeGroupId: string;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n }\r\n\r\n export class HistoryModalController extends BaseModalController {\r\n scope: IHistoryModalController;\r\n\r\n constructor(\r\n $scope: IHistoryModalController,\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n processConfigId: string,\r\n formDataId: string,\r\n propertyId: string,\r\n codeGroupId: string,\r\n rowId: string,\r\n uniqueId: string,\r\n private historyService: services.HistoryService,\r\n private variableTypeService: services.VariableTypeService,\r\n private processDocumentService: services.ProcessDocumentService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.getValue = (i) => this.getValue(i);\r\n this.scope.processConfigId = processConfigId;\r\n this.scope.codeGroupId = codeGroupId;\r\n this.scope.process = process;\r\n\r\n if (formDataId) {\r\n if (propertyId && rowId) {\r\n this.historyService.getListFormFieldHistory(process.id, formDataId, uniqueId, rowId, propertyId).then(items => {\r\n $scope.historyItems = items;\r\n });\r\n } else {\r\n this.historyService.getFormFieldHistory(process.id, formDataId, uniqueId).then(items => {\r\n $scope.historyItems = items;\r\n //add missing history documents to process documents list \r\n this.addMissingDocumentsToProcessDto();\r\n });\r\n }\r\n } else {\r\n if (propertyId && rowId) {\r\n this.historyService.getListProcessDataHistory(process.id, uniqueId, rowId, propertyId).then(items => {\r\n $scope.historyItems = items;\r\n });\r\n } else {\r\n this.historyService.getProcessDataHistory(process.id, uniqueId).then(items => {\r\n $scope.historyItems = items;\r\n //add missing history documents to process documents list \r\n this.addMissingDocumentsToProcessDto();\r\n });\r\n }\r\n }\r\n }\r\n\r\n private addMissingDocumentsToProcessDto() {\r\n if (this.scope.historyItems != null && this.scope.historyItems.length > 0) {\r\n for (var i = 0; i < this.scope.historyItems.length; i++) {\r\n if (this.scope.process && this.scope.process.documents) {\r\n if (!this.scope.historyItems[i].document) continue;\r\n var match = Enumerable.from(this.scope.process.documents).singleOrDefault(x => x.id === this.scope.historyItems[i].document.id);\r\n if (!match) {\r\n this.scope.process.documents.push(this.scope.historyItems[i].document);\r\n if (this.scope.historyItems[i].document.isSecured) {\r\n this.scope.process.canDownloadSecureDocument[this.scope.historyItems[i].document.id] = this.scope.historyItems[i].canDownloadDocument;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private getValue(item: Wars.Domain.Model.Dtos.HistoryDto): any {\r\n if (item.variableType === Wars.Domain.Model.Codes.Enums.VariableType.Document) {\r\n //return this.processDocumentService.getDocumentById(this.scope.process, item.value);\r\n return item.document;\r\n } else {\r\n let returnValue = this.variableTypeService.format(item.value, item.variableType);\r\n return returnValue; \r\n } \r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('HistoryModalController',\r\n [\r\n '$scope', 'process', \"processConfigId\", 'formDataId', 'propertyId', \"codeGroupId\",\r\n 'rowId', 'uniqueId', 'historyService', 'variableTypeService', \"processDocumentService\", 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var HolidayModalController = /** @class */ (function (_super) {\r\n __extends(HolidayModalController, _super);\r\n function HolidayModalController($scope, holiday, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.holiday = holiday;\r\n return _this;\r\n }\r\n return HolidayModalController;\r\n }(controllers.BaseModalController));\r\n controllers.HolidayModalController = HolidayModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('HolidayModalController', ['$scope', 'holiday', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IHolidayModalControllerScope extends IBaseModalControllerScope {\r\n holiday: Wars.Domain.Model.Holiday;\r\n }\r\n\r\n export class HolidayModalController extends BaseModalController {\r\n scope: IHolidayModalControllerScope;\r\n\r\n constructor($scope: IHolidayModalControllerScope,holiday: Wars.Domain.Model.Holiday, close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.holiday=holiday;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('HolidayModalController', ['$scope', 'holiday', 'close']);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var LandingPageConfigurationSingleInstanceModalController = /** @class */ (function (_super) {\r\n __extends(LandingPageConfigurationSingleInstanceModalController, _super);\r\n function LandingPageConfigurationSingleInstanceModalController($scope, securityMatrices, uniqueIdentifier, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.securityMatrices = securityMatrices;\r\n _this.scope.uniqueIdentifier = uniqueIdentifier;\r\n return _this;\r\n }\r\n return LandingPageConfigurationSingleInstanceModalController;\r\n }(controllers.BaseModalController));\r\n controllers.LandingPageConfigurationSingleInstanceModalController = LandingPageConfigurationSingleInstanceModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('LandingPageConfigurationSingleInstanceModalController', ['$scope', 'securityMatrices', 'uniqueIdentifier', 'close']);\r\n","/// \r\n\r\nmodule warsApp.controllers {\r\n\r\n export interface ILandingPageConfigurationSingleInstanceModalControllerScope extends IBaseModalControllerScope {\r\n securityMatrices: Wars.Domain.Model.SecurityMatrix[];\r\n uniqueIdentifier: string;\r\n }\r\n\r\n export class LandingPageConfigurationSingleInstanceModalController extends BaseModalController {\r\n scope: ILandingPageConfigurationSingleInstanceModalControllerScope;\r\n\r\n constructor(\r\n $scope: ILandingPageConfigurationSingleInstanceModalControllerScope,\r\n securityMatrices: Wars.Domain.Model.SecurityMatrix[],\r\n uniqueIdentifier: string,\r\n close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.securityMatrices = securityMatrices;\r\n this.scope.uniqueIdentifier = uniqueIdentifier;\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerController('LandingPageConfigurationSingleInstanceModalController', ['$scope', 'securityMatrices', 'uniqueIdentifier', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var ProcessSubTypeModalController = /** @class */ (function (_super) {\r\n __extends(ProcessSubTypeModalController, _super);\r\n function ProcessSubTypeModalController($scope, createProcessDto, userSelection, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.$scope = $scope;\r\n _this.$scope.userSelection = userSelection;\r\n _this.$scope.createProcessDto = createProcessDto;\r\n return _this;\r\n }\r\n ProcessSubTypeModalController.prototype.cancel = function () {\r\n this.$scope.dismissModal({ cancel: true, result: undefined });\r\n };\r\n return ProcessSubTypeModalController;\r\n }(controllers.BaseModalController));\r\n controllers.ProcessSubTypeModalController = ProcessSubTypeModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController(\"ProcessSubTypeModalController\", [\"$scope\", \"createProcessDto\", \"userSelection\", \"close\"]);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IProcessSubTypeModalControllerScope extends controllers.IBaseModalControllerScope {\r\n createProcessDto: Wars.Domain.Model.Dtos.CreateProcessDto,\r\n userSelection: any;\r\n dropdownOptions: models.CodeDropDownItem[];\r\n }\r\n\r\n export class ProcessSubTypeModalController extends BaseModalController {\r\n\r\n constructor(\r\n private $scope: IProcessSubTypeModalControllerScope,\r\n createProcessDto: Wars.Domain.Model.Dtos.CreateProcessDto,\r\n userSelection: any,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.$scope.userSelection = userSelection;\r\n this.$scope.createProcessDto = createProcessDto;\r\n }\r\n\r\n public cancel(): void {\r\n this.$scope.dismissModal({ cancel: true, result: undefined });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"ProcessSubTypeModalController\", [\"$scope\", \"createProcessDto\", \"userSelection\", \"close\"]);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var RepeatingDocumentViewModalController = /** @class */ (function (_super) {\r\n __extends(RepeatingDocumentViewModalController, _super);\r\n function RepeatingDocumentViewModalController($scope, documents, process, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.documents = documents;\r\n _this.scope.process = process;\r\n return _this;\r\n }\r\n return RepeatingDocumentViewModalController;\r\n }(controllers.BaseModalController));\r\n controllers.RepeatingDocumentViewModalController = RepeatingDocumentViewModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('RepeatingDocumentViewModalController', ['$scope', 'documents', 'process', 'close']);\r\n","/// \r\n\r\nmodule warsApp.controllers {\r\n\r\n export interface IRepeatingDocumentViewModalControllerScope extends IBaseModalControllerScope {\r\n documents: Wars.Domain.Model.Dtos.DocumentDto[];\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n }\r\n\r\n export class RepeatingDocumentViewModalController extends BaseModalController {\r\n scope: IRepeatingDocumentViewModalControllerScope;\r\n\r\n constructor(\r\n $scope: IRepeatingDocumentViewModalControllerScope,\r\n documents: Wars.Domain.Model.Dtos.DocumentDto[],\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.documents = documents;\r\n this.scope.process = process;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('RepeatingDocumentViewModalController', ['$scope', 'documents', 'process', 'close']);","/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var SecurityMatrixModalController = /** @class */ (function (_super) {\r\n __extends(SecurityMatrixModalController, _super);\r\n function SecurityMatrixModalController(scope, securityMatrix, processConfigurationId, close) {\r\n var _this = _super.call(this, scope, close) || this;\r\n _this.scope = scope;\r\n _this.scope.securityMatrix = securityMatrix;\r\n _this.scope.processConfigurationId = processConfigurationId;\r\n return _this;\r\n }\r\n return SecurityMatrixModalController;\r\n }(controllers.BaseModalController));\r\n controllers.SecurityMatrixModalController = SecurityMatrixModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('SecurityMatrixModalController', ['$scope', 'securityMatrix', 'processConfigurationId', 'close']);\r\n","/// \r\n\r\nmodule warsApp.controllers {\r\n export interface ISecurityMatrixScope extends angular.IScope {\r\n securityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n processConfigurationId: string;\r\n close: any;\r\n dismissModal: any;\r\n }\r\n\r\n export class SecurityMatrixModalController extends BaseModalController {\r\n scope: ISecurityMatrixScope;\r\n\r\n constructor(\r\n scope: ISecurityMatrixScope,\r\n securityMatrix: Wars.Domain.Model.SecurityMatrix,\r\n processConfigurationId: string,\r\n close: any) {\r\n\r\n super(scope, close);\r\n this.scope = scope;\r\n\r\n this.scope.securityMatrix = securityMatrix;\r\n this.scope.processConfigurationId = processConfigurationId;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('SecurityMatrixModalController', [ '$scope', 'securityMatrix', 'processConfigurationId','close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var UserActionModalController = /** @class */ (function (_super) {\r\n __extends(UserActionModalController, _super);\r\n function UserActionModalController($scope, userActionDto, model, process, userActionInfoUniqueId, documentConfiguration, systemDocumentConfiguration, userActionService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.userActionDto = userActionDto;\r\n _this.scope.model = model;\r\n _this.scope.process = process;\r\n _this.scope.userActionInfoUniqueId = userActionInfoUniqueId;\r\n _this.scope.documentConfiguration = documentConfiguration;\r\n _this.scope.systemDocumentConfiguration = systemDocumentConfiguration;\r\n _this.scope.userActionService = userActionService;\r\n _this.scope.canSave = function () { return _this.getValidationMessages(_this.scope).length === 0; };\r\n _this.scope.getValidationMessages = function () { return _this.getValidationMessages(_this.scope); };\r\n _this.scope.documentUpdated = function (model) { return _this.documentUpdated(model); };\r\n _this.scope.resetEffectiveDate = function () {\r\n _this.scope.model.effectiveDate = undefined;\r\n };\r\n //Randy - transient user action data preservation for validation error\r\n var transientUserActionDto = userActionService.getTransientUserActionData(userActionDto.id);\r\n if (transientUserActionDto != null) {\r\n _this.scope.model.processActionWorkflowBlockId = transientUserActionDto.processActionWorkflowBlockId;\r\n _this.scope.model.effectiveDate = transientUserActionDto.effectiveDate;\r\n _this.scope.model.comment = transientUserActionDto.comment;\r\n _this.scope.model.docIds = transientUserActionDto.docIds;\r\n _this.scope.model.showEffectiveDate = transientUserActionDto.effectiveDate != null && transientUserActionDto.effectiveDate != undefined;\r\n if (transientUserActionDto.documents != null) {\r\n for (var i = 0; i < transientUserActionDto.documents.length; i++) {\r\n _this.scope.process.documents.push(transientUserActionDto.documents[i]);\r\n }\r\n }\r\n }\r\n return _this;\r\n //Randy - end transient user action data preservation for validation error\r\n }\r\n UserActionModalController.prototype.getValidationMessages = function (scope) {\r\n var results = [];\r\n if (scope.userActionDto.commentRequired && !scope.model.comment)\r\n results.push(\"A comment is required.\");\r\n if (scope.userActionDto.attachmentRequired && scope.model.docIds.length === 0)\r\n results.push(\"An attachment is required.\");\r\n return results;\r\n };\r\n UserActionModalController.prototype.documentUpdated = function (model) {\r\n this.scope.model.docIds = Enumerable.from(model.documents).select(function (i) { return i.id; }).toArray();\r\n //Randy - transient user action data preservation for validation error\r\n this.scope.userActionService.updateDocuments(model.documents);\r\n //Randy - end transient user action data preservation for validation error\r\n };\r\n return UserActionModalController;\r\n }(controllers.BaseModalController));\r\n controllers.UserActionModalController = UserActionModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('UserActionModalController', [\"$scope\", \"userActionDto\", \"model\", \"process\", \"userActionInfoUniqueId\", \"documentConfiguration\", \"systemDocumentConfiguration\", \"userActionService\", \"close\"]);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IUserActionModalControllerScope extends IBaseModalControllerScope {\r\n userActionDto: Wars.Domain.Model.Dtos.Workflow.UserActionDto;\r\n model: models.UserActionModalModel;\r\n fileUploadModel: models.FileUploadModel;\r\n canSave(): boolean;\r\n getValidationMessages(): string[];\r\n documentUpdated(model: models.FileUploadModel): void;\r\n process: Wars.Domain.Model.Dtos.ProcessDto;\r\n documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration;\r\n systemDocumentConfiguration: Wars.Domain.Model.Documents.SystemDocumentConfiguration;\r\n userActionService: services.UserActionService;\r\n userActionInfoUniqueId: string;\r\n resetEffectiveDate: () => void;\r\n }\r\n\r\n export class UserActionModalController extends BaseModalController {\r\n scope: IUserActionModalControllerScope;\r\n\r\n constructor(\r\n $scope: IUserActionModalControllerScope,\r\n userActionDto: Wars.Domain.Model.Dtos.Workflow.UserActionDto,\r\n model: models.UserActionModalModel,\r\n process: Wars.Domain.Model.Dtos.ProcessDto,\r\n userActionInfoUniqueId: string,\r\n documentConfiguration: Wars.Domain.Model.Documents.DocumentConfiguration,\r\n systemDocumentConfiguration: Wars.Domain.Model.Documents.SystemDocumentConfiguration,\r\n userActionService: services.UserActionService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.userActionDto = userActionDto;\r\n this.scope.model = model;\r\n this.scope.process = process;\r\n this.scope.userActionInfoUniqueId = userActionInfoUniqueId;\r\n this.scope.documentConfiguration = documentConfiguration;\r\n this.scope.systemDocumentConfiguration = systemDocumentConfiguration;\r\n this.scope.userActionService = userActionService;\r\n\r\n this.scope.canSave = () => this.getValidationMessages(this.scope).length === 0;\r\n this.scope.getValidationMessages = () => this.getValidationMessages(this.scope);\r\n this.scope.documentUpdated = (model: models.FileUploadModel) => this.documentUpdated(model);\r\n this.scope.resetEffectiveDate = () => {\r\n this.scope.model.effectiveDate = undefined;\r\n };\r\n\r\n //Randy - transient user action data preservation for validation error\r\n var transientUserActionDto = userActionService.getTransientUserActionData(userActionDto.id);\r\n if (transientUserActionDto != null) {\r\n this.scope.model.processActionWorkflowBlockId = transientUserActionDto.processActionWorkflowBlockId;\r\n this.scope.model.effectiveDate = transientUserActionDto.effectiveDate;\r\n this.scope.model.comment = transientUserActionDto.comment;\r\n this.scope.model.docIds = transientUserActionDto.docIds;\r\n this.scope.model.showEffectiveDate = transientUserActionDto.effectiveDate != null && transientUserActionDto.effectiveDate != undefined;\r\n if (transientUserActionDto.documents != null) {\r\n for (var i = 0; i < transientUserActionDto.documents.length; i++) {\r\n this.scope.process.documents.push(transientUserActionDto.documents[i]);\r\n } \r\n }\r\n }\r\n //Randy - end transient user action data preservation for validation error\r\n }\r\n\r\n private getValidationMessages(scope: IUserActionModalControllerScope) : string[] {\r\n var results = [];\r\n if (scope.userActionDto.commentRequired && !scope.model.comment) results.push(\"A comment is required.\");\r\n if (scope.userActionDto.attachmentRequired && scope.model.docIds.length === 0) results.push(\"An attachment is required.\");\r\n return results;\r\n }\r\n\r\n private documentUpdated(model: models.FileUploadModel): void {\r\n this.scope.model.docIds = Enumerable.from(model.documents).select(i => i.id).toArray();\r\n //Randy - transient user action data preservation for validation error\r\n this.scope.userActionService.updateDocuments(model.documents);\r\n //Randy - end transient user action data preservation for validation error\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('UserActionModalController', [\"$scope\", \"userActionDto\", \"model\", \"process\", \"userActionInfoUniqueId\", \"documentConfiguration\", \"systemDocumentConfiguration\", \"userActionService\", \"close\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var ViewSecurityMatrixModalController = /** @class */ (function (_super) {\r\n __extends(ViewSecurityMatrixModalController, _super);\r\n function ViewSecurityMatrixModalController($scope, securityMatrixService, securityMatrixId, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.$scope = $scope;\r\n _this.securityMatrixService = securityMatrixService;\r\n _this.scope = $scope;\r\n _this.scope.securityMatrixId = securityMatrixId;\r\n _this.scope.flatRowsToUse = function () { return _this.flatRowsToUse(); };\r\n _this.scope.filterRows = function () { return _this.filterRows(); };\r\n _this.initialize();\r\n return _this;\r\n }\r\n ViewSecurityMatrixModalController.prototype.initialize = function () {\r\n var _this = this;\r\n this.$scope.criteria = {\r\n statusFilterText: '',\r\n authorityFilter: 'NONE',\r\n combineLikeRoles: true\r\n };\r\n this.securityMatrixService.getSecurityMatrixView(this.$scope.securityMatrixId)\r\n .then(function (dto) {\r\n _this.$scope.securityMatrixViewDto = dto;\r\n _this.$scope.filterRows();\r\n });\r\n };\r\n ViewSecurityMatrixModalController.prototype.flatRowsToUse = function () {\r\n return this.$scope.criteria.combineLikeRoles ? this.$scope.mergedRows : this.$scope.flatRows;\r\n };\r\n ViewSecurityMatrixModalController.prototype.filterRows = function () {\r\n var _this = this;\r\n if (this.$scope.criteria.authorityFilter === undefined || this.$scope.criteria.authorityFilter === 'NONE') {\r\n this.$scope.flatRows = Enumerable.from(this.$scope.securityMatrixViewDto.flatRows)\r\n .where(function (i) { return i.statusOrState.toLowerCase().indexOf(_this.scope.criteria.statusFilterText.toLowerCase()) !== -1; })\r\n .toArray();\r\n this.$scope.mergedRows = Enumerable.from(this.$scope.securityMatrixViewDto.flatMergedRows)\r\n .where(function (i) { return i.statusOrState.toLowerCase().indexOf(_this.scope.criteria.statusFilterText.toLowerCase()) !== -1; })\r\n .toArray();\r\n }\r\n else {\r\n this.$scope.flatRows = Enumerable.from(this.$scope.securityMatrixViewDto.flatRows)\r\n .where(function (i) { return i.statusOrState.toLowerCase().indexOf(_this.scope.criteria.statusFilterText.toLowerCase()) !== -1; })\r\n .where(function (i) { return i.authority === _this.$scope.criteria.authorityFilter; })\r\n .toArray();\r\n this.$scope.mergedRows = Enumerable.from(this.$scope.securityMatrixViewDto.flatMergedRows)\r\n .where(function (i) { return i.statusOrState.toLowerCase().indexOf(_this.scope.criteria.statusFilterText.toLowerCase()) !== -1; })\r\n .where(function (i) { return i.authority === _this.$scope.criteria.authorityFilter; })\r\n .toArray();\r\n }\r\n };\r\n return ViewSecurityMatrixModalController;\r\n }(controllers.BaseModalController));\r\n controllers.ViewSecurityMatrixModalController = ViewSecurityMatrixModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('ViewSecurityMatrixModalController', ['$scope', 'securityMatrixService', 'securityMatrixId', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IViewSecurityMatrixModalControllerScope extends IBaseModalControllerScope {\r\n securityMatrixId: string;\r\n securityMatrixViewDto: Wars.Domain.Model.Dtos.SecurityMatrixViewDto;\r\n flatRows: Wars.Domain.Model.Dtos.FlatSecurityMatrixRowDto[];\r\n mergedRows: Wars.Domain.Model.Dtos.FlatSecurityMatrixRowDto[];\r\n criteria: any;\r\n filterRows(): void;\r\n flatRowsToUse(): Wars.Domain.Model.Dtos.FlatSecurityMatrixRowDto[];\r\n }\r\n\r\n export class ViewSecurityMatrixModalController extends BaseModalController {\r\n scope: IViewSecurityMatrixModalControllerScope;\r\n\r\n constructor(\r\n private $scope: IViewSecurityMatrixModalControllerScope,\r\n private securityMatrixService: services.SecurityMatrixService,\r\n securityMatrixId: string,\r\n close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.securityMatrixId = securityMatrixId;\r\n this.scope.flatRowsToUse = () => this.flatRowsToUse();\r\n this.scope.filterRows = () => this.filterRows();\r\n\r\n this.initialize();\r\n }\r\n\r\n private initialize(): void {\r\n this.$scope.criteria = {\r\n statusFilterText: '',\r\n authorityFilter: 'NONE',\r\n combineLikeRoles: true\r\n };\r\n\r\n this.securityMatrixService.getSecurityMatrixView(this.$scope.securityMatrixId)\r\n .then((dto) => {\r\n this.$scope.securityMatrixViewDto = dto;\r\n this.$scope.filterRows();\r\n });\r\n }\r\n\r\n private flatRowsToUse(): Wars.Domain.Model.Dtos.FlatSecurityMatrixRowDto[] {\r\n return this.$scope.criteria.combineLikeRoles ? this.$scope.mergedRows : this.$scope.flatRows;\r\n }\r\n\r\n private filterRows(): void {\r\n if (this.$scope.criteria.authorityFilter === undefined || this.$scope.criteria.authorityFilter === 'NONE') {\r\n this.$scope.flatRows = Enumerable.from(this.$scope.securityMatrixViewDto.flatRows)\r\n .where(i => i.statusOrState.toLowerCase().indexOf(this.scope.criteria.statusFilterText.toLowerCase()) !== -1)\r\n .toArray();\r\n\r\n this.$scope.mergedRows = Enumerable.from(this.$scope.securityMatrixViewDto.flatMergedRows)\r\n .where(i => i.statusOrState.toLowerCase().indexOf(this.scope.criteria.statusFilterText.toLowerCase()) !== -1)\r\n .toArray();\r\n } else {\r\n this.$scope.flatRows = Enumerable.from(this.$scope.securityMatrixViewDto.flatRows)\r\n .where(i => i.statusOrState.toLowerCase().indexOf(this.scope.criteria.statusFilterText.toLowerCase()) !== -1)\r\n .where(i => i.authority === this.$scope.criteria.authorityFilter)\r\n .toArray();\r\n\r\n this.$scope.mergedRows = Enumerable.from(this.$scope.securityMatrixViewDto.flatMergedRows)\r\n .where(i => i.statusOrState.toLowerCase().indexOf(this.scope.criteria.statusFilterText.toLowerCase()) !== -1)\r\n .where(i => i.authority === this.$scope.criteria.authorityFilter)\r\n .toArray();\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ViewSecurityMatrixModalController',\r\n ['$scope', 'securityMatrixService', 'securityMatrixId', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var AddEditStatusModalController = /** @class */ (function (_super) {\r\n __extends(AddEditStatusModalController, _super);\r\n function AddEditStatusModalController($scope, model, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.model = model;\r\n _this.scope.deleteStatus = function () { return _this.deleteStatus(); };\r\n return _this;\r\n }\r\n AddEditStatusModalController.prototype.deleteStatus = function () {\r\n this.scope.model.deleteStatusCode = true;\r\n this.dismissModal(true);\r\n };\r\n return AddEditStatusModalController;\r\n }(controllers.BaseModalController));\r\n controllers.AddEditStatusModalController = AddEditStatusModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('AddEditStatusModalController', ['$scope', 'model', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IAddEditStatusModalControllerScope extends IBaseModalControllerScope {\r\n model: models.AddEditStatusModel;\r\n deleteStatus() : void;\r\n }\r\n\r\n export class AddEditStatusModalController extends BaseModalController {\r\n scope: IAddEditStatusModalControllerScope;\r\n\r\n constructor(\r\n $scope: IAddEditStatusModalControllerScope,\r\n model: models.AddEditStatusModel,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n\r\n this.scope.model = model;\r\n this.scope.deleteStatus = () => this.deleteStatus();\r\n }\r\n\r\n private deleteStatus(): void {\r\n this.scope.model.deleteStatusCode = true;\r\n this.dismissModal(true);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('AddEditStatusModalController', ['$scope', 'model', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var AssignClaimSettingsModalController = /** @class */ (function (_super) {\r\n __extends(AssignClaimSettingsModalController, _super);\r\n function AssignClaimSettingsModalController($scope, workflowBlock, processConfigId, workflowService, treeService, treeItemService, claimDefinitionService, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.workflowService = workflowService;\r\n _this.treeService = treeService;\r\n _this.treeItemService = treeItemService;\r\n _this.claimDefinitionService = claimDefinitionService;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.onDragOver = function ($event) { return _this.onDragOver($event); };\r\n _this.scope.onDrop = function ($event) { return _this.onDrop($event); };\r\n _this.scope.getTreeItemDisplay = function (treeItem) { return _this.getTreeItemDisplay(treeItem); };\r\n _this.scope.save = function () { return _this.save(); };\r\n _this.scope.cancel = function () { return _this.cancel(); };\r\n if (_this.scope.workflowBlock.assignClaimDto) {\r\n if (_this.scope.workflowBlock.assignClaimDto.otherUserTreeItem_id) {\r\n _this.treeItemService.getTreeItem(_this.scope.workflowBlock.assignClaimDto.otherUserTreeItem_id)\r\n .then(function (treeItem) {\r\n _this.scope.userTreeItem = treeItem;\r\n });\r\n }\r\n }\r\n _this.claimDefinitionService.getAllProcessClaims(_this.scope.processConfigId).then(function (processClaims) {\r\n _this.scope.processClaims = processClaims;\r\n });\r\n return _this;\r\n }\r\n AssignClaimSettingsModalController.prototype.save = function () {\r\n var _this = this;\r\n // Save all tree item changes that are handled via breeze before trying to save workflow block changes which are all non-breeze\r\n this.treeItemService.saveAllChanges(function () {\r\n _this.dismissModal(true);\r\n });\r\n };\r\n AssignClaimSettingsModalController.prototype.cancel = function () {\r\n this.treeItemService.rejectChanges();\r\n this.dismissModal(false);\r\n };\r\n AssignClaimSettingsModalController.prototype.getTreeItemDisplay = function (treeItem) {\r\n if (treeItem) {\r\n return this.treeService.getDisplayName(treeItem) + \" of \" + this.treeService.getParentDisplayName(treeItem);\r\n }\r\n return \"\";\r\n };\r\n AssignClaimSettingsModalController.prototype.onDragOver = function ($event) {\r\n };\r\n AssignClaimSettingsModalController.prototype.onDrop = function ($event) {\r\n var treeConfigItem = this.treeService.getTreeConfigurationItem();\r\n if (treeConfigItem.variableType !== 10 /* User */) {\r\n alert(\"Only User Tree Items are allowed for this drop zone.\");\r\n return;\r\n }\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n this.scope.userTreeItem = treeItem;\r\n this.scope.workflowBlock.assignClaimDto.otherUserTreeItem_id = treeItem.id;\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.treeService.clearDragValue();\r\n };\r\n return AssignClaimSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.AssignClaimSettingsModalController = AssignClaimSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('AssignClaimSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', \"workflowService\", \"treeService\", \"treeItemService\", \"claimDefinitionService\", 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IAssignClaimSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.AssignClaimWorkflowBlock;\r\n isReadonly: boolean;\r\n processConfigId: string;\r\n\r\n processClaims: Wars.Domain.Model.ClaimDefinition[];\r\n\r\n userTreeItem: Wars.Domain.Model.TreeItem;\r\n\r\n onDragOver($event: any): void;\r\n onDrop($event: any): void;\r\n\r\n getTreeItemDisplay(treeItem: Wars.Domain.Model.TreeItem): string;\r\n\r\n save(): void;\r\n cancel(): void;\r\n }\r\n\r\n export class AssignClaimSettingsModalController extends BaseModalController {\r\n scope: IAssignClaimSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: IAssignClaimSettingsModalControllerScope,\r\n workflowBlock: models.AssignClaimWorkflowBlock,\r\n processConfigId: string,\r\n private workflowService: services.WorkflowService,\r\n private treeService: services.TreeService,\r\n private treeItemService: services.TreeItemService,\r\n private claimDefinitionService: services.ClaimDefinitionService,\r\n isReadonly: boolean,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.processConfigId = processConfigId;\r\n\r\n this.scope.onDragOver = ($event: any) => this.onDragOver($event);\r\n this.scope.onDrop = ($event: any) => this.onDrop($event);\r\n this.scope.getTreeItemDisplay = (treeItem: Wars.Domain.Model.TreeItem) => this.getTreeItemDisplay(treeItem);\r\n\r\n this.scope.save = () => this.save();\r\n this.scope.cancel = () => this.cancel();\r\n\r\n if (this.scope.workflowBlock.assignClaimDto) {\r\n if (this.scope.workflowBlock.assignClaimDto.otherUserTreeItem_id) {\r\n this.treeItemService.getTreeItem(this.scope.workflowBlock.assignClaimDto.otherUserTreeItem_id)\r\n .then((treeItem) => {\r\n this.scope.userTreeItem = treeItem;\r\n });\r\n }\r\n }\r\n\r\n this.claimDefinitionService.getAllProcessClaims(this.scope.processConfigId).then((processClaims) => {\r\n this.scope.processClaims = processClaims;\r\n });\r\n }\r\n\r\n private save(): void {\r\n // Save all tree item changes that are handled via breeze before trying to save workflow block changes which are all non-breeze\r\n this.treeItemService.saveAllChanges( () => {\r\n this.dismissModal(true);\r\n });\r\n }\r\n\r\n private cancel(): void {\r\n this.treeItemService.rejectChanges();\r\n this.dismissModal(false);\r\n }\r\n\r\n private getTreeItemDisplay(treeItem: Wars.Domain.Model.TreeItem): string {\r\n if (treeItem) {\r\n return this.treeService.getDisplayName(treeItem) + \" of \" + this.treeService.getParentDisplayName(treeItem);\r\n }\r\n return \"\";\r\n }\r\n\r\n private onDragOver($event: any): void {\r\n\r\n }\r\n\r\n private onDrop($event: any): void {\r\n var treeConfigItem = this.treeService.getTreeConfigurationItem();\r\n if (treeConfigItem.variableType !== Wars.Domain.Model.Codes.Enums.VariableType.User) {\r\n alert(\"Only User Tree Items are allowed for this drop zone.\");\r\n return;\r\n }\r\n\r\n var treeItem = this.treeService.createTreeItemFromItemDropped();\r\n\r\n this.scope.userTreeItem = treeItem;\r\n this.scope.workflowBlock.assignClaimDto.otherUserTreeItem_id = treeItem.id;\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('AssignClaimSettingsModalController',\r\n ['$scope', 'workflowBlock', 'processConfigId', \"workflowService\", \"treeService\", \"treeItemService\", \"claimDefinitionService\", 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var BookResourceSettingsModalController = /** @class */ (function (_super) {\r\n __extends(BookResourceSettingsModalController, _super);\r\n function BookResourceSettingsModalController($scope, processConfigService, workflowBlock, processConfigId, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.processConfigId = processConfigId;\r\n processConfigService.getScheduleResourceInstances(processConfigId).then(function (schemaPropertyDtos) {\r\n _this.scope.schemaProperties = schemaPropertyDtos;\r\n });\r\n return _this;\r\n }\r\n return BookResourceSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.BookResourceSettingsModalController = BookResourceSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('BookResourceSettingsModalController', ['$scope', 'processConfigurationService', 'workflowBlock', 'processConfigId', 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IBookResourceSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.BaseWorkflowBlock;\r\n processConfigId: string;\r\n isReadonly: boolean;\r\n schemaProperties: Wars.Domain.Model.Dtos.SchemaPropertyDto[];\r\n }\r\n\r\n export class BookResourceSettingsModalController extends BaseModalController {\r\n scope: IBookResourceSettingsModalControllerScope;\r\n\r\n\r\n constructor(\r\n $scope: IBookResourceSettingsModalControllerScope,\r\n processConfigService: services.ProcessConfigurationService,\r\n workflowBlock: models.BookResourceWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.processConfigId = processConfigId;\r\n\r\n processConfigService.getScheduleResourceInstances(processConfigId).then(\r\n (schemaPropertyDtos: Wars.Domain.Model.Dtos.SchemaPropertyDto[]) => {\r\n this.scope.schemaProperties = schemaPropertyDtos;\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\nwarsApp.registerController('BookResourceSettingsModalController', ['$scope', 'processConfigurationService', 'workflowBlock', 'processConfigId', 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var CalculateSettingsModalController = /** @class */ (function (_super) {\r\n __extends(CalculateSettingsModalController, _super);\r\n function CalculateSettingsModalController($scope, workflowBlock, processConfigId, isReadonly, calculationService, treeService, schemaPropertyService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.model = new CalculateSettingsModel(treeService, schemaPropertyService, workflowBlock.calculateDto);\r\n _this.scope.calculationChanged = function () { return _this.scope.workflowBlock.componentId = _this.scope.workflowBlock.calculateDto.calculationId; };\r\n calculationService.getAllCalculations(processConfigId).then(function (calculations) { return _this.scope.calculations = calculations; });\r\n return _this;\r\n }\r\n return CalculateSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.CalculateSettingsModalController = CalculateSettingsModalController;\r\n var CalculateSettingsModel = /** @class */ (function () {\r\n function CalculateSettingsModel(treeService, schemaPropertyService, calculateDto) {\r\n var _this = this;\r\n this.treeService = treeService;\r\n this.schemaPropertyService = schemaPropertyService;\r\n this.calculateDto = calculateDto;\r\n if (calculateDto.resultSchemaPropertyId) {\r\n this.schemaPropertyService.getSchemaProperty(calculateDto.resultSchemaPropertyId).then(function (schemaProperty) { return _this.schemaProperty = schemaProperty; });\r\n }\r\n }\r\n CalculateSettingsModel.prototype.onDragOver = function ($event) {\r\n //var treeConfig = this.treeService.getTreeConfigurationItem();\r\n };\r\n CalculateSettingsModel.prototype.onDrop = function ($event) {\r\n var _this = this;\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n this.calculateDto.resultSchemaPropertyId = treeConfig.schemaPropertyId;\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then(function (schemaProperty) { return _this.schemaProperty = schemaProperty; });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.treeService.clearDragValue();\r\n };\r\n return CalculateSettingsModel;\r\n }());\r\n controllers.CalculateSettingsModel = CalculateSettingsModel;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('CalculateSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'calculationService', 'treeService', 'schemaPropertyService', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ICalculateSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.CalculateWorkflowBlock;\r\n processConfigId: string;\r\n isReadonly: boolean;\r\n calculations: Wars.Domain.Model.Calculations.Calculation[];\r\n model: CalculateSettingsModel;\r\n calculationChanged(): void;\r\n }\r\n\r\n export class CalculateSettingsModalController extends BaseModalController {\r\n scope: ICalculateSettingsModalControllerScope;\r\n\r\n\r\n constructor(\r\n $scope: ICalculateSettingsModalControllerScope,\r\n workflowBlock: models.CalculateWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean,\r\n calculationService: services.CalculationService,\r\n treeService: services.TreeService,\r\n schemaPropertyService: services.SchemaPropertyService,\r\n close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.processConfigId = processConfigId;\r\n this.scope.model = new CalculateSettingsModel(treeService, schemaPropertyService, workflowBlock.calculateDto);\r\n this.scope.calculationChanged = () => this.scope.workflowBlock.componentId = this.scope.workflowBlock.calculateDto.calculationId;\r\n\r\n calculationService.getAllCalculations(processConfigId).then((calculations) => this.scope.calculations = calculations);\r\n }\r\n }\r\n\r\n export class CalculateSettingsModel {\r\n private schemaProperty: Wars.Domain.Model.SchemaProperty;\r\n\r\n constructor(\r\n private treeService: services.TreeService,\r\n private schemaPropertyService: services.SchemaPropertyService,\r\n private calculateDto: Wars.Domain.Model.Dtos.Workflow.CalculateDto) {\r\n if (calculateDto.resultSchemaPropertyId) {\r\n this.schemaPropertyService.getSchemaProperty(calculateDto.resultSchemaPropertyId).then((schemaProperty) => this.schemaProperty = schemaProperty);\r\n }\r\n }\r\n\r\n public onDragOver($event: any): void {\r\n //var treeConfig = this.treeService.getTreeConfigurationItem();\r\n }\r\n\r\n public onDrop($event: any): void {\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n\r\n this.calculateDto.resultSchemaPropertyId = treeConfig.schemaPropertyId;\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then((schemaProperty) => this.schemaProperty = schemaProperty);\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('CalculateSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'calculationService', 'treeService', 'schemaPropertyService', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var ChangeStateSettingsModalController = /** @class */ (function (_super) {\r\n __extends(ChangeStateSettingsModalController, _super);\r\n function ChangeStateSettingsModalController($scope, statusAndStateService, workflowBlock, processConfigId, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n statusAndStateService.getStatusAndStatesByProcessConfig(processConfigId).then(function (statusGroup) {\r\n _this.scope.statusGroup = statusGroup;\r\n if (_this.scope.workflowBlock.changeStateDto.statusCodeId) {\r\n _this.statusChangeInternal();\r\n }\r\n });\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.statusChange = function () { return _this.statusChangeInternal(); };\r\n return _this;\r\n }\r\n ChangeStateSettingsModalController.prototype.statusChangeInternal = function () {\r\n var _this = this;\r\n if (!this.scope.workflowBlock.changeStateDto.statusCodeId ||\r\n !this.scope.statusGroup) {\r\n this.scope.states = [];\r\n return;\r\n }\r\n var status = Enumerable.from(this.scope.statusGroup.myStatuses).singleOrDefault(function (i) { return i.id === _this.scope.workflowBlock.changeStateDto.statusCodeId; });\r\n if (!status) {\r\n this.scope.states = [];\r\n return;\r\n }\r\n this.scope.states = status.myStates;\r\n };\r\n return ChangeStateSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.ChangeStateSettingsModalController = ChangeStateSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('ChangeStateSettingsModalController', ['$scope', 'statusAndStateService', 'workflowBlock', 'processConfigId', 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IChangeStateSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.ChangeStateWorkflowBlock;\r\n statusGroup: Wars.Domain.Model.Statuses.StatusCodeGroup;\r\n states: Wars.Domain.Model.Statuses.StateCode[];\r\n isReadonly: boolean;\r\n statusChange: () => void;\r\n }\r\n\r\n export class ChangeStateSettingsModalController extends BaseModalController {\r\n scope: IChangeStateSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: IChangeStateSettingsModalControllerScope,\r\n statusAndStateService: services.StatusAndStateService,\r\n workflowBlock: models.ChangeStateWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean, close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n statusAndStateService.getStatusAndStatesByProcessConfig(processConfigId).then(\r\n (statusGroup) => {\r\n this.scope.statusGroup = statusGroup;\r\n if (this.scope.workflowBlock.changeStateDto.statusCodeId) {\r\n this.statusChangeInternal();\r\n }\r\n });\r\n this.scope.isReadonly = isReadonly;\r\n\r\n this.scope.statusChange = () => this.statusChangeInternal();\r\n }\r\n\r\n\r\n private statusChangeInternal(): void {\r\n if (!this.scope.workflowBlock.changeStateDto.statusCodeId ||\r\n !this.scope.statusGroup)\r\n {\r\n this.scope.states = [];\r\n return;\r\n }\r\n\r\n var status = Enumerable.from(this.scope.statusGroup.myStatuses).singleOrDefault(i => i.id === this.scope.workflowBlock.changeStateDto.statusCodeId);\r\n if (!status) {\r\n this.scope.states = [];\r\n return;\r\n }\r\n\r\n this.scope.states = status.myStates;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ChangeStateSettingsModalController', ['$scope', 'statusAndStateService', 'workflowBlock', 'processConfigId', 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var ConditionSettingsModalController = /** @class */ (function (_super) {\r\n __extends(ConditionSettingsModalController, _super);\r\n function ConditionSettingsModalController($scope, workflowBlock, processConfigId, isReadonly, conditionService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.conditionChanged = function () { return _this.scope.workflowBlock.componentId = _this.scope.workflowBlock.conditionDto.conditionId; };\r\n conditionService.getAllConditions(processConfigId).then(function (conditions) { return _this.scope.conditions = conditions; });\r\n return _this;\r\n }\r\n return ConditionSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.ConditionSettingsModalController = ConditionSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('ConditionSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'conditionService', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IConditionSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.ConditionWorkflowBlock;\r\n processConfigId: string;\r\n isReadonly: boolean;\r\n conditions: Wars.Domain.Model.Conditions.Condition[];\r\n conditionChanged(): void;\r\n }\r\n\r\n export class ConditionSettingsModalController extends BaseModalController {\r\n scope: IConditionSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: IConditionSettingsModalControllerScope,\r\n workflowBlock: models.ConditionWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean,\r\n conditionService: services.ConditionService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.processConfigId = processConfigId;\r\n this.scope.conditionChanged = () => this.scope.workflowBlock.componentId = this.scope.workflowBlock.conditionDto.conditionId;\r\n\r\n conditionService.getAllConditions(processConfigId).then((conditions) => this.scope.conditions = conditions);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ConditionSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'conditionService', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var CopySettingsModalController = /** @class */ (function (_super) {\r\n __extends(CopySettingsModalController, _super);\r\n function CopySettingsModalController($scope, workflowBlock, processConfigId, processConfigurationService, processActionService, treeService, schemaPropertyService, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.processConfigurationService = processConfigurationService;\r\n _this.processActionService = processActionService;\r\n _this.treeService = treeService;\r\n _this.schemaPropertyService = schemaPropertyService;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.updateSchemaPropertyIds = function () { return _this.updateSchemaPropertyIds(); };\r\n _this.scope.onListPropertyDragOver = function ($event) { };\r\n _this.scope.onListPropertyDrop = function ($event) { return _this.onListPropertyDrop($event); };\r\n _this.scope.onPropertyToUpdateDragOver = function ($event) { };\r\n _this.scope.onPropertyToUpdateDrop = function ($event) { return _this.onPropertyToUpdateDrop($event); };\r\n _this.initialize();\r\n return _this;\r\n }\r\n CopySettingsModalController.prototype.initialize = function () {\r\n var _this = this;\r\n this.processConfigurationService.getProcessSchemaProperties(this.scope.processConfigId).then(function (schemaProperties) {\r\n _this.scope.processSchemaProperties = schemaProperties;\r\n });\r\n this.processActionService.getAllProcessActions(this.scope.processConfigId).then(function (processActions) {\r\n _this.scope.processActions = processActions;\r\n });\r\n this.hydrateSchemProperties();\r\n };\r\n CopySettingsModalController.prototype.hydrateSchemProperties = function () {\r\n var _this = this;\r\n if (this.scope.workflowBlock.copyDto.listPropertySchemaPropertyId) {\r\n this.schemaPropertyService.getSchemaProperty(this.scope.workflowBlock.copyDto.listPropertySchemaPropertyId).then(function (schemaProperty) {\r\n _this.scope.listPropertySchemaProperty = schemaProperty;\r\n });\r\n }\r\n if (this.scope.workflowBlock.copyDto.propertyToUpdateSchemaPropertyId) {\r\n this.schemaPropertyService.getSchemaProperty(this.scope.workflowBlock.copyDto.propertyToUpdateSchemaPropertyId).then(function (schemaProperty) {\r\n _this.scope.propertyToUpdateSchemaProperty = schemaProperty;\r\n });\r\n }\r\n if (this.scope.workflowBlock.copyDto.relatedProcessSchemaPropertyId) {\r\n this.schemaPropertyService.getSchemaProperty(this.scope.workflowBlock.copyDto.relatedProcessSchemaPropertyId).then(function (schemaProperty) {\r\n _this.scope.relatedProcessSchemaProperty = schemaProperty;\r\n });\r\n }\r\n };\r\n CopySettingsModalController.prototype.updateSchemaPropertyIds = function () {\r\n this.scope.workflowBlock.copyDto.listPropertySchemaPropertyId = this.scope.listPropertySchemaProperty\r\n ? this.scope.listPropertySchemaProperty.id\r\n : null;\r\n this.scope.workflowBlock.copyDto.propertyToUpdateSchemaPropertyId = this.scope.propertyToUpdateSchemaProperty\r\n ? this.scope.propertyToUpdateSchemaProperty.id\r\n : null;\r\n this.scope.workflowBlock.copyDto.relatedProcessSchemaPropertyId = this.scope.relatedProcessSchemaProperty\r\n ? this.scope.relatedProcessSchemaProperty.id\r\n : null;\r\n };\r\n CopySettingsModalController.prototype.onListPropertyDrop = function ($event) {\r\n var _this = this;\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then(function (schemaProperty) {\r\n _this.scope.listPropertySchemaProperty = schemaProperty;\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n _this.treeService.clearDragValue();\r\n _this.scope.updateSchemaPropertyIds();\r\n });\r\n };\r\n CopySettingsModalController.prototype.onPropertyToUpdateDrop = function ($event) {\r\n var _this = this;\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then(function (schemaProperty) {\r\n _this.scope.propertyToUpdateSchemaProperty = schemaProperty;\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n _this.treeService.clearDragValue();\r\n _this.scope.updateSchemaPropertyIds();\r\n });\r\n };\r\n return CopySettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.CopySettingsModalController = CopySettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('CopySettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', \"processConfigurationService\", \"processActionService\", \"treeService\", \"schemaPropertyService\", 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ICopySettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.CopyWorkflowBlock;\r\n isReadonly: boolean;\r\n processSchemaProperties: Wars.Domain.Model.SchemaProperty[];\r\n processActions: Wars.Domain.Model.ProcessAction[];\r\n processConfigId: string;\r\n\r\n listPropertySchemaProperty: Wars.Domain.Model.SchemaProperty;\r\n propertyToUpdateSchemaProperty: Wars.Domain.Model.SchemaProperty;\r\n relatedProcessSchemaProperty: Wars.Domain.Model.SchemaProperty;\r\n\r\n updateSchemaPropertyIds: () => void;\r\n\r\n onListPropertyDragOver: ($event: any) => void;\r\n onListPropertyDrop: ($event: any) => void;\r\n\r\n onPropertyToUpdateDragOver: ($event: any) => void;\r\n onPropertyToUpdateDrop: ($event: any) => void;\r\n }\r\n\r\n export class CopySettingsModalController extends BaseModalController {\r\n scope: ICopySettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: ICopySettingsModalControllerScope,\r\n workflowBlock: models.CopyWorkflowBlock,\r\n processConfigId: string,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private processActionService: services.ProcessActionService,\r\n private treeService: services.TreeService,\r\n private schemaPropertyService: services.SchemaPropertyService,\r\n isReadonly: boolean,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.processConfigId = processConfigId;\r\n \r\n this.scope.updateSchemaPropertyIds = () => this.updateSchemaPropertyIds();\r\n\r\n this.scope.onListPropertyDragOver = ($event: any) => { };\r\n this.scope.onListPropertyDrop = ($event: any) => this.onListPropertyDrop($event);\r\n\r\n this.scope.onPropertyToUpdateDragOver = ($event: any) => { };\r\n this.scope.onPropertyToUpdateDrop = ($event: any) => this.onPropertyToUpdateDrop($event);\r\n\r\n this.initialize();\r\n }\r\n\r\n private initialize(): void {\r\n this.processConfigurationService.getProcessSchemaProperties(this.scope.processConfigId).then(\r\n (schemaProperties) => {\r\n this.scope.processSchemaProperties = schemaProperties;\r\n });\r\n\r\n this.processActionService.getAllProcessActions(this.scope.processConfigId).then(\r\n (processActions) => {\r\n this.scope.processActions = processActions;\r\n });\r\n\r\n this.hydrateSchemProperties();\r\n }\r\n\r\n private hydrateSchemProperties(): void {\r\n if (this.scope.workflowBlock.copyDto.listPropertySchemaPropertyId) {\r\n this.schemaPropertyService.getSchemaProperty(this.scope.workflowBlock.copyDto.listPropertySchemaPropertyId).then(\r\n (schemaProperty) => {\r\n this.scope.listPropertySchemaProperty = schemaProperty;\r\n });\r\n }\r\n\r\n if (this.scope.workflowBlock.copyDto.propertyToUpdateSchemaPropertyId) {\r\n this.schemaPropertyService.getSchemaProperty(this.scope.workflowBlock.copyDto.propertyToUpdateSchemaPropertyId).then(\r\n (schemaProperty) => {\r\n this.scope.propertyToUpdateSchemaProperty = schemaProperty;\r\n });\r\n }\r\n\r\n if (this.scope.workflowBlock.copyDto.relatedProcessSchemaPropertyId) {\r\n this.schemaPropertyService.getSchemaProperty(this.scope.workflowBlock.copyDto.relatedProcessSchemaPropertyId).then(\r\n (schemaProperty) => {\r\n this.scope.relatedProcessSchemaProperty = schemaProperty;\r\n });\r\n }\r\n }\r\n\r\n private updateSchemaPropertyIds() : void {\r\n this.scope.workflowBlock.copyDto.listPropertySchemaPropertyId = this.scope.listPropertySchemaProperty\r\n ? this.scope.listPropertySchemaProperty.id\r\n : null;\r\n\r\n this.scope.workflowBlock.copyDto.propertyToUpdateSchemaPropertyId = this.scope.propertyToUpdateSchemaProperty\r\n ? this.scope.propertyToUpdateSchemaProperty.id\r\n : null;\r\n\r\n this.scope.workflowBlock.copyDto.relatedProcessSchemaPropertyId = this.scope.relatedProcessSchemaProperty\r\n ? this.scope.relatedProcessSchemaProperty.id\r\n : null;\r\n }\r\n\r\n private onListPropertyDrop($event: any) :void {\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then(\r\n (schemaProperty) => {\r\n this.scope.listPropertySchemaProperty = schemaProperty;\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n\r\n this.scope.updateSchemaPropertyIds();\r\n\r\n });\r\n }\r\n\r\n private onPropertyToUpdateDrop($event: any) :void {\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then(\r\n (schemaProperty) => {\r\n this.scope.propertyToUpdateSchemaProperty = schemaProperty;\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n\r\n this.scope.updateSchemaPropertyIds();\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('CopySettingsModalController',\r\n ['$scope', 'workflowBlock', 'processConfigId', \"processConfigurationService\", \"processActionService\", \"treeService\", \"schemaPropertyService\", 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var CreatePdfSettingsModalController = /** @class */ (function (_super) {\r\n __extends(CreatePdfSettingsModalController, _super);\r\n function CreatePdfSettingsModalController($scope, pdfBindingService, processConfigurationService, formService, treeService, schemaPropertyService, objectSchemaService, calculationService, manageStaticDocumentService, systemLevelService, conditionService, manageCodeService, workflowBlock, processConfigId, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.pdfBindingService = pdfBindingService;\r\n _this.processConfigurationService = processConfigurationService;\r\n _this.formService = formService;\r\n _this.treeService = treeService;\r\n _this.schemaPropertyService = schemaPropertyService;\r\n _this.objectSchemaService = objectSchemaService;\r\n _this.calculationService = calculationService;\r\n _this.manageStaticDocumentService = manageStaticDocumentService;\r\n _this.systemLevelService = systemLevelService;\r\n _this.conditionService = conditionService;\r\n _this.manageCodeService = manageCodeService;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.addNewPdfSection = function () { return _this.addNewPdfSection(); };\r\n _this.scope.deleteSection = function (index) { return _this.deleteSection(index); };\r\n _this.scope.isSectionTypePdfBinding = function (sectionType) { return _this.isSectionTypePdfBinding(sectionType); };\r\n _this.scope.isSectionTypeStaticDocument = function (sectionType) { return _this.isSectionTypeStaticDocument(sectionType); };\r\n _this.scope.isSectionTypeUserDefinedDocument = function (sectionType) { return _this.isSectionTypeUserDefinedDocument(sectionType); };\r\n _this.scope.isSectionTypeFormDocument = function (sectionType) { return _this.isSectionTypeFormDocument(sectionType); };\r\n _this.scope.isSectionTypeProcessVariableDocument = function (sectionType) { return _this.isSectionTypeProcessVariableDocument(sectionType); };\r\n _this.scope.filterManagedSections = function (managedForm) { return _this.filterManagedSections(managedForm); };\r\n _this.processConfigId = processConfigId;\r\n _this.loadPdfBindings();\r\n _this.loadManagedDocuments();\r\n _this.scope.managedForms = [];\r\n _this.scope.managedSections = [];\r\n _this.scope.staticDocuments = [];\r\n _this.scope.onDragOver = function ($event) { return _this.onDragOverInternal($event); };\r\n _this.scope.onDrop = function ($event) { return _this.onDropInternal($event); };\r\n if (_this.scope.workflowBlock.createPdfDto.resultSchemaPropertyId) {\r\n _this.schemaPropertyService\r\n .getSchemaProperty(_this.scope.workflowBlock.createPdfDto.resultSchemaPropertyId).then(function (schemaProperty) { return _this.scope.schemaProperty = schemaProperty; });\r\n }\r\n calculationService.getAllCalculations(processConfigId).then(function (calculations) {\r\n _this.scope.calculations = calculations;\r\n });\r\n _this.conditionService.getAllConditions(processConfigId).then(function (conditions) {\r\n _this.scope.conditions = conditions;\r\n });\r\n _this.manageStaticDocumentService.getStaticDocumentsForProcessConfiguration(_this.processConfigId).then(function (documents) {\r\n _this.scope.staticDocuments = _this.scope.staticDocuments.concat(documents);\r\n });\r\n _this.systemLevelService.getSystemLevelStaticDocuments().then(function (systemLevel) {\r\n _this.scope.staticDocuments = _this.scope.staticDocuments.concat(systemLevel.myStaticDocuments);\r\n });\r\n _this.systemLevelService.getSystemLevelDocumentConfiguration().then(function (sysLevel) {\r\n _this.scope.systemCodes = [];\r\n if (sysLevel.systemDocumentConfiguration &&\r\n sysLevel.systemDocumentConfiguration.documentTypeCodeGroup &&\r\n sysLevel.systemDocumentConfiguration.documentTypeCodeGroup.codes) {\r\n _this.scope.systemCodes = Enumerable\r\n .from(sysLevel.systemDocumentConfiguration.documentTypeCodeGroup.codes)\r\n .where(function (i) { return i.isActive; }).toArray();\r\n }\r\n });\r\n _this.systemLevelService.getSystemLevelCodes().then(function (systemLevel) {\r\n _this.scope.codeGroups = systemLevel.myCodeGroups;\r\n _this.manageCodeService.getAllCodesForProcessConfiguration(_this.processConfigId).then(function (codeGroups) {\r\n _this.scope.codeGroups = _this.scope.codeGroups.concat(codeGroups);\r\n });\r\n });\r\n _this.formService.getFormFields(_this.scope.processConfigId, 13 /* Document */).then(function (fields) {\r\n _this.scope.documentFields = fields;\r\n });\r\n _this.processConfigurationService.getById(processConfigId).then(function (processConfiguration) {\r\n if (processConfiguration.processDataSchema_id) {\r\n _this.objectSchemaService.getObjectSchemaExpanded(processConfiguration.processDataSchema_id).then(function (objectSchema) {\r\n var topLevelDocuments = Enumerable.from(objectSchema.properties)\r\n .where(function (i) { return i.propertyType === 13 /* Document */; })\r\n .toArray();\r\n var listDocuments = Enumerable.from(objectSchema.properties)\r\n .where(function (i) { return i.typeSchema !== null; })\r\n .selectMany(function (i) { return i.typeSchema.properties; })\r\n .where(function (i) { return i.propertyType === 13 /* Document */; })\r\n .toArray();\r\n _this.scope.documentProcessDataVariables = topLevelDocuments.concat(listDocuments);\r\n });\r\n }\r\n });\r\n return _this;\r\n }\r\n CreatePdfSettingsModalController.prototype.addNewPdfSection = function () {\r\n var newSection = {\r\n sectionIndex: this.scope.workflowBlock.createPdfDto.myPdfSections.length + 1\r\n };\r\n this.scope.workflowBlock.createPdfDto.myPdfSections.push(newSection);\r\n };\r\n CreatePdfSettingsModalController.prototype.deleteSection = function (index) {\r\n this.scope.workflowBlock.createPdfDto.myPdfSections.splice(index, 1);\r\n };\r\n CreatePdfSettingsModalController.prototype.loadPdfBindings = function () {\r\n var _this = this;\r\n if (this.processConfigId) {\r\n this.pdfBindingService.getPdfBindings(this.processConfigId).then(function (pdfBindings) { return _this.scope.pdfBindings = pdfBindings; });\r\n }\r\n };\r\n CreatePdfSettingsModalController.prototype.loadManagedDocuments = function () {\r\n var _this = this;\r\n if (this.processConfigId) {\r\n this.formService.getFormWithSection(this.processConfigId)\r\n .then(function (forms) {\r\n forms.forEach(function (f) {\r\n var documentSections = Enumerable.from(f.myManageSections)\r\n .where(function (i) { return i.manageSectionType === 3 /* Documents */; })\r\n .toArray();\r\n if (documentSections.length > 0) {\r\n var form = {\r\n id: f.id,\r\n name: f.name,\r\n myManageSections: documentSections\r\n };\r\n _this.scope.managedForms.push(form);\r\n if (_this.scope.workflowBlock.createPdfDto.myPdfSections.length > 0) {\r\n var pdfSection = Enumerable\r\n .from(_this.scope.workflowBlock.createPdfDto.myPdfSections)\r\n .where(function (i) { return i.form_id === form.id; })\r\n .firstOrDefault();\r\n if (pdfSection !== null) {\r\n _this.filterManagedSections(form.id);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n };\r\n CreatePdfSettingsModalController.prototype.filterManagedSections = function (managedForm) {\r\n this.scope.managedSections = Enumerable.from(this.scope.managedForms)\r\n .where(function (i) { return i.id === managedForm; })\r\n .first().myManageSections;\r\n };\r\n CreatePdfSettingsModalController.prototype.isSectionTypePdfBinding = function (sectionType) {\r\n return sectionType === 1 /* PdfBinding */;\r\n };\r\n CreatePdfSettingsModalController.prototype.isSectionTypeStaticDocument = function (sectionType) {\r\n return sectionType === 0 /* StaticDocument */;\r\n };\r\n CreatePdfSettingsModalController.prototype.isSectionTypeUserDefinedDocument = function (sectionType) {\r\n return sectionType === 2 /* UserSelectedDocuments */;\r\n };\r\n CreatePdfSettingsModalController.prototype.isSectionTypeFormDocument = function (sectionType) {\r\n return sectionType === 3 /* FormDocument */;\r\n };\r\n CreatePdfSettingsModalController.prototype.isSectionTypeProcessVariableDocument = function (sectionType) {\r\n return sectionType === 4 /* ProcessVariableDocument */;\r\n };\r\n CreatePdfSettingsModalController.prototype.onDragOverInternal = function ($event) {\r\n //var treeConfig = this.treeService.getTreeConfigurationItem();\r\n };\r\n CreatePdfSettingsModalController.prototype.onDropInternal = function ($event) {\r\n var _this = this;\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n this.scope.workflowBlock.createPdfDto.resultSchemaPropertyId = treeConfig.schemaPropertyId;\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then(function (schemaProperty) { return _this.scope.schemaProperty = schemaProperty; });\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.treeService.clearDragValue();\r\n };\r\n return CreatePdfSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.CreatePdfSettingsModalController = CreatePdfSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController(\"CreatePdfSettingsModalController\", [\r\n \"$scope\", \"pdfBindingService\", \"processConfigurationService\", \"formService\", \"treeService\", \"schemaPropertyService\",\r\n \"objectSchemaService\", \"calculationService\", \"manageStaticDocumentsService\", \"systemLevelService\",\r\n \"conditionService\", \"manageSystemCodesService\", \"workflowBlock\", \"processConfigId\", \"isReadonly\", \"close\"\r\n]);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ICreatePdfSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.CreatePdfWorkflowBlock;\r\n processConfigId: string;\r\n isReadonly: boolean;\r\n addNewPdfSection(): void; \r\n deleteSection(index: number): void; \r\n pdfBindings: Wars.Domain.Model.PdfBinding[];\r\n documentFields: Wars.Domain.Model.Field[];\r\n documentProcessDataVariables: Wars.Domain.Model.SchemaProperty[];\r\n isSectionTypePdfBinding(sectionType: number): boolean;\r\n isSectionTypeStaticDocument(sectionType: number): boolean;\r\n isSectionTypeUserDefinedDocument(sectionType: number): boolean;\r\n isSectionTypeFormDocument(sectionType: number): boolean;\r\n isSectionTypeProcessVariableDocument(sectionType: number): boolean;\r\n filterManagedSections(managedForm: any): void;\r\n managedForms: any[];\r\n managedSections: any;\r\n calculations: Wars.Domain.Model.Calculations.Calculation[];\r\n conditions: Wars.Domain.Model.Conditions.Condition[];\r\n staticDocuments: Wars.Domain.Model.StaticDocument[];\r\n onDragOver($event: any): void;\r\n onDrop($event: any): void;\r\n schemaProperty: Wars.Domain.Model.SchemaProperty;\r\n codeGroups: Wars.Domain.Model.Codes.CodeGroup[];\r\n systemCodes: Wars.Domain.Model.Codes.SystemCode[];\r\n }\r\n\r\n export class CreatePdfSettingsModalController extends BaseModalController {\r\n scope: ICreatePdfSettingsModalControllerScope;\r\n private processConfigId: string;\r\n\r\n constructor(\r\n $scope: ICreatePdfSettingsModalControllerScope,\r\n private pdfBindingService: services.PdfBindingService,\r\n private processConfigurationService: services.ProcessConfigurationService,\r\n private formService: services.FormService,\r\n private treeService: services.TreeService,\r\n private schemaPropertyService: services.SchemaPropertyService,\r\n private objectSchemaService: services.ObjectSchemaService,\r\n private calculationService: services.CalculationService,\r\n private manageStaticDocumentService: services.ManageStaticDocumentsService,\r\n private systemLevelService: services.SystemLevelService,\r\n private conditionService: services.ConditionService,\r\n private manageCodeService: services.ManageSystemCodesService,\r\n workflowBlock: models.CreatePdfWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean,\r\n close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.processConfigId = processConfigId;\r\n\r\n this.scope.addNewPdfSection = () => this.addNewPdfSection();\r\n this.scope.deleteSection = (index: number) => this.deleteSection(index);\r\n\r\n this.scope.isSectionTypePdfBinding = (sectionType) => this.isSectionTypePdfBinding(sectionType);\r\n this.scope.isSectionTypeStaticDocument = (sectionType) => this.isSectionTypeStaticDocument(sectionType);\r\n this.scope.isSectionTypeUserDefinedDocument = (sectionType) => this.isSectionTypeUserDefinedDocument(sectionType);\r\n this.scope.isSectionTypeFormDocument = (sectionType) => this.isSectionTypeFormDocument(sectionType);\r\n this.scope.isSectionTypeProcessVariableDocument = (sectionType) => this.isSectionTypeProcessVariableDocument(sectionType);\r\n this.scope.filterManagedSections = (managedForm) => this.filterManagedSections(managedForm);\r\n\r\n this.processConfigId = processConfigId;\r\n this.loadPdfBindings();\r\n this.loadManagedDocuments();\r\n this.scope.managedForms = [];\r\n this.scope.managedSections = [];\r\n this.scope.staticDocuments = [];\r\n\r\n this.scope.onDragOver = ($event: any) => this.onDragOverInternal($event);\r\n this.scope.onDrop = ($event: any) => this.onDropInternal($event);\r\n\r\n if (this.scope.workflowBlock.createPdfDto.resultSchemaPropertyId) {\r\n this.schemaPropertyService\r\n .getSchemaProperty(this.scope.workflowBlock.createPdfDto.resultSchemaPropertyId).then(\r\n (schemaProperty) => this.scope.schemaProperty = schemaProperty);\r\n }\r\n\r\n calculationService.getAllCalculations(processConfigId).then(\r\n (calculations) => {\r\n this.scope.calculations = calculations;\r\n });\r\n\r\n this.conditionService.getAllConditions(processConfigId).then(\r\n (conditions) => {\r\n this.scope.conditions = conditions;\r\n });\r\n\r\n this.manageStaticDocumentService.getStaticDocumentsForProcessConfiguration(this.processConfigId).then(\r\n (documents) => {\r\n this.scope.staticDocuments = this.scope.staticDocuments.concat(documents);\r\n });\r\n\r\n this.systemLevelService.getSystemLevelStaticDocuments().then(\r\n (systemLevel) => {\r\n this.scope.staticDocuments = this.scope.staticDocuments.concat(systemLevel.myStaticDocuments);\r\n });\r\n\r\n this.systemLevelService.getSystemLevelDocumentConfiguration().then(\r\n (sysLevel) => {\r\n this.scope.systemCodes = [];\r\n if (sysLevel.systemDocumentConfiguration &&\r\n sysLevel.systemDocumentConfiguration.documentTypeCodeGroup &&\r\n sysLevel.systemDocumentConfiguration.documentTypeCodeGroup.codes) {\r\n this.scope.systemCodes = Enumerable\r\n .from(sysLevel.systemDocumentConfiguration.documentTypeCodeGroup.codes)\r\n .where(i => i.isActive).toArray();\r\n }\r\n });\r\n\r\n this.systemLevelService.getSystemLevelCodes().then(\r\n (systemLevel) => {\r\n this.scope.codeGroups = systemLevel.myCodeGroups;\r\n this.manageCodeService.getAllCodesForProcessConfiguration(this.processConfigId).then(\r\n (codeGroups) => {\r\n this.scope.codeGroups = this.scope.codeGroups.concat(codeGroups);\r\n });\r\n });\r\n\r\n this.formService.getFormFields(this.scope.processConfigId,\r\n Wars.Domain.Model.Codes.Enums.VariableType.Document).then(\r\n (fields) => {\r\n this.scope.documentFields = fields;\r\n });\r\n\r\n this.processConfigurationService.getById(processConfigId).then(\r\n (processConfiguration) => {\r\n if (processConfiguration.processDataSchema_id) {\r\n this.objectSchemaService.getObjectSchemaExpanded(processConfiguration.processDataSchema_id).then(\r\n (objectSchema) => {\r\n var topLevelDocuments = Enumerable.from(objectSchema.properties)\r\n .where(i => i.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Document)\r\n .toArray();\r\n\r\n var listDocuments = Enumerable.from(objectSchema.properties)\r\n .where(i => i.typeSchema !== null)\r\n .selectMany(i => i.typeSchema.properties)\r\n .where(i => i.propertyType === Wars.Domain.Model.Codes.Enums.VariableType.Document)\r\n .toArray();\r\n\r\n this.scope.documentProcessDataVariables = topLevelDocuments.concat(listDocuments);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private addNewPdfSection(): void {\r\n var newSection = \r\n {\r\n sectionIndex: this.scope.workflowBlock.createPdfDto.myPdfSections.length + 1\r\n };\r\n this.scope.workflowBlock.createPdfDto.myPdfSections.push(newSection);\r\n }\r\n\r\n private deleteSection(index: number) {\r\n this.scope.workflowBlock.createPdfDto.myPdfSections.splice(index, 1);\r\n }\r\n\r\n private loadPdfBindings() : void {\r\n if (this.processConfigId) {\r\n this.pdfBindingService.getPdfBindings(this.processConfigId).then(\r\n (pdfBindings) => this.scope.pdfBindings = pdfBindings);\r\n }\r\n }\r\n\r\n private loadManagedDocuments(): void {\r\n if (this.processConfigId) {\r\n this.formService.getFormWithSection(this.processConfigId)\r\n .then((forms) => {\r\n forms.forEach(f => {\r\n var documentSections = Enumerable.from(f.myManageSections)\r\n .where(i => i.manageSectionType === Wars.Domain.Model.Codes.Enums.ManageSectionType.Documents)\r\n .toArray();\r\n if (documentSections.length > 0) {\r\n var form = {\r\n id: f.id,\r\n name: f.name,\r\n myManageSections: documentSections\r\n }\r\n this.scope.managedForms.push(form);\r\n\r\n if (this.scope.workflowBlock.createPdfDto.myPdfSections.length > 0) {\r\n var pdfSection = Enumerable\r\n .from(this.scope.workflowBlock.createPdfDto.myPdfSections)\r\n .where(i => i.form_id === form.id)\r\n .firstOrDefault();\r\n if (pdfSection !== null) {\r\n this.filterManagedSections(form.id);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n private filterManagedSections(managedForm: any): void {\r\n this.scope.managedSections = Enumerable.from(this.scope.managedForms)\r\n .where(i => i.id === managedForm)\r\n .first().myManageSections;\r\n }\r\n\r\n private isSectionTypePdfBinding(sectionType: number): boolean {\r\n return sectionType === Wars.Domain.Model.Codes.Enums.PdfSectionType.PdfBinding;\r\n }\r\n\r\n private isSectionTypeStaticDocument(sectionType: number): boolean {\r\n return sectionType === Wars.Domain.Model.Codes.Enums.PdfSectionType.StaticDocument;\r\n }\r\n\r\n private isSectionTypeUserDefinedDocument(sectionType: number): boolean {\r\n return sectionType === Wars.Domain.Model.Codes.Enums.PdfSectionType.UserSelectedDocuments;\r\n }\r\n\r\n private isSectionTypeFormDocument(sectionType: number): boolean {\r\n return sectionType === Wars.Domain.Model.Codes.Enums.PdfSectionType.FormDocument;\r\n }\r\n\r\n private isSectionTypeProcessVariableDocument(sectionType: number): boolean {\r\n return sectionType === Wars.Domain.Model.Codes.Enums.PdfSectionType.ProcessVariableDocument;\r\n }\r\n\r\n public onDragOverInternal($event: any): void {\r\n //var treeConfig = this.treeService.getTreeConfigurationItem();\r\n }\r\n\r\n public onDropInternal($event: any): void {\r\n var treeConfig = this.treeService.getTreeConfigurationItem();\r\n\r\n this.scope.workflowBlock.createPdfDto.resultSchemaPropertyId = treeConfig.schemaPropertyId;\r\n this.schemaPropertyService.getSchemaProperty(treeConfig.schemaPropertyId).then(\r\n (schemaProperty) => this.scope.schemaProperty = schemaProperty);\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n\r\n this.treeService.clearDragValue();\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"CreatePdfSettingsModalController\",\r\n [\r\n \"$scope\", \"pdfBindingService\", \"processConfigurationService\", \"formService\", \"treeService\", \"schemaPropertyService\",\r\n \"objectSchemaService\", \"calculationService\", \"manageStaticDocumentsService\", \"systemLevelService\",\r\n \"conditionService\", \"manageSystemCodesService\", \"workflowBlock\", \"processConfigId\", \"isReadonly\", \"close\"\r\n ]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var GotoSettingsModalController = /** @class */ (function (_super) {\r\n __extends(GotoSettingsModalController, _super);\r\n function GotoSettingsModalController($scope, model, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.model = model;\r\n _this.scope.isReadonly = isReadonly;\r\n return _this;\r\n }\r\n return GotoSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.GotoSettingsModalController = GotoSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('GotoSettingsModalController', ['$scope', 'model', 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IGotoSettingsModalControllerScope extends IBaseModalControllerScope {\r\n model: models.GotoSettingsModel;\r\n isReadonly: boolean;\r\n }\r\n\r\n export class GotoSettingsModalController extends BaseModalController {\r\n scope: IGotoSettingsModalControllerScope;\r\n\r\n constructor($scope: IGotoSettingsModalControllerScope, model: models.GotoSettingsModel, isReadonly: boolean, close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.model = model;\r\n this.scope.isReadonly = isReadonly;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('GotoSettingsModalController', ['$scope', 'model', 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var GotoStateSettingsModalController = /** @class */ (function (_super) {\r\n __extends(GotoStateSettingsModalController, _super);\r\n function GotoStateSettingsModalController($scope, statusAndStateService, workflowBlock, processConfigId, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n statusAndStateService.getStatusAndStatesByProcessConfig(processConfigId).then(function (statusGroup) {\r\n _this.scope.statusGroup = statusGroup;\r\n if (_this.scope.workflowBlock.gotoStateDto.statusCodeId) {\r\n _this.statusChangeInternal();\r\n }\r\n });\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.statusChange = function () { return _this.statusChangeInternal(); };\r\n _this.scope.originalClicked = function () { return _this.originalClicked(); };\r\n _this.scope.previousClicked = function () { return _this.previousClicked(); };\r\n _this.scope.previousUserActionClicked = function () { return _this.previousUserActionClicked(); };\r\n _this.scope.previousUniqueUserActionClicked = function () { return _this.previousUniqueUserActionClicked(); };\r\n return _this;\r\n }\r\n GotoStateSettingsModalController.prototype.originalClicked = function () {\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUserActionState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUniqueUserActionState = false;\r\n };\r\n GotoStateSettingsModalController.prototype.previousClicked = function () {\r\n this.scope.workflowBlock.gotoStateDto.gotoOriginalState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUserActionState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUniqueUserActionState = false;\r\n };\r\n GotoStateSettingsModalController.prototype.previousUserActionClicked = function () {\r\n this.scope.workflowBlock.gotoStateDto.gotoOriginalState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUniqueUserActionState = false;\r\n };\r\n GotoStateSettingsModalController.prototype.previousUniqueUserActionClicked = function () {\r\n this.scope.workflowBlock.gotoStateDto.gotoOriginalState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUserActionState = false;\r\n };\r\n GotoStateSettingsModalController.prototype.statusChangeInternal = function () {\r\n var _this = this;\r\n if (!this.scope.workflowBlock.gotoStateDto.statusCodeId ||\r\n !this.scope.statusGroup) {\r\n this.scope.states = [];\r\n return;\r\n }\r\n var status = Enumerable.from(this.scope.statusGroup.myStatuses).singleOrDefault(function (i) { return i.id === _this.scope.workflowBlock.gotoStateDto.statusCodeId; });\r\n if (!status) {\r\n this.scope.states = [];\r\n return;\r\n }\r\n this.scope.states = status.myStates;\r\n };\r\n return GotoStateSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.GotoStateSettingsModalController = GotoStateSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('GotoStateSettingsModalController', ['$scope', 'statusAndStateService', 'workflowBlock', 'processConfigId', 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IGotoStateSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.GotoStateWorkflowBlock;\r\n statusGroup: Wars.Domain.Model.Statuses.StatusCodeGroup;\r\n states: Wars.Domain.Model.Statuses.StateCode[];\r\n isReadonly: boolean;\r\n statusChange: () => void;\r\n originalClicked(): void;\r\n previousClicked(): void;\r\n previousUserActionClicked(): void;\r\n previousUniqueUserActionClicked(): void;\r\n }\r\n\r\n export class GotoStateSettingsModalController extends BaseModalController {\r\n scope: IGotoStateSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: IGotoStateSettingsModalControllerScope,\r\n statusAndStateService: services.StatusAndStateService,\r\n workflowBlock: models.GotoStateWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean, close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n statusAndStateService.getStatusAndStatesByProcessConfig(processConfigId).then(\r\n (statusGroup) => {\r\n this.scope.statusGroup = statusGroup;\r\n if (this.scope.workflowBlock.gotoStateDto.statusCodeId) {\r\n this.statusChangeInternal();\r\n }\r\n });\r\n this.scope.isReadonly = isReadonly;\r\n\r\n this.scope.statusChange = () => this.statusChangeInternal();\r\n this.scope.originalClicked = () => this.originalClicked();\r\n this.scope.previousClicked = () => this.previousClicked();\r\n this.scope.previousUserActionClicked = () => this.previousUserActionClicked();\r\n this.scope.previousUniqueUserActionClicked = () => this.previousUniqueUserActionClicked();\r\n }\r\n\r\n private originalClicked(): void {\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUserActionState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUniqueUserActionState = false;\r\n }\r\n\r\n private previousClicked(): void {\r\n this.scope.workflowBlock.gotoStateDto.gotoOriginalState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUserActionState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUniqueUserActionState = false;\r\n }\r\n\r\n private previousUserActionClicked(): void {\r\n this.scope.workflowBlock.gotoStateDto.gotoOriginalState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUniqueUserActionState = false;\r\n }\r\n\r\n private previousUniqueUserActionClicked(): void {\r\n this.scope.workflowBlock.gotoStateDto.gotoOriginalState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousState = false;\r\n this.scope.workflowBlock.gotoStateDto.gotoPreviousUserActionState = false;\r\n }\r\n\r\n private statusChangeInternal(): void {\r\n if (!this.scope.workflowBlock.gotoStateDto.statusCodeId ||\r\n !this.scope.statusGroup)\r\n {\r\n this.scope.states = [];\r\n return;\r\n }\r\n\r\n var status = Enumerable.from(this.scope.statusGroup.myStatuses).singleOrDefault(i => i.id === this.scope.workflowBlock.gotoStateDto.statusCodeId);\r\n if (!status) {\r\n this.scope.states = [];\r\n return;\r\n }\r\n\r\n this.scope.states = status.myStates;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('GotoStateSettingsModalController', ['$scope', 'statusAndStateService', 'workflowBlock', 'processConfigId', 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var MessageSettingsModalController = /** @class */ (function (_super) {\r\n __extends(MessageSettingsModalController, _super);\r\n function MessageSettingsModalController($scope, workflowBlock, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n return _this;\r\n }\r\n return MessageSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.MessageSettingsModalController = MessageSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('MessageSettingsModalController', ['$scope', 'workflowBlock', 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IMessageSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.IWorkflowBlock;\r\n isReadonly: boolean;\r\n }\r\n\r\n export class MessageSettingsModalController extends BaseModalController {\r\n scope: IMessageSettingsModalControllerScope;\r\n\r\n constructor($scope: IMessageSettingsModalControllerScope, workflowBlock: models.MessageWorkflowBlock, isReadonly: boolean, close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('MessageSettingsModalController', ['$scope', 'workflowBlock', 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var OutputOrderSettingsModalController = /** @class */ (function (_super) {\r\n __extends(OutputOrderSettingsModalController, _super);\r\n function OutputOrderSettingsModalController($scope, model, workflowService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.model = model;\r\n _this.scope.save = function () {\r\n _this.validate();\r\n if (_this.scope.validationMessages.length == 0) {\r\n _this.dismissModal(true);\r\n }\r\n };\r\n workflowService.getOutputOrder(model.workflowBlock.id).then(function (dto) {\r\n _this.scope.model.dto = dto;\r\n });\r\n return _this;\r\n }\r\n OutputOrderSettingsModalController.prototype.validate = function () {\r\n this.scope.validationMessages = [];\r\n if (this.scope.model && this.scope.model.dto && this.scope.model.dto.toBlocks) {\r\n if (Enumerable.from(this.scope.model.dto.toBlocks).any(function (i) { return i.order === undefined || i.order === null; })) {\r\n this.scope.validationMessages.push(\"All destination workflow blocks must be given an output order\");\r\n }\r\n var orderedToBlocks = Enumerable.from(this.scope.model.dto.toBlocks).orderBy(function (i) { return i.order; }).toArray();\r\n for (var i = 0; i < orderedToBlocks.length; i++) {\r\n if (orderedToBlocks[i].order !== i) {\r\n this.scope.validationMessages.push(\"The destination workflow block must be sequential and begin with zero\");\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n return OutputOrderSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.OutputOrderSettingsModalController = OutputOrderSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('OutputOrderSettingsModalController', ['$scope', 'model', 'workflowService', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IOutputOrderSettingsModalControllerScope extends IBaseModalControllerScope {\r\n model: models.OutputOrderModel;\r\n validationMessages: string[];\r\n save() : void;\r\n }\r\n\r\n export class OutputOrderSettingsModalController extends BaseModalController {\r\n scope: IOutputOrderSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: IOutputOrderSettingsModalControllerScope,\r\n model: models.OutputOrderModel,\r\n workflowService: services.WorkflowService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.model = model;\r\n this.scope.save = () => {\r\n this.validate();\r\n if (this.scope.validationMessages.length == 0) {\r\n this.dismissModal(true);\r\n }\r\n }\r\n\r\n workflowService.getOutputOrder(model.workflowBlock.id).then(\r\n (dto) => {\r\n this.scope.model.dto = dto;\r\n });\r\n \r\n }\r\n\r\n private validate() {\r\n this.scope.validationMessages = [];\r\n if (this.scope.model && this.scope.model.dto && this.scope.model.dto.toBlocks) {\r\n if (Enumerable.from(this.scope.model.dto.toBlocks).any(i => i.order === undefined || i.order === null)) {\r\n this.scope.validationMessages.push(\"All destination workflow blocks must be given an output order\")\r\n }\r\n var orderedToBlocks = Enumerable.from(this.scope.model.dto.toBlocks).orderBy(i => i.order).toArray();\r\n for (var i = 0; i < orderedToBlocks.length; i++) {\r\n if (orderedToBlocks[i].order !== i) {\r\n this.scope.validationMessages.push(\"The destination workflow block must be sequential and begin with zero\");\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('OutputOrderSettingsModalController', ['$scope', 'model', 'workflowService', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var ProcessActionSettingsModalController = /** @class */ (function (_super) {\r\n __extends(ProcessActionSettingsModalController, _super);\r\n function ProcessActionSettingsModalController($scope, processActionService, workflowBlock, processConfigId, processActionId, isReadonly, workflowService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.processActionChanged = function () { return _this.scope.workflowBlock.componentId = _this.scope.workflowBlock.processActionDto.processActionId; };\r\n processActionService.getAllProcessActions(processConfigId).then(function (processActions) {\r\n _this.scope.processActions = Enumerable.from(processActions).where(function (i) { return i.id !== processActionId; }).toArray();\r\n });\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.openOutputOrderModal = function () {\r\n workflowService.showOutputOrderModal(_this.scope.workflowBlock, _this.scope.isReadonly);\r\n };\r\n return _this;\r\n }\r\n return ProcessActionSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.ProcessActionSettingsModalController = ProcessActionSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('ProcessActionSettingsModalController', ['$scope', 'processActionService', 'workflowBlock', 'processConfigId', 'processActionId', 'isReadonly', 'workflowService', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IProcessActionSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.ProcessActionWorkflowBlock;\r\n processActions: Wars.Domain.Model.ProcessAction[];\r\n processConfigId: string,\r\n processActionId: string,\r\n isReadonly: boolean;\r\n openOutputOrderModal: () => void;\r\n processActionChanged: () => void;\r\n }\r\n\r\n export class ProcessActionSettingsModalController extends BaseModalController {\r\n scope: IProcessActionSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: IProcessActionSettingsModalControllerScope,\r\n processActionService: services.ProcessActionService,\r\n workflowBlock: models.ProcessActionWorkflowBlock,\r\n processConfigId: string,\r\n processActionId: string,\r\n isReadonly: boolean,\r\n workflowService: services.WorkflowService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.processConfigId = processConfigId;\r\n this.scope.processActionChanged = () => this.scope.workflowBlock.componentId = this.scope.workflowBlock.processActionDto.processActionId;\r\n\r\n\r\n processActionService.getAllProcessActions(processConfigId).then(\r\n (processActions) => {\r\n this.scope.processActions = Enumerable.from(processActions).where(i => i.id !== processActionId).toArray();\r\n });\r\n this.scope.isReadonly = isReadonly;\r\n\r\n this.scope.openOutputOrderModal = () => {\r\n workflowService.showOutputOrderModal(this.scope.workflowBlock, this.scope.isReadonly);\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessActionSettingsModalController', ['$scope', 'processActionService', 'workflowBlock', 'processConfigId', 'processActionId', 'isReadonly', 'workflowService', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var RemoveResourceSettingsModalController = /** @class */ (function (_super) {\r\n __extends(RemoveResourceSettingsModalController, _super);\r\n function RemoveResourceSettingsModalController($scope, processConfigService, workflowBlock, processConfigId, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.processConfigId = processConfigId;\r\n processConfigService.getScheduleResourceInstances(processConfigId).then(function (schemaPropertyDtos) {\r\n _this.scope.schemaProperties = schemaPropertyDtos;\r\n });\r\n return _this;\r\n }\r\n return RemoveResourceSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.RemoveResourceSettingsModalController = RemoveResourceSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('RemoveResourceSettingsModalController', ['$scope', 'processConfigurationService', 'workflowBlock', 'processConfigId', 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IRemoveResourceSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.BaseWorkflowBlock;\r\n processConfigId: string;\r\n isReadonly: boolean;\r\n schemaProperties: Wars.Domain.Model.Dtos.SchemaPropertyDto[];\r\n }\r\n\r\n export class RemoveResourceSettingsModalController extends BaseModalController {\r\n scope: IRemoveResourceSettingsModalControllerScope;\r\n\r\n\r\n constructor(\r\n $scope: IRemoveResourceSettingsModalControllerScope,\r\n processConfigService: services.ProcessConfigurationService,\r\n workflowBlock: models.RemoveResourceWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.processConfigId = processConfigId;\r\n\r\n processConfigService.getScheduleResourceInstances(processConfigId).then(\r\n (schemaPropertyDtos: Wars.Domain.Model.Dtos.SchemaPropertyDto[]) => {\r\n this.scope.schemaProperties = schemaPropertyDtos;\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\nwarsApp.registerController('RemoveResourceSettingsModalController', ['$scope', 'processConfigurationService', 'workflowBlock', 'processConfigId', 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var ReturnFromProcessActionSettingsModalController = /** @class */ (function (_super) {\r\n __extends(ReturnFromProcessActionSettingsModalController, _super);\r\n function ReturnFromProcessActionSettingsModalController($scope, workflowBlock, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n return _this;\r\n }\r\n return ReturnFromProcessActionSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.ReturnFromProcessActionSettingsModalController = ReturnFromProcessActionSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('ReturnFromProcessActionSettingsModalController', ['$scope', 'workflowBlock', 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IReturnFromProcessActionSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.IWorkflowBlock;\r\n isReadonly: boolean;\r\n }\r\n\r\n export class ReturnFromProcessActionSettingsModalController extends BaseModalController {\r\n scope: IReturnFromProcessActionSettingsModalControllerScope;\r\n\r\n constructor($scope: IReturnFromProcessActionSettingsModalControllerScope, workflowBlock: models.ReturnFromProcessActionWorkflowBlock, isReadonly: boolean, close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ReturnFromProcessActionSettingsModalController', ['$scope', 'workflowBlock', 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var SecurityMatrixConditionModalController = /** @class */ (function (_super) {\r\n __extends(SecurityMatrixConditionModalController, _super);\r\n function SecurityMatrixConditionModalController($scope, matrix, state, claim, conditions, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.matrix = matrix;\r\n _this.scope.state = state;\r\n _this.scope.claim = claim;\r\n _this.scope.conditions = conditions;\r\n if (matrix[state.id]) {\r\n if (matrix[state.id][claim.id] && matrix[state.id][claim.id].condition_id) {\r\n _this.scope.selectedCondition = Enumerable.from(_this.scope.conditions)\r\n .singleOrDefault(function (c) { return c.id === matrix[state.id][claim.id].condition_id; });\r\n }\r\n }\r\n _this.scope.conditionChanged = function () {\r\n if (!matrix[state.id]) {\r\n matrix[state.id] = {};\r\n }\r\n matrix[state.id][claim.id] = {\r\n selected: false,\r\n condition_id: _this.scope.selectedCondition.id\r\n };\r\n };\r\n return _this;\r\n }\r\n return SecurityMatrixConditionModalController;\r\n }(controllers.BaseModalController));\r\n controllers.SecurityMatrixConditionModalController = SecurityMatrixConditionModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('SecurityMatrixConditionModalController', ['$scope', 'matrix', 'state', 'claim', 'conditions', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ISecurityMatrixConditionModalScope extends IBaseModalControllerScope {\r\n matrix: any;\r\n state: any, claim: any;\r\n conditions: Wars.Domain.Model.Conditions.Condition[];\r\n conditionChanged: any;\r\n selectedCondition:Wars.Domain.Model.Conditions.Condition;\r\n }\r\n\r\n export class SecurityMatrixConditionModalController extends BaseModalController {\r\n scope: ISecurityMatrixConditionModalScope;\r\n\r\n constructor($scope: ISecurityMatrixConditionModalScope,matrix: any, state: any, claim: any,\r\n conditions: Wars.Domain.Model.Conditions.Condition[], close: any) {\r\n\r\n super($scope, close);\r\n\r\n this.scope = $scope;\r\n this.scope.matrix=matrix;\r\n this.scope.state = state;\r\n this.scope.claim = claim;\r\n this.scope.conditions = conditions;\r\n\r\n if (matrix[state.id]) {\r\n if (matrix[state.id][claim.id] && matrix[state.id][claim.id].condition_id) {\r\n this.scope.selectedCondition=Enumerable.from(this.scope.conditions)\r\n .singleOrDefault(c => c.id === matrix[state.id][claim.id].condition_id);\r\n }\r\n }\r\n \r\n\r\n this.scope.conditionChanged = () => {\r\n if (!matrix[state.id]) {\r\n matrix[state.id] = {\r\n \r\n };\r\n }\r\n\r\n matrix[state.id][claim.id] = {\r\n selected: false,\r\n condition_id: this.scope.selectedCondition.id\r\n } \r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('SecurityMatrixConditionModalController', ['$scope', 'matrix','state','claim','conditions', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var SendEmailSettingsModalController = /** @class */ (function (_super) {\r\n __extends(SendEmailSettingsModalController, _super);\r\n function SendEmailSettingsModalController($scope, workflowBlock, processConfigId, isReadonly, emailConfigurationService, systemLevelService, securityMatrixService, workflowService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.$scope = $scope;\r\n _this.processConfigId = processConfigId;\r\n _this.securityMatrixService = securityMatrixService;\r\n _this.$scope.workflowBlock = workflowBlock;\r\n _this.$scope.isReadonly = isReadonly;\r\n _this.$scope.securityMatrixService = _this.securityMatrixService;\r\n _this.$scope.changeHasSecurity = function () { return _this.changeHasSecurity(); };\r\n _this.$scope.emailConfigurations = [];\r\n systemLevelService.getSystemEmailConfigurations().then(function (sysLevel) {\r\n _this.$scope.emailConfigurations = _this.$scope.emailConfigurations.concat(sysLevel.myEmailConfigurations);\r\n });\r\n emailConfigurationService.getAllEmailConfigurationsByProcessId(processConfigId)\r\n .then(function (emailConfigurations) {\r\n _this.$scope.emailConfigurations = _this.$scope.emailConfigurations.concat(emailConfigurations);\r\n });\r\n if (workflowBlock.sendEmailDto.securityMatrixId) {\r\n securityMatrixService.fetchById(workflowBlock.sendEmailDto.securityMatrixId, \"SecurityMatrix\")\r\n .then(function (securityMatrix) {\r\n _this.$scope.securityMatrix = securityMatrix;\r\n _this.$scope.securityMatrixInfoLoaded = true;\r\n });\r\n }\r\n return _this;\r\n }\r\n SendEmailSettingsModalController.prototype.changeHasSecurity = function () {\r\n if (this.$scope.workflowBlock.sendEmailDto.hasSecurity) {\r\n var securityMatrix = this.$scope.securityMatrixService.createSecurityRowWithSubTypes(false);\r\n this.$scope.securityMatrix = securityMatrix;\r\n this.$scope.workflowBlock.sendEmailDto.securityMatrixId = securityMatrix.id;\r\n this.$scope.securityMatrixInfoLoaded = true;\r\n this.$scope.securityMatrixService.saveChanges([securityMatrix]);\r\n }\r\n else {\r\n this.$scope.workflowBlock.sendEmailDto.securityMatrixId = null;\r\n }\r\n };\r\n return SendEmailSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.SendEmailSettingsModalController = SendEmailSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('SendEmailSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'emailConfigurationService', 'systemLevelService', 'securityMatrixService', 'workflowService', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ISendEmailSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.SendEmailWorkflowBlock;\r\n isReadonly: boolean;\r\n emailConfigurations: Wars.Domain.Model.EmailConfiguration[];\r\n securityMatrixInfoLoaded: boolean;\r\n securityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n changeHasSecurity(): void;\r\n securityMatrixService: services.SecurityMatrixService;\r\n }\r\n\r\n export class SendEmailSettingsModalController extends BaseModalController {\r\n\r\n constructor(\r\n private $scope: ISendEmailSettingsModalControllerScope,\r\n workflowBlock: models.SendEmailWorkflowBlock,\r\n private processConfigId: string,\r\n isReadonly: boolean,\r\n emailConfigurationService: services.EmailConfigurationService,\r\n systemLevelService: services.SystemLevelService,\r\n public securityMatrixService: services.SecurityMatrixService,\r\n workflowService: services.WorkflowService,\r\n close: any) {\r\n super($scope, close);\r\n this.$scope.workflowBlock = workflowBlock;\r\n this.$scope.isReadonly = isReadonly;\r\n this.$scope.securityMatrixService = this.securityMatrixService;\r\n this.$scope.changeHasSecurity = () => this.changeHasSecurity();\r\n\r\n this.$scope.emailConfigurations = [];\r\n systemLevelService.getSystemEmailConfigurations().then(\r\n (sysLevel) => {\r\n this.$scope.emailConfigurations = this.$scope.emailConfigurations.concat(sysLevel.myEmailConfigurations);\r\n });\r\n\r\n emailConfigurationService.getAllEmailConfigurationsByProcessId(processConfigId)\r\n .then((emailConfigurations) => {\r\n this.$scope.emailConfigurations = this.$scope.emailConfigurations.concat(emailConfigurations);\r\n });\r\n\r\n if (workflowBlock.sendEmailDto.securityMatrixId) {\r\n securityMatrixService.fetchById(workflowBlock.sendEmailDto.securityMatrixId, \"SecurityMatrix\")\r\n .then((securityMatrix) => {\r\n this.$scope.securityMatrix = securityMatrix;\r\n this.$scope.securityMatrixInfoLoaded = true;\r\n });\r\n }\r\n }\r\n\r\n public changeHasSecurity(): void {\r\n if (this.$scope.workflowBlock.sendEmailDto.hasSecurity) {\r\n var securityMatrix = this.$scope.securityMatrixService.createSecurityRowWithSubTypes(false);\r\n this.$scope.securityMatrix = securityMatrix;\r\n this.$scope.workflowBlock.sendEmailDto.securityMatrixId = securityMatrix.id;\r\n this.$scope.securityMatrixInfoLoaded = true;\r\n this.$scope.securityMatrixService.saveChanges([securityMatrix]);\r\n } else {\r\n this.$scope.workflowBlock.sendEmailDto.securityMatrixId = null;\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nwarsApp.registerController('SendEmailSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'emailConfigurationService', 'systemLevelService', 'securityMatrixService', 'workflowService', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var SetDataSettingsModalController = /** @class */ (function (_super) {\r\n __extends(SetDataSettingsModalController, _super);\r\n function SetDataSettingsModalController($scope, workflowBlock, processConfigId, workflowService, treeService, treeItemService, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.workflowService = workflowService;\r\n _this.treeService = treeService;\r\n _this.treeItemService = treeItemService;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.addSetDataOperation = function () { return _this.addSetDataOperation(); };\r\n _this.scope.deleteSetDataOperation = function (dto) { return _this.deleteSetDataOperation(dto); };\r\n _this.scope.save = function () { return _this.save(); };\r\n _this.scope.cancel = function () { return _this.cancel(); };\r\n return _this;\r\n }\r\n SetDataSettingsModalController.prototype.addSetDataOperation = function () {\r\n var newSetDataOperation = this.workflowService.createNewDataOperation(this.scope.workflowBlock.setDataDto);\r\n };\r\n SetDataSettingsModalController.prototype.deleteSetDataOperation = function (dto) {\r\n this.scope.workflowBlock.setDataDto.mySetDataOperations.remove(dto);\r\n };\r\n SetDataSettingsModalController.prototype.save = function () {\r\n var _this = this;\r\n // Save all tree item changes that are handled via breeze before trying to save workflow block changes which are all non-breeze\r\n this.treeItemService.saveAllChanges(function () {\r\n _this.dismissModal(true);\r\n });\r\n };\r\n SetDataSettingsModalController.prototype.cancel = function () {\r\n this.treeItemService.rejectChanges();\r\n this.dismissModal(false);\r\n };\r\n return SetDataSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.SetDataSettingsModalController = SetDataSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('SetDataSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', \"workflowService\", \"treeService\", \"treeItemService\", 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ISetDataSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.SetDataWorkflowBlock;\r\n isReadonly: boolean;\r\n processConfigId: string;\r\n\r\n addSetDataOperation(): void;\r\n deleteSetDataOperation(dto: Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto): void;\r\n save(): void;\r\n cancel(): void;\r\n }\r\n\r\n export class SetDataSettingsModalController extends BaseModalController {\r\n scope: ISetDataSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: ISetDataSettingsModalControllerScope,\r\n workflowBlock: models.SetDataWorkflowBlock,\r\n processConfigId: string,\r\n private workflowService: services.WorkflowService,\r\n private treeService: services.TreeService,\r\n private treeItemService: services.TreeItemService,\r\n isReadonly: boolean,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.processConfigId = processConfigId;\r\n\r\n this.scope.addSetDataOperation = () => this.addSetDataOperation();\r\n this.scope.deleteSetDataOperation = (dto: Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto) => this.deleteSetDataOperation(dto);\r\n this.scope.save = () => this.save();\r\n this.scope.cancel = () => this.cancel();\r\n }\r\n\r\n private addSetDataOperation(): void {\r\n var newSetDataOperation = this.workflowService.createNewDataOperation(this.scope.workflowBlock.setDataDto);\r\n }\r\n\r\n private deleteSetDataOperation(dto: Wars.Domain.Model.Dtos.Workflow.SetDataOperationDto): void {\r\n this.scope.workflowBlock.setDataDto.mySetDataOperations.remove(dto);\r\n }\r\n\r\n private save(): void {\r\n // Save all tree item changes that are handled via breeze before trying to save workflow block changes which are all non-breeze\r\n this.treeItemService.saveAllChanges( () => {\r\n this.dismissModal(true);\r\n });\r\n }\r\n\r\n private cancel(): void {\r\n this.treeItemService.rejectChanges();\r\n this.dismissModal(false);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('SetDataSettingsModalController',\r\n ['$scope', 'workflowBlock', 'processConfigId', \"workflowService\", \"treeService\", \"treeItemService\", 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var StateSettingsModalController = /** @class */ (function (_super) {\r\n __extends(StateSettingsModalController, _super);\r\n function StateSettingsModalController($scope, workflowBlock, processConfigId, isReadonly, workflowService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.processConfigId = processConfigId;\r\n _this.scope.openOutputOrderModal = function () {\r\n workflowService.showOutputOrderModal(_this.scope.workflowBlock, _this.scope.isReadonly);\r\n };\r\n return _this;\r\n }\r\n return StateSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.StateSettingsModalController = StateSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('StateSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'workflowService', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IStateSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.StateWorkflowBlock;\r\n isReadonly: boolean;\r\n openOutputOrderModal: () => void;\r\n }\r\n\r\n export class StateSettingsModalController extends BaseModalController {\r\n scope: IStateSettingsModalControllerScope;\r\n private processConfigId: string;\r\n\r\n constructor(\r\n $scope: IStateSettingsModalControllerScope,\r\n workflowBlock: models.StateWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean,\r\n workflowService: services.WorkflowService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n \r\n this.processConfigId = processConfigId;\r\n\r\n\r\n this.scope.openOutputOrderModal = () => {\r\n workflowService.showOutputOrderModal(this.scope.workflowBlock, this.scope.isReadonly);\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('StateSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'workflowService', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var StatusChangeSettingsModalController = /** @class */ (function (_super) {\r\n __extends(StatusChangeSettingsModalController, _super);\r\n function StatusChangeSettingsModalController($scope, workflowService, processConfigId, workflowBlock, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n workflowService.getStatuses(processConfigId).then(function (statusGroupsDto) {\r\n _this.scope.dropDownOptions = Enumerable.from(statusGroupsDto.statusGroups).where(function (i) { return i.id !== workflowBlock.statusChangeDto.currentStatusCodeId; }).toArray();\r\n });\r\n return _this;\r\n }\r\n return StatusChangeSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.StatusChangeSettingsModalController = StatusChangeSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('StatusChangeSettingsModalController', ['$scope', 'workflowService', 'processConfigId', 'workflowBlock', 'isReadonly', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IStatusChangeSettingsModalControllerScope extends IBaseModalControllerScope {\r\n processConfigId: string;\r\n workflowBlock: models.IWorkflowBlock;\r\n isReadonly: boolean;\r\n dropDownOptions: Wars.Domain.Model.Dtos.Workflow.StatusDto[];\r\n }\r\n\r\n export class StatusChangeSettingsModalController extends BaseModalController {\r\n scope: IStatusChangeSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: IStatusChangeSettingsModalControllerScope,\r\n workflowService: services.WorkflowService,\r\n processConfigId: string,\r\n workflowBlock: models.StatusChangeWorkflowBlock,\r\n isReadonly: boolean,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n\r\n workflowService.getStatuses(processConfigId).then((statusGroupsDto) => {\r\n this.scope.dropDownOptions = Enumerable.from(statusGroupsDto.statusGroups).where(i => i.id !== workflowBlock.statusChangeDto.currentStatusCodeId).toArray();\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('StatusChangeSettingsModalController', ['$scope', 'workflowService', 'processConfigId', 'workflowBlock', 'isReadonly', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var SystemActionSettingsModalController = /** @class */ (function (_super) {\r\n __extends(SystemActionSettingsModalController, _super);\r\n function SystemActionSettingsModalController($scope, systemLevelService, processConfigurationService, workflowBlock, processConfigId, processActionId, isReadonly, workflowService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n systemLevelService.getSystemLevelSystemActions().then(function (systemLevel) {\r\n _this.scope.systemActions = systemLevel.mySystemActions;\r\n });\r\n processConfigurationService.getProcessSchemaProperties(processConfigId).then(function (processSchemaProperties) {\r\n _this.scope.processSchemaProperties = processSchemaProperties;\r\n });\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.openOutputOrderModal = function () {\r\n workflowService.showOutputOrderModal(_this.scope.workflowBlock, _this.scope.isReadonly);\r\n };\r\n return _this;\r\n }\r\n return SystemActionSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.SystemActionSettingsModalController = SystemActionSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('SystemActionSettingsModalController', ['$scope', 'systemLevelService', \"processConfigurationService\", 'workflowBlock', 'processConfigId', 'processActionId', 'isReadonly', 'workflowService', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ISystemActionSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.IWorkflowBlock;\r\n systemActions: Wars.Domain.Model.SystemAction[];\r\n processSchemaProperties: Wars.Domain.Model.SchemaProperty[];\r\n processActionId: string,\r\n isReadonly: boolean;\r\n openOutputOrderModal: () => void;\r\n }\r\n\r\n export class SystemActionSettingsModalController extends BaseModalController {\r\n scope: ISystemActionSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: ISystemActionSettingsModalControllerScope,\r\n systemLevelService: services.SystemLevelService,\r\n processConfigurationService: services.ProcessConfigurationService,\r\n workflowBlock: models.SystemActionWorkflowBlock,\r\n processConfigId: string,\r\n processActionId: string,\r\n isReadonly: boolean,\r\n workflowService: services.WorkflowService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n systemLevelService.getSystemLevelSystemActions().then(\r\n (systemLevel) => {\r\n this.scope.systemActions = systemLevel.mySystemActions;\r\n });\r\n processConfigurationService.getProcessSchemaProperties(processConfigId).then(\r\n (processSchemaProperties) => {\r\n this.scope.processSchemaProperties = processSchemaProperties;\r\n });\r\n\r\n this.scope.isReadonly = isReadonly;\r\n\r\n this.scope.openOutputOrderModal = () => {\r\n workflowService.showOutputOrderModal(this.scope.workflowBlock, this.scope.isReadonly);\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('SystemActionSettingsModalController',\r\n ['$scope', 'systemLevelService', \"processConfigurationService\", 'workflowBlock', 'processConfigId', 'processActionId', 'isReadonly', 'workflowService', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var UserActionSettingsModalController = /** @class */ (function (_super) {\r\n __extends(UserActionSettingsModalController, _super);\r\n function UserActionSettingsModalController($scope, $q, securityMatrixService, workflowService, formService, workflowBlock, processConfigId, isReadonly, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.buttonNameSameAsWorkflowBlockName = workflowBlock.userActionDto.name === workflowBlock.userActionDto.buttonLabel;\r\n _this.scope.nameChanged = function () { return _this.nameChanged(); };\r\n _this.scope.addNewFormValidation = function () { return _this.addNewFormValidation(); };\r\n _this.scope.deleteFormValidation = function (dto) { return _this.deleteFormValidation(dto); };\r\n _this.scope.placementFormChanged = function () { return _this.placementFormChanged(); };\r\n formService.getProcessConfigurationFormsWithSections(_this.scope.processConfigId).then(function (forms) {\r\n _this.scope.forms = forms;\r\n _this.scope.placementForm = Enumerable.from(forms).singleOrDefault(function (i) { return i.id === _this.scope.workflowBlock.userActionDto.userActionPlacementFormId; });\r\n _this.loadFormSections();\r\n });\r\n $q.all([\r\n securityMatrixService.fetchById(workflowBlock.userActionDto.securityMatrixId, \"SecurityMatrix\").then(function (securityMatrix) { return _this.scope.securityMatrix = securityMatrix; }),\r\n securityMatrixService.fetchById(workflowBlock.userActionDto.backdatingSecurityMatrixId, \"SecurityMatrix\").then(function (backdatingSecurityMatrix) { return _this.scope.backdatingSecurityMatrix = backdatingSecurityMatrix; }),\r\n securityMatrixService.fetchById(workflowBlock.userActionDto.futureDatingSecurityMatrixId, \"SecurityMatrix\").then(function (futureDatingSecurityMatrix) { return _this.scope.futureDatingSecurityMatrix = futureDatingSecurityMatrix; })\r\n ])\r\n .then(function () { return _this.scope.securityMatrixInfoLoaded = true; });\r\n return _this;\r\n }\r\n UserActionSettingsModalController.prototype.nameChanged = function () {\r\n if (this.scope.buttonNameSameAsWorkflowBlockName)\r\n this.scope.workflowBlock.userActionDto.buttonLabel = this.scope.workflowBlock.userActionDto.name;\r\n };\r\n UserActionSettingsModalController.prototype.placementFormChanged = function () {\r\n this.scope.workflowBlock.userActionDto.userActionPlacementFormId = this.scope.placementForm ? this.scope.placementForm.id : undefined;\r\n this.loadFormSections();\r\n };\r\n UserActionSettingsModalController.prototype.addNewFormValidation = function () {\r\n this.scope.workflowBlock.userActionDto.myFormValidations.push({});\r\n };\r\n UserActionSettingsModalController.prototype.deleteFormValidation = function (dto) {\r\n this.scope.workflowBlock.userActionDto.myFormValidations.remove(dto);\r\n };\r\n UserActionSettingsModalController.prototype.loadFormSections = function () {\r\n if (this.scope.placementForm) {\r\n if (this.scope.placementForm.formType === 2 /* Manage */) {\r\n this.scope.workflowBlock.userActionDto.userActionPlacementFormSectionId = undefined;\r\n this.scope.formSections = [];\r\n this.scope.manageSections = this.scope.placementForm.myManageSections;\r\n }\r\n else {\r\n this.scope.workflowBlock.userActionDto.userActionPlacementManageSectionId = undefined;\r\n this.scope.formSections = Enumerable.from(this.scope.placementForm.mySteps).selectMany(function (i) { return i.formSections; }).toArray();\r\n this.scope.manageSections = [];\r\n }\r\n }\r\n else {\r\n this.scope.formSections = [];\r\n this.scope.manageSections = [];\r\n }\r\n };\r\n return UserActionSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.UserActionSettingsModalController = UserActionSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('UserActionSettingsModalController', [\r\n '$scope', '$q', 'securityMatrixService', 'workflowService', 'formService', 'workflowBlock',\r\n 'processConfigId', 'isReadonly', 'close'\r\n]);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IUserActionSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.UserActionWorkflowBlock;\r\n processConfigId: string;\r\n isReadonly: boolean;\r\n buttonNameSameAsWorkflowBlockName: boolean;\r\n nameChanged(): void;\r\n placementFormChanged(): void ;\r\n placementForm: Wars.Domain.Model.Form;\r\n securityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n backdatingSecurityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n futureDatingSecurityMatrix: Wars.Domain.Model.SecurityMatrix;\r\n securityMatrixInfoLoaded: boolean;\r\n backdatingSecurityMatrixInfoLoaded: boolean;\r\n forms: Wars.Domain.Model.Form[];\r\n formSections: Wars.Domain.Model.FormSection[];\r\n manageSections: Wars.Domain.Model.ManageSection[];\r\n addNewFormValidation(): void;\r\n deleteFormValidation(dto: Wars.Domain.Model.Dtos.Workflow.FormValidationDto) : void;\r\n}\r\n\r\n export class UserActionSettingsModalController extends BaseModalController {\r\n scope: IUserActionSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: IUserActionSettingsModalControllerScope,\r\n $q: angular.IQService,\r\n securityMatrixService: services.SecurityMatrixService,\r\n workflowService: services.WorkflowService,\r\n formService: services.FormService,\r\n workflowBlock: models.UserActionWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.processConfigId = processConfigId;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.buttonNameSameAsWorkflowBlockName = workflowBlock.userActionDto.name === workflowBlock.userActionDto.buttonLabel;\r\n\r\n this.scope.nameChanged = () => this.nameChanged();\r\n this.scope.addNewFormValidation = () => this.addNewFormValidation();\r\n this.scope.deleteFormValidation = (dto: Wars.Domain.Model.Dtos.Workflow.FormValidationDto) => this.deleteFormValidation(dto);\r\n \r\n this.scope.placementFormChanged = () => this.placementFormChanged();\r\n\r\n formService.getProcessConfigurationFormsWithSections(this.scope.processConfigId).then((forms) => {\r\n this.scope.forms = forms;\r\n this.scope.placementForm = Enumerable.from(forms).singleOrDefault(i => i.id === this.scope.workflowBlock.userActionDto.userActionPlacementFormId);\r\n this.loadFormSections();\r\n });\r\n\r\n $q.all(\r\n [\r\n securityMatrixService.fetchById(workflowBlock.userActionDto.securityMatrixId, \"SecurityMatrix\").then((securityMatrix) => this.scope.securityMatrix = securityMatrix),\r\n securityMatrixService.fetchById(workflowBlock.userActionDto.backdatingSecurityMatrixId, \"SecurityMatrix\").then((backdatingSecurityMatrix) => this.scope.backdatingSecurityMatrix = backdatingSecurityMatrix),\r\n securityMatrixService.fetchById(workflowBlock.userActionDto.futureDatingSecurityMatrixId, \"SecurityMatrix\").then((futureDatingSecurityMatrix) => this.scope.futureDatingSecurityMatrix = futureDatingSecurityMatrix)\r\n ])\r\n .then(() => this.scope.securityMatrixInfoLoaded = true);\r\n }\r\n\r\n public nameChanged(): void {\r\n if (this.scope.buttonNameSameAsWorkflowBlockName) this.scope.workflowBlock.userActionDto.buttonLabel = this.scope.workflowBlock.userActionDto.name;\r\n }\r\n\r\n public placementFormChanged() : void {\r\n this.scope.workflowBlock.userActionDto.userActionPlacementFormId = this.scope.placementForm ? this.scope.placementForm.id : undefined;\r\n this.loadFormSections();\r\n }\r\n\r\n public addNewFormValidation(): void {\r\n this.scope.workflowBlock.userActionDto.myFormValidations.push({});\r\n }\r\n\r\n public deleteFormValidation(dto: Wars.Domain.Model.Dtos.Workflow.FormValidationDto): void {\r\n this.scope.workflowBlock.userActionDto.myFormValidations.remove(dto);\r\n }\r\n\r\n private loadFormSections(): void {\r\n if (this.scope.placementForm) {\r\n if (this.scope.placementForm.formType === Wars.Domain.Model.Codes.Enums.FormType.Manage) {\r\n this.scope.workflowBlock.userActionDto.userActionPlacementFormSectionId = undefined;\r\n this.scope.formSections = [];\r\n this.scope.manageSections = this.scope.placementForm.myManageSections;\r\n } else {\r\n this.scope.workflowBlock.userActionDto.userActionPlacementManageSectionId = undefined;\r\n this.scope.formSections = Enumerable.from(this.scope.placementForm.mySteps).selectMany(i => i.formSections).toArray();\r\n this.scope.manageSections = [];\r\n }\r\n } else {\r\n this.scope.formSections = [];\r\n this.scope.manageSections = [];\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('UserActionSettingsModalController',\r\n [\r\n '$scope', '$q', 'securityMatrixService', 'workflowService', 'formService', 'workflowBlock',\r\n 'processConfigId', 'isReadonly', 'close'\r\n ]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var ValidateSettingsModalController = /** @class */ (function (_super) {\r\n __extends(ValidateSettingsModalController, _super);\r\n function ValidateSettingsModalController($scope, workflowBlock, processConfigId, isReadonly, conditionService, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.workflowBlock = workflowBlock;\r\n _this.scope.isReadonly = isReadonly;\r\n _this.scope.processConfigId = processConfigId;\r\n _this.scope.addNewCondition = function () { return _this.addNewCondition(); };\r\n _this.scope.deleteCondition = function (index) { return _this.deleteCondition(index); };\r\n conditionService.getAllConditions(processConfigId).then(function (conditions) { return _this.scope.conditions = conditions; });\r\n return _this;\r\n }\r\n ValidateSettingsModalController.prototype.addNewCondition = function () {\r\n this.scope.workflowBlock.validateDto.conditionIds.push(undefined);\r\n };\r\n ValidateSettingsModalController.prototype.deleteCondition = function (index) {\r\n this.scope.workflowBlock.validateDto.conditionIds.splice(index, 1);\r\n };\r\n return ValidateSettingsModalController;\r\n }(controllers.BaseModalController));\r\n controllers.ValidateSettingsModalController = ValidateSettingsModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('ValidateSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'conditionService', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IValidateSettingsModalControllerScope extends IBaseModalControllerScope {\r\n workflowBlock: models.ValidateWorkflowBlock;\r\n processConfigId: string;\r\n isReadonly: boolean;\r\n conditions: Wars.Domain.Model.Conditions.Condition[];\r\n addNewCondition(): void;\r\n deleteCondition(index: number): void;\r\n }\r\n\r\n export class ValidateSettingsModalController extends BaseModalController {\r\n scope: IValidateSettingsModalControllerScope;\r\n\r\n constructor(\r\n $scope: IValidateSettingsModalControllerScope,\r\n workflowBlock: models.ValidateWorkflowBlock,\r\n processConfigId: string,\r\n isReadonly: boolean,\r\n conditionService: services.ConditionService,\r\n close: any)\r\n {\r\n super($scope, close);\r\n this.scope = $scope;\r\n\r\n this.scope.workflowBlock = workflowBlock;\r\n this.scope.isReadonly = isReadonly;\r\n this.scope.processConfigId = processConfigId;\r\n this.scope.addNewCondition = () => this.addNewCondition();\r\n this.scope.deleteCondition = (index) => this.deleteCondition(index);\r\n\r\n conditionService.getAllConditions(processConfigId).then((conditions) => this.scope.conditions = conditions);\r\n }\r\n\r\n private addNewCondition() : void {\r\n this.scope.workflowBlock.validateDto.conditionIds.push(undefined);\r\n }\r\n\r\n private deleteCondition(index: number) {\r\n this.scope.workflowBlock.validateDto.conditionIds.splice(index, 1);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ValidateSettingsModalController', ['$scope', 'workflowBlock', 'processConfigId', 'isReadonly', 'conditionService', 'close']);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var controllers;\r\n (function (controllers) {\r\n var YesNoOutputSelectionModalController = /** @class */ (function (_super) {\r\n __extends(YesNoOutputSelectionModalController, _super);\r\n function YesNoOutputSelectionModalController($scope, addContext, close) {\r\n var _this = _super.call(this, $scope, close) || this;\r\n _this.scope = $scope;\r\n _this.scope.addContext = addContext;\r\n return _this;\r\n }\r\n return YesNoOutputSelectionModalController;\r\n }(controllers.BaseModalController));\r\n controllers.YesNoOutputSelectionModalController = YesNoOutputSelectionModalController;\r\n })(controllers = warsApp.controllers || (warsApp.controllers = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerController('YesNoOutputSelectionModalController', ['$scope', 'addContext', 'close']);\r\n","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface IYesNoOutputSelectionModalControllerScope extends IBaseModalControllerScope {\r\n addContext: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockAddInBetweenContextDto;\r\n }\r\n\r\n export class YesNoOutputSelectionModalController extends BaseModalController {\r\n scope: IYesNoOutputSelectionModalControllerScope;\r\n\r\n constructor($scope: IYesNoOutputSelectionModalControllerScope, addContext: Wars.Domain.Model.Dtos.Workflow.WorkflowBlockAddInBetweenContextDto, close: any) {\r\n super($scope, close);\r\n this.scope = $scope;\r\n this.scope.addContext = addContext;\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('YesNoOutputSelectionModalController', ['$scope', 'addContext', 'close']);","/// \r\nmodule warsApp.controllers {\r\n export interface INotificationSubscriptionsScope extends angular.IScope {\r\n model: models.NotificationSubscriptionsModel;\r\n }\r\n\r\n export class NotificationSubscriptionsController implements IController {\r\n\r\n constructor(\r\n private scope: INotificationSubscriptionsScope,\r\n growl: angular.growl.IGrowlService,\r\n userService: services.UserService,\r\n emailService: services.EmailService) {\r\n this.scope.model = new models.NotificationSubscriptionsModel(\r\n scope,\r\n growl,\r\n userService,\r\n emailService\r\n );\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('NotificationSubscriptionsController', ['$scope', 'growl', 'userService', 'emailService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IObjectQueryScope extends angular.IScope {\r\n model: models.ObjectQueryModel\r\n }\r\n\r\n export class ObjectQueryController implements IController {\r\n\r\n constructor(\r\n private scope: IObjectQueryScope,\r\n qService: angular.IQService,\r\n growl: angular.growl.IGrowlService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n systemLevelService: services.SystemLevelService,\r\n treeService: services.TreeService,\r\n objectQueryService: services.ObjectQueryService) {\r\n this.scope.model = new models.ObjectQueryModel(scope, qService, growl, $routeParams, systemLevelService, treeService, objectQueryService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"ObjectQueryController\", [\"$scope\", \"$q\", \"growl\", \"$routeParams\", \"systemLevelService\", \"treeService\", \"objectQueryService\"]);","/// \r\nmodule warsApp.controllers {\r\n export interface IObjectQueryFormScope extends angular.IScope {\r\n model: models.ObjectQueryFormModel\r\n }\r\n\r\n export class ObjectQueryFormController implements IController {\r\n\r\n constructor(\r\n private scope: IObjectQueryFormScope,\r\n qService: angular.IQService,\r\n growl: angular.growl.IGrowlService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n systemLevelService: services.SystemLevelService,\r\n treeService: services.TreeService,\r\n objectQueryService: services.ObjectQueryService) {\r\n this.scope.model = new models.ObjectQueryFormModel(scope, qService, growl, $routeParams, systemLevelService, treeService, objectQueryService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"ObjectQueryFormController\", [\"$scope\", \"$q\", \"growl\", \"$routeParams\", \"systemLevelService\", \"treeService\", \"objectQueryService\"]);","/// \r\nmodule warsApp.controllers {\r\n export interface IPaymentWindowScope extends angular.IScope {\r\n model: models.PaymentWindowModel\r\n }\r\n\r\n\r\n export class PaymentWindowController implements IController {\r\n constructor(\r\n $scope: IPaymentWindowScope,\r\n $routeParams: ng.route.IRouteParamsService,\r\n $window: ng.IWindowService,\r\n paymentService: services.PaymentService)\r\n {\r\n var processId = $routeParams[\"processId\"];\r\n var paymentConfigId = $routeParams[\"paymentConfigId\"];\r\n \r\n $scope.model = new models.PaymentWindowModel($window, paymentService, processId, paymentConfigId);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"PaymentWindowController\", [\"$scope\", \"$routeParams\", \"$window\", \"paymentService\"]);","/// \r\n//# sourceMappingURL=FormController.js.map","/// \r\nmodule warsApp.controllers {\r\n export interface IProcessScope extends angular.IScope {\r\n model: models.ProcessModel\r\n }\r\n\r\n export class ProcessController implements IController {\r\n constructor(\r\n private scope: IProcessScope,\r\n $location: angular.ILocationService,\r\n processTypeService: services.ProcessTypeService,\r\n cacheConfigurationService: services.ConfigurationCacheService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n processService: services.ProcessService,\r\n modalService: any, formDataService: services.FormDataService,\r\n signalRService: services.SignalrService,\r\n growl: angular.growl.IGrowlService, conditionService: services.ConditionService,\r\n userService: services.UserService, apiActionService: services.ApiActionService,\r\n processValidationService: services.ProcessValidationService,\r\n $window:angular.IWindowService)\r\n {\r\n var processTypeId = $routeParams[\"id\"];\r\n var processId = $routeParams[\"processId\"];\r\n var formContainerUniqueId = $routeParams[\"formContainerUniqueId\"];\r\n var formDataId = $routeParams[\"formDataId\"];\r\n var parentFormDataId = $routeParams[\"parentFormDataId\"];\r\n var parentFormId = $routeParams[\"parentFormId\"];\r\n var parentFormName = $routeParams[\"parentFormName\"];\r\n\r\n this.scope.model = new models.ProcessModel(\r\n $location,\r\n processTypeId,\r\n processId,\r\n processTypeService,\r\n processService,\r\n cacheConfigurationService,\r\n modalService,\r\n formDataService,\r\n signalRService,\r\n growl,\r\n conditionService,\r\n userService,\r\n scope,\r\n apiActionService,\r\n processValidationService,\r\n $window,\r\n formContainerUniqueId,\r\n formDataId,\r\n parentFormId,\r\n parentFormDataId,\r\n parentFormName);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ProcessController', [ '$scope', '$location', 'processTypeService', 'configurationCacheService', '$routeParams', 'processService', \r\n'ModalService','formDataService','signalrService','growl','conditionService','userService','apiActionService','processValidationService','$window']);","/// \r\nmodule warsApp.controllers {\r\n export interface IReportProcessScope extends angular.IScope {\r\n model: models.ReportProcessModel\r\n }\r\n\r\n export class ReportProcessController implements IController {\r\n constructor(\r\n private scope: IReportProcessScope,\r\n $location: angular.ILocationService,\r\n $rootScope: angular.IRootScopeService,\r\n $filter: angular.IFilterService,\r\n localStorageService: any,\r\n processTypeService: services.ProcessTypeService,\r\n cacheConfigurationService: services.ConfigurationCacheService,\r\n $routeParams: angular.route.IRouteParamsService,\r\n processService: services.ProcessService,\r\n modalService: any, formDataService: services.FormDataService,\r\n signalRService: services.SignalrService,\r\n growl: angular.growl.IGrowlService, conditionService: services.ConditionService,\r\n userService: services.UserService,\r\n objectQueryService: services.ObjectQueryService) {\r\n var processTypeId = $routeParams[\"id\"];\r\n var processId = $routeParams[\"processId\"];\r\n var formId = $routeParams[\"formId\"];\r\n var formDataId = $routeParams[\"formDataId\"];\r\n var parentFormDataId = $routeParams[\"parentFormDataId\"];\r\n var parentFormId = $routeParams[\"parentFormId\"];\r\n var parentFormName = $routeParams[\"parentFormName\"];\r\n\r\n this.scope.model = new models.ReportProcessModel(\r\n $location,\r\n $rootScope,\r\n $filter,\r\n localStorageService,\r\n processTypeId,\r\n processId,\r\n processTypeService,\r\n processService,\r\n cacheConfigurationService,\r\n modalService, formDataService, signalRService, growl, conditionService, userService, objectQueryService, scope, formId, formDataId, parentFormId, parentFormDataId, parentFormName);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('ReportProcessController', ['$scope', '$location', '$rootScope', '$filter', 'localStorageService', 'processTypeService', 'configurationCacheService', '$routeParams', 'processService', 'ModalService', 'formDataService', 'signalrService', 'growl', 'conditionService', 'userService', 'objectQueryService']);","/// \r\nmodule warsApp.controllers {\r\n export interface IQueryConfigurationScope extends angular.IScope {\r\n model: models.QueryConfigurationModel\r\n }\r\n\r\n\r\n export class QueryConfigurationController implements IController {\r\n constructor(\r\n private scope: IQueryConfigurationScope,\r\n queryConfigurationService: services.QueryConfigurationService,\r\n systemLevelService: services.SystemLevelService,\r\n dataSourceService: services.DataSourceService,\r\n treeService: services.TreeService, \r\n tagService: services.TagService,\r\n $q: angular.IQService,\r\n $routeParams: angular.route.IRouteParamsService)\r\n {\r\n var id = null;\r\n if ($routeParams[\"id\"]){\r\n id = $routeParams[\"id\"];\r\n }\r\n\r\n this.scope.model = new models.QueryConfigurationModel(queryConfigurationService, systemLevelService, treeService, tagService, $q, id);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('QueryConfigurationController', [\r\n '$scope', 'queryConfigurationService', 'systemLevelService', 'dataSourceService', 'treeService', 'tagService', '$q', '$routeParams'\r\n]);","/// \r\nmodule warsApp.controllers {\r\n\r\n export interface ISiteConfigurationScope extends angular.IScope {\r\n model: models.SiteConfigurationModel;\r\n }\r\n\r\n export class SiteConfigurationController implements IController {\r\n scope: ISiteConfigurationScope;\r\n\r\n constructor(\r\n $scope: ISiteConfigurationScope,\r\n siteConfigurationService: warsApp.services.SiteConfigurationService,\r\n contentPageService: warsApp.services.ContentPageService,\r\n $routeParams: angular.route.IRouteParamsService)\r\n {\r\n this.scope = $scope;\r\n this.scope.model = new models.SiteConfigurationModel(siteConfigurationService, contentPageService);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('SiteConfigurationController', ['$scope', 'siteConfigurationService', 'contentPageService', '$routeParams']);","/// \r\nmodule warsApp.controllers {\r\n export interface ICleanDatabaseScope extends angular.IScope {\r\n cleanDatabase() : void\r\n }\r\n\r\n export class CleanDatabaseController implements IController {\r\n private scope: ICleanDatabaseScope;\r\n private $http: ng.IHttpService;\r\n\r\n constructor(\r\n scope: ICleanDatabaseScope,\r\n $http: ng.IHttpService)\r\n {\r\n this.scope = scope;\r\n this.$http = $http;\r\n this.scope.cleanDatabase = () => this.cleanDatabase();\r\n }\r\n\r\n private cleanDatabase(): void {\r\n this.$http.get('./api/Test/CleanDatabase')\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('CleanDatabaseController', ['$scope', '$http']);","/// \r\nmodule warsApp.controllers {\r\n export interface IUserAdministrationScope extends angular.IScope {\r\n model: models.UserAdministrationModel\r\n }\r\n\r\n\r\n export class UserAdministrationController implements IController {\r\n constructor(\r\n private scope: IUserAdministrationScope,\r\n private filter: angular.IFilterService,\r\n private userAdministrationService : services.UserAdministrationService,\r\n private userService: services.UserService) {\r\n this.scope.model = new models.UserAdministrationModel(userAdministrationService, userService, filter);\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController('UserAdministrationController', ['$scope', '$filter', 'userAdministrationService', 'userService']);","'use strict';\r\napp.controller('associateController', ['$scope', '$location','$timeout','authService', function ($scope, $location, $timeout, authService) {\r\n\r\n $scope.savedSuccessfully = false;\r\n $scope.message = \"\";\r\n\r\n $scope.registerData = {\r\n userName: authService.externalAuthData.userName,\r\n provider: authService.externalAuthData.provider,\r\n externalAccessToken: authService.externalAuthData.externalAccessToken,\r\n emailAddress: authService.externalAuthData.emailAddress,\r\n familyName: authService.externalAuthData.familyName,\r\n givenName: authService.externalAuthData.givenName,\r\n imageUrl: authService.externalAuthData.imageUrl\r\n };\r\n var startTimer = function () {\r\n var timer = $timeout(function () {\r\n $timeout.cancel(timer);\r\n if (authService.redirectUrl) {\r\n $location.path(authService.redirectUrl);\r\n authService.redirectUrl = undefined;\r\n } else {\r\n $location.path('/home');\r\n }\r\n }, 2000);\r\n };\r\n $scope.registerExternal = function () {\r\n\r\n authService.registerExternal($scope.registerData).then(function (response) {\r\n $scope.savedSuccessfully = true;\r\n $scope.message = \"User has been registered successfully, you will be redirected to the main application page in 2 seconds.\";\r\n startTimer();\r\n },\r\n function (response) {\r\n var errors = [];\r\n for (var key in response.modelState) {\r\n if (response.modelState.hasOwnProperty(key)) {\r\n errors.push(response.modelState[key]);\r\n }\r\n }\r\n $scope.message = \"Failed to register user due to:\" + errors.join(' ');\r\n });\r\n };\r\n}]);","\"use strict\";\r\napp.controller('loginController',\r\n [\"$scope\", \"$rootScope\", \"$location\", \"$http\", \"$routeParams\", \"authService\", \"ngAuthSettings\", \"signalrService\",\r\n function ($scope, $rootScope, $location, $http, $routeParams, authService, ngAuthSettings, signalrService)\r\n {\r\n $scope.message = \"\";\r\n $scope.providerConfiguration = undefined;\r\n $scope.hasProviderConfiguration = false;\r\n $http.get(\"./api/Authenticate/ProviderConfiguration\").success(function (result) {\r\n $scope.providerConfiguration = result;\r\n $scope.hasProviderConfiguration =\r\n $scope.providerConfiguration != undefined\r\n && $scope.providerConfiguration != null\r\n && $scope.providerConfiguration.configuration != undefined\r\n && $scope.providerConfiguration.configuration != null\r\n && $scope.providerConfiguration.configuration.authenticationTypes != undefined\r\n && $scope.providerConfiguration.configuration.authenticationTypes != null\r\n && $scope.providerConfiguration.configuration.authenticationTypes.length > 0;\r\n });\r\n $scope.authExternalProvider = function (provider) {\r\n var serviceBase = ngAuthSettings.apiServiceBaseUri;\r\n var redirectUri = serviceBase + \"authcomplete.html\";\r\n redirectUri = encodeURIComponent(redirectUri);\r\n var externalProviderUrl = serviceBase + \"api/Account/ExternalLogin?provider=\" + provider + \"&response_type=token&client_id=\" + ngAuthSettings.clientId + \"&redirect_uri=\" + redirectUri;\r\n window.$windowScope = $scope;\r\n var oauthWindow = window.open(externalProviderUrl, \"Authenticate Account\", \"location=0,status=0,width=600,height=750\");\r\n };\r\n $scope.login = function(provider) {\r\n $http.get(\"./api/Authenticate/SignIn?provider=\" + provider).success(function(result) {\r\n window.location = result;\r\n });\r\n }\r\n $scope.authCompletedCB = function (fragment) {\r\n $scope.$apply(function () {\r\n var externalData = { provider: fragment.provider, externalAccessToken: fragment.external_access_token };\r\n authService.obtainAccessToken(externalData).then(function(response) {\r\n var data = {\r\n afterSignInPath: authService.redirectUrl ? authService.redirectUrl : \"/home\"\r\n };\r\n authService.redirectUrl = undefined;\r\n $rootScope.$broadcast(\"userAuthenticated\", data);\r\n }, function(err) {\r\n $scope.message = err.error_description;\r\n });\r\n });\r\n }\r\n\r\n // TODO: Remove this when done testing without internet\r\n //var redirectUrl = authService.redirectUrl ? authService.redirectUrl : \"/home\";\r\n //authService.obtainAccessTokenAutoSignInAsCody().then(() => $location.path(redirectUrl));\r\n}]);","'use strict';\r\napp.controller('signupController', ['$scope', '$location', '$timeout', 'authService', function ($scope, $location, $timeout, authService) {\r\n\r\n $scope.savedSuccessfully = false;\r\n $scope.message = \"\";\r\n\r\n $scope.registration = {\r\n userName: \"\",\r\n password: \"\",\r\n confirmPassword: \"\"\r\n };\r\n\r\n $scope.signUp = function () {\r\n\r\n authService.saveRegistration($scope.registration).then(function (response) {\r\n\r\n $scope.savedSuccessfully = true;\r\n $scope.message = \"User has been registered successfully, you will be redirected to login page in 2 seconds.\";\r\n startTimer();\r\n\r\n },\r\n function (response) {\r\n var errors = [];\r\n for (var key in response.data.modelState) {\r\n for (var i = 0; i < response.data.modelState[key].length; i++) {\r\n errors.push(response.data.modelState[key][i]);\r\n }\r\n }\r\n $scope.message = \"Failed to register user due to:\" + errors.join(' ');\r\n });\r\n };\r\n\r\n var startTimer = function () {\r\n var timer = $timeout(function () {\r\n $timeout.cancel(timer);\r\n $location.path('/login');\r\n }, 2000);\r\n }\r\n\r\n}]);","'use strict';\r\napp.controller('tokensManagerController', ['$scope', 'tokensManagerService', function ($scope, tokensManagerService) {\r\n\r\n $scope.refreshTokens = [];\r\n\r\n tokensManagerService.getRefreshTokens().then(function (results) {\r\n\r\n $scope.refreshTokens = results.data;\r\n\r\n }, function (error) {\r\n alert(error.data.message);\r\n });\r\n\r\n $scope.deleteRefreshTokens = function (index, tokenid) {\r\n\r\n tokenid = window.encodeURIComponent(tokenid);\r\n\r\n tokensManagerService.deleteRefreshTokens(tokenid).then(function (results) {\r\n\r\n $scope.refreshTokens.splice(index, 1);\r\n\r\n }, function (error) {\r\n alert(error.data.message);\r\n });\r\n }\r\n}]);","'use strict';\r\napp.factory('authInterceptorService', ['$q', '$injector', '$location', '$rootScope', 'localStorageService', 'signalrService', 'growl',\r\n function ($q, $injector, $location, $rootScope, localStorageService, signalrService, growl) {\r\n\r\n var authInterceptorServiceFactory = {};\r\n\r\n var _request = function (config) {\r\n // HTML files are not secured do not add Authorization header and bearer token.\r\n if (config.url.endsWith(\".html\")||config.url.endsWith(\".js\")) return config;\r\n config.headers = config.headers || {};\r\n //add the connection ID to the request header so that server invoked static broadcasts can identify the connection ID of the caller\r\n //if the signalr connection is not connected, the header value will be an empty string\r\n config.headers.SIGNAL_R_CONNECTION_ID = signalrService.getConnectionId();\r\n var authData = localStorageService.get('authorizationData');\r\n if (authData) {\r\n config.headers.Authorization = 'Bearer ' + authData.token;\r\n }\r\n return config;\r\n }\r\n\r\n var _responseError = function (rejection) {\r\n if (rejection.status === 401) {\r\n var url = $location.url();\r\n localStorage.setItem('redirectAfterLogin', url.toString());\r\n $rootScope.$broadcast(\"userNotAuthorized\");\r\n growl.error('You must log in to complete this action. If you believe you were logged in it is possible your session expired.');\r\n }\r\n if (rejection.status === 403) {\r\n $location.url('/Unauthorized');\r\n }\r\n if (rejection.status === 404) {\r\n $location.url('/NotFound');\r\n }\r\n return $q.reject(rejection);\r\n }\r\n\r\n authInterceptorServiceFactory.request = _request;\r\n\r\n authInterceptorServiceFactory.responseError = _responseError;\r\n\r\n return authInterceptorServiceFactory;\r\n}]);","'use strict';\r\napp.factory('authService', ['$http', '$q', '$rootScope', 'localStorageService', 'ngAuthSettings', 'userService', function ($http, $q, $rootScope, localStorageService, ngAuthSettings, userService) {\r\n\r\n var serviceBase = ngAuthSettings.apiServiceBaseUri;\r\n var authServiceFactory = {};\r\n\r\n var _authentication = {\r\n isAuth: false,\r\n userName: \"\",\r\n isAdmin: false,\r\n isConfigurator: false,\r\n isMaintenanceAdmin: false,\r\n useRefreshTokens: false\r\n };\r\n\r\n var _externalAuthData = {\r\n provider: \"\",\r\n userName: \"\",\r\n externalAccessToken: \"\"\r\n };\r\n\r\n var _createLocalStorageObject = function(tokenResponse) {\r\n var localStorageData = new warsApp.models.User();\r\n localStorageData.token = tokenResponse.access_token;\r\n localStorageData.userId = tokenResponse.userId;\r\n localStorageData.userName = tokenResponse.userName;\r\n localStorageData.emailAddress = tokenResponse.emailAddress;\r\n localStorageData.firstName = tokenResponse.firstName;\r\n localStorageData.lastName = tokenResponse.lastName;\r\n localStorageData.imageUrl = tokenResponse.imageUrl;\r\n localStorageData.expires = tokenResponse[\".expires\"];\r\n localStorageData.isAdmin = tokenResponse.isAdmin;\r\n localStorageData.isConfigurator = tokenResponse.isConfigurator;\r\n localStorageData.isMaintenanceAdmin = tokenResponse.isMaintenanceAdmin;\r\n return localStorageData;\r\n }\r\n\r\n var _logOut = function () {\r\n localStorageService.remove('authorizationData');\r\n _authentication.isAuth = false;\r\n _authentication.isAdmin = false;\r\n _authentication.isConfigurator = false;\r\n _authentication.isMaintenanceAdmin = false;\r\n _authentication.userName = \"\";\r\n _authentication.useRefreshTokens = false;\r\n $rootScope.$broadcast(\"logOut\");\r\n };\r\n\r\n var _fillAuthData = function () {\r\n var authData = localStorageService.get('authorizationData');\r\n if (authData) {\r\n _authentication.isAuth = true;\r\n _authentication.isAdmin = authData.isAdmin;\r\n _authentication.isConfigurator = authData.isConfigurator;\r\n _authentication.isMaintenanceAdmin = authData.isMaintenanceAdmin;\r\n _authentication.userName = authData.userName;\r\n _authentication.useRefreshTokens = authData.useRefreshTokens;\r\n userService.setLoggedInUserId(authData.userId);\r\n }\r\n };\r\n\r\n var _providerLogin = function (token) {\r\n _logOut();\r\n var localStorageData = _createLocalStorageObject(token);\r\n localStorageData.refreshToken = \"\";\r\n localStorageData.useRefreshTokens = false;\r\n localStorageService.set('authorizationData', localStorageData);\r\n _authentication.isAuth = true;\r\n _authentication.isAdmin = token.isAdmin;\r\n _authentication.isConfigurator = token.isConfigurator;\r\n _authentication.isMaintenanceAdmin = token.isMaintenanceAdmin;\r\n _authentication.userName = token.userName;\r\n _authentication.useRefreshTokens = false;\r\n userService.setLoggedInUserId(token.userId);\r\n //_fillAuthData();\r\n }\r\n\r\n var _refreshToken = function () {\r\n var deferred = $q.defer();\r\n\r\n var authData = localStorageService.get('authorizationData');\r\n\r\n if (authData) {\r\n\r\n if (authData.useRefreshTokens) {\r\n\r\n var data = \"grant_type=refresh_token&refresh_token=\" + authData.refreshToken + \"&client_id=\" + ngAuthSettings.clientId;\r\n\r\n localStorageService.remove('authorizationData');\r\n\r\n $http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) {\r\n\r\n var localStorageData = _createLocalStorageObject(response);\r\n\r\n localStorageData.refreshToken = response.refresh_token;\r\n localStorageData.useRefreshTokens = true;\r\n\r\n localStorageService.set('authorizationData', localStorageData);\r\n\r\n deferred.resolve(response);\r\n\r\n }).error(function (err, status) {\r\n _logOut();\r\n deferred.reject(err);\r\n });\r\n }\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var _obtainAccessToken = function (externalData) {\r\n\r\n var deferred = $q.defer();\r\n\r\n $http.get(serviceBase + 'api/account/ObtainLocalAccessToken', { params: { provider: externalData.provider, externalAccessToken: externalData.externalAccessToken } }).success(function (response) {\r\n\r\n var localStorageData = _createLocalStorageObject(response);\r\n\r\n localStorageData.refreshToken = \"\";\r\n localStorageData.useRefreshTokens = false;\r\n\r\n localStorageService.set('authorizationData', localStorageData);\r\n\r\n _authentication.isAuth = true;\r\n _authentication.isAdmin = response.isAdmin;\r\n _authentication.isConfigurator = response.isConfigurator;\r\n _authentication.isMaintenanceAdmin = response.isMaintenanceAdmin;\r\n _authentication.userName = response.userName;\r\n _authentication.useRefreshTokens = false;\r\n userService.setLoggedInUserId(response.userId);\r\n\r\n deferred.resolve(response);\r\n\r\n }).error(function (err, status) {\r\n _logOut();\r\n deferred.reject(err);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n var _registerExternal = function (registerExternalData) {\r\n\r\n var deferred = $q.defer();\r\n\r\n $http.post(serviceBase + 'api/account/registerexternal', registerExternalData).success(function (response) {\r\n\r\n var localStorageData = _createLocalStorageObject(response);\r\n\r\n localStorageData.refreshToken = \"\";\r\n localStorageData.useRefreshTokens = false;\r\n\r\n localStorageService.set('authorizationData', localStorageData);\r\n\r\n _authentication.isAuth = true;\r\n _authentication.isAdmin = response.isAdmin;\r\n _authentication.isConfigurator = response.isConfigurator;\r\n _authentication.isMaintenanceAdmin = response.isMaintenanceAdmin;\r\n _authentication.userName = response.userName;\r\n _authentication.useRefreshTokens = false;\r\n userService.setLoggedInUserId(response.userId);\r\n\r\n deferred.resolve(response);\r\n\r\n }).error(function (err, status) {\r\n _logOut();\r\n deferred.reject(err);\r\n });\r\n\r\n return deferred.promise;\r\n\r\n };\r\n\r\n // TODO: Remove this when done testing without internet\r\n var _obtainAccessTokenAutoSignInAsCody = function () {\r\n var deferred = $q.defer();\r\n\r\n $http.get(serviceBase + 'api/account/ObtainLocalAccessTokenAutoSignInAsCody').success(\r\n function (response) {\r\n\r\n var localStorageData = _createLocalStorageObject(response);\r\n\r\n localStorageData.refreshToken = \"\";\r\n localStorageData.useRefreshTokens = false;\r\n\r\n localStorageService.set('authorizationData', localStorageData);\r\n\r\n _authentication.isAuth = true;\r\n _authentication.isAdmin = response.isAdmin;\r\n _authentication.isConfigurator = response.isConfigurator;\r\n _authentication.isMaintenanceAdmin = response.isMaintenanceAdmin;\r\n _authentication.userName = response.userName;\r\n _authentication.useRefreshTokens = false;\r\n userService.setLoggedInUserId(response.userId);\r\n \r\n deferred.resolve(response);\r\n }\r\n ).error(function (err, status) {\r\n _logOut();\r\n deferred.reject(err);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n var _redirectUrl = undefined;\r\n\r\n authServiceFactory.logOut = _logOut;\r\n authServiceFactory.fillAuthData = _fillAuthData;\r\n authServiceFactory.authentication = _authentication;\r\n authServiceFactory.refreshToken = _refreshToken;\r\n authServiceFactory.obtainAccessToken = _obtainAccessToken;\r\n // TODO: Remove this when done testing without internet\r\n //authServiceFactory.obtainAccessTokenAutoSignInAsCody = _obtainAccessTokenAutoSignInAsCody;\r\n authServiceFactory.externalAuthData = _externalAuthData;\r\n authServiceFactory.registerExternal = _registerExternal;\r\n authServiceFactory.redirectUrl = _redirectUrl;\r\n authServiceFactory.providerLogin = _providerLogin;\r\n\r\n return authServiceFactory;\r\n}]);","'use strict';\r\napp.factory('tokensManagerService', ['$http','ngAuthSettings', function ($http,ngAuthSettings) {\r\n\r\n var serviceBase = ngAuthSettings.apiServiceBaseUri;\r\n \r\n var tokenManagerServiceFactory = {};\r\n\r\n var _getRefreshTokens = function () {\r\n\r\n return $http.get(serviceBase + 'api/refreshtokens').then(function (results) {\r\n return results;\r\n });\r\n };\r\n\r\n var _deleteRefreshTokens = function (tokenid) {\r\n\r\n return $http.delete(serviceBase + 'api/refreshtokens/?tokenid=' + tokenid).then(function (results) {\r\n return results;\r\n });\r\n };\r\n\r\n tokenManagerServiceFactory.deleteRefreshTokens = _deleteRefreshTokens;\r\n tokenManagerServiceFactory.getRefreshTokens = _getRefreshTokens;\r\n\r\n return tokenManagerServiceFactory;\r\n\r\n}]);","angular.module(\"warsApp\").config(['blockUIConfig', function (blockUIConfig) {\r\n\r\n // Change the default overlay message\r\n blockUIConfig.message = 'Loading...';;\r\n \r\n\r\n // Otherwise the backspace key could be recognized during a autosave and more you back to \r\n blockUIConfig.blockBrowserNavigation = true;\r\n\r\n // Change the default delay to 500ms before the blocking is visible\r\n blockUIConfig.delay = 500;\r\n\r\n blockUIConfig.requestFilter = function (config) {\r\n if (config.url.toLowerCase().endsWith('.html')) {\r\n return false;\r\n }\r\n\r\n if (config.url.match(/^\\.\\/security\\/GetStaffByName($|\\/).*/) ||\r\n config.url.match(/Users/) ||\r\n config.url.match(/\\/Form\\//) ||\r\n config.url.match(/Account/) ||\r\n config.url.match(/AutoComplete/) ||\r\n config.url.match(/CheckExistance/)) {\r\n return false; // ... don't block it.\r\n }\r\n\r\n return 'Loading...';\r\n };\r\n}]);","angular.module(\"warsApp\").config(['$compileProvider', function ($compileProvider) {\r\n // disable debug info\r\n $compileProvider.debugInfoEnabled(false);\r\n}]);","angular.module(\"warsApp\").config(['$httpProvider', function ($httpProvider) {\r\n $httpProvider.interceptors.push('errorResponseInterceptor');\r\n $httpProvider.interceptors.push('noCacheInterceptor');\r\n $httpProvider.interceptors.push('configurationInterceptor');\r\n $httpProvider.interceptors.push('clearGrowlMessagesInterceptor');\r\n $httpProvider.interceptors.push('breezeInterceptor');\r\n $httpProvider.interceptors.push('timeZoneInterceptor');\r\n}]);\r\n\r\nangular.module(\"warsApp\").config(['growlProvider', '$httpProvider', function (growlProvider, $httpProvider) {\r\n $httpProvider.interceptors.push(growlProvider.serverMessagesInterceptor);\r\n}]);\r\n\r\nangular.module(\"warsApp\").config(['$httpProvider', 'requestTransformerProvider', function ($httpProvider, requestTransformerProvider) {\r\n var requestTransformer = requestTransformerProvider.$get();\r\n $httpProvider.defaults.transformRequest.unshift(requestTransformer.scrubDataFromPost);\r\n $httpProvider.defaults.transformRequest.unshift(requestTransformer.setUndefinedVariablesToNull);\r\n}]);\r\n\r\n// Added this so that the AjaxExceptionHandler could differentiate AJAX requests from full page requests\r\nangular.module(\"warsApp\").config(['$httpProvider', function ($httpProvider) {\r\n $httpProvider.defaults.headers.common[\"X-Requested-With\"] = 'XMLHttpRequest';\r\n}]);","angular.module(\"warsApp\").config(['$routeProvider', function ($routeProvider) {\r\n\r\n var ensureUserIsAuthenticated = {\r\n auth: [\r\n \"$q\", \"authService\", \"$location\", \"$rootScope\", function ($q, authService, $location, $rootScope) {\r\n if (authService.authentication.isAuth) {\r\n return $q.resolve({ authenticated: true });\r\n } else {\r\n var url = $location.url();\r\n localStorage.setItem('redirectAfterLogin', url.toString());\r\n $rootScope.$broadcast(\"userNotAuthorized\");\r\n return $q.reject({ authenticated: false });\r\n }\r\n }\r\n ]\r\n };\r\n\r\n $routeProvider.when('/home',\r\n {\r\n templateUrl: './app/views/home.html'\r\n })\r\n .when('/Error',\r\n {\r\n templateUrl: './app/views/customError.html'\r\n })\r\n .when('/ManageSystemCodes',\r\n {\r\n templateUrl: './app/views/configuration/manageSystemCodes.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageGisDatastores',\r\n {\r\n templateUrl: './app/views/gisDatastore.html',\r\n controller: 'gisDatastoreController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageApiKeys',\r\n {\r\n templateUrl: './app/views/configuration/ApiKey.html',\r\n controller: 'apiKeyController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageScheduledResources',\r\n {\r\n templateUrl: './app/views/configuration/manageScheduledResources.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageUsers',\r\n {\r\n templateUrl: './app/views/manageUsers.html',\r\n controller: 'manageUsersController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageConstants',\r\n {\r\n templateUrl: './app/views/configuration/constantConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageCalculations',\r\n {\r\n templateUrl: './app/views/configuration/calculationConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageDocuments',\r\n {\r\n templateUrl: './app/views/configuration/systemDocumentConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageDocumentConfigurations',\r\n {\r\n templateUrl: './app/views/configuration/documentConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManagePayments',\r\n {\r\n templateUrl: './app/views/configuration/paymentConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageSystemVariables',\r\n {\r\n templateUrl: './app/views/configuration/processData.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageHolidays',\r\n {\r\n templateUrl: './app/views/holidaySetConfiguration.html',\r\n controller: 'holidaySetConfigurationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/MapConfigurations',\r\n {\r\n templateUrl: './app/views/configuration/gis/mapConfigurations.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/MapConfiguration/:mapConfigurationId',\r\n {\r\n templateUrl: './app/views/configuration/gis/mapConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageHeaderFooter',\r\n {\r\n templateUrl: './app/views/headerFooterConfiguration.html',\r\n controller: 'headerFooterConfigurationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageClaims',\r\n {\r\n templateUrl: './app/views/manageClaims.html',\r\n controller: 'manageClaimsController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageDataSources',\r\n {\r\n templateUrl: './app/views/dataSourceConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/Unauthorized',\r\n {\r\n templateUrl: './app/views/notAuthorized.html'\r\n })\r\n .when('/NotFound',\r\n {\r\n templateUrl: './app/views/notFound.html'\r\n })\r\n .when('/ManageSecurityMatrix',\r\n {\r\n templateUrl: './app/views/manageSecurityMatrix.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ProcessSecurity',\r\n {\r\n templateUrl: './app/views/processSecurity.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageEmailGroups',\r\n {\r\n templateUrl: './app/views/manageEmailGroups.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageForm/:subId',\r\n {\r\n templateUrl: './app/views/configuration/process/formConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageForms',\r\n {\r\n templateUrl: './app/views/configuration/process/processFormsConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageWebPage/:id',\r\n {\r\n templateUrl: './app/views/editableWebPage.html',\r\n controller: 'editableWebPageController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/JsonDictionaryStores',\r\n {\r\n templateUrl: './app/views/jsonDictionaryStores.html',\r\n controller: 'jsonDictionaryStoresController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ProcessConfiguration/:id/Manage',\r\n {\r\n templateUrl: './app/views/configuration/configuration.html',\r\n controller: 'configurationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ProcessConfiguration/:id/Manage/:section',\r\n {\r\n templateUrl: './app/views/configuration/configuration.html',\r\n controller: 'configurationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ProcessConfiguration/:id/Manage/:section/:subId',\r\n {\r\n templateUrl: './app/views/configuration/configuration.html',\r\n controller: 'configurationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageContent',\r\n {\r\n templateUrl: './app/views/contentManagement/contentManagement.html',\r\n controller: 'manageContentController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageQueries',\r\n {\r\n templateUrl: './app/views/queryConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageReviewGroups',\r\n {\r\n templateUrl: './app/views/configuration/manageReviewGroups.html',\r\n controller: 'manageReviewGroupsController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageProcessSubTypeGroups',\r\n {\r\n templateUrl: './app/views/configuration/manageSubTypeGroups.html',\r\n controller: 'manageSubTypeGroupsController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageSystemActions',\r\n {\r\n templateUrl: './app/views/configuration/manageSystemActions.html',\r\n controller: 'manageSystemActionsController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageProcessEvents',\r\n {\r\n templateUrl: './app/views/configuration/manageProcessEvent.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageFormContainerAssociations',\r\n {\r\n templateUrl: './app/views/configuration/manageFormContainerAssociations.html',\r\n controller: 'manageFormContainerAssociationsController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageTimePeriods',\r\n {\r\n templateUrl: './app/views/configuration/timePeriodConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageClaimGroups',\r\n {\r\n templateUrl: './app/views/configuration/manageClaimGroups.html',\r\n controller: 'manageClaimGroupsController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageStaticDocuments', {\r\n templateUrl: './app/views/manageStaticDocuments.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageStatuses', {\r\n templateUrl: './app/views/configuration/manageStatuses.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ApiConfiguration', {\r\n templateUrl: './app/views/configuration/apiConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageEmailNotifications', {\r\n templateUrl: './app/views/configuration/process/emailSystemActionConfiguration.html',\r\n //controller: 'emailSystemActionConfigurationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ManageBatchJobs', {\r\n templateUrl: './app/views/configuration/batchJobConfiguration.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/NotificationSubscriptions', {\r\n templateUrl: './app/views/notificationSubscriptions.html',\r\n controller: 'notificationSubscriptionsController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/EmailNotification', {\r\n templateUrl: './app/views/emailNotification.html',\r\n controller: 'emailNotificationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/UserAdministration', {\r\n templateUrl: './app/views/userAdministration.html',\r\n controller: 'userAdministrationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/BatchJobDashboard', {\r\n templateUrl: './app/views/batchJobDashboard.html',\r\n controller: 'batchJobDashboardController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ProcessTypes', {\r\n templateUrl: './app/views/activeProcesses.html',\r\n controller: 'activeProcessTypesController'\r\n })\r\n .when('/ManageProcessTypes', {\r\n templateUrl: './app/views/processType.html',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ExtensibleComponents', {\r\n templateUrl: './app/views/manageExtensibleComponents.html',\r\n controller: 'manageExtensibleComponentController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ProcessType/:id/Process/:processId', {\r\n templateUrl: './app/views/process/process.html',\r\n controller: 'processController'\r\n })\r\n .when('/Process/:processId', {\r\n templateUrl: './app/views/process/process.html',\r\n controller: 'processController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/Process/:processId/Form/:formContainerUniqueId', {\r\n templateUrl: './app/views/process/process.html',\r\n controller: 'processController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ProcessType/:id/Process/:processId/Form/:formContainerUniqueId', {\r\n templateUrl: './app/views/process/process.html',\r\n controller: 'processController'\r\n })\r\n .when('/ProcessType/:id/ReportProcess/:processId', {\r\n templateUrl: './app/views/process/reportProcess.html',\r\n controller: 'reportProcessController'\r\n })\r\n .when('/ProcessType/:id/Process/:processId/Form/:formId/FormData/:formDataId', {\r\n templateUrl: './app/views/process/process.html',\r\n controller: 'processController'\r\n })\r\n .when('/ProcessType/:id/Process/:processId/Form/:formId/FormData/:formDataId/ParentForm/:parentFormId/ParentFormDataId/:parentFormDataId/:parentFormName', {\r\n templateUrl: './app/views/process/process.html',\r\n controller: 'processController'\r\n })\r\n .when('/ProcessType/:id/Process', {\r\n templateUrl: './app/views/process/process.html',\r\n controller: 'processController'\r\n })\r\n .when('/ProcessType/:id/ReportProcess', {\r\n templateUrl: './app/views/process/reportProcess.html',\r\n controller: 'reportProcessController'\r\n })\r\n .when('/ManageObjectQueries', {\r\n templateUrl: './app/views/objectQuery.html',\r\n //controller: 'objectQueryController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/Documentation/:id', {\r\n templateUrl: './app/views/documentation.html',\r\n controller: 'documentationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/Documentation/:id/:anchor', {\r\n templateUrl: './app/views/documentation.html',\r\n controller: 'documentationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ContentPage/:id', {\r\n templateUrl: './app/views/contentPage.html',\r\n controller: 'contentPageController'\r\n })\r\n .when('/ActivateSystemConfiguration', {\r\n templateUrl: './app/views/activateSystemConfiguration.html',\r\n controller: 'activateSystemConfigurationController'\r\n })\r\n .when('/InitiatePayment', {\r\n templateUrl: './app/views/paymentWindow.html',\r\n controller: 'paymentWindowController'\r\n })\r\n .when('/help', {\r\n templateUrl: './app/views/help.html',\r\n })\r\n .when('/test', {\r\n templateUrl: './app/test/views/test.html',\r\n controller: 'testController'\r\n })\r\n .when('/test/memory', {\r\n templateUrl: './app/test/views/testMemory.html',\r\n controller: 'testMemoryController'\r\n })\r\n .when('/test/autoVersionAndActivate', {\r\n templateUrl: './app/test/views/testAutoVersionAndActivate.html',\r\n controller: 'testAutoVersionAndActivateController'\r\n })\r\n .when('/test/processEvent', {\r\n templateUrl: './app/test/views/testProcessEvent.html',\r\n controller: 'testProcessEventController'\r\n })\r\n .when(\"/login\", {\r\n controller: \"loginController\",\r\n templateUrl: \"./app/security/views/login.html\"\r\n })\r\n .when(\"/signup\", {\r\n controller: \"signupController\",\r\n templateUrl: \"./app/views/signup.html\"\r\n })\r\n .when(\"/tokens\", {\r\n controller: \"tokensManagerController\",\r\n templateUrl: \"./app/security/views/tokens.html\"\r\n })\r\n .when(\"/associate\", {\r\n controller: \"associateController\",\r\n templateUrl: \"./app/security/views/associate.html\"\r\n })\r\n .when(\"/cleanDatabase\", {\r\n controller: \"cleanDatabaseController\",\r\n templateUrl: \"./app/views/test/cleanDatabase.html\"\r\n })\r\n .when('/Impersonate', {\r\n templateUrl: './app/views/impersonate.html',\r\n controller: 'impersonationController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/ChangeSystemTime', {\r\n templateUrl: './app/views/changeSystemTime.html',\r\n controller: 'changeSystemTimeController',\r\n resolve: ensureUserIsAuthenticated\r\n })\r\n .when('/', {\r\n redirectTo: '/home'\r\n })\r\n .otherwise({\r\n redirectTo: '/NotFound'\r\n });\r\n}]);\r\n// Required because our ng-view is contained within a ng-include (for layout.html) this is required otherwise \r\n// the $route initialization is delayed and will miss the location change event. \r\nangular.module(\"warsApp\").run(['$route', function ($route) {\r\n $route.reload();\r\n}]);\r\n\r\nangular.module(\"warsApp\").run(['authService', function (authService) {\r\n authService.fillAuthData();\r\n}]);\r\n\r\n\r\nangular.module(\"warsApp\").run([\"$rootScope\", \"$location\", 'authService', function ($rootScope, $location, authService) {\r\n $rootScope.$on(\"$routeChangeError\", function (event, current, previous, eventObj) {\r\n if (eventObj.authenticated === false) {\r\n authService.redirectUrl = $location.$$path;\r\n $location.path(\"/login\");\r\n }\r\n });\r\n}]);","/// \r\n/**\r\n * Created by jeremy on 3/28/2017.\r\n */\r\n\r\n/**\r\n * Takes a {@link Feature} and a bbox and clips the feature to the bbox using [lineclip](https://github.com/mapbox/lineclip).\r\n *\r\n * @module turf/bbox-clip\r\n * @category transformation\r\n * @param {Feature} feature feature to clip to the bbox\r\n * @param {Array} bbox an Array of bounding box coordinates in the form: ```[minLon, minLat, maxLon, maxLat]```\r\n * @return {(Feature|Feature|Feature)}\r\n * @example\r\n * var bbox = [0, 0, 10, 10];\r\n * var poly = turf.polygon([[[2, 2], [8, 4], [12, 8], [3, 7], [2, 2]]]);\r\n *\r\n * var result = turf.bboxClip(poly, bbox);\r\n *\r\n * //=result\r\n */\r\n\r\nmodule warsApp {\r\n\r\n export class bboxClip {\r\n public static bboxClip(feature, bbox) {\r\n var geom = feature;\r\n var lineCoordinates;\r\n\r\n if (feature.geometry) geom = feature.geometry;\r\n\r\n\r\n if (geom.type === 'LineString') {\r\n lineCoordinates = [geom.coordinates];\r\n } else if (geom.type === 'MultiLineString') {\r\n lineCoordinates = geom.coordinates;\r\n }\r\n\r\n if (lineCoordinates) {\r\n var lines = [];\r\n for (var i = 0; i < lineCoordinates.length; i++) {\r\n lineclip.lineclip(lineCoordinates[i], bbox, lines);\r\n }\r\n if (lines.length === 1) {\r\n return this.buildFeature('LineString', lines[0], feature.properties);\r\n }\r\n return this.buildFeature('MultiLineString', lines, feature.properties);\r\n } else if (geom.type === 'Polygon') {\r\n return this.buildFeature('Polygon', this.clipPolygon(geom.coordinates, bbox), feature.properties);\r\n } else if (geom.type === 'MultiPolygon') {\r\n return this.buildFeature('MultiPolygon',\r\n geom.coordinates.map(function (polygon) {\r\n return this.clipPolygon(polygon, bbox);\r\n }),\r\n feature.properties);\r\n }\r\n };\r\n\r\n private static clipPolygon(rings, bbox) {\r\n var outRings = [];\r\n for (var i = 0; i < rings.length; i++) {\r\n var clipped = lineclip.polygonclip(rings[i], bbox);\r\n if (clipped.length > 0) {\r\n if (clipped[0][0] !== clipped[clipped.length - 1][0] || clipped[0][1] !== clipped[clipped.length - 1][1]) {\r\n clipped.push(clipped[0]);\r\n }\r\n outRings.push(clipped);\r\n }\r\n }\r\n return outRings;\r\n }\r\n\r\n private static buildFeature(type, lines, properties) {\r\n return {\r\n 'type': 'Feature',\r\n 'properties': properties || {},\r\n 'geometry': {\r\n 'type': type,\r\n 'coordinates': lines\r\n }\r\n };\r\n }\r\n }\r\n\r\n}","/// \r\nmodule warsApp {\r\n export class DateTimeHelper {\r\n\r\n public static GetLongTimeZoneName(): string {\r\n var timeZoneName = \"\";\r\n var timeString = new Date().toString();\r\n var beginIndex = timeString.indexOf(\"(\");\r\n var endIndex = timeString.indexOf(\")\");\r\n if (timeString && beginIndex && endIndex) {\r\n var stringLength = endIndex - beginIndex - 1;\r\n timeZoneName = timeString.substr(beginIndex + 1, stringLength);\r\n // Edge strings contained special right mark control character (8206) as the first char.\r\n if (timeZoneName.charCodeAt(0) === 8206) {\r\n timeZoneName = timeZoneName.substr(1);\r\n }\r\n }\r\n\r\n return timeZoneName;\r\n }\r\n\r\n public static GetTimeZoneNameWithoutDaylightOrStandard(): string {\r\n return DateTimeHelper.GetLongTimeZoneName().replace(\" Standard Time\", \" Time\").replace(\" Daylight Time\", \" Time\");\r\n }\r\n }\r\n} ","/// \r\nmodule Collections {\r\n const _hasOwnProperty = Object.prototype.hasOwnProperty;\r\n export const has = function(obj: any, prop: any) {\r\n return _hasOwnProperty.call(obj, prop);\r\n };\r\n\r\n /**\r\n * Function signature for comparing\r\n * <0 means a is smaller\r\n * = 0 means they are equal\r\n * >0 means a is larger\r\n */\r\n export interface ICompareFunction {\r\n (a: T, b: T): number;\r\n }\r\n\r\n /**\r\n * Function signature for checking equality\r\n */\r\n export interface IEqualsFunction {\r\n (a: T, b: T): boolean;\r\n }\r\n\r\n /**\r\n * Function signature for Iterations. Return false to break from loop\r\n */\r\n export interface ILoopFunction {\r\n (a: T): boolean | void;\r\n }\r\n\r\n /**\r\n * Default function to compare element order.\r\n * @function\r\n */\r\n export function defaultCompare(a: T, b: T): number {\r\n if (a < b) {\r\n return -1;\r\n } else if (a === b) {\r\n return 0;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n\r\n /**\r\n * Default function to test equality.\r\n * @function\r\n */\r\n export function defaultEquals(a: T, b: T): boolean {\r\n return a === b;\r\n }\r\n\r\n /**\r\n * Default function to convert an object to a string.\r\n * @function\r\n */\r\n export function defaultToString(item: any): string {\r\n if (item === null) {\r\n return 'COLLECTION_NULL';\r\n } else if (isUndefined(item)) {\r\n return 'COLLECTION_UNDEFINED';\r\n } else if (isString(item)) {\r\n return '$s' + item;\r\n } else {\r\n return '$o' + item.toString();\r\n }\r\n }\r\n\r\n /**\r\n * Joins all the properies of the object using the provided join string\r\n */\r\n export function makeString(item: T, join: string = ','): string {\r\n if (item === null) {\r\n return 'COLLECTION_NULL';\r\n } else if (isUndefined(item)) {\r\n return 'COLLECTION_UNDEFINED';\r\n } else if (isString(item)) {\r\n return item.toString();\r\n } else {\r\n let toret = '{';\r\n let first = true;\r\n for (const prop in item) {\r\n if (has(item, prop)) {\r\n if (first) {\r\n first = false;\r\n } else {\r\n toret = toret + join;\r\n }\r\n toret = toret + prop + ':' + (item)[prop];\r\n }\r\n }\r\n return toret + '}';\r\n }\r\n }\r\n\r\n /**\r\n * Checks if the given argument is a function.\r\n * @function\r\n */\r\n export function isFunction(func: any): boolean {\r\n return (typeof func) === 'function';\r\n }\r\n\r\n /**\r\n * Checks if the given argument is undefined.\r\n * @function\r\n */\r\n export function isUndefined(obj: any): boolean {\r\n return (typeof obj) === 'undefined';\r\n }\r\n\r\n /**\r\n * Checks if the given argument is a string.\r\n * @function\r\n */\r\n export function isString(obj: any): boolean {\r\n return Object.prototype.toString.call(obj) === '[object String]';\r\n }\r\n\r\n /**\r\n * Reverses a compare function.\r\n * @function\r\n */\r\n export function reverseCompareFunction(compareFunction: ICompareFunction): ICompareFunction {\r\n if (!isFunction(compareFunction)) {\r\n return function(a, b) {\r\n if (a < b) {\r\n return 1;\r\n } else if (a === b) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n };\r\n } else {\r\n return function(d: T, v: T) {\r\n return compareFunction(d, v) * -1;\r\n };\r\n }\r\n }\r\n\r\n export interface IDictionaryPair {\r\n key: K;\r\n value: V;\r\n }\r\n\r\n export class Dictionary {\r\n\r\n /**\r\n * Object holding the key-value pairs.\r\n * @type {Object}\r\n * @private\r\n */\r\n protected table: { [key: string]: IDictionaryPair };\r\n //: [key: K] will not work since indices can only by strings in javascript and typescript enforces this.\r\n\r\n /**\r\n * Number of elements in the list.\r\n * @type {number}\r\n * @private\r\n */\r\n protected nElements: number;\r\n\r\n /**\r\n * Function used to convert keys to strings.\r\n * @type {function(Object):string}\r\n * @protected\r\n */\r\n protected toStr: (key: K) => string;\r\n\r\n\r\n /**\r\n * Creates an empty dictionary.\r\n * @class

Dictionaries map keys to values; each key can map to at most one value.\r\n * This implementation accepts any kind of objects as keys.

\r\n *\r\n *

If the keys are custom objects a function which converts keys to unique\r\n * strings must be provided. Example:

\r\n *
\r\n         * function petToString(pet) {\r\n         *  return pet.name;\r\n         * }\r\n         * 
\r\n * @constructor\r\n * @param {function(Object):string=} toStrFunction optional function used\r\n * to convert keys to strings. If the keys aren't strings or if toString()\r\n * is not appropriate, a custom function which receives a key and returns a\r\n * unique string must be provided.\r\n */\r\n constructor(toStrFunction?: (key: K) => string) {\r\n this.table = {};\r\n this.nElements = 0;\r\n this.toStr = toStrFunction ||defaultToString;\r\n }\r\n\r\n\r\n /**\r\n * Returns the value to which this dictionary maps the specified key.\r\n * Returns undefined if this dictionary contains no mapping for this key.\r\n * @param {Object} key key whose associated value is to be returned.\r\n * @return {*} the value to which this dictionary maps the specified key or\r\n * undefined if the map contains no mapping for this key.\r\n */\r\n getValue(key: K): V {\r\n const pair: IDictionaryPair = this.table['$' + this.toStr(key)];\r\n if (isUndefined(pair)) {\r\n return undefined;\r\n }\r\n return pair.value;\r\n }\r\n\r\n\r\n /**\r\n * Associates the specified value with the specified key in this dictionary.\r\n * If the dictionary previously contained a mapping for this key, the old\r\n * value is replaced by the specified value.\r\n * @param {Object} key key with which the specified value is to be\r\n * associated.\r\n * @param {Object} value value to be associated with the specified key.\r\n * @return {*} previous value associated with the specified key, or undefined if\r\n * there was no mapping for the key or if the key/value are undefined.\r\n */\r\n setValue(key: K, value: V): V {\r\n\r\n if (isUndefined(key) ||isUndefined(value)) {\r\n return undefined;\r\n }\r\n\r\n let ret: V;\r\n const k = '$' + this.toStr(key);\r\n const previousElement: IDictionaryPair = this.table[k];\r\n if (isUndefined(previousElement)) {\r\n this.nElements++;\r\n ret = undefined;\r\n } else {\r\n ret = previousElement.value;\r\n }\r\n this.table[k] = {\r\n key: key,\r\n value: value\r\n };\r\n return ret;\r\n }\r\n\r\n /**\r\n * Removes the mapping for this key from this dictionary if it is present.\r\n * @param {Object} key key whose mapping is to be removed from the\r\n * dictionary.\r\n * @return {*} previous value associated with specified key, or undefined if\r\n * there was no mapping for key.\r\n */\r\n remove(key: K): V {\r\n const k = '$' + this.toStr(key);\r\n const previousElement: IDictionaryPair = this.table[k];\r\n if (!isUndefined(previousElement)) {\r\n delete this.table[k];\r\n this.nElements--;\r\n return previousElement.value;\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Returns an array containing all of the keys in this dictionary.\r\n * @return {Array} an array containing all of the keys in this dictionary.\r\n */\r\n keys(): K[] {\r\n const array: K[] = [];\r\n for (const name in this.table) {\r\n if (has(this.table, name)) {\r\n const pair: IDictionaryPair = this.table[name];\r\n array.push(pair.key);\r\n }\r\n }\r\n return array;\r\n }\r\n\r\n /**\r\n * Returns an array containing all of the values in this dictionary.\r\n * @return {Array} an array containing all of the values in this dictionary.\r\n */\r\n values(): V[] {\r\n const array: V[] = [];\r\n for (const name in this.table) {\r\n if (has(this.table, name)) {\r\n const pair: IDictionaryPair = this.table[name];\r\n array.push(pair.value);\r\n }\r\n }\r\n return array;\r\n }\r\n\r\n /**\r\n * Executes the provided function once for each key-value pair\r\n * present in this dictionary.\r\n * @param {function(Object,Object):*} callback function to execute, it is\r\n * invoked with two arguments: key and value. To break the iteration you can\r\n * optionally return false.\r\n */\r\n forEach(callback: (key: K, value: V) => any): void {\r\n for (const name in this.table) {\r\n if (has(this.table, name)) {\r\n const pair: IDictionaryPair = this.table[name];\r\n const ret = callback(pair.key, pair.value);\r\n if (ret === false) {\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns true if this dictionary contains a mapping for the specified key.\r\n * @param {Object} key key whose presence in this dictionary is to be\r\n * tested.\r\n * @return {boolean} true if this dictionary contains a mapping for the\r\n * specified key.\r\n */\r\n containsKey(key: K): boolean {\r\n return !isUndefined(this.getValue(key));\r\n }\r\n\r\n /**\r\n * Removes all mappings from this dictionary.\r\n * @this {collections.Dictionary}\r\n */\r\n clear() {\r\n this.table = {};\r\n this.nElements = 0;\r\n }\r\n\r\n /**\r\n * Returns the number of keys in this dictionary.\r\n * @return {number} the number of key-value mappings in this dictionary.\r\n */\r\n size(): number {\r\n return this.nElements;\r\n }\r\n\r\n /**\r\n * Returns true if this dictionary contains no mappings.\r\n * @return {boolean} true if this dictionary contains no mappings.\r\n */\r\n isEmpty(): boolean {\r\n return this.nElements <= 0;\r\n }\r\n\r\n toString(): string {\r\n let toret = '{';\r\n this.forEach((k, v) => {\r\n toret += `\\n\\t${k} : ${v}`;\r\n });\r\n return toret + '\\n}';\r\n }\r\n } // End of dictionary\r\n}","//Array.prototype.remove = function () {\r\n// var what, a = arguments, L = a.length, ax;\r\n// while (L && this.length) {\r\n// what = a[--L];\r\n// while ((ax = this.indexOf(what)) !== -1) {\r\n// this.splice(ax, 1);\r\n// }\r\n// }\r\n// return this;\r\n//};\r\n\r\n//Array.prototype.addRange = function(arrayToAdd) {\r\n// if (!arrayToAdd) return;\r\n// for (var i = 0; i < arrayToAdd.length; i++) {\r\n// this.push(arrayToAdd[i]);\r\n// }\r\n//}\r\n\r\n// Here's a link to a blog post with little more info about this: http://jointjs.com/blog/get-transform-to-element-polyfill.html\r\nSVGElement.prototype.getTransformToElement = SVGElement.prototype.getTransformToElement || function (toElement) {\r\n return toElement.getScreenCTM().inverse().multiply(this.getScreenCTM());\r\n};\r\n\r\n\r\n\r\nif (typeof String.prototype.startsWith != 'function') {\r\n String.prototype.startsWith = function (str) {\r\n if (this.length > this.length) return false;\r\n return this.slice(0, str.length) == str;\r\n };\r\n}\r\n\r\nif (!String.prototype.endsWith) {\r\n Object.defineProperty(String.prototype, 'endsWith', {\r\n value: function (searchString, position) {\r\n var subjectString = this.toString();\r\n if (position === undefined || position > subjectString.length) {\r\n position = subjectString.length;\r\n }\r\n position -= searchString.length;\r\n var lastIndex = subjectString.indexOf(searchString, position);\r\n return lastIndex !== -1 && lastIndex === position;\r\n }\r\n });\r\n}\r\n\r\nif (!String.prototype.format) {\r\n String.prototype.format = function () {\r\n var args = arguments;\r\n return this.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined'\r\n ? args[number]\r\n : match\r\n ;\r\n });\r\n };\r\n}\r\n\r\nif (!String.prototype.padLeft) {\r\n String.prototype.padLeft = function (padString, length) {\r\n var str;\r\n str = this;\r\n while (str.length < length) {\r\n str = padString + str;\r\n }\r\n return str;\r\n };\r\n}\r\n \r\nif (!String.prototype.padRight) {\r\n String.prototype.padRight = function (padString, length) {\r\n var str;\r\n str = this;\r\n while (str.length < length) {\r\n str = str + padString;\r\n }\r\n return str;\r\n };\r\n}\r\n\r\nif (!String.prototype.format) {\r\n String.prototype.format = function () {\r\n var args = arguments;\r\n return this.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined'\r\n ? args[number]\r\n : match;\r\n });\r\n };\r\n}\r\n\r\nif (!String.prototype.isNullOrWhiteSpace) {\r\n String.prototype.isNullOrWhiteSpace = function () {\r\n if (/\\S/.test(this)) {\r\n // string is not empty and not just whitespace\r\n return false;\r\n }\r\n return true;\r\n };\r\n}\r\n\r\nif (!Date.prototype.fiscalYear) {\r\n Date.prototype.fiscalYear = function () {\r\n // Note getMonth() returns a zero based month so 5 is June.\r\n return this.getMonth() > 5 ? this.getFullYear() + 1 : this.getFullYear();\r\n };\r\n}\r\nif (!String.prototype.splice) {\r\n /**\r\n * {JSDoc}\r\n *\r\n * The splice() method changes the content of a string by removing a range of\r\n * characters and/or adding new characters.\r\n *\r\n * @this {String}\r\n * @param {number} start Index at which to start changing the string.\r\n * @param {number} delCount An integer indicating the number of old chars to remove.\r\n * @param {string} newSubStr The String that is spliced in.\r\n * @return {string} A new string with the spliced substring.\r\n */\r\n String.prototype.splice = function(start, delCount, newSubStr) {\r\n return this.slice(0, start) + newSubStr + this.slice(start + Math.abs(delCount));\r\n };\r\n}\r\n\r\nif (!Date.prototype.stdTimezoneOffset) {\r\n Date.prototype.stdTimezoneOffset = function() {\r\n var jan = new Date(this.getFullYear(), 0, 1);\r\n var jul = new Date(this.getFullYear(), 6, 1);\r\n return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());\r\n }\r\n}\r\nif (!Date.prototype.dst) {\r\n Date.prototype.dst = function() {\r\n return this.getTimezoneOffset() < this.stdTimezoneOffset();\r\n }\r\n}\r\n\r\nif (!Date.prototype.getTimeZoneOffsetInMilliseconds) {\r\n Date.prototype.getTimeZoneOffsetInMilliseconds = function() {\r\n return this.getTimezoneOffset() * 60000;\r\n }\r\n}\r\n\r\nif (!window.crypto) {\r\n window.crypto = window.crypto || window.msCrypto; \r\n}\r\n\r\nif (!Array.prototype.includes) {\r\n Object.defineProperty(Array.prototype, 'includes', {\r\n value: function (searchElement, fromIndex) {\r\n\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If len is 0, return false.\r\n if (len === 0) {\r\n return false;\r\n }\r\n\r\n // 4. Let n be ? ToInteger(fromIndex).\r\n // (If fromIndex is undefined, this step produces the value 0.)\r\n var n = fromIndex | 0;\r\n\r\n // 5. If n ≥ 0, then\r\n // a. Let k be n.\r\n // 6. Else n < 0,\r\n // a. Let k be len + n.\r\n // b. If k < 0, let k be 0.\r\n var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\r\n\r\n function sameValueZero(x, y) {\r\n return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));\r\n }\r\n\r\n // 7. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let elementK be the result of ? Get(O, ! ToString(k)).\r\n // b. If SameValueZero(searchElement, elementK) is true, return true.\r\n // c. Increase k by 1. \r\n if (sameValueZero(o[k], searchElement)) {\r\n return true;\r\n }\r\n k++;\r\n }\r\n\r\n // 8. Return false\r\n return false;\r\n }\r\n });\r\n}\r\n\r\nvar isUndefinedNullOrWhiteSpace = function (subject) {\r\n if (subject == undefined) return true;\r\n return subject.isNullOrWhiteSpace();\r\n}","/// \r\n//# sourceMappingURL=HashTable.js.map","/// \r\n\r\n// Cohen-Sutherland line clippign algorithm, adapted to efficiently\r\n// handle polylines rather than just segments\r\nmodule warsApp {\r\n\r\n export class lineclip {\r\n public static lineclip(points, bbox, result) {\r\n\r\n var len = points.length,\r\n codeA = this.bitCode(points[0], bbox),\r\n part = [],\r\n i,\r\n a,\r\n b,\r\n codeB,\r\n lastCode;\r\n\r\n if (!result) result = [];\r\n\r\n for (i = 1; i < len; i++) {\r\n a = points[i - 1];\r\n b = points[i];\r\n codeB = lastCode = this.bitCode(b, bbox);\r\n\r\n while (true) {\r\n\r\n if (!(codeA | codeB)) { // accept\r\n part.push(a);\r\n\r\n if (codeB !== lastCode) { // segment went outside\r\n part.push(b);\r\n\r\n if (i < len - 1) { // start a new line\r\n result.push(part);\r\n part = [];\r\n }\r\n } else if (i === len - 1) {\r\n part.push(b);\r\n }\r\n break;\r\n\r\n } else if (codeA & codeB) { // trivial reject\r\n break;\r\n\r\n } else if (codeA) { // a outside, intersect with clip edge\r\n a = this.intersect(a, b, codeA, bbox);\r\n codeA = lineclip.bitCode(a, bbox);\r\n\r\n } else { // b outside\r\n b = this.intersect(a, b, codeB, bbox);\r\n codeB = lineclip.bitCode(b, bbox);\r\n }\r\n }\r\n\r\n codeA = lastCode;\r\n }\r\n\r\n if (part.length) result.push(part);\r\n\r\n return result;\r\n }\r\n\r\n// Sutherland-Hodgeman polygon clipping algorithm\r\n\r\n public static polygonclip(points, bbox) {\r\n\r\n var result, edge, prev, prevInside, i, p, inside;\r\n\r\n // clip against each side of the clip rectangle\r\n for (edge = 1; edge <= 8; edge *= 2) {\r\n result = [];\r\n prev = points[points.length - 1];\r\n prevInside = !(this.bitCode(prev, bbox) & edge);\r\n\r\n for (i = 0; i < points.length; i++) {\r\n p = points[i];\r\n inside = !(this.bitCode(p, bbox) & edge);\r\n\r\n // if segment goes through the clip window, add an intersection\r\n if (inside !== prevInside) result.push(lineclip.intersect(prev, p, edge, bbox));\r\n\r\n if (inside) result.push(p); // add a point if it's inside\r\n\r\n prev = p;\r\n prevInside = inside;\r\n }\r\n\r\n points = result;\r\n\r\n if (!points.length) break;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n// intersect a segment against one of the 4 lines that make up the bbox\r\n\r\n private static intersect(a, b, edge, bbox) {\r\n return edge & 8\r\n ? [a[0] + (b[0] - a[0]) * (bbox[3] - a[1]) / (b[1] - a[1]), bbox[3]]\r\n : // top\r\n edge & 4\r\n ? [a[0] + (b[0] - a[0]) * (bbox[1] - a[1]) / (b[1] - a[1]), bbox[1]]\r\n : // bottom\r\n edge & 2\r\n ? [bbox[2], a[1] + (b[1] - a[1]) * (bbox[2] - a[0]) / (b[0] - a[0])]\r\n : // right\r\n edge & 1\r\n ? [bbox[0], a[1] + (b[1] - a[1]) * (bbox[0] - a[0]) / (b[0] - a[0])]\r\n : // left\r\n null;\r\n }\r\n\r\n// bit code reflects the point position relative to the bbox:\r\n\r\n// left mid right\r\n// top 1001 1000 1010\r\n// mid 0001 0000 0010\r\n// bottom 0101 0100 0110\r\n\r\n private static bitCode(p, bbox) {\r\n var code = 0;\r\n\r\n if (p[0] < bbox[0]) code |= 1; // left\r\n else if (p[0] > bbox[2]) code |= 2; // right\r\n\r\n if (p[1] < bbox[1]) code |= 4; // bottom\r\n else if (p[1] > bbox[3]) code |= 8; // top\r\n\r\n return code;\r\n }\r\n }\r\n}","/// \r\nmodule Wars.Domain.Model {\r\n export class ProcessConfigurationUtilities {\r\n public static GetFields(form:Form):Field[] {\r\n var fields = [];\r\n if (form.mySteps) {\r\n for (var i = 0; i < form.mySteps.length; i++) {\r\n if (form.mySteps[i].formSections) {\r\n if (form.mySteps[i].formSections) {\r\n for (var x = 0; x < form.mySteps[i].formSections.length; x++) {\r\n if (form.mySteps[i].formSections[x].fields) {\r\n for (var y = 0; y < form.mySteps[i].formSections[x].fields.length; y++) {\r\n fields.push(form.mySteps[i].formSections[x].fields[y]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return fields;\r\n }\r\n\r\n public static GetFieldUniqueNames(form:Form): linqjs.IEnumerable {\r\n var fields = Wars.Domain.Model.ProcessConfigurationUtilities.GetFields(form);\r\n return Enumerable.from(fields).select(f => f.schemaProperty.uniqueIdentifier);\r\n }\r\n }\r\n} ","/// \r\ninterface Array {\r\n remove(o: T): Array;\r\n addRange(o: Array): Array;\r\n}\r\n\r\ninterface String {\r\n isEmptyOrSpaces(): boolean;\r\n startsWith(string): boolean;\r\n}\r\n\r\n//interface Object {\r\n// getType():string;\r\n//}\r\nArray.prototype.remove = function (o) {\r\n var what, a = arguments, L = a.length, ax;\r\n while (L && this.length) {\r\n what = a[--L];\r\n while ((ax = this.indexOf(what)) !== -1) {\r\n this.splice(ax, 1);\r\n }\r\n }\r\n return this;\r\n}\r\n\r\nArray.prototype.addRange = function (arrayToAdd) {\r\n if (!arrayToAdd) return this;\r\n for (var i = 0; i < arrayToAdd.length; i++) {\r\n this.push(arrayToAdd[i]);\r\n }\r\n\r\n return true;\r\n}\r\n\r\nString.prototype.isEmptyOrSpaces = function (): boolean {\r\n return this.match(/^\\s*$/) !== null;\r\n}\r\n\r\n//Object.prototype.getType = function ():string {\r\n// var funcNameRegex = /function (.{1,})\\(/;\r\n// var results = (funcNameRegex).exec((this).constructor.toString());\r\n// return (results && results.length > 1) ? results[1] : \"\";\r\n//};","/// \r\nmodule Elp.Api {\r\n export class Code {\r\n public static getCode(processConfigurationId: string,\r\n codeGroup: string,\r\n shortDescription: string): angular.IPromise {\r\n const $http: angular.IHttpService = angular.element(document.body).injector().get('$http');\r\n const $q: angular.IQService = angular.element(document.body).injector().get('$q');\r\n\r\n var d = $q.defer();\r\n\r\n $http.post('./api/Code/GetCodeId/' + codeGroup + '/' + shortDescription + '/' + processConfigurationId,\r\n null).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n }\r\n}","/// \r\nmodule Elp.Api {\r\n export class GisDatastore {\r\n public static getFeatures(gisDatastoreId: string,\r\n boundingBox: Wars.Domain.Model.Execution.Entities.BoundingBox): angular.IPromise {\r\n const $http: angular.IHttpService = angular.element(document.body).injector().get('$http');\r\n const $q: angular.IQService = angular.element(document.body).injector().get('$q');\r\n\r\n let d = $q.defer();\r\n\r\n $http.post('./api/GisDatastore/' + gisDatastoreId + '/GetFeatures', boundingBox).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public static saveFeature(feature: any) {\r\n const $http: angular.IHttpService = angular.element(document.body).injector().get('$http');\r\n\r\n $http.post('./api/GisDatastore/SaveFeature', feature).then(r => {\r\n });\r\n }\r\n\r\n public static removeFeature(feature: any) {\r\n const $http: angular.IHttpService = angular.element(document.body).injector().get('$http');\r\n\r\n $http.post('./api/GisDatastore/RemoveFeature', feature).then(r => {\r\n });\r\n }\r\n\r\n public static getNewFeature(gisDatastoreId: string,\r\n processId?: string,\r\n geometryType?: Wars.Domain.Model.Codes.Enums.GeometryType,\r\n coordinates?: any): angular.IPromise {\r\n const $http: angular.IHttpService = angular.element(document.body).injector().get('$http');\r\n const $q: angular.IQService = angular.element(document.body).injector().get('$q');\r\n\r\n let feature = {\r\n id: Services.UtilityService.generateGuidComb(),\r\n process_id: processId,\r\n gisDataStoreId: gisDatastoreId,\r\n geoJson: null\r\n };\r\n\r\n if (geometryType && coordinates) {\r\n feature.geoJson = JSON.stringify(this.createGeoJson(geometryType, coordinates));\r\n }\r\n\r\n let d = $q.defer();\r\n $http.post('./api/GisDatastore/AddFeature/' + gisDatastoreId, feature).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public static createFeatureFromGeoJson(gisDatastoreId: string, geoJson: any):any {\r\n const $http: angular.IHttpService = angular.element(document.body).injector().get('$http');\r\n const $q: angular.IQService = angular.element(document.body).injector().get('$q');\r\n\r\n return {\r\n id: Services.UtilityService.generateGuidComb(),\r\n gisDataStoreId: gisDatastoreId,\r\n geoJson: geoJson\r\n };\r\n }\r\n\r\n public static saveFeatures(gisDatastoreId: string, features: Array): angular.IPromise {\r\n const $http: angular.IHttpService = angular.element(document.body).injector().get('$http');\r\n const $q: angular.IQService = angular.element(document.body).injector().get('$q');\r\n\r\n let d = $q.defer();\r\n var data = {\r\n features: features\r\n };\r\n\r\n console.log(data);\r\n\r\n $http.post(\r\n './api/GisDatastore/AddFeatures/' +\r\n gisDatastoreId,\r\n data).then(r => {\r\n d.resolve(r.data);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public static createGeoJson(geometryType: Wars.Domain.Model.Codes.Enums.GeometryType, coordinates: any) {\r\n return {\r\n \"type\": \"Feature\",\r\n \"properties\": {},\r\n \"geometry\": {\r\n \"type\": geometryType,\r\n \"coordinates\": coordinates\r\n }\r\n };\r\n }\r\n }\r\n}","/// \r\nmodule Elp.Api {\r\n export class Helper {\r\n public static callFunction(id: string, processId: string, formId: string, formDataId) {\r\n const processService: Services.ProcessService = angular.element(document.body).injector().get('processService');\r\n\r\n const processDto = processService.getCachedProcess(processId);\r\n let customFunction;\r\n\r\n for (let stepId in processDto.customStepFunctions) {\r\n processDto.customStepFunctions[stepId].forEach(func => {\r\n if (func.id === id) {\r\n customFunction = func;\r\n }\r\n });\r\n }\r\n\r\n if (customFunction) {\r\n let args = ['processId', 'formId', 'formDataId',customFunction.javascript];\r\n let myFunc = Function.apply(null, args);\r\n\r\n myFunc(processId, formId,formDataId);\r\n }\r\n\r\n }\r\n } \r\n}","/// \r\nmodule Elp.Api {\r\n export class Process{\r\n\r\n private static getProcess(processId: string): Wars.Domain.Model.Dtos.ProcessDto {\r\n const processService: Services.ProcessService = angular.element(document.body).injector().get('processService');\r\n\r\n return processService.getCachedProcess(processId);\r\n }\r\n\r\n public static setField(processId: string, formId: string, formDataId: any, uniqueId: string, value: any) {\r\n const formDataService:Services.FormDataService=angular.element(document.body).injector().get('formDataService');\r\n\r\n const processDto = this.getProcess(processId);\r\n\r\n formDataService.setFormField(processId, formId, formDataId, uniqueId, value)\r\n .then(r => {\r\n processDto.formJson[formId][formDataId][uniqueId] = value;\r\n });\r\n }\r\n\r\n public static addRow(processId: string, formId: string, formDataId: any, uniqueId: string,onlyAllowApiEdits?: boolean):angular.IPromise {\r\n const $q: angular.IQService = angular.element(document.body).injector().get('$q');\r\n\r\n var d = $q.defer();\r\n\r\n const formDataService: Services.FormDataService =\r\n angular.element(document.body).injector().get('formDataService');\r\n\r\n var newItem = { id: warsApp.services.UtilityService.generateGuidComb() };\r\n formDataService.addListRow(processId, formId, formDataId, uniqueId, newItem.id,onlyAllowApiEdits).then(r => {\r\n const processDto = this.getProcess(processId);\r\n\r\n //if (!processDto.formJson[formId][formDataId][uniqueId]) {\r\n // processDto.formJson[formId][formDataId][uniqueId] = [];\r\n //}\r\n\r\n //processDto.formJson[formId][formDataId][uniqueId].push(newItem); \r\n d.resolve(newItem.id);\r\n });\r\n\r\n return d.promise;\r\n }\r\n\r\n public static removeRow(processId: string, formId: string, formDataId: any, uniqueId: string,rowId:string) {\r\n const formDataService: Services.FormDataService =\r\n angular.element(document.body).injector().get('formDataService');\r\n\r\n formDataService.removeListRow(processId, formId, formDataId, uniqueId, rowId).then(r => {\r\n const processDto = this.getProcess(processId);;\r\n });\r\n }\r\n\r\n public static getField(processId: string, formId: string, formDataId: any, uniqueId: string) {\r\n const processDto = this.getProcess(processId);\r\n\r\n return processDto.formJson[formId][formDataId][uniqueId];\r\n }\r\n\r\n public static getEnumeratedRowValue(row:any,uniqueId:any) {\r\n return row[uniqueId];\r\n }\r\n\r\n public static setEnumeratedRowValue(processId: string, formId: string, formDataId: any, uniqueId: any, fieldUniqueId: string, row: any, value: any) {\r\n row[uniqueId] = value;\r\n const formDataService:Services.FormDataService=angular.element(document.body).injector().get('formDataService');\r\n formDataService.setListField(processId, formId, formDataId, uniqueId, row.id, fieldUniqueId, value);\r\n row[fieldUniqueId] = value;\r\n\r\n //formDataService.setListField()\r\n }\r\n\r\n public static getRowValue(processId: string, formId: string, formDataId: any, uniqueId: string, rowId:string,fieldUniqueId:string) {\r\n const processDto = this.getProcess(processId);\r\n\r\n return processDto.formJson[formId][formDataId][uniqueId][rowId][fieldUniqueId];\r\n\r\n }\r\n\r\n public static setRowValue(processId: string, formId: string, formDataId: any, uniqueId: string,fieldUniqueId: string,\r\n rowId: string,value:any,isReadOnly:boolean):angular.IPromise {\r\n const processDto = this.getProcess(processId);\r\n\r\n const formDataService:Services.FormDataService=angular.element(document.body).injector().get('formDataService');\r\n return formDataService.setListField(processId, formId, formDataId, uniqueId, rowId, fieldUniqueId, value, isReadOnly);\r\n\r\n //var row=Enumerable.from(processDto.formJson[formId][formDataId][uniqueId]).single(r => (r).id === rowId);\r\n\r\n //row[fieldUniqueId] = value;\r\n }\r\n\r\n public static loopThruRows(processId: string, formId: string, formDataId: any, uniqueId: string,rowCallback:(row:any)=>any) {\r\n const processDto = this.getProcess(processId);;\r\n processDto.formJson[formId][formDataId][uniqueId].forEach(row => {\r\n //console.log(row);\r\n rowCallback(row);\r\n });\r\n }\r\n\r\n public static removeAllRows(processId: string, formId: string, formDataId: any, uniqueId: string) {\r\n const processDto = this.getProcess(processId);\r\n const formDataService: Services.FormDataService =\r\n angular.element(document.body).injector().get('formDataService');\r\n\r\n let counter = 0;\r\n processDto.formJson[formId][formDataId][uniqueId].forEach(f => {\r\n counter++;\r\n formDataService.removeListRow(processId, formId, formDataId, uniqueId, f.id)\r\n .then(r => {\r\n counter--;\r\n if (counter === 0) {\r\n processDto.formJson[formId][formDataId][uniqueId] = [];\r\n }\r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n} ","/// \r\n// Modified from Douglas Crockford's cycle.js (https://github.com/douglascrockford/JSON-js/blob/master/cycle.js)\r\n// Ported over to TypeScript, and modified to handle the reference schema that Json.NET uses.\r\n\r\nmodule JsonNetDecycle {\r\n\r\n function findReferences(obj, catalog: any[]): void {\r\n\r\n // The catalogObject function walks recursively through an object graph\r\n // looking for $id properties. When it finds an object with that property, then\r\n // it adds it to the catalog under that key.\r\n\r\n var i: number;\r\n if (obj && typeof obj === \"object\") {\r\n var id: string = obj.$id;\r\n if (typeof id === \"string\") {\r\n catalog[id] = obj;\r\n }\r\n\r\n if (Object.prototype.toString.apply(obj) === \"[object Array]\") {\r\n for (i = 0; i < obj.length; i += 1) {\r\n findReferences(obj[i], catalog);\r\n }\r\n } else {\r\n for (var name in obj) {\r\n if (obj.hasOwnProperty(name)) {\r\n if (typeof obj[name] === \"object\") {\r\n findReferences(obj[name], catalog);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function resolveReferences(obj: any, catalog: any[]): any {\r\n var i: number, item: any, name: string, id: string;\r\n\r\n if (obj && typeof obj === \"object\") {\r\n if (Object.prototype.toString.apply(obj) === \"[object Array]\") {\r\n for (i = 0; i < obj.length; i += 1) {\r\n item = obj[i];\r\n if (item && typeof item === \"object\") {\r\n id = item.$ref;\r\n if (typeof id === \"string\") {\r\n obj[i] = catalog[id];\r\n } else {\r\n obj[i] = resolveReferences(item, catalog);\r\n }\r\n }\r\n }\r\n } else if (obj.$values && Object.prototype.toString.apply(obj.$values) === \"[object Array]\") {\r\n var arr = new Array();\r\n for (i = 0; i < obj.$values.length; i += 1) {\r\n item = obj.$values[i];\r\n if (item && typeof item === \"object\") {\r\n id = item.$ref;\r\n if (typeof id === \"string\") {\r\n arr[i] = catalog[id];\r\n } else {\r\n arr[i] = resolveReferences(item, catalog);\r\n }\r\n } else {\r\n arr[i] = item;\r\n }\r\n }\r\n obj = arr;\r\n } else {\r\n for (name in obj) {\r\n if (obj.hasOwnProperty(name)) {\r\n if (typeof obj[name] === \"object\") {\r\n item = obj[name];\r\n if (item) {\r\n id = item.$ref;\r\n if (typeof id === \"string\") {\r\n obj[name] = catalog[id];\r\n } else {\r\n obj[name] = resolveReferences(item, catalog);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n function getDecycledCopy(obj: any, catalog: any[]): any {\r\n\r\n // The createReferences function recurses through the object, producing the deep copy.\r\n var i: number; // The loop counter\r\n var name: string; // Property name\r\n var nu: any; // The new object or array\r\n\r\n switch (typeof obj) {\r\n case \"object\":\r\n\r\n // typeof null === 'object', so get out if this value is not really an object.\r\n // Also get out if it is a weird builtin object.\r\n\r\n if (obj === null ||\r\n obj instanceof Boolean ||\r\n obj instanceof Date ||\r\n obj instanceof Number ||\r\n obj instanceof RegExp ||\r\n obj instanceof String) {\r\n return obj;\r\n }\r\n\r\n // If the value is an object or array, look to see if we have already\r\n // encountered it. If so, return a {$id:id} object. This is a hard way, O(n)\r\n // linear search that will get slower as the number of unique objects grows.\r\n // JavaScript really should have a decent dictionary or map class.\r\n for (i = 0; i < catalog.length; i += 1) {\r\n if (catalog[i] === obj) {\r\n return { $ref: i.toString() };\r\n }\r\n }\r\n\r\n // Otherwise, accumulate the unique value and its id.\r\n obj.$id = catalog.length.toString();\r\n catalog.push(obj);\r\n\r\n // If it is an array, replicate the array.\r\n if (Object.prototype.toString.apply(obj) === \"[object Array]\") {\r\n nu = [];\r\n for (i = 0; i < obj.length; i += 1) {\r\n nu[i] = getDecycledCopy(obj[i], catalog);\r\n }\r\n } else {\r\n\r\n // If it is an object, replicate the object.\r\n nu = {};\r\n for (name in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, name)) {\r\n nu[name] = getDecycledCopy(obj[name], catalog);\r\n }\r\n }\r\n }\r\n return nu;\r\n case \"number\":\r\n case \"string\":\r\n case \"boolean\":\r\n default:\r\n return obj;\r\n }\r\n }\r\n\r\n /** Make a deep copy of an object or array, assuring that there is at most\r\n one instance of each object or array in the resulting structure. The\r\n duplicate references (which might be forming cycles) are replaced with\r\n an object of the form\r\n {$id: id}\r\n where the id is a simple string\r\n Modified from Douglas Crockford's cycle.js (https://github.com/douglascrockford/JSON-js/blob/master/cycle.js)\r\n Ported over to TypeScript, and modified to handle the reference schema that Json.NET uses.\r\n */\r\n export function decycle(obj: T): T {\r\n var catalog: any[] = []; // Keep a reference to each unique object or array\r\n var newObj = getDecycledCopy(obj, catalog);\r\n return newObj;\r\n }\r\n\r\n /** Restore an object that was reduced by decycle. Members whose values are objects of the form\r\n {$ref: id}\r\n are replaced with references to the value found by the id. This will\r\n restore cycles. The object will be mutated.\r\n\r\n So,\r\n var s = '{$id:1, members: [{$ref:\"1\"}]';\r\n return retrocycle(JSON.parse(s));\r\n produces an object containing an array which holds the object itself.\r\n */\r\n export function retrocycle(obj: any): any {\r\n var catalog: any[] = [];\r\n findReferences(obj, catalog);\r\n return resolveReferences(obj, catalog);\r\n }\r\n\r\n}","angular.module('warsApp').run(['$templateCache', function($templateCache) {$templateCache.put('./app/views/activateSystemConfiguration.html','
\\r\\n\\r\\n
\\r\\n
\\r\\n

Activate

\\r\\n

Activate the current System Level Configuration when you are ready for the configuration to be used by the system.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Activate System Level Configuration\\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n

Invalid or Incomplete Configuration

\\r\\n

The current system level configuration is invalid or incomplete. Please resolve all issues identified below before attempting another activation.

\\r\\n

\\r\\n

    \\r\\n
  • {{validationIssue}}
  • \\r\\n
\\r\\n

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

Note: Activating a Process Configuration will automatically activate the System Configuration at that time

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n Active System Level Configuration\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{activeSystemConfig.lastUpdateDate | date: \\'short\\' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{activeSystemConfig.lastUpdateUserName }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Export\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n The System Level Configuration has not yet been activated.\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/activeProcesses.html','
\\r\\n
\\r\\n
\\r\\n

Business Processes

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

\\r\\n {{processType.name}}\\r\\n

\\r\\n

{{processType.description}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/batchJobDashboard.html','
\\r\\n
\\r\\n
\\r\\n

Batch Jobs Dashboard

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Email Configurations\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Job NameStart DateLast Run DateCandidate Count
\\r\\n \\r\\n {{batchJobDto.name}}{{batchJobDto.startDateTime | date:\\'medium\\'}}{{batchJobDto.lastRunDateTime | date:\\'medium\\'}}{{batchJobDto.batchJobExecutionCandidatesDtos.length}}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
PermitLoaded Date
{{candidate.processName}}{{candidate.loadedDateTime | date:\\'medium\\'}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/block-ui.html','
\\r\\n \\r\\n
');\n$templateCache.put('./app/views/changeSystemTime.html','
\\r\\n
\\r\\n
\\r\\n

Override System Date/Time

\\r\\n

This page allows you to change the time of all actions you perform in the system to facilitate testing

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
 
\\r\\n
\\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/contentPage.html','
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n');\n$templateCache.put('./app/views/customError.html','
\\r\\n
\\r\\n
\\r\\n

The application has encountered an error. Please try again...

\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/customStepTemplate.html','
\\r\\n
\\r\\n Place your custom html here!!!! We are using Bootstrapcss framework.\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/dataSourceConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

\\r\\n Data Sources\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescription
Edit{{dataSource.name}}{{dataSource.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit DataSource\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Operations\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{operation.name}}\\r\\n {{operation.url}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Parameters
NameRequiredDescriptionData TypeTest Value
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Operation Result
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameTypeIsRequiredValues
\\r\\n {{property.name}}\\r\\n \\r\\n \\r\\n \\r\\n {{property.required}}\\r\\n \\r\\n
\\r\\n Values:\\r\\n
    \\r\\n
  • \\r\\n {{code.shortDescription}}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n {{property.typeSchema.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Data Source Object Schemas\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{objectSchema.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameTypeIsRequiredValues
\\r\\n {{property.name}}\\r\\n \\r\\n \\r\\n \\r\\n {{property.required}}\\r\\n \\r\\n
\\r\\n Values:\\r\\n
    \\r\\n
  • \\r\\n {{code.shortDescription}}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n {{property.typeSchema.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/documentation.html','
\\r\\n

Documentation for \\'{{model.processType.name}}\\'

\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n {{model.processConfiguration.minorVersion ? model.processConfiguration.minorVersion : \\'N/A\\'}}
\\r\\n\\r\\n \\r\\n {{model.processConfiguration.versionName ? model.processConfiguration.versionName : \\'N/A\\'}}
\\r\\n

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

Table of Contents

\\r\\n\\r\\n 1. Process
\\r\\n
\\r\\n 1.{{$index + 1}} Step {{$index + 1}}
\\r\\n 1.{{$index + 1}}.1 User Interface
\\r\\n 1.{{$index + 1}}.2 Data Elements
\\r\\n 0\">1.{{$index + 1}}.3 Display Conditions\\r\\n
\\r\\n 2. Workflow
\\r\\n
\\r\\n 2.{{$index + 1}} {{statusGroup.statusName}} Status
\\r\\n 2.{{$index + 1}}.1 Workflow Diagram
\\r\\n 2.{{$index + 1}}.2 States
\\r\\n
\\r\\n 2.{{$parent.$index + 1}}.2.{{$index + 1}} {{stateGroup.state.label}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n

Content

\\r\\n\\r\\n
\\r\\n
1. Process
\\r\\n
\\r\\n\\r\\n
\\r\\n
1.{{$index + 1}} Step {{$index + 1}}
\\r\\n\\r\\n
\\r\\n
1.{{$index + 1}}.1 User Interface
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
1.{{$index + 1}}.2 Data Elements
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

{{group.name}}

Data Element NameData Element TypeRequiredReportableValidationsDisplay Condition
{{field.label}}{{model.getDataTypeByFieldType(field.type)}}{{field.isRequired | yesNoFilter}}{{field.isIndexed | yesNoFilter}}{{model.getValidationListString(field.validations)}}{{model.getConditionNameForField(field)}}
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
    \\r\\n
  • {{option}}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
1.{{$index + 1}}.3 Display Conditions
\\r\\n
\\r\\n

Condition: {{displayCondition.name}}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
2. Workflow
\\r\\n
\\r\\n\\r\\n
\\r\\n
2.{{$index + 1}} {{statusGroup.statusName}} Status
\\r\\n\\r\\n
\\r\\n
2.{{$index + 1}}.1 Workflow Diagram
\\r\\n
\\r\\n \\r\\n
\\r\\n
2.{{$index + 1}}.2 States
\\r\\n
\\r\\n\\r\\n
\\r\\n
2.{{$parent.$index + 1}}.2.{{$index + 1}} {{stateGroup.state.label}}
\\r\\n \\r\\n\\r\\n
\\r\\n
0\">\\r\\n
User Actions
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{userAction.label}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
Messages
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionMessageType
{{message.scheduledResourceDto.name}}{{message.scheduledResourceDto.description}}{{message.scheduledResourceDto.messageText}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
Conditions
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
Validations
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
Email Notifications
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
Create PDF Actions
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
Possible State Changes
\\r\\n

The current state has the following potential next state(s):

\\r\\n
    \\r\\n
  • {{stateName}}
  • \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n
Possible Status Changes
\\r\\n

The current state has the following potential next state(s):

\\r\\n
    \\r\\n
  • {{statusName}}
  • \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/editableWebPage.html','
\\r\\n
\\r\\n
\\r\\n

Web Page Management

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/editField.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Edit Field

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0 && model.field.type == 33\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Advanced Options\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.systemCode.shortDescription}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.processType.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.stateCode.myParentStatus.shortDescription}} - {{item.stateCode.shortDescription}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.statusCode.shortDescription}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Default Value\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Security Matrix\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Validation\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/emailNotification.html','
\\r\\n
\\r\\n
\\r\\n

Email Notifications

\\r\\n
\\r\\n
\\r\\n
\\r\\n Emails\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

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

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

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

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Page {{model.paging.goToPage}} of {{model.getTotalPages()}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Created Date\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Subject\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Process Name\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{email.createdDateString}}\\r\\n \\r\\n {{email.processName}}
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/gisDatastore.html','
\\r\\n
\\r\\n
\\r\\n

Gis Datastores

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameCount
\\r\\n View\\r\\n {{gisDatastore.name}}{{gisDatastore.count}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Edit Gis Datastore\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{model.currentDatastore.count}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
Metadata
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/headerFooterConfiguration.html','Hi');\n$templateCache.put('./app/views/holidaySetConfiguration.html','
\\r\\n\\r\\n
\\r\\n
\\r\\n

Configure Holiday Sets

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n \\r\\n {{set.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Holidays\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
Delete\\r\\n \\r\\n {{holiday.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/home.html','\\r\\n');\n$templateCache.put('./app/views/impersonate.html','
\\r\\n
\\r\\n
\\r\\n

Impersonation

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
 
\\r\\n
\\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/jsonDictionaryStores.html','
\\r\\n
\\r\\n
\\r\\n

JSON Dictionary Stores

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n Name\\r\\n
\\r\\n Edit\\r\\n \\r\\n {{jsonDict.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/manageClaims.html','
\\r\\n
\\r\\n
\\r\\n

User\\\\Claim Configuration

\\r\\n
\\r\\n User Repository Configuration\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
User Repository ComponentsDelete
{{userRepo.userRepositoryComponentTag}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n System Claim Definitions\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
GrantsNameValue TypeCode GroupLast Updated OnLast Updated ByDeleteEdit
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{claim.type}}\\r\\n \\r\\n {{claim.myCodeGroup.groupName}}{{claim.lastUpdateDate | date: \\'short\\'}}{{claim.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Map to Claim : Value:\\r\\n \\r\\n \\r\\n {{claim.claimMapName}}\\r\\n \\r\\n \\r\\n :\\r\\n \\r\\n \\r\\n {{claim.claimMapValue}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Grant RestrictionsGrant ClaimGrant Authorizations
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n None\\r\\n 0 && !claimGrant.showOptions\">\\r\\n \\r\\n \\r\\n {{claimRestriction.mySystemCode.shortDescription}}\\r\\n ,\\r\\n \\r\\n \\r\\n \\r\\n
0 && claimGrant.showOptions\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{claimRestriction.mySystemCode.shortDescription}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n N/A\\r\\n 0 && !claimGrant.showOptions\">\\r\\n \\r\\n \\r\\n {{claimAuthority.mySystemCode.shortDescription}}\\r\\n ,\\r\\n \\r\\n \\r\\n \\r\\n
0 && claimGrant.showOptions\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{claimAuthority.mySystemCode.shortDescription}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/manageEmailGroups.html','
\\r\\n\\r\\n
\\r\\n
\\r\\n

Manage System Email Groups

\\r\\n

Manage Process Email Groups

\\r\\n

Create email groups to be used across all business processes

\\r\\n

Create email groups to be used for this business process

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Add New System Email Group\\r\\n Add New Process Email Group\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Enter the Email Addresses for this New Email Group
Email AddressDelete
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n Manage Existing Email Groups\\r\\n Manage Existing System Email Groups\\r\\n Manage Existing Process Email Groups\\r\\n\\r\\n
\\r\\n Heads Up!\\r\\n System Email Groups are used throughout the system. Changing existing System Email Groups will affect existing and future processes system wide.\\r\\n Process Email Groups exist and can be used for changes that you wish to limit to a particular process version.\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Email AddressLast Updated OnLast Updated ByDeleteEdit
{{emailAddress.email}}{{emailAddress.lastUpdateDate | date: \\'short\\'}}{{emailAddress.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
');\n$templateCache.put('./app/views/manageExtensibleComponents.html','
\\r\\n
\\r\\n
\\r\\n

Manage Extensible Components

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
IMPORTANT
\\r\\n
\\r\\n
\\r\\n The IConnectionService and IAuthenticationService components cannot be uploaded or configured here. These components are required on application\\r\\n start, and are therefore assembly loaded instead of cataloged and managed with Microsoft\\'s Managed Extensibility Framework (MEF). These components should be included in an assembly located in the\\r\\n /bin directory and the file name should be specified in the \"AssemblyLoadedExtensibleComponents\" app setting in the web.config. This setting should contain the short\\r\\n name for the assembly file without the .dll extension. For example, if your plugin assembly is ACME.ConnectionAndAuthenticationService.dll, the app setting value would be \"ACME.ConnectionAndAuthenticationService\" \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
PACKAGE AND COMPONENT FILE LOCATIONS
\\r\\n
\\r\\n
Component Packages Location (.zip files):  {{model.componentAssembliesLocation}}
\\r\\n
Component Configurations Location (.json files):  {{model.componentConfigurationsLocation}}
\\r\\n
\\r\\n
APP SETTINGS
\\r\\n
\\r\\n
AssemblyLoadedExtensibleComponents (Assembly in /bin that contains the IConnectionService and IAuthenticationService):  {{model.assemblyLoadedExtensibleComponents}}
\\r\\n
SyncActivePackages (Should the active component configurations be reverse synced with the packages and JSON files in App_Data?):  {{model.syncActivePackages}}
\\r\\n
UseLocalLargeObjectStorage (Should the IDocumentStorageService be ignored and local DB file storage used instead?):  {{model.useLocalLargeObjectStorage}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Package Loaded Extensible Components

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Interface NameExclusive
\\r\\n \\r\\n {{contract.interfaceName}}  [Immutable startup service type]\\r\\n {{contract.isExclusiveInterface ? \\'Yes\\' : \\'No\\'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
WARNING
\\r\\n
\\r\\n
\\r\\n Enabling a Object Query Transformer will generate a Object Schema that defines the output shape of the result set data produced by the transformer code. Disabling or removing\\r\\n the Object Query Transformer will remove the Object Schema. This action could impact the configuration of any Object Queries or Report Mappings that are related to the Object Schema. \\r\\n
\\r\\n
\\r\\n If the \"SyncActivePackages\" setting is true, the transformer JSON component configurations are replaced in the configuration DB but the Object Schemas are not regenerated. If\\r\\n you want to regenerate the Object Schemas, you must disable and re-enable the component.\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Component NameEnabled
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{component.tagName}}\\r\\n
\\r\\n
\\r\\n {{component.componentName}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/manageSecurityMatrix.html','
\\r\\n
\\r\\n
\\r\\n

Manage Security Matrices

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Security Matrices\\r\\n
EditViewNameIdentifierTypeCopy
\\r\\n Edit\\r\\n \\r\\n View\\r\\n \\r\\n {{matrix.name}}\\r\\n \\r\\n {{matrix.id}}\\r\\n \\r\\n \\r\\n \\r\\n Copy\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/manageStaticDocuments.html','
\\r\\n
\\r\\n
\\r\\n

Static Documents

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionFile NameDelete
{{document.fileName}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Add Static Document\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/manageUsers.html','
\\r\\n
\\r\\n
\\r\\n

Manage System Users

\\r\\n\\r\\n
\\r\\n Find User to Manage\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n * results will include all users that contain any portion of the entered user name\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n * results will include all users that contain any portion of the entered email address\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
0\">\\r\\n Search Results\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
User NameEmail AddressFirst NameLast NameManage
{{user.userName}}{{user.emailAddress}}{{user.firstName}}{{user.lastName}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n * Note a max of 10 results are shown at a time, please refine search criteria if desired user is not in the search results.\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Manage User\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.editUser.provider}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.editUser.userName}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.editUser.emailAddress}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.editUser.firstName}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.editUser.lastName}}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \"User\\r\\n \"User\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Manage User Claims

\\r\\n 0\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
NameValue TypeIs AssignableValueLast Updated OnLast Updated ByDelete
{{userClaim.claimDefinition.type}}\\r\\n \\r\\n {{userClaim.claimDefinition.valueAssignable | yesNoFilter}}
{{userClaim.claimDefinition.valueAssignable ? userClaim.claimValue : userClaim.claimDefinition.value}}
{{userClaim.lastUpdateDate | date: \\'short\\'}}{{userClaim.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/notAuthorized.html','
\\r\\n

You are not Authorized to Complete this Action

\\r\\n
');\n$templateCache.put('./app/views/notFound.html','
\\r\\n

The Page you Requested was not Found

\\r\\n
');\n$templateCache.put('./app/views/notificationSubscriptions.html','
\\r\\n
\\r\\n
\\r\\n

Email Notification Subscription Management

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Email Configurations\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Receive NotificationNameSubjectProcess Name
\\r\\n \\r\\n {{emailConfig.emailName}}{{emailConfig.emailSubject}}{{emailConfig.processName}}
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/objectQuery.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n New Object Query\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Object Queries\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameAggregate QueryApply SortCompress ResultsLimit ResultsTransformerCompiledDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0 || !objectQuery.expanded\" ng-model=\"objectQuery.isAggregateQuery\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Select\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n TypePropertyAliasProjectionOrderDescending
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Drag Form Field, Variable, or Calculation here\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{model.getTreeItemName(projection.reportDataTreeItem)}}\\r\\n \\r\\n
\\r\\n Current Status\\r\\n Current State\\r\\n Current Status Updated By\\r\\n Current State Updated By\\r\\n Current Status Updated Date\\r\\n Current State Updated Date\\r\\n Row Identifier\\r\\n Process Type\\r\\n Process Sub-Type\\r\\n Process Identifier\\r\\n Process Initiator\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n   {{projection.orderNumerator}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Regen Output Schema\\r\\n \\r\\n   \\r\\n Regen Input Schema\\r\\n \\r\\n   \\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/objectQueryForm.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Object Query Form API\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n Object Query Form Property Mapping\\r\\n
\\r\\n
\\r\\n {{property.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Object Query Result Mapping\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n List Schema Property: {{set.listObjectSchemaPropertyName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n   {{set.listOrder}}\\r\\n \\r\\n
\\r\\n
\\r\\n ROOT\\r\\n
\\r\\n \\r\\n Column NameOrderInclude IfConditionExport OnlyMapping
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n   {{property.columnOrder}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/paymentWindow.html','

Redirecting to Payment Provider ...

');\n$templateCache.put('./app/views/processSecurity.html','
\\r\\n
\\r\\n
\\r\\n

Create/View Process Security

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Create Process Security Matrix:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n View Process Security Matrix:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Create Process Redirect Configuration

\\r\\n

\\r\\n Define a security row and object query that should be executed to determine if users should be redirected to another process when they attempt to create an instance of the current process.\\r\\n If a user meets the Redirect Security Matrix then the Object Query will be executed. If the Object Query returns zero results then the user will be redirected to the specified process type \\r\\n instead of creating a new process of this type.\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Redirect Security Matrix:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Redirect Object Query:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Redirect to Process:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Redirect Message:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/processType.html','
\\r\\n\\r\\n
\\r\\n
\\r\\n

Child Processes

\\r\\n

Business Processes

\\r\\n

\\r\\n Manage business processes. Business processes have their own form, workflow, and other information to support\\r\\n a particular business process.\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n 0\">\\r\\n \\r\\n \\r\\n \\r\\n {{processType.name}}\\r\\n\\r\\n Configure\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{processType.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Delete | Copy\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
');\n$templateCache.put('./app/views/queryConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Manage Queries

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditName
\\r\\n Edit\\r\\n \\r\\n {{query.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Parameter NameBind Value
{{parameter.name}}\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(parameter.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/userAdministration.html','
\\r\\n
\\r\\n
\\r\\n

User Administration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n New User\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
User ProviderFind User to Add
{{provider.tag}}\\r\\n \\r\\n
\\r\\n
This user is alreay in the system. Please search the system users below.
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
First NameLast NameUser IDEmail
{{provider.selectedUser.firstName}}{{provider.selectedUser.lastName}}{{provider.selectedUser.externalSystemUserName}}{{provider.selectedUser.email}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n RoleValue
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n System Users\\r\\n
\\r\\n
\\r\\n Search\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n First Name:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Last Name:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n User ID:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Email:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Role Name:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Role Value:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Viewing {{((model.paging.currentPage - 1) * model.paging.pageSize) + 1}}\\r\\n through {{model.paging.currentPage * model.paging.pageSize > model.filteredUsers.length ? model.filteredUsers.length : model.paging.currentPage * model.paging.pageSize}}\\r\\n of {{model.filteredUsers.length}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
First NameLast NameUser IDEmailLast Updated
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{user.firstName}}{{user.lastName}}{{user.externalSystemUserName}}{{user.email}}{{user.lastUpdated | date:\\'short\\'}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DeleteRoleValueGranted ByGranted On
\\r\\n \\r\\n {{claim.claimName}}{{claim.claimValueName}}{{claim.grantedBy}}{{claim.grantedOn | date:\\'short\\'}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
New RoleNew Role ValueAdd
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/userPopupContent.html','
\\r\\n \\r\\n \\r\\n
');\n$templateCache.put('./app/views/_commentResponses.html','
0\">\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/_footer.html','
\\r\\n
\\r\\n \"Alltech\\r\\n
\\r\\n\\r\\n
\\r\\n \"Alltech\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/_layout.html','
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/security/views/associate.html','
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n

Associate your {{registerData.provider}} Account

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

You have successfully autheticated with {{registerData.provider}} . Please enter a user name below for this site and click the Register button to log in.

\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{message}}\\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/security/views/login.html','
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n

Login using one of your social accounts below...

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

1\">Login using one of the methods below.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n {{authType.longDescription}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/security/views/signup.html','
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{message}}\\r\\n
\\r\\n
');\n$templateCache.put('./app/security/views/tokens.html','\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n

List of Refresh Tokens ({{refreshTokens.length}})

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ActionSubjectClientIssued At (UTC)Expires At (UTC)
\\r\\n Remove\\r\\n \\r\\n {{ token.subject }}\\r\\n \\r\\n {{ token.clientId }}\\r\\n \\r\\n {{ token.issuedUtc | date:\\'short\\' }}\\r\\n \\r\\n {{ token.expiresUtc | date:\\'short\\' }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/test/views/test.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n Clear Execution and Report Data\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n Clear Report Data\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n   \\r\\n   \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n Inspect Process Info\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Clear and Regen Report Data for a Single Process\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n   \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
');\n$templateCache.put('./app/test/views/testAutoVersionAndActivate.html','
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{processConfig.processTypeName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n    \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/test/views/testMemory.html','
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n    \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Before Process Info:
\\r\\n {{beforeProcessInfo}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n After Process Info:
\\r\\n {{afterProcessInfo}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Process Info:
\\r\\n
\\r\\n                \\r\\n                    {{processInfo}}\\r\\n                \\r\\n            
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/test/views/testProcessEvent.html','
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
');\n$templateCache.put('./app/views/configuration/apiConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

API Configuration

\\r\\n

Create API\\'s for external systems to call and get data

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing API\\'s\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditNameDescriptionDelete
Edit{{apiConfig.name}}{{apiConfig.description}}Delete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Create A New API\\r\\n Edit Existing API\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{model.exampleUrl}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Parameter Name(s)
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/ApiKey.html','
\\r\\n
\\r\\n
\\r\\n

API Keys

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n

    \\r\\n {{apiKey.keyValue}}\\r\\n

    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/batchJobConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Batch Job Configuration

\\r\\n

Create batch jobs for the system or individual processes

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Batch Jobs\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionEditDelete
{{batchJobConfiguration.name}}{{batchJobConfiguration.description}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Create New Batch Job Configuration\\r\\n Edit Existing Batch Job Configuration\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

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

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

\\r\\n

\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Parameter NameBind Value
{{parameter.name}}\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(parameter.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/calculationConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Calculations

\\r\\n

Setup process calculations that can be used for various calculations throughout the process

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

Calculations

\\r\\n

Setup system calculations that can be used for various calculations throughout the system

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Calculations\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Calculations

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditDeleteNameDescription
EditDelete{{calculation.name}}{{calculation.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Exisiting Calculation\\r\\n Add New Calculation\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/configuration.html','
\\r\\n\\tProcess Type: {{model.processType.name}}\\r\\n\\t\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Manage Security Matrices

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Security Matrices\\r\\n
EditViewNameIdentifierTypeCopy
\\r\\n Edit\\r\\n \\r\\n View\\r\\n \\r\\n {{matrix.name}}\\r\\n \\r\\n {{matrix.id}}\\r\\n \\r\\n \\r\\n \\r\\n Copy\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Create/View Process Security

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Create Process Security Matrix:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n View Process Security Matrix:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Create Process Redirect Configuration

\\r\\n

\\r\\n Define a security row and object query that should be executed to determine if users should be redirected to another process when they attempt to create an instance of the current process.\\r\\n If a user meets the Redirect Security Matrix then the Object Query will be executed. If the Object Query returns zero results then the user will be redirected to the specified process type \\r\\n instead of creating a new process of this type.\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Redirect Security Matrix:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Redirect Object Query:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Redirect to Process:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Redirect Message:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n \\r\\n {{header.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n

Configure Sub Type Selection Modal

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

Enter the Sub Types for this Process

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditNameDisplay NameDescriptionSystem Sub TypeCreate Process ActionCreate Process ClaimIs Active
\\r\\n Edit\\r\\n {{subType.name}}{{subType.displayName}}{{subType.description}}{{subType.mySystemSubTypeGroup.name}}{{subType.myCreateProcessAction.name}}{{subType.myProcessClaimToGrantToProcessCreator.type}}{{subType.isActive | yesNoFilter}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Selected Sub Type\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Add New Status\\r\\n
\\r\\n
\\r\\n Edit Selected Status\\r\\n
\\r\\n
Process Status Flow - Double click an Process Status to begin configuring Workflow for the selected Status
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Map Configuration Overrides

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{override.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Included Functions\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n \\r\\n {{function.mapFunctionConfiguration.name}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Gis Action Workflow Overrides\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Workflow Name
\\r\\n Edit\\r\\n \\r\\n {{workflowOverride.gisActionWorkflowConfiguration.name}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.selectedWorkflowOverride.gisActionWorkflowConfiguration.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
FieldMetadataProperty NameIs ReadOnly
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Query Grid Overrides\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{queryGridOverride.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query Grid Override\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Placeholder Values
NameValueMap Function
{{wherePlaceholder.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Manage Process Actions
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Connect to System Status and States

\\r\\n

\\r\\n Map the statuses and states created in your process configuration to system defined statuses and states for system level reporting.\\r\\n

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

There are no system level statuses defined. If you wish to connect your process level statuses and states to system level statuses and states please first create your system level statuses and states.

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

Connect Process Statuses and States to the System Statuses and States

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{processStatus.shortDescription}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{processState.shortDescription}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Child Processes

\\r\\n

Business Processes

\\r\\n

\\r\\n Manage business processes. Business processes have their own form, workflow, and other information to support\\r\\n a particular business process.\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n 0\">\\r\\n \\r\\n \\r\\n \\r\\n {{processType.name}}\\r\\n\\r\\n Configure\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{processType.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Delete | Copy\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Reviews

\\r\\n

Setup reviews to be used in the process.

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Existing Reviews\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Review NameEditDelete
{{review.name}}\\r\\n Edit\\r\\n \\r\\n Delete\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Edit Review\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Comment Thread Configuration\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Review Reminders\\r\\n
NameDaysEmail
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Process Conditions

\\r\\n

Setup process conditions that can control the behavior and display of fields withing this business process

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Conditions\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Conditions

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditDeleteNameDescription
EditDelete{{condition.name}}{{condition.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Exisiting Condition\\r\\n Add New Condition\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Calculations

\\r\\n

Setup process calculations that can be used for various calculations throughout the process

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

Calculations

\\r\\n

Setup system calculations that can be used for various calculations throughout the system

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Calculations\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Calculations

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditDeleteNameDescription
EditDelete{{calculation.name}}{{calculation.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Exisiting Calculation\\r\\n Add New Calculation\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Email Notification System Actions

\\r\\n

Create email notifications for this business process

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Emails\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditNameSubjectDelete
Edit{{emailConfig.name}}\\r\\n \\r\\n Delete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Create New Email Notification\\r\\n Edit Existing Email Notification\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n






\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\" class=\"bootstrap emailTags\" ng-model=\"model.recipientTags\" on-tag-removed=\"model.removeRecipient($tag)\" replace-spaces-with-dashes=\"false\" key-property=\"id\">\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.recipient.text}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Value To Match On\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\" class=\"bootstrap emailTags\" ng-model=\"model.carbonCopyTags\" on-tag-removed=\"model.removeCarbonCarbonCopy($tag)\" replace-spaces-with-dashes=\"false\" key-property=\"id\">\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.carbonCopy.text}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Value To Match On\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\" class=\"bootstrap emailTags\" ng-model=\"model.blindCarbonCopiesTags\" on-tag-removed=\"model.removeBlindCarbonCopy($tag)\" replace-spaces-with-dashes=\"false\" key-property=\"id\">\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.blindCarbonCopy.text}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Value To Match On\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\" ng-model=\"model.documentTags\" on-tag-removed=\"model.removeDocument($tag)\" replace-spaces-with-dashes=\"false\" key-property=\"id\">\\r\\n \\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Payments

\\r\\n

Setup process payments that can be used for various payments throughout the process

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

Payments

\\r\\n

Setup system payments that can be used for various payments throughout the system

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Payments\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Payments

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionEditDelete
{{paymentConfig.name}}{{paymentConfig.description}}EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Payment Information\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Payment Details\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Tree Item Here\\r\\n {{model.getDisplayName(model.selectedPaymentConfiguration.amountTreeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Payment Request Configuration\\r\\n\\r\\n
\\r\\n
\\r\\n

A Custom Action and/or direct key value mapping can be used to generate all of the necessary form values for the payment request

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Payment Form Request Custom Action Info\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Configure the inputs required by the Custom Action selected:

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Direct Key/Value Payment Request Form Values\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Payment Response Configuration\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Set Custom Information to Capture from Payment Response\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Payment Response KeyPayment Custom Info LabelCalculationDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Drag Tree Item Here\\r\\n {{customInfoEntry.valueCalculation.name}}\\r\\n
\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Map Custom Information to Form or Process Data Fields\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{mapping.customInfo.customInfoLabel}}\\r\\n Payment Amount\\r\\n Payment Date\\r\\n Payment User\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Tree Item Here\\r\\n {{model.getDisplayName(mapping.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Clear Tree Item\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n\\\\
\\r\\n
\\r\\n
\\r\\n

PDF Generation System Actions

\\r\\n

Create PDF templates by mapping process fields to PDF placeholders

\\r\\n
\\r\\n
\\r\\n
\\r\\n Existing PDF Generation Mappings\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameNumber of PagesEditDelete
{{pdfBinding.name}}{{pdfBinding.numberOfPages}}EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit PDF Mapping\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Bindings

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

PDF

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.getTreeItemName(boundItem.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Full Text

\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n  \\r\\n {{model.getTreeItemName(boundItem.treeItem)}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Manage Process Variables

\\r\\n

Manage System Variables

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

The process variables configured can be used to save information not contained within a form. It will be available to this process and can be used to affect workflow.

\\r\\n

The system variables configured can be linked to any process field or process data field and used for reporting system wide.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Process Variables\\r\\n System Variables\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

System Level Time Tracker Configuration

\\r\\n

Process Level Time Tracker Configuration

\\r\\n

Setup Time Trackers to track process performance

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Time Trackers\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameIs System Time TrackerTypeIs IndexedEditDelete
{{timeTrackerContainer.myTimeTracker.name}}{{timeTrackerContainer.myTimeTracker.systemLevel_id ? \\'Yes\\' : \\'No\\'}}\\r\\n \\r\\n {{timeTrackerContainer.isIndexed | yesNoFilter}}EditDelete
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameTypeEditDelete
{{timeTracker.name}}\\r\\n \\r\\n EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Add Existing System Time Tracker\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Edit Time Tracker\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Time Tracking State Mappings\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{status.shortDescription}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Time Periods\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameHex ColorBegin Threshold ValueEditDelete
{{timePeriod.name}}{{timePeriod.hexColor}}    {{timePeriod.value}}EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Manage Scheduled Resources

\\r\\n
\\r\\n Add New Scheduled Resource\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n Manage Existing Scheduled Resources\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameCode GroupLast Updated OnLast Updated ByDeleteEdit
{{scheduledResource.name}}{{scheduledResource.myParentCodeGroup.groupName}}{{scheduledResource.lastUpdateDate | date: \\'short\\'}}{{scheduledResource.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Claims Assignment Configuration

\\r\\n

Setup process claims that can be used to restrict access and control workflow

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Assignments\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Claim Value Here\\r\\n {{model.getTreeItemName(model.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Add/Edit Claim Assignment\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{model.currentClaimsAssignment.myClaimChild.type}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Existing Assignments\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Claims that can be assigned by Users with the {{model.selectedClaim.type}} Claim\\r\\n
EditClaimPrevent Users from Removing Their Own AssignmentDelete
Edit{{claimAssignment.myClaimChild.type}}{{claimAssignment.preventAssignmentRemovalOfSelf | yesNoFilter}}Delete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Version / Activate

\\r\\n

Version the Business Process configuration and activate versions that are complete and ready for use

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Version Current Process Configuration\\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n

Invalid or Incomplete Configuration

\\r\\n

The current process configuration is invalid or incomplete. Please resolve all issues identified below before attempting another version.

\\r\\n

\\r\\n

    \\r\\n
  • {{validationIssue}}
  • \\r\\n
\\r\\n

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

Process configuration versions must be be activated before they can be utilized by new processes.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
 
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Process Configuration Versions\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
VersionVersion NameUserDateStatusExport FullExport TrimmedDelete
{{processConfig.minorVersion}}{{processConfig.versionName}}{{processConfig.lastUpdateUserName}}{{processConfig.lastUpdateDate | date: \\'short\\'}}\\r\\n Begin Activation\\r\\n Versioning\\r\\n \\r\\n N/A\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Export\\r\\n \\r\\n Export\\r\\n \\r\\n Delete\\r\\n N/A\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

No Versioned Process Configurations exist for this Business Process

\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Form Visibility Security

\\r\\n\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\tConfigure when the form will be shown in the application based on a condition or the users claim and the status and/or state\\r\\n\\t\\t\\t\\t\\tof the application.\\r\\n\\t\\t\\t\\t

\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t \\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Form Containers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameForm Container AssociationOrder
\\r\\n Edit\\r\\n {{container.name}}\\r\\n {{container.myFormContainerAssociation.name}}\\r\\n \\r\\n \\r\\n \\r\\n {{container.displayOrder}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Edit Container\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Container Items
FormOrder
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.displayOrder}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Forms

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameTypeOrder
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{form.displayOrder}}\\r\\n \\r\\n Configure\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Claim Definitions

\\r\\n

Setup process claims that can be used to restrict access and control workflow

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Process Claim Definitions\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameMaximum Possible AssignmentsSystem Claim GroupLast Updated OnLast Updated ByDeleteEdit
{{claim.type}}{{claim.maxAssignments}}{{claim.mySystemClaimGroup.name}}{{claim.lastUpdateDate | date: \\'short\\'}}{{claim.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Static Documents

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionFile NameDelete
{{document.fileName}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Add Static Document\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n

Process Document Configurations

\\r\\n

System Document Configurations

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

\\r\\n For secure documents the Document Configuration of the component that enables a user to upload a document dictates \\r\\n who can mark those documents as secure and who can download the document if it is marked as secure. \\r\\n If the document is displayed by another component in the application its Document Configuration does not affect the security \\r\\n applied to sensitive documents.\\r\\n

\\r\\n\\r\\n
\\r\\n Existing Document Configurations\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Configurations

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditDeleteName
EditDelete{{docConfig.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Selected Configuration\\r\\n \\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Manage System Email Groups

\\r\\n

Manage Process Email Groups

\\r\\n

Create email groups to be used across all business processes

\\r\\n

Create email groups to be used for this business process

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Add New System Email Group\\r\\n Add New Process Email Group\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Enter the Email Addresses for this New Email Group
Email AddressDelete
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n Manage Existing Email Groups\\r\\n Manage Existing System Email Groups\\r\\n Manage Existing Process Email Groups\\r\\n\\r\\n
\\r\\n Heads Up!\\r\\n System Email Groups are used throughout the system. Changing existing System Email Groups will affect existing and future processes system wide.\\r\\n Process Email Groups exist and can be used for changes that you wish to limit to a particular process version.\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Email AddressLast Updated OnLast Updated ByDeleteEdit
{{emailAddress.email}}{{emailAddress.lastUpdateDate | date: \\'short\\'}}{{emailAddress.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Constant Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionTypeValue
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Manage Codes

\\r\\n
\\r\\n Add New Code Group\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Enter the Codes for this New Code Grouping
Short DescriptionLong DescriptionDelete
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n Manage Existing Codes\\r\\n\\r\\n
\\r\\n Heads Up!\\r\\n System Codes are used throughout the system. Changing existing System CodeGroup will affect existing and future processes system wide.\\r\\n Process codes exist and can be used for changes that you wish to limit to a particular process.\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Short DescriptionLong DescriptionLast Updated OnLast Updated ByActiveEdit
{{code.shortDescription}}{{code.longDescription}}{{code.lastUpdateDate | date: \\'short\\'}}{{code.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Data Sources\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescription
Edit{{dataSource.name}}{{dataSource.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit DataSource\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Operations\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{operation.name}}\\r\\n {{operation.url}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Parameters
NameRequiredDescriptionData TypeTest Value
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Operation Result
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameTypeIsRequiredValues
\\r\\n {{property.name}}\\r\\n \\r\\n \\r\\n \\r\\n {{property.required}}\\r\\n \\r\\n
\\r\\n Values:\\r\\n
    \\r\\n
  • \\r\\n {{code.shortDescription}}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n {{property.typeSchema.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Data Source Object Schemas\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{objectSchema.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameTypeIsRequiredValues
\\r\\n {{property.name}}\\r\\n \\r\\n \\r\\n \\r\\n {{property.required}}\\r\\n \\r\\n
\\r\\n Values:\\r\\n
    \\r\\n
  • \\r\\n {{code.shortDescription}}\\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n {{property.typeSchema.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n    \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Data Link Configuration

\\r\\n

\\r\\n Creating a Data Link ties two fields together. Changes to one field are applied to the other field automatically.\\r\\n

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

\\r\\n Data Linkages\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Item 1Item 2Delete
\\r\\n
\\r\\n Drag Form or Variable Item Here\\r\\n {{dataLink.item1TreeItem.detailedDisplay}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Form or Variable Item Here\\r\\n {{dataLink.item2TreeItem.detailedDisplay}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Manage Queries

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditName
\\r\\n Edit\\r\\n \\r\\n {{query.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Parameter NameBind Value
{{parameter.name}}\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(parameter.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n New Object Query\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Object Queries\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameAggregate QueryApply SortCompress ResultsLimit ResultsTransformerCompiledDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0 || !objectQuery.expanded\" ng-model=\"objectQuery.isAggregateQuery\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Select\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n TypePropertyAliasProjectionOrderDescending
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Drag Form Field, Variable, or Calculation here\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{model.getTreeItemName(projection.reportDataTreeItem)}}\\r\\n \\r\\n
\\r\\n Current Status\\r\\n Current State\\r\\n Current Status Updated By\\r\\n Current State Updated By\\r\\n Current Status Updated Date\\r\\n Current State Updated Date\\r\\n Row Identifier\\r\\n Process Type\\r\\n Process Sub-Type\\r\\n Process Identifier\\r\\n Process Initiator\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n   {{projection.orderNumerator}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Regen Output Schema\\r\\n \\r\\n   \\r\\n Regen Input Schema\\r\\n \\r\\n   \\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Object Query Form API\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n Object Query Form Property Mapping\\r\\n
\\r\\n
\\r\\n {{property.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Object Query Result Mapping\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n List Schema Property: {{set.listObjectSchemaPropertyName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n   {{set.listOrder}}\\r\\n \\r\\n
\\r\\n
\\r\\n ROOT\\r\\n
\\r\\n \\r\\n Column NameOrderInclude IfConditionExport OnlyMapping
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n   {{property.columnOrder}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t

Auto-Complete Configuration

\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
NameReturn Process
Edit{{autoComplete.name}}{{autoComplete.returnProcessId}}
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\tEdit Auto-Complete\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t

API Action Configuration

\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
Api Actions
Name
Edit{{action.name}}
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\tEdit Api Action\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Input Schema

\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Output Schema

\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t \\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Batch Job Configuration

\\r\\n

Create batch jobs for the system or individual processes

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Batch Jobs\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionEditDelete
{{batchJobConfiguration.name}}{{batchJobConfiguration.description}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Create New Batch Job Configuration\\r\\n Edit Existing Batch Job Configuration\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

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

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

\\r\\n

\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Parameter NameBind Value
{{parameter.name}}\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(parameter.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\t\\n\\n
\\r\\n
\\r\\n
\\r\\n

Api Grid Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescription
\\r\\n Edit\\r\\n {{apiGrid.name}}{{apiGrid.description}}
\\r\\n
\\r\\n
\\r\\n\\r\\n Edit Api-Grid Configuration\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Columns

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{column.displayName}}\\r\\n
\\r\\n \\r\\n {{column.position}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{column.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{column.systemAction.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Related Claim Process Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Process Type
Edit{{relatedClaimProcessType.field.autoCompleteConfiguration.processType.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Edit Claims\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Gis Datastore Mapping

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{gisDataStoreMetadataMapping.gisDatastore.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameBinding
{{mapping.name}}\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(mapping.mappingProperty)}}\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

System Event Configuration

\\r\\n

Process Event Configuration

\\r\\n

Setup Process Events

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameAllow CommentAllow AttachmentsSystem ActionProcess ActionEditDelete
{{processEventConfiguration.name}}{{processEventConfiguration.allowComment | yesNoFilter}}{{processEventConfiguration.allowAttachments | yesNoFilter}}{{processEventConfiguration.mySystemAction ? processEventConfiguration.mySystemAction.name: \\'\\'}}{{processEventConfiguration.myProcessAction ? processEventConfiguration.myProcessAction.name: \\'\\'}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Process Event Configuration\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Initiate Security\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n View Security\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

External API Configuration

\\r\\n

\\r\\n Generate and define the Unique Names for statuses, states, review configurations, fields and variables so they can be referenced by external API\\'s.\\r\\n

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

Process Name Mapping

\\r\\n
\\r\\n
\\r\\n \\r\\n {{processConfiguration.myProcessType.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{processConfiguration.myExternalApiConfiguration.uniqueName}}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Status/State Mappings\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{statusMapping.statusCode.shortDescription}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{statusMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{stateMapping.stateCode.shortDescription}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{stateMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Form Mappings\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{formMapping.form.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{formMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{listMapping.objectSchema.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{listMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n \\r\\n {{propertyMapping.schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{propertyMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{propertyMapping.schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{propertyMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Process Data Mappings\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{listMapping.objectSchema.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{listMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n \\r\\n {{propertyMapping.schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{propertyMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{propertyMapping.schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{propertyMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Review Mappings\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{reviewMapping.reviewConfiguration.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{reviewMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Inter-Process API Configuration

\\r\\n

\\r\\n Configure access to data from another process that related to your process\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Inter-Process APIs\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Inter-Process APIs

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEditDelete
{{interProcessApi.name}}EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Inter-Process API Information\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
API Output Schema Definition
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
API Output Schema Mappings
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
API Output ParameterOther Process Field or VariableOther Process CalculationDelete
\\r\\n \\r\\n \\r\\n \\r\\n OR\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

API Configuration

\\r\\n

Create API\\'s for external systems to call and get data

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing API\\'s\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditNameDescriptionDelete
Edit{{apiConfig.name}}{{apiConfig.description}}Delete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Create A New API\\r\\n Edit Existing API\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{model.exampleUrl}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Parameter Name(s)
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
');\n$templateCache.put('./app/views/configuration/constantConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Constant Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionTypeValue
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/documentConfiguration.html','
\\r\\n

Process Document Configurations

\\r\\n

System Document Configurations

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

\\r\\n For secure documents the Document Configuration of the component that enables a user to upload a document dictates \\r\\n who can mark those documents as secure and who can download the document if it is marked as secure. \\r\\n If the document is displayed by another component in the application its Document Configuration does not affect the security \\r\\n applied to sensitive documents.\\r\\n

\\r\\n\\r\\n
\\r\\n Existing Document Configurations\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Configurations

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditDeleteName
EditDelete{{docConfig.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n Selected Configuration\\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/manageClaimGroups.html','
\\r\\n
\\r\\n
\\r\\n

Manage System Claim Groups

\\r\\n

Create and manage system claim groups. Process claims should be associated to a system claim group if the meaning of that process claim is consistent across processes.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Claim Groups\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionEditDelete
{{claimGroup.name}}{{claimGroup.description}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Manage Claim Group\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/manageFormContainerAssociations.html','
\\r\\n
\\r\\n
\\r\\n

Manage Form Container Associations

\\r\\n

Create and manage Form Container Associations. Process Form Containers should be associated to a System Form Container Association if the meaning\\r\\n of that Form Container is consistent across processes.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Form Container Associations\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionEditDelete
{{formContainerAssociation.name}}{{formContainerAssociation.description}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Manage Form Container Association\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/manageProcessEvent.html','
\\r\\n
\\r\\n
\\r\\n

System Event Configuration

\\r\\n

Process Event Configuration

\\r\\n

Setup Process Events

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameAllow CommentAllow AttachmentsSystem ActionProcess ActionEditDelete
{{processEventConfiguration.name}}{{processEventConfiguration.allowComment | yesNoFilter}}{{processEventConfiguration.allowAttachments | yesNoFilter}}{{processEventConfiguration.mySystemAction ? processEventConfiguration.mySystemAction.name: \\'\\'}}{{processEventConfiguration.myProcessAction ? processEventConfiguration.myProcessAction.name: \\'\\'}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Process Event Configuration\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Initiate Security\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n View Security\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/manageReviewGroups.html','
\\r\\n
\\r\\n
\\r\\n

Manage System Review Groups

\\r\\n

Create and manage system review groups. Process reviews should be associated to a system review group if the meaning of that process review is consistent across processes.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Review Groups\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionEditDelete
{{reviewGroup.name}}{{reviewGroup.description}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Manage Review Group\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/manageScheduledResources.html','
\\r\\n
\\r\\n
\\r\\n

Manage Scheduled Resources

\\r\\n
\\r\\n Add New Scheduled Resource\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n Manage Existing Scheduled Resources\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameCode GroupLast Updated OnLast Updated ByDeleteEdit
{{scheduledResource.name}}{{scheduledResource.myParentCodeGroup.groupName}}{{scheduledResource.lastUpdateDate | date: \\'short\\'}}{{scheduledResource.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/manageStatuses.html','
\\r\\n
\\r\\n
\\r\\n

System Statuses and States

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{model.systemLevel.statusCodeGroup.shortDescription}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n 0\">\\r\\n \\r\\n \\r\\n \\r\\n {{status.shortDescription}}\\r\\n Delete\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n 0\">\\r\\n \\r\\n \\r\\n \\r\\n {{state.shortDescription}}\\r\\n \\r\\n Delete\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/manageSubTypeGroups.html','
\\r\\n
\\r\\n
\\r\\n

Manage Process Sub Type Groups

\\r\\n

Create and manage process sub types groups. Process Sub Types should be associated to a system group if the meaning\\r\\n of that process sub type is consistent across processes.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Sub Type Groups\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionIs ActiveEditDelete
{{subTypeGroup.name}}{{subTypeGroup.description}}{{subTypeGroup.isActive | yesNoFilter }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Manage SubType Group\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/manageSystemActions.html','
\\r\\n
\\r\\n
\\r\\n

Manage System Actions

\\r\\n

Create and manage System Actions. Process Actions should be associated to a System Action if the meaning\\r\\n of that Action is consistent across processes.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing System Actions\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionNumber of Return PathsEditDelete
{{systemAction.name}}{{systemAction.description}}{{systemAction.numberOfReturnPaths}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Manage System Action\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/manageSystemCodes.html','
\\r\\n
\\r\\n
\\r\\n

Manage Codes

\\r\\n
\\r\\n Add New Code Group\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Enter the Codes for this New Code Grouping
Short DescriptionLong DescriptionDelete
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n Manage Existing Codes\\r\\n\\r\\n
\\r\\n Heads Up!\\r\\n System Codes are used throughout the system. Changing existing System CodeGroup will affect existing and future processes system wide.\\r\\n Process codes exist and can be used for changes that you wish to limit to a particular process.\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Short DescriptionLong DescriptionLast Updated OnLast Updated ByActiveEdit
{{code.shortDescription}}{{code.longDescription}}{{code.lastUpdateDate | date: \\'short\\'}}{{code.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/mapConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Map Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{map.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Edit Map Configuration\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Layers

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{layer.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Map Service Url:\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/paymentConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Payments

\\r\\n

Setup process payments that can be used for various payments throughout the process

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

Payments

\\r\\n

Setup system payments that can be used for various payments throughout the system

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Payments\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Payments

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescriptionEditDelete
{{paymentConfig.name}}{{paymentConfig.description}}EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Payment Information\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Payment Details\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Tree Item Here\\r\\n {{model.getDisplayName(model.selectedPaymentConfiguration.amountTreeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Payment Request Configuration\\r\\n\\r\\n
\\r\\n
\\r\\n

A Custom Action and/or direct key value mapping can be used to generate all of the necessary form values for the payment request

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Payment Form Request Custom Action Info\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Configure the inputs required by the Custom Action selected:

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Direct Key/Value Payment Request Form Values\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Payment Response Configuration\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Set Custom Information to Capture from Payment Response\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Payment Response KeyPayment Custom Info LabelCalculationDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Drag Tree Item Here\\r\\n {{customInfoEntry.valueCalculation.name}}\\r\\n
\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Map Custom Information to Form or Process Data Fields\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{mapping.customInfo.customInfoLabel}}\\r\\n Payment Amount\\r\\n Payment Date\\r\\n Payment User\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Tree Item Here\\r\\n {{model.getDisplayName(mapping.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Clear Tree Item\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/processData.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Manage Process Variables

\\r\\n

Manage System Variables

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

The process variables configured can be used to save information not contained within a form. It will be available to this process and can be used to affect workflow.

\\r\\n

The system variables configured can be linked to any process field or process data field and used for reporting system wide.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Process Variables\\r\\n System Variables\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/systemDocumentConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Manage System-Wide Document Defaults

\\r\\n

\\r\\n Create and manage document types and set acceptable document upload types for the entire system.\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Document Types\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Short DescriptionLong DescriptionIs Active
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n');\n$templateCache.put('./app/views/configuration/timePeriodConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

System Level Time Tracker Configuration

\\r\\n

Process Level Time Tracker Configuration

\\r\\n

Setup Time Trackers to track process performance

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Time Trackers\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameIs System Time TrackerTypeIs IndexedEditDelete
{{timeTrackerContainer.myTimeTracker.name}}{{timeTrackerContainer.myTimeTracker.systemLevel_id ? \\'Yes\\' : \\'No\\'}}\\r\\n \\r\\n {{timeTrackerContainer.isIndexed | yesNoFilter}}EditDelete
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameTypeEditDelete
{{timeTracker.name}}\\r\\n \\r\\n EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Add Existing System Time Tracker\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Edit Time Tracker\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Time Tracking State Mappings\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{status.shortDescription}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Time Periods\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameHex ColorBegin Threshold ValueEditDelete
{{timePeriod.name}}{{timePeriod.hexColor}}    {{timePeriod.value}}EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/contentManagement/contentManagement.html','
\\r\\n
\\r\\n
\\r\\n

Content Management

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

Pages

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameUrlIs Published
\\r\\n \\r\\n \\r\\n Select\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Menu Links - {{model.selectedMenuItem.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameContent PageProcessSecurity
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Separator\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Manage Security\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameContent PageProcessManage SecurityProcess Security
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Manage Security\\r\\n \\r\\n \\r\\n Manage Process Security\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
');\n$templateCache.put('./app/views/contentManagement/contentPages.html','
\\r\\n
\\r\\n
\\r\\n

Pages

\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/contentManagement/landingPageConfiguration.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameContent PageProcessManage SecurityProcess Security
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Manage Security\\r\\n \\r\\n \\r\\n Manage Process Security\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/contentManagement/menuConfiguration.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameUrlIs Published
\\r\\n \\r\\n \\r\\n Select\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Menu Links - {{model.selectedMenuItem.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameContent PageProcessSecurity
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Separator\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Manage Security\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/contentManagement/siteConfiguration.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/apiGrid.html',' 0\">\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t \\r\\n\\t\\t\\r\\n\\t\\r\\n
\\r\\n\\t\\t\\t\\tSelect\\r\\n\\t\\t\\t\\r\\n {{column.displayName}}\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t{{column.displayName}}\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t \\r\\n {{apiRow[column.schemaPropertyUniqueId]}}\\r\\n {{column.displayName}}\\r\\n\\t\\t\\t \\r\\n {{column.displayName}}\\r\\n\\t\\t \\r\\n \\r\\n {{apiRow[column.schemaPropertyUniqueId]}}\\r\\n \\r\\n\\t\\t \\r\\n\\t\\t {{apiRow[column.schemaPropertyUniqueId]}}\\r\\n\\t\\t \\r\\n\\t\\t \\r\\n\\t\\t {{apiRow[column.schemaPropertyUniqueId].dateTimeValue | date:\\'shortDate\\'}} \\r\\n\\t\\t \\r\\n\\t\\t\\t
\\r\\n
\\r\\n No Results were found.\\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/charactersRemaining.html','
({{model.remaining}} Characters Remaining)
');\n$templateCache.put('./app/views/directives/clearData.html','
\\r\\n
\\r\\n All Form data for this Process will be cleared.\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/codeDisplay.html','{{display}}');\n$templateCache.put('./app/views/directives/commentThread.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \"User\\r\\n
\\r\\n
\\r\\n
\\r\\n \"User\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.comment.userName}} commented:\\r\\n \\r\\n
\\r\\n {{model.comment.commentText}}\\r\\n
\\r\\n
\\r\\n {{model.commentDateLabel}}: {{model.comment.commentDate | date:\\'shortDate\\'}}\\r\\n
\\r\\n Post Date: {{model.comment.lastUpdateDate | date: \\'short\\'}}\\r\\n\\r\\n   {{model.deleteText}}\\r\\n    \\r\\n Respond\\r\\n    \\r\\n {{model.deleteButtonText}}\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/commentThreadConfiguration.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/conditionEditor.html','\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Message\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n The javascript has been edited and now only the advanced editor is available for use.\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Expression Parts

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/configurationFileUpload.html','\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n ERROR: {{model.errorMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 0\">\\r\\n\\r\\n
\\r\\n {{model.fileUploadProgress | number : 2}}% Complete\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Uploaded Files: \\r\\n

\\r\\n
\\r\\n
\\r\\n {{document.fileName}}\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/documentConfiguration.html','\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
1\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Available Document Types\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Select All |\\r\\n Clear All\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n Secured Documents Configuration\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Authorizations to Mark Documents Secure and Not-Secure:


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

Authorizations to Download Secure Documents:


\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/documentConfigurationComponent.html','
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/dropDown.html','');\n$templateCache.put('./app/views/directives/dropDownOld.html','');\n$templateCache.put('./app/views/directives/expressionGroup.html','
\\r\\n
\\r\\n
\\r\\n 1\">\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/fileDownload.html','\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.name}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.name}}\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/fileUpload.html','
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Uploaded DocumentUploaded Documents
FilenameFile SizeDocument TypeCommentLast Update ByDownloadEditDelete
{{document.fileName}}{{document.documentLength | readableFileSize}}{{document.documentTypeShortDescription}}{{document.descriptiveComment}}{{document.userName}}EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Still need to implement this!\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n Edit\\r\\n Delete\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{document.documentTypeShortDescription}}\\r\\n
\\r\\n
\\r\\n \\r\\n YES\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{document.documentTypeShortDescription}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/innerExpressionGroup.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Step Here\\r\\n {{model.expression.FormStep.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n User has\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{parameter.mySchemaProperty.name}} :\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(parameter.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n each\\r\\n \\r\\n \\r\\n the\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.valueTreeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n   of  \\r\\n {{model.getTreeItemParentName(model.expression.treeItem)}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n   of  \\r\\n {{model.getTreeItemParentName(model.expression.valueTreeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/objectQueryRestrictions.html','\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{model.parentRestriction == null ? \\'Where + And\\' : model.isAndGroup ? \\'And\\' : \\'Or\\'}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n OuterTypePropertyParameterOperatorResolved By
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Drag Form Field or Variable here\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{model.getTreeItemName(restriction.leftReportDataTreeItem)}}\\r\\n \\r\\n
\\r\\n Current Status\\r\\n Current State\\r\\n Current Status Updated By\\r\\n Current State Updated By\\r\\n Current Status Updated Date\\r\\n Current State Updated Date\\r\\n Row Identifier\\r\\n Process Type\\r\\n Process Sub-Type\\r\\n Process Initiator\\r\\n Process Identifier\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n ?\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Form Field or Variable here\\r\\n Drag Constant here\\r\\n Drag Placeholder here\\r\\n Drag Calculation here\\r\\n Drag Claim here\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{model.getTreeItemName(restriction.rightParameterTreeItem)}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Drag Form Field or Variable here\\r\\n Drag Constant here\\r\\n Drag Placeholder here\\r\\n Drag Calculation here\\r\\n Drag Claim here\\r\\n \\r\\n \\r\\n \\r\\n {{model.getTreeItemName(restriction.rightParameterTreeItem)}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Current User\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/objectSchema.html','
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{property.name}}\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tMapped:\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\tMapped To: {{getMappingName(property)}}\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
');\n$templateCache.put('./app/views/directives/objectSchemaEditor.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/processConfigurationTree.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/processFileDownload.html','\\r\\n [No Document Selected]\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{model.name}}\\r\\n {{model.name}}\\r\\n \\r\\n {{model.name}} (Secured)\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{model.name}} (Secured)\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/processStepDisplayOnly.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{$index + 1}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{currentStep.name}}\\r\\n

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

\\r\\n
\\r\\n \\r\\n Display Condition: {{getConditionNameById(currentStep.condition_id)}}\\r\\n \\r\\n
\\r\\n

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

\\r\\n
\\r\\n
\\r\\n {{ formSection.name }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Display Condition: {{getConditionNameById(formSection.condition_id)}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ formSection.description }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n {{field.label}}\\r\\n
Edit\\r\\n {{row[field.uniqueIdentifier]}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Edit

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/quickLink.html','\\r\\n \\r\\n');\n$templateCache.put('./app/views/directives/schemaProperty.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/securityMatrix.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n View Security Matrix\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
1 && model.securityMatrix.matrixType != 3\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Or

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

Or

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n 1\" ng-click=\"model.copySubTypeId = model.selectedSubTypeId\">\\r\\n \\r\\n 1 && model.copySubTypeId\" ng-click=\"model.pasteSubType()\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\">\\r\\n Show All Claims\\r\\n \\r\\n \\r\\n Save Hidden Claim Selections\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Hide\\r\\n 4 && !model.alwaysShowSecurityMatrixTextHorizontal}\">{{claim.type}}\\r\\n \\r\\n
4 && !model.alwaysShowSecurityMatrixTextHorizontal}\" style=\"border-style: dashed; border-width: 2px; border-color: black; padding: 5px;\" drag-over=\"model.onDragOver($event)\" drop-on=\"model.onDrop($event,claim.uniqueIdentifier)\">\\r\\n Drag Claim Value Here\\r\\n {{model.getClaimValueName(claim.uniqueIdentifier)}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{state.name}}\\r\\n \\r\\n \\r\\n {{state.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/setFieldData.html','
\\r\\n
\\r\\n
\\r\\n Drag Source Here\\r\\n {{sourceTreeItem.detailedDisplay}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Drag Destination Here\\r\\n {{destinationTreeItem.detailedDisplay}}\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/setListData.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/treeItemLookup.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Tree Item Here\\r\\n {{model.getDisplayName(lookupEntry.myTreeItem)}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/userName.html','{{userName}}');\n$templateCache.put('./app/views/directives/userView.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{user.firstName}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{user.lastName}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{user.email}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{user.phoneNumber}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{user.company}} / {{user.position}}\\r\\n {{user.company}} / Not Available\\r\\n Not Available / {{user.position}}\\r\\n Not Available / Not Available\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{user.provider}}\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/workflowWorkspace.html','
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Hide\\r\\n \\r\\n

Settings

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

Zoom & Pan

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

Please Select a Workflow Box Above to Configure the Workflow

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

Please Select or Add a Process Action Above

\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/addFormModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Add Form

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/addGroup.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Add New Form Section

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/confirmationModal.html','
\\r\\n

{{title}}

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

{{heading}}

\\r\\n

{{message}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
');\n$templateCache.put('./app/views/modals/contentPageProcessLinkModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Link To Process

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/contentPageStaticLinkModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Link To Static Page

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/deleteModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Delete Conflicts

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n The selected item could not be deleted without approval because its removal would cause the following:\\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n
    \\r\\n
  • {{conflictMessage}}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n
    \\r\\n
  • Descriptive reasons could not be displayed, please click Show Advanced to see detailed reasons this item cannot be deleted.
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Show Advanced\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Hide Advanced\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • {{detailedConflictMessage}}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/fileUploadModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Document Upload

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Documents
FilenameFile SizeRemove
{{document.fileName}}{{document.documentLength | readableFileSize}}Remove
\\r\\n
\\r\\n
\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n ERROR: {{model.errorMessage}}\\r\\n
\\r\\n
\\r\\n\\r\\n
= 0\">\\r\\n
\\r\\n {{model.fileUploadProgress.toFixed(0)}}% Complete\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/formGridModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Edit Grid Columns

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Columns\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n {{column.schemaProperty.name}}\\r\\n
    \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/historyModal.html','
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

History

\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
ValueUserDate
\\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n \\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t {{getValue(item)}}\\r\\n\\t\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\t {{item.user}}{{item.changeDate | date:\\'short\\'}}
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
');\n$templateCache.put('./app/views/modals/landingPageConfigurationSingleInstanceModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Single Instance Landing Page Configuration

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/processSubTypeModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{createProcessDto.header}}

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/repeatingDocumentViewModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Documents

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameCreated ByDateDocument
\\r\\n {{document.name}}\\r\\n \\r\\n {{document.createUserName}}\\r\\n \\r\\n {{document.lastUpdateDate | date: \\'short\\'}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/securityMatrixConditionModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Condition for {{state.name}} in {{claim.type}}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/securityMatrixModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Edit Security Matrix

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/viewSecurityMatrixModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Security Matrix View

\\r\\n
\\r\\n
\\r\\n {{securityMatrixViewDto.name}}
\\r\\n {{securityMatrixViewDto.type}}
\\r\\n\\r\\n
\\r\\n Always Visible\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n   
\\r\\n   
\\r\\n   \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Role(s): {{claimKey}}
\\r\\n \\r\\n Authority: \\r\\n {{authorityKey}}\\r\\n {{authorityKey}}\\r\\n
\\r\\n SubType(s): {{subTypeKey}}\\r\\n

\\r\\n
    \\r\\n
  • {{ row.statusOrState }}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/_claimEditModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Claim Definition\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/_dataSourceTestModal.html','\\r\\n\\r\\n\\r\\n \\r\\n\\t\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n');\n$templateCache.put('./app/views/modals/_emailAddressEditModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Edit Existing Email Address

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/_formChangeModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Form Change Modal

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

Move Form Section: , from Form: to ...

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

Loading...

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/_holidayModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Holiday\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/_scheduledResourceEditModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Edit Existing Scheduled Resource

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/_systemCodeEditModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Edit Existing System Code

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/_userActionModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{userActionDto.name}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n Allow Backdating\\r\\n Allow Future Dating\\r\\n Allow Backdating or Future Dating\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n (Past Dates are Allowed)\\r\\n (Future Dates are Allowed)\\r\\n (Past and Future Dates are Allowed)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n (Required)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n (Required)\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/process/form.html','
0\">\\r\\n
\\r\\n
\\r\\n \\r\\n Form Errors\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{model.currentStep.objectSchema.name}}\\r\\n \\r\\n

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

\\r\\n \\r\\n {{ formSection.objectSchema.name }}\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ formSection.description }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n {{field.schemaProperty.name}}\\r\\n
Edit\\r\\n {{row[field.uniqueIdentifier]}}\\r\\n {{row[field.uniqueIdentifier] | date: \\'short\\' }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Edit

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/process/process.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n \\r\\n Form Errors\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n');\n$templateCache.put('./app/views/process/reportProcess.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
1\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
0\">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n   \\r\\n Result Grouping Settings\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{setting.order}}
\\r\\n
{{setting.name}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Expand All\\r\\n   \\r\\n Collapse All\\r\\n
\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n Results {{((model.paging.currentPage - 1) * model.paging.pageSize) + 1}}\\r\\n through {{model.paging.currentPage * model.paging.pageSize > model.objectQueryResults.rows.length ? model.objectQueryResults.rows.length : model.paging.currentPage * model.paging.pageSize}}\\r\\n of {{model.objectQueryResults.rows.length}}\\r\\n
\\r\\n
\\r\\n No Results\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0 && (row.expanded || model.objectQueryResults.alwaysExpandLists)\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Execution Time: {{model.objectQueryResults.runtime | date: \\'MM/dd/yyyy-hh:mm a\\'}}\\r\\n
\\r\\n
\\r\\n {{model.objectQueryResults.reportName}} Results\\r\\n
\\r\\n
\\r\\n Excel Export\\r\\n
\\r\\n
\\r\\n \\r\\n {{column.name}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{column.name}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{cell.value == true ? \\'Yes\\' : \\'No\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | date: \\'MM/dd/yyyy\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | date: \\'MM/dd/yyyy-hh:mm a\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | date: \\'hh:mm a\\'}}\\r\\n \\r\\n \\r\\n \\r\\n 200\" title=\"{{cell.value}}\">\\r\\n {{cell.value | limitTo: 200}}...\\r\\n \\r\\n \\r\\n {{cell.value}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{cell.value}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{cell.linkName}}\\r\\n
\\r\\n
\\r\\n {{cell.aggregateInfo}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{cell.value == true ? \\'Yes\\' : \\'No\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | date: \\'MM/dd/yyyy\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | date: \\'MM/dd/yyyy-hh:mm a\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | date: \\'hh:mm a\\'}}\\r\\n \\r\\n \\r\\n \\r\\n 200\" title=\"{{cell.value}}\">\\r\\n {{cell.value | limitTo: 200}}...\\r\\n \\r\\n \\r\\n {{cell.value}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | number: 2}}\\r\\n \\r\\n \\r\\n {{cell.value | number}}\\r\\n \\r\\n \\r\\n {{cell.value}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{cell.linkName}}\\r\\n
\\r\\n
\\r\\n {{cell.aggregateInfo}}\\r\\n
\\r\\n
{{row.tables[0].columnList.columns[0].name}}:\\r\\n \\r\\n \\r\\n {{row.tables[0].rows[0].cells[0].value == true ? \\'Yes\\' : \\'No\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.tables[0].rows[0].cells[0].value | date: \\'MM/dd/yyyy\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.tables[0].rows[0].cells[0].value | date: \\'MM/dd/yyyy-hh:mm a\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{row.tables[0].rows[0].cells[0].value | date: \\'hh:mm a\\'}}\\r\\n \\r\\n \\r\\n {{row.tables[0].rows[0].cells[0].value}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{table.name}}\\r\\n
\\r\\n {{column.name}}\\r\\n
\\r\\n \\r\\n \\r\\n {{cell.value == true ? \\'Yes\\' : \\'No\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | date: \\'MM/dd/yyyy\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | date: \\'MM/dd/yyyy-hh:mm a\\'}}\\r\\n \\r\\n \\r\\n \\r\\n {{cell.value | date: \\'hh:mm a\\'}}\\r\\n \\r\\n \\r\\n {{cell.value}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/test/cleanDatabase.html','Clean Database');\n$templateCache.put('./app/views/configuration/gis/esriQueryConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

ESRI Rest Api Queries

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameLayer NameLayer Id
\\r\\n Edit\\r\\n {{query.name}}{{query.layer.name}}{{query.restLayerId}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/gisActionWorkflowConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

\\r\\n Gis Action Workflows\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameClear All At Completion
\\r\\n Edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Edit Workflow: {{model.currentWorkflow.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Gis Action Blocks\\r\\n
NameTypeWorkflow Order
\\r\\n Edit\\r\\n {{actionBlock.name}}\\r\\n \\r\\n \\r\\n {{actionBlock.workflowOrder}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Edit Action Block

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Draw Feature Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Add Features Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Buffer Geometry Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Validation Configuration\\r\\n \\r\\n \\r\\n \\r\\n Set Property Configuration\\r\\n \\r\\n \\r\\n \\r\\n Filter Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Trim Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Esri Query Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Inputs\\r\\n \\r\\n \\r\\n \\r\\n Outputs\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/gisDatastoreQueryConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

GIS Datastore Queries

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameGis Datastore
\\r\\n Edit\\r\\n {{query.name}}{{query.gisDatastore.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/javascriptTransformers.html','
\\r\\n
\\r\\n
\\r\\n

Javascript Transformers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{javascriptTransformer.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Javascript Transformer\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\nfunction(value){\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/layerConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Layers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{layer.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Map Service Info
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/legendConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Legend Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{legend.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Legend\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Legend Layer

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{legendLayer.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/mapConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Map Configuration

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

Layers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{layer.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Map Service Info
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Legend Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{legend.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Legend\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Legend Layer

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{legendLayer.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Map Functions Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{function.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Map Function\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Gis Action Workflows\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameClear All At Completion
\\r\\n Edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Edit Workflow: {{model.currentWorkflow.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Gis Action Blocks\\r\\n
NameTypeWorkflow Order
\\r\\n Edit\\r\\n {{actionBlock.name}}\\r\\n \\r\\n \\r\\n {{actionBlock.workflowOrder}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Edit Action Block

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Draw Feature Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Add Features Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Buffer Geometry Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Validation Configuration\\r\\n \\r\\n \\r\\n \\r\\n Set Property Configuration\\r\\n \\r\\n \\r\\n \\r\\n Filter Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Trim Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Esri Query Configuration\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Inputs\\r\\n \\r\\n \\r\\n \\r\\n Outputs\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

GIS Datastore Queries

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameGis Datastore
\\r\\n Edit\\r\\n {{query.name}}{{query.gisDatastore.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

ESRI Rest Api Queries

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameLayer NameLayer Id
\\r\\n Edit\\r\\n {{query.name}}{{query.layer.name}}{{query.restLayerId}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Query Grids

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n \\r\\n {{queryGrid.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query Grid\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
Grid Fields
NameShow In PopupOrderJavascript TransformerDictionaryDictionary TypeDistinct
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{field.displayOrder}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Queries
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{query.esriQueryConfiguration.name}}\\r\\n {{query.gisDatastoreQueryConfiguration.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n

Javascript Transformers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{javascriptTransformer.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Javascript Transformer\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\nfunction(value){\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Gis Action Workflows
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Map Functions
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{function.name}}:\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Edit Map Configuration\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/mapConfigurationPreview.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Gis Action Workflows
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Map Functions
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{function.name}}:\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/mapConfigurations.html','
\\r\\n
\\r\\n
\\r\\n

Map Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/mapFunctionConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Map Functions Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{function.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Map Function\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/gis/queryGridConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Query Grids

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n \\r\\n {{queryGrid.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query Grid\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
Grid Fields
NameShow In PopupOrderJavascript TransformerDictionaryDictionary TypeDistinct
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{field.displayOrder}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Queries
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{query.esriQueryConfiguration.name}}\\r\\n {{query.gisDatastoreQueryConfiguration.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/apiConfiguration.html','
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t

API Action Configuration

\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
Api Actions
Name
Edit{{action.name}}
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\tEdit Api Action\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Input Schema

\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Output Schema

\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t \\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t \\r\\n\\t\\t\\t \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/apiGridConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Api Grid Configuration

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameDescription
\\r\\n Edit\\r\\n {{apiGrid.name}}{{apiGrid.description}}
\\r\\n
\\r\\n
\\r\\n\\r\\n Edit Api-Grid Configuration\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Columns

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{column.displayName}}\\r\\n
\\r\\n \\r\\n {{column.position}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{column.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{column.systemAction.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/autoCompleteConfiguration.html','
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t

Auto-Complete Configuration

\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
NameReturn Process
Edit{{autoComplete.name}}{{autoComplete.returnProcessId}}
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\tEdit Auto-Complete\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/claimsConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Claims Assignment Configuration

\\r\\n

Setup process claims that can be used to restrict access and control workflow

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Assignments\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Claim Value Here\\r\\n {{model.getTreeItemName(model.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Add/Edit Claim Assignment\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{model.currentClaimsAssignment.myClaimChild.type}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Existing Assignments\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Claims that can be assigned by Users with the {{model.selectedClaim.type}} Claim\\r\\n
EditClaimPrevent Users from Removing Their Own AssignmentDelete
Edit{{claimAssignment.myClaimChild.type}}{{claimAssignment.preventAssignmentRemovalOfSelf | yesNoFilter}}Delete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n');\n$templateCache.put('./app/views/configuration/process/clocks.html','
\\r\\n
\\r\\n
\\r\\n

Clocks Configuration

\\r\\n

Setup clocks for Workflow States

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n Create New Clock\\r\\n Edit Existing Clock\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/customUserInterface.html','
\\r\\n
\\r\\n
\\r\\n

In-Work

\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/configuration/process/dataLinkConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Data Link Configuration

\\r\\n

\\r\\n Creating a Data Link ties two fields together. Changes to one field are applied to the other field automatically.\\r\\n

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

\\r\\n Data Linkages\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Item 1Item 2Delete
\\r\\n
\\r\\n Drag Form or Variable Item Here\\r\\n {{dataLink.item1TreeItem.detailedDisplay}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Form or Variable Item Here\\r\\n {{dataLink.item2TreeItem.detailedDisplay}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/emailSystemActionConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Email Notification System Actions

\\r\\n

Create email notifications for this business process

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Emails\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditNameSubjectDelete
Edit{{emailConfig.name}}\\r\\n \\r\\n Delete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Create New Email Notification\\r\\n Edit Existing Email Notification\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n






\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\" class=\"bootstrap emailTags\" ng-model=\"model.recipientTags\" on-tag-removed=\"model.removeRecipient($tag)\" replace-spaces-with-dashes=\"false\" key-property=\"id\">\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.recipient.text}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Value To Match On\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\" class=\"bootstrap emailTags\" ng-model=\"model.carbonCopyTags\" on-tag-removed=\"model.removeCarbonCarbonCopy($tag)\" replace-spaces-with-dashes=\"false\" key-property=\"id\">\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.carbonCopy.text}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Value To Match On\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\" class=\"bootstrap emailTags\" ng-model=\"model.blindCarbonCopiesTags\" on-tag-removed=\"model.removeBlindCarbonCopy($tag)\" replace-spaces-with-dashes=\"false\" key-property=\"id\">\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.blindCarbonCopy.text}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Value To Match On\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n 0\" ng-model=\"model.documentTags\" on-tag-removed=\"model.removeDocument($tag)\" replace-spaces-with-dashes=\"false\" key-property=\"id\">\\r\\n \\r\\n
\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(model.expression.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/externalApiConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

External API Configuration

\\r\\n

\\r\\n Generate and define the Unique Names for statuses, states, review configurations, fields and variables so they can be referenced by external API\\'s.\\r\\n

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

Process Name Mapping

\\r\\n
\\r\\n
\\r\\n \\r\\n {{processConfiguration.myProcessType.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{processConfiguration.myExternalApiConfiguration.uniqueName}}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Status/State Mappings\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{statusMapping.statusCode.shortDescription}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{statusMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{stateMapping.stateCode.shortDescription}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{stateMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Form Mappings\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{formMapping.form.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{formMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{listMapping.objectSchema.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{listMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n \\r\\n {{propertyMapping.schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{propertyMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{propertyMapping.schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{propertyMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Process Data Mappings\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{listMapping.objectSchema.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{listMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n \\r\\n {{propertyMapping.schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{propertyMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{propertyMapping.schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{propertyMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Review Mappings\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{reviewMapping.reviewConfiguration.name}}\\r\\n
\\r\\n
\\r\\n Set Custom Name\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{reviewMapping.uniqueName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/formConfiguration.html','
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t

Form Visibility Security

\\r\\n\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\tConfigure when the form will be shown in the application based on a condition or the users claim and the status and/or state\\r\\n\\t\\t\\t\\t\\tof the application.\\r\\n\\t\\t\\t\\t

\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t \\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/formContainerConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Form Containers

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameForm Container AssociationOrder
\\r\\n Edit\\r\\n {{container.name}}\\r\\n {{container.myFormContainerAssociation.name}}\\r\\n \\r\\n \\r\\n \\r\\n {{container.displayOrder}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Edit Container\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Container Items
FormOrder
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.displayOrder}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/gisDataStoreMetadataMapping.html','
\\r\\n
\\r\\n
\\r\\n

Gis Datastore Mapping

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{gisDataStoreMetadataMapping.gisDatastore.name}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameBinding
{{mapping.name}}\\r\\n
\\r\\n Drag Here\\r\\n {{model.getTreeItemName(mapping.mappingProperty)}}\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/interProcessApiConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Inter-Process API Configuration

\\r\\n

\\r\\n Configure access to data from another process that related to your process\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Inter-Process APIs\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Inter-Process APIs

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEditDelete
{{interProcessApi.name}}EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Inter-Process API Information\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
API Output Schema Definition
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
API Output Schema Mappings
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
API Output ParameterOther Process Field or VariableOther Process CalculationDelete
\\r\\n \\r\\n \\r\\n \\r\\n OR\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/mapConfigurationOverrides.html','
\\r\\n
\\r\\n
\\r\\n

Map Configuration Overrides

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{override.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Included Functions\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n \\r\\n {{function.mapFunctionConfiguration.name}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Gis Action Workflow Overrides\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Workflow Name
\\r\\n Edit\\r\\n \\r\\n {{workflowOverride.gisActionWorkflowConfiguration.name}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.selectedWorkflowOverride.gisActionWorkflowConfiguration.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
FieldMetadataProperty NameIs ReadOnly
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Query Grid Overrides\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n {{queryGridOverride.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit Query Grid Override\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Placeholder Values
NameValueMap Function
{{wherePlaceholder.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/mapToSystemStatusAndStates.html','
\\r\\n
\\r\\n
\\r\\n

Connect to System Status and States

\\r\\n

\\r\\n Map the statuses and states created in your process configuration to system defined statuses and states for system level reporting.\\r\\n

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

There are no system level statuses defined. If you wish to connect your process level statuses and states to system level statuses and states please first create your system level statuses and states.

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

Connect Process Statuses and States to the System Statuses and States

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{processStatus.shortDescription}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{processState.shortDescription}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/pdfGenerationConfiguration.html','\\\\
\\r\\n
\\r\\n
\\r\\n

PDF Generation System Actions

\\r\\n

Create PDF templates by mapping process fields to PDF placeholders

\\r\\n
\\r\\n
\\r\\n
\\r\\n Existing PDF Generation Mappings\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameNumber of PagesEditDelete
{{pdfBinding.name}}{{pdfBinding.numberOfPages}}EditDelete
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Edit PDF Mapping\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Bindings

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

PDF

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.getTreeItemName(boundItem.treeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Full Text

\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n  \\r\\n {{model.getTreeItemName(boundItem.treeItem)}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/processActions.html','
\\r\\n\\r\\n
\\r\\n
\\r\\n
Manage Process Actions
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
');\n$templateCache.put('./app/views/configuration/process/processClaimsConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Claim Definitions

\\r\\n

Setup process claims that can be used to restrict access and control workflow

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Process Claim Definitions\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameMaximum Possible AssignmentsSystem Claim GroupLast Updated OnLast Updated ByDeleteEdit
{{claim.type}}{{claim.maxAssignments}}{{claim.mySystemClaimGroup.name}}{{claim.lastUpdateDate | date: \\'short\\'}}{{claim.lastUpdateUserName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/processConditions.html','
\\r\\n\\r\\n
\\r\\n
\\r\\n

Process Conditions

\\r\\n

Setup process conditions that can control the behavior and display of fields withing this business process

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Conditions\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n

Existing Conditions

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditDeleteNameDescription
EditDelete{{condition.name}}{{condition.description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Exisiting Condition\\r\\n Add New Condition\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/processConfigVersion.html','
\\r\\n\\r\\n
\\r\\n
\\r\\n

Version / Activate

\\r\\n

Version the Business Process configuration and activate versions that are complete and ready for use

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Version Current Process Configuration\\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n
\\r\\n

Invalid or Incomplete Configuration

\\r\\n

The current process configuration is invalid or incomplete. Please resolve all issues identified below before attempting another version.

\\r\\n

\\r\\n

    \\r\\n
  • {{validationIssue}}
  • \\r\\n
\\r\\n

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

Process configuration versions must be be activated before they can be utilized by new processes.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
 
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n Existing Process Configuration Versions\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
VersionVersion NameUserDateStatusExport FullExport TrimmedDelete
{{processConfig.minorVersion}}{{processConfig.versionName}}{{processConfig.lastUpdateUserName}}{{processConfig.lastUpdateDate | date: \\'short\\'}}\\r\\n Begin Activation\\r\\n Versioning\\r\\n \\r\\n N/A\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Export\\r\\n \\r\\n Export\\r\\n \\r\\n Delete\\r\\n N/A\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

No Versioned Process Configurations exist for this Business Process

\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/processFormsConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Forms

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameTypeOrder
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{form.displayOrder}}\\r\\n \\r\\n Configure\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/processHeaderConfiguration.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Name
\\r\\n Edit\\r\\n \\r\\n {{header.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/processSubTypesConfiguration.html','
\\r\\n

Configure Sub Type Selection Modal

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

Enter the Sub Types for this Process

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
EditNameDisplay NameDescriptionSystem Sub TypeCreate Process ActionCreate Process ClaimIs Active
\\r\\n Edit\\r\\n {{subType.name}}{{subType.displayName}}{{subType.description}}{{subType.mySystemSubTypeGroup.name}}{{subType.myCreateProcessAction.name}}{{subType.myProcessClaimToGrantToProcessCreator.type}}{{subType.isActive | yesNoFilter}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Edit Selected Sub Type\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/relatedClaimProcessType.html','
\\r\\n
\\r\\n
\\r\\n

Related Claim Process Types

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Process Type
Edit{{relatedClaimProcessType.field.autoCompleteConfiguration.processType.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Edit Claims\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/reviewConfiguration.html','
\\r\\n
\\r\\n
\\r\\n

Reviews

\\r\\n

Setup reviews to be used in the process.

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Existing Reviews\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Review NameEditDelete
{{review.name}}\\r\\n Edit\\r\\n \\r\\n Delete\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Edit Review\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Comment Thread Configuration\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Review Reminders\\r\\n
NameDaysEmail
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/configuration/process/workflowDesigner.html','
\\r\\n \\r\\n
\\r\\n
\\r\\n Add New Status\\r\\n
\\r\\n
\\r\\n Edit Selected Status\\r\\n
\\r\\n
Process Status Flow - Double click an Process Status to begin configuring Workflow for the selected Status
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/calculate/calculationEditor.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Input Parameter Definition
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Preview Mode\\r\\n Design Mode\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/calculate/complexOperand.html','\\r\\n \\r\\n');\n$templateCache.put('./app/views/directives/calculate/complexOperandContent.html','');\n$templateCache.put('./app/views/directives/calculate/deletePopover.html','');\n$templateCache.put('./app/views/directives/calculate/deletePopoverContent.html','
\\r\\n Are you sure you want to delete this operation? \\r\\n

\\r\\n \\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/calculate/ifElseOperation.html','\\r\\n   \\r\\n (\\r\\n \\r\\n )\\r\\n   \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n =  \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n 2 && $index % 2 == 1\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n   \\r\\n (\\r\\n \\r\\n )\\r\\n   \\r\\n
\\r\\n
\\r\\n\\r\\n 2 && $index % 2 == 0\">\\r\\n \\r\\n =  \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n +\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n =  \\r\\n \\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/calculate/operandDropZoneContent.html','');\n$templateCache.put('./app/views/directives/calculate/operandDropZoneInput.html','\\uFEFF\\r\\n\\r\\n\\r\\n\\r\\nDrag List Item\\r\\n\\r\\n\\r\\n OR\\r\\n');\n$templateCache.put('./app/views/directives/calculate/operatorPopup.html','\\r\\n');\n$templateCache.put('./app/views/directives/calculate/operatorPopupContent.html','
\\r\\n \\r\\n \\r\\n \\r\\n Numeric Operators\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n String Operators\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Date/Time Operators\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Yes/No Operators\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Aggregate Operators\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n List Operators\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Other Operators\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Change Operand

\\r\\n Are you sure you want to remove this operand and replace it with an operation with the selected operator?

\\r\\n \\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/calculate/parameterDropZoneInput.html','\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n');\n$templateCache.put('./app/views/directives/calculate/simpleOperand.html','\\r\\n\\r\\n \\r\\n 0\">\\r\\n (\\r\\n \\r\\n \\r\\n \\r\\n , \\r\\n \\r\\n )\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n OR\\r\\n \\r\\n Drag Integer Duration Here\\r\\n \\r\\n \\r\\n {{getTreeItemName()}}\\r\\n \\r\\n \\r\\n \\r\\n   \\r\\n \\r\\n \\r\\n \\r\\n');\n$templateCache.put('./app/views/directives/calculate/simpleOperandContent.html','');\n$templateCache.put('./app/views/directives/calculate/valueOperation.html','\\r\\n\\r\\n \\r\\n (\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n +\\r\\n \\r\\n +\\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n ×\\r\\n \\r\\n ×\\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n ÷\\r\\n \\r\\n ÷\\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n 2\\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n ^\\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n  \\r\\n mod\\r\\n  \\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n \\r\\n   \\r\\n \\r\\n \\r\\n \\r\\n , \\r\\n \\r\\n Add\\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n   \\r\\n \\r\\n \\r\\n \\r\\n , \\r\\n \\r\\n Add\\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n (\\r\\n\\r\\n Lower Case: \\r\\n \\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n Upper Case: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n Sentence Case: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n Start Case: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n Trim Start: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n Trim End: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n\\r\\n \\r\\n (\\r\\n Pad Left: \\r\\n \\r\\n to Length: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n \\r\\n Pad Right: \\r\\n \\r\\n to Length: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n Substring: \\r\\n \\r\\n Start at: \\r\\n \\r\\n Total Length: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n +\\r\\n \\r\\n +\\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n \\r\\n Replace first occurrence of: \\r\\n \\r\\n with: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n \\r\\n Replace all occurrences of: \\r\\n \\r\\n with: \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n Spreadsheet Filename: \\r\\n \\r\\n Key: \\r\\n \\r\\n Key Column Index: \\r\\n \\r\\n Value Column Index: \\r\\n \\r\\n Default Value: \\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n +\\r\\n \\r\\n +\\r\\n\\r\\n )\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n (\\r\\n Not: \\r\\n \\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n String Length: \\r\\n \\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n ==\\r\\n !=\\r\\n >\\r\\n <\\r\\n >=\\r\\n <=\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n AND \\r\\n \\r\\n AND\\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n OR \\r\\n \\r\\n OR\\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n (\\r\\n =\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n
\\r\\n \\r\\n
\\r\\n )\\r\\n
\\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n )\\r\\n \\r\\n\\r\\n \\r\\n (\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n )\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n {{getOperation().getVariableTypeSymbol()}}\\r\\n
');\n$templateCache.put('./app/views/directives/documentation/condition.html','
\\r\\n \\r\\n {{condition.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{condition.message}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{condition.description}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
condition.javascript
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/documentation/conditionBlock.html','
\\r\\n
\\r\\n

{{conditionWorkflowBlock.label}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{conditionWorkflowBlock.label}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{conditionWorkflowBlock.conditionDto.description}}\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/documentation/createPdfActionBlock.html','
\\r\\n

{{workflowBlock.label}}

\\r\\n
\\r\\n \\r\\n {{workflowBlock.createPdfDto.description}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{workflowBlock.createPdfDto.generateForDownload | yesNoFilter}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{workflowBlock.createPdfDto.addToProcessDocuments | yesNoFilter}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Section {{$index + 1}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/documentation/pdfSection.html','
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n In-Work\\r\\n
\\r\\n
\\r\\n In-Work\\r\\n
\\r\\n
\\r\\n In-Work\\r\\n
');\n$templateCache.put('./app/views/directives/documentation/sendEmailActionBlock.html','
\\r\\n
\\r\\n

{{workflowBlock.label}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{workflowBlock.label}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{workflowBlock.description}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{emailConfiguration.name}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{emailConfiguration.emailSubject}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
Email Message not defined
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/documentation/stateBlock.html','
\\r\\n \\r\\n {{state.label}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{state.stateDto.description}}\\r\\n
');\n$templateCache.put('./app/views/directives/documentation/userActionBlock.html','
\\r\\n \\r\\n {{userAction.label}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{userAction.userActionDto.description}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{userAction.userActionDto.buttonLabel}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{userAction.userActionDto.executeFieldLevelValidation | yesNoFilter}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{userAction.userActionDto.commentAllowed | yesNoFilter}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{userAction.userActionDto.commentRequired | yesNoFilter}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{userAction.userActionDto.attachmentAllowed | yesNoFilter}}\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{userAction.userActionDto.attachmentRequired | yesNoFilter}}\\r\\n
');\n$templateCache.put('./app/views/directives/documentation/validateBlock.html','
\\r\\n

{{workflowBlock.label}}

\\r\\n
\\r\\n \\r\\n {{workflowBlock.validateDto.description}}\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{validateCondition.name}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/gis/addFeaturesConfiguration.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Attribute Mappings
Gis Datastore AttributeProperty NameJavascript TransformerCode TransformerLatitudeLongitude
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/gis/bufferConfiguration.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/gis/drawFeatureConfiguration.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/gis/drawStyle.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/gis/filterFeatureCollectionConfiguration.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n                    function(featureCollection){\\r\\n                
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n                    }\\r\\n                
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Filter Attributes
NameComparisionValue
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/gis/gisActionBlockEsriQueryConfiguration.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
');\n$templateCache.put('./app/views/directives/gis/gisActionValidationConfiguration.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\nfunction(collection){\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n            }\\r\\n        
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/gis/gisFieldMappings.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
FieldQuery FieldMetadata AttributeTransformer
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/gis/gisMap.html','
\\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/gis/gisQueryGrid.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Zoom\\r\\n \\r\\n {{mapping.name}}\\r\\n
\\r\\n \\r\\n \\r\\n {{row[mapping.uniqueId]}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/gis/gisWherePredicateCollection.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Where Predicates\\r\\n
Field NameMetadata ComparisionIs PlaceholderPlaceholder NameValueTransformer
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/gis/inputOutputCollection.html','
0\">\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameTypeRelated
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{input.relatedGisInputOutput.name}}\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/gis/mapFunction.html','\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/gis/selectGeometry.html','\\r\\n\\r\\n\\r\\n \\r\\n $Title$\\r\\n\\r\\n\\r\\n$END$\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/gis/setPropertyConfiguration.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/gis/trimConfiguration.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Line Trim Attributes\\r\\n \\r\\n
NameIs Add
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/configureRow.html','
\\r\\n
\\r\\n

Configure Form - {{formName}}

\\r\\n

{{description}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n Show Preview View\\r\\n
\\r\\n
\\r\\n Show Edit View\\r\\n
\\r\\n
\\r\\n Show Configure\\r\\n
\\r\\n
\\r\\n Show Custom Code\\r\\n
\\r\\n\\r\\n
\\r\\n Show Label Sliders\\r\\n Hide Label Sliders\\r\\n
\\r\\n Allow Step Re-ordering\\r\\n Disallow Step Re-ordering\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\nShow Form Schema\\r\\n
\\r\\n
\\r\\n
\\r\\n Hide Form Schema\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n OS ID: ({{formConfiguration.objectSchema_id}})\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n OS ID: ({{step.objectSchema_id}})\\r\\n Parent SP ID: ({{step.objectSchema.schemaProperty_id}})\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n OS ID: ({{section.objectSchema_id}})\\r\\n OS UID: ({{section.objectSchema.uniqueIdentifier}})\\r\\n Parent SP ID: ({{section.objectSchema.schemaProperty_id}})\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n SP ID: ({{field.schemaProperty.id}})\\r\\n SP UID: ({{field.schemaProperty.uniqueIdentifier}})\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/embeddedForm.html','\\r\\n\\r\\n\\r\\n \\r\\n\\t\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/inputForm/field.html','
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
= 0 && field.type <= 18\">\\r\\n
= 0 && field.type <= 9\">\\r\\n
= 0 && field.type <= 4\">\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
= 5 && field.type <= 9\">\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{formData[field.schemaProperty.uniqueIdentifier] | date:\\'shortDate\\'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
= 10 && field.type <= 18\">\\r\\n
= 10 && field.type <= 14 \">\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n ({{model.localTimeZone}})\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n $\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
= 15 && field.type <= 18 \">\\r\\n
\\r\\n
\\r\\n \\r\\n Start with http or https\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n %\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{formData[field.schemaProperty.uniqueIdentifier].beginDate | date:\\'shortDate\\'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n ({{model.localTimeZone}})\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{formData[field.schemaProperty.uniqueIdentifier].endDate | date:\\'shortDate\\'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n ({{model.localTimeZone}})\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
= 19 && field.type <= 37\">\\r\\n
= 19 && field.type <= 28\">\\r\\n
= 19 && field.type <= 23\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
= 24 && field.type <= 28\">\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
= 29 && field.type <= 37\">\\r\\n
= 29 && field.type <= 33 \">\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
= 34 && field.type <= 37 \">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Selected Location: Latitude :{{model.marker.coordinates.latitude}}  Longitude:{{model.marker.coordinates.longitude}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.customDivLoaded()}}\\r\\n Div \\'{{field.schemaProperty.name}}\\' , Id:{{field.schemaProperty.uniqueIdentifier}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n View History\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/fieldSection.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n [Edit]\\r\\n [Split]\\r\\n [Join]\\r\\n [Delete]\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/formCustomCodeConfiguration.html','\\uFEFF\\r\\n\\r\\n
\\r\\n
\\r\\n

Url Dependencies

\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Custom Code\\r\\n
NameTypeButton Name
Edit{{function.name}}\\r\\n \\r\\n {{function.field.schemaProperty.name}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
0\">\\r\\n \\r\\n \\r\\n
\\r\\n
0\">\\r\\n \\r\\n \\r\\n
\\r\\n
0\">\\r\\n \\r\\n \\r\\n
\\r\\n
0\">\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
0\">\\r\\n \\r\\n \\r\\n
\\r\\n
0\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 function(processId,formId,formDataId){ 
\\r\\n
 function(processId,formId,formDataId,rowId){ 
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
 } 
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/formList.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n {{column.schemaProperty.name}}\\r\\n
Edit Form\\r\\n {{value[column.schemaProperty.uniqueIdentifier]}}\\r\\n {{value[column.schemaProperty.uniqueIdentifier] | date: \\'short\\' }}\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/formSection.html','
\\r\\n\\t
\\r\\n\\t \\n\\n
\\r\\n \\r\\n Display Type:\\r\\n \\r\\n \\r\\n \\r\\n Display Condition:\\r\\n \\r\\n \\r\\n [Edit Grid Columns]\\r\\n [Field]\\r\\n [Delete]\\r\\n \\r\\n
\\n\\n\\r\\n

\\r\\n \\r\\n {{ formSection.objectSchema.name || \\'empty\\' }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ formSection.objectSchema.name || \\'\\' }}\\r\\n \\r\\n

\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n \\r\\n Section Readonly Condition:\\r\\n \\r\\n \\r\\n Edit Section Security Matrix\\r\\n    \\r\\n Move to Another Form/Step\\r\\n
\\r\\n
\\r\\n\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\t \\r\\n\\t   \\r\\n\\t \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/formSectionConfigurationSection.html','
\\r\\n \\r\\n Display Type:\\r\\n \\r\\n \\r\\n \\r\\n Display Condition:\\r\\n \\r\\n \\r\\n [Edit Grid Columns]\\r\\n [Field]\\r\\n [Delete]\\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/innerConfiguredStep.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/innerCustomStep.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Url Dependencies

\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/innerFormSection.html','
\\r\\n\\t
\\r\\n\\t\\t\\r\\n {{ formSection.description || \\'empty\\' }}\\r\\n \\r\\n\\t\\t\\r\\n {{ formSection.description || \\'\\' }}\\r\\n \\r\\n\\t
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
1\">\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/listSection.html','
\\r\\n\\t
\\r\\n\\t \\r\\n\\t
\\r\\n
\\r\\n
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n {{field.schemaProperty.name}}\\r\\n \\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t Edit\\r\\n View\\r\\n\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t {{row[field.schemaProperty.uniqueIdentifier]}}\\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t {{row[field.schemaProperty.uniqueIdentifier] | yesNoFilter}}\\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t{{row[field.schemaProperty.uniqueIdentifier] | date: \\'shortDate\\' }}\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n \\r\\n {{process.processNames[row[field.schemaProperty.uniqueIdentifier]]}}\\r\\n \\r\\n \\r\\n {{getDocumentDisplayString(row[field.schemaProperty.uniqueIdentifier])}}\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n\\t

Edit\\r\\n\\t\\t\\r\\n\\t

\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t \\r\\n\\t\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t[Edit]\\r\\n\\t\\t\\t[Delete]\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/modalForm.html','\\r\\n\\r\\n\\r\\n \\r\\n\\t\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/inputForm/multiStepForm.html','\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{$index + 1}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{$index + 1}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{ model.currentStep.objectSchema.name || \\'empty\\' }}\\r\\n \\r\\n \\r\\n {{model.currentStep.objectSchema.name}}\\r\\n \\r\\n
\\r\\n \\r\\n Display Condition:\\r\\n \\r\\n \\r\\n \\r\\n [Delete]\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n

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

Url Dependencies

\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/inputForm/reportForm.html','\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\n\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/singlePageForm.html','\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n {{ model.currentStep.objectSchema.name || \\'empty\\' }}\\r\\n \\r\\n \\r\\n {{model.currentStep.objectSchema.name}}\\r\\n \\r\\n
\\r\\n \\r\\n Display Condition:\\r\\n \\r\\n \\r\\n \\r\\n [Delete]\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n

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

Url Dependencies

\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n \\n\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\n\\n\\r\\n
\\r\\n
\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/inputForm/stepCircle.html','
\\r\\n
\\r\\n
\\r\\n {{$index + 1}}\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/inputForm/stepHeaderRow.html','
\\r\\n
\\r\\n

\\r\\n \\r\\n {{ model.currentStep.objectSchema.name || \\'empty\\' }}\\r\\n \\r\\n \\r\\n {{model.currentStep.objectSchema.name}}\\r\\n \\r\\n
\\r\\n \\r\\n Display Condition:\\r\\n \\r\\n \\r\\n \\r\\n [Delete]\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n

\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/inputForm/tabbedForm.html','\\r\\n\\r\\n\\r\\n \\r\\n\\t\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/manageForm/apiGridSection.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/manageForm/manageAssignments.html','
\\r\\n
0\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Claims In Grid
Claim Name
{{assignmentClaim.claimDefinition.type}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
UserEmailPhoneAssignment
\\r\\n {{assignment.userName}}\\r\\n \\r\\n {{assignment.email}}\\r\\n \\r\\n {{assignment.phone | phone}}\\r\\n \\r\\n {{assignment.claimType}}\\r\\n \\r\\n Delete\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{processClaims[0].type}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/manageForm/manageCommentThread.html','
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/manageForm/manageDocuments.html','
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Selection Order\\r\\n \\r\\n Name\\r\\n \\r\\n Document Type\\r\\n \\r\\n \\r\\n \\r\\n Descriptive Comment\\r\\n \\r\\n \\r\\n \\r\\n {{manageSection.manageDocumentsConfiguration.securedDocumentLabel}}\\r\\n \\r\\n SizeUserDate
\\r\\n \\r\\n \\r\\n \\r\\n {{document.selectionOrder}}\\r\\n {{document.name}}{{document.documentTypeShortDescription}}{{document.descriptiveComment}}\\r\\n {{document.isSecured | yesNoFilter}}\\r\\n \\r\\n \\r\\n {{document.documentLength | readableFileSize }}{{document.userName}}{{document.lastUpdateDate | date:\\'short\\'}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/manageForm/manageForm.html','
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/manageForm/manageSection.html','
\\r\\n
\\r\\n
\\r\\n Edit Security Matrix\\r\\n \\r\\n Display Type:\\r\\n \\r\\n \\r\\n [Delete]\\r\\n \\r\\n
\\r\\n

\\r\\n \\r\\n {{ manageSection.title|| \\'empty\\' }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ manageSection.title || \\'\\' }}\\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n {{ manageSection.description|| \\'empty\\' }}\\r\\n \\r\\n \\r\\n {{ manageSection.description || \\'\\' }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n [Delete]\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n');\n$templateCache.put('./app/views/directives/manageForm/manageTimeTrackersSection.html','
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\\r\\n
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t \\r\\n \\r\\n \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n {{timeTrackerConfig.timeTracker.name}}\\r\\n \\r\\n\\t\\t\\t\\t\\t\\t

\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tEdit View Security Matrix\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t
\\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
');\n$templateCache.put('./app/views/directives/manageForm/processDataSection.html','
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
Configure Process Data View
Process Data NameDisplay NameShowShow History
{{item.schemaProperty.name}}\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
NameValue
{{item.name}}\\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t \\r\\n \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
ItemValueView History
Item: {{$index + 1}}\\r\\n\\t\\t\\t\\t\\t \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{getListValue(item, row.id)}}\\r\\n \\r\\n\\t\\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t\\t\\t View History\\r\\n\\t\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t\\t\\t\\t\\t \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{getValue(item)}}\\r\\n \\r\\n \\r\\n \\r\\n View History\\r\\n \\r\\n \\r\\n\\t\\t\\t\\t\\t
\\r\\n\\t
\\r\\n
');\n$templateCache.put('./app/views/directives/manageForm/processEventSection.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Notification TypeCommentCreated UserDateDownloads
\\r\\n {{processEvent.notificationType}}\\r\\n \\r\\n {{processEvent.comment}}\\r\\n \\r\\n {{processEvent.createdUser}}\\r\\n \\r\\n {{processEvent.createdDate | date: \\'short\\'}}\\r\\n \\r\\n 0\">View Documents\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/directives/manageForm/reviewSection.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{model.manageSection.reviewConfiguration.reviewerLabel}}: \\r\\n \\r\\n {{review.userName}}\\r\\n
\\r\\n
\\r\\n Due Date: {{review.dueDate | date:\\'shortDate\\'}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{model.manageSection.reviewConfiguration.reviewLabel}} Status:\\r\\n \\r\\n In Progress\\r\\n Closed\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n {{review.reviewType}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{review.assignedDate|date:\\'shortDate\\'}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{review.comment}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{review.assignorName}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{review.closedDate | date:\\'shortDate\\'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Add {{model.manageSection.reviewConfiguration.reviewerLabel}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n  \\r\\n
\\r\\n
\\r\\n
\\r\\n {{model.errorMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
1\">\\r\\n \\r\\n
\\r\\n
\\r\\n {{model.manageSection.reviewConfiguration.codeGroup.codes[0].shortDescription}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n   \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Comments\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
0\">\\r\\n
\\r\\n

In-Work Comment: Comment will not be saved unless the Save button below is clicked.

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/manageForm/statusHistory.html','
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Security Matrix\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Collapse All |\\r\\n Expand All\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
StatusUserDate/Time
\\r\\n \\r\\n \\r\\n {{status.status}}\\r\\n \\r\\n {{status.userName}}\\r\\n \\r\\n {{status.lastUpdateDate | date: \\'short\\'}}\\r\\n
 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0 && showDocumentsAndComments\">\\r\\n \\r\\n \\r\\n 0\" ng-if=\"manageSection.manageStatusConfiguration.manageStatusType == 1\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
SubstatusUserActual Date/TimeEffective Date
\\r\\n \\r\\n {{state.state}}{{state.userName}}{{state.lastUpdateDate | date: \\'short\\'}}{{state.effectiveDate | date:\\'MM/dd/yyyy\\'}}
\\r\\n
 
\\r\\n
\\r\\n Comments:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
 
\\r\\n
\\r\\n Attachments:\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Workflow EventDescription
{{workflowBlock.name}}{{workflowBlock.workflowEventName}}
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0 && showDocumentsAndComments\">\\r\\n \\r\\n \\r\\n \\r\\n
StatusSubstatusWorkflow EventDescriptionUserActual Date/TimeEffective Date
{{entry.status}}{{entry.state}}{{entry.workflowBlockName}}{{entry.workflowBlockDescription}}{{entry.userName}}{{entry.lastUpdateDate | date: \\'short\\'}}{{entry.effectiveDate | date:\\'MM/dd/yyyy\\'}}
\\r\\n
 
\\r\\n
\\r\\n Comments:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
 
\\r\\n
\\r\\n Attachments:\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0 && showDocumentsAndComments\">\\r\\n \\r\\n \\r\\n \\r\\n
SubstatusUserActual Date/TimeEffective Date
{{entry.state}}{{entry.userName}}{{entry.lastUpdateDate | date: \\'short\\'}}{{entry.effectiveDate | date:\\'MM/dd/yyyy\\'}}
\\r\\n
 
\\r\\n
\\r\\n Comments:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
 
\\r\\n
\\r\\n Attachments:\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0 && showDocumentsAndComments\">\\r\\n \\r\\n \\r\\n \\r\\n
StatusSubstatusUserActual Date/TimeEffective Date
{{entry.status}}{{entry.state}}{{entry.userName}}{{entry.lastUpdateDate | date: \\'short\\'}}{{entry.effectiveDate | date:\\'MM/dd/yyyy\\'}}
\\r\\n
 
\\r\\n
\\r\\n Comments:\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
 
\\r\\n
\\r\\n Attachments:\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n');\n$templateCache.put('./app/views/modals/workflow/_addEditStatus.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Add New Process Status

\\r\\n

Edit Existing Process Status

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

\\r\\n All workflow for this status will be deleted. Are you sure you wish to Continue?\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_assignClaimSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Assign Claim Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
 
\\r\\n
\\r\\n
\\r\\n \\r\\n Assign/Un-Assign to User other than the Current User\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Select User to Assign or Un-Assign Claim to/from
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Target User Here\\r\\n {{getTreeItemDisplay(userTreeItem)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_bookResourceSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Book Scheduled Resource Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_calculateSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Calculation Settings

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

Calculation Result Location


\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Desired Result Location Here\\r\\n {{model.schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_changeStateSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Change State Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_conditionSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Condition Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_copySettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Copy Process Settings

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

Copy List Source Property and Copied Instance Destination Property


\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n The Process will be copied as many times as there are items in the list of the property selected.\\r\\n
\\r\\n
\\r\\n Drag List Property Here\\r\\n {{listPropertySchemaProperty.name}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Select a property that will be set with the value of the list property above. Each new Process will get one of the values in the list seleted above set in this property.\\r\\n
\\r\\n
\\r\\n Drag Property to Update Here\\r\\n {{propertyToUpdateSchemaProperty.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_createPdfSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Create PDF Settings

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

PDF Location


\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Drag Desired Result Location Here\\r\\n {{schemaProperty.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

PDF Section # {{$index + 1}}

\\r\\n
\\r\\n
\\r\\n Delete\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_gotoSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Go To Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_gotoStateSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Goto State Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Select a Dynamic Destination\\r\\n \\r\\n

Consider the following options based on the state in which the workflow was entered.

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n - OR -\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Select a Specific Destination\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_messageSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Message Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_outputOrderSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Workflow Block Output Order Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
    \\r\\n
  • {{validationMessage}}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameBlock TypeOutput Order
{{toBlock.name}}{{toBlock.type}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_processActionSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Process Action Settings

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_removeResourceSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Remove Scheduled Resource Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_returnFromProcessActionSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Return from Process Action Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_sendEmailSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Send Email Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n User Action Permissions\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_setDataSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Set Data Settings

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

\\r\\n Set Data Operations\\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
TypeSub TypeOperationOrderDelete
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n  \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n  \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_stateSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Workflow State Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_statusChangeSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Status Change Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_systemActionSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

System Action Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_userActionSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

User Action Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Form Validations\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
0\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n State/Status Backdating Permissions\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n State/Status Future Dating Permissions\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n User Action Permissions\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_validateSettingsModal.html','
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

Validate Settings

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/modals/workflow/_yesNoOutputSelectionModal.html','
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n

Yes or No Output Branch

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
');\n$templateCache.put('./app/views/directives/gis/mapFunction/gisWorkflowFunction.html','');\n$templateCache.put('./app/views/directives/gis/mapFunction/selectGeometryFunction.html','');\n$templateCache.put('./app/views/directives/gis/mapFunction/textPlaceHolderFunction.html','
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/gis/mapFunction/zoomToCodeDropDownFunction.html','
\\r\\n \\r\\n
');\n$templateCache.put('./app/views/directives/gis/mapFunction/zoomToTextbox.html','
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
');}]);","/// \r\nmodule warsApp.controllers {\r\n export interface ITestAutoVersionAndActivateScope extends angular.IScope {\r\n model: any;\r\n versionAndActivate: () => void;\r\n processConfigSelectionChanged: (processConfig: any) => void;\r\n allowVersionAndActivation: boolean;\r\n }\r\n\r\n export class TestAutoVersionAndActivateController implements IController {\r\n constructor(\r\n private $scope: ITestAutoVersionAndActivateScope,\r\n private testService: services.TestService)\r\n {\r\n $scope.allowVersionAndActivation = true;\r\n\r\n $scope.model = {\r\n processConfigs: [],\r\n processConfigIds: [],\r\n versionName: ''\r\n }\r\n testService.getInWorkProcessConfigs().then((processConfigs) => {\r\n $scope.model.processConfigs = processConfigs;\r\n });\r\n\r\n $scope.versionAndActivate = () => this.versionAndActivate();\r\n $scope.processConfigSelectionChanged = (processConfig: any) => this.processConfigSelectionChanged(processConfig);\r\n }\r\n\r\n private versionAndActivate() : void {\r\n this.testService.batchVersionAndActivate(this.$scope.model).then(() => {\r\n alert(\"Batch Version and Activation has been kicked off.\");\r\n this.$scope.allowVersionAndActivation = false;\r\n });\r\n }\r\n\r\n private processConfigSelectionChanged(processConfig: any) {\r\n if (processConfig.selected) {\r\n this.$scope.model.processConfigIds.push(processConfig.processConfigId);\r\n } else {\r\n this.$scope.model.processConfigIds = Enumerable.from(this.$scope.model.processConfigIds)\r\n .where(i => i !== processConfig.processConfigId)\r\n .toArray();\r\n }\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"TestAutoVersionAndActivateController\", [\"$scope\", \"testService\"]);","/// \r\nmodule warsApp.controllers {\r\n export interface ITestScope extends angular.IScope {\r\n ajaxPostException(): void;\r\n javascriptException() : void;\r\n restartApplicationPool(): void;\r\n clearReportData(): void;\r\n regenReportData(): void;\r\n clearAndRegenReportData(): void;\r\n clearProcessExecutionData(): void;\r\n clearProcessCache() : void;\r\n getProcessInfo(): void;\r\n getProcessJson(): void;\r\n processTypes: Wars.Domain.Model.ProcessType[];\r\n selectedProcessType: Wars.Domain.Model.ProcessType;\r\n selectedProcessId: string;\r\n selectedRepordDataProcessType: Wars.Domain.Model.ProcessType;\r\n includeNativeProcesses: boolean;\r\n includeConvertedProcesses: boolean;\r\n processId: string;\r\n processJson: string;\r\n }\r\n\r\n export class TestController implements IController {\r\n constructor(\r\n private $scope: ITestScope,\r\n private testService: services.TestService) {\r\n\r\n $scope.includeNativeProcesses = true;\r\n $scope.includeConvertedProcesses = true;\r\n\r\n $scope.ajaxPostException = () => this.ajaxPostException();\r\n $scope.javascriptException = () => this.javascriptException();\r\n $scope.restartApplicationPool = () => this.restartApplicationPool();\r\n\r\n $scope.clearReportData = () => this.clearReportData();\r\n $scope.clearAndRegenReportData = () => this.clearAndRegenReportData();\r\n $scope.regenReportData = () => this.regenReportData();\r\n $scope.clearProcessExecutionData = () => this.clearProcessExecutionData();\r\n $scope.clearProcessCache = () => this.clearProcessCache();\r\n $scope.getProcessInfo = () => this.getProcessInfo();\r\n $scope.getProcessJson = () => this.getProcessJson();\r\n\r\n this.testService.getActiveProcessTypes().then(\r\n (processTypes) => {\r\n this.$scope.processTypes = processTypes;\r\n });\r\n }\r\n\r\n private ajaxPostException() : void {\r\n this.testService.testAjaxPostException().then(() => {\r\n alert(\"This success alert should never be displayed!\");\r\n });\r\n }\r\n\r\n private javascriptException() : void {\r\n var cody = undefined;\r\n cody.jump();\r\n }\r\n\r\n private restartApplicationPool(): void {\r\n this.testService.unloadAppPool().then(() => {\r\n alert(\"Application Pool has been reloaded\");\r\n });\r\n }\r\n\r\n private getExecutionProcessTypeId(): string {\r\n return this.$scope.selectedProcessType ? this.$scope.selectedProcessType.id : undefined;\r\n }\r\n\r\n private getReportProcessTypeId(): string {\r\n return this.$scope.selectedRepordDataProcessType ? this.$scope.selectedRepordDataProcessType.id : undefined;\r\n }\r\n\r\n \r\n private clearReportData(): void {\r\n this.testService.clearReportData(this.getReportProcessTypeId()).then(() => {\r\n alert(\"Report Data has been Cleared\");\r\n });\r\n }\r\n\r\n private clearAndRegenReportData(): void {\r\n this.testService.clearAndRegenReportData(this.$scope.selectedProcessId).then(() => {\r\n alert(\"Report Data has been Cleared and Marked to be Regenerated for the Specified Process\");\r\n });\r\n }\r\n\r\n private regenReportData(): void {\r\n this.testService.regenReportData(this.getReportProcessTypeId()).then(() => {\r\n alert(\"Report Data Regeneration Task has been Created\");\r\n });\r\n }\r\n\r\n private clearProcessExecutionData(): void {\r\n var vm = {\r\n processTypeId: this.getExecutionProcessTypeId(),\r\n includeNativedData: this.$scope.includeNativeProcesses,\r\n includeConvertedData: this.$scope.includeConvertedProcesses\r\n };\r\n this.testService.clearProcessExecutionData(vm).then(() => {\r\n alert(\"Process Excecution Data has been Cleared\");\r\n });\r\n }\r\n\r\n private clearProcessCache(): void {\r\n this.testService.clearProcessCache().then(() => {\r\n alert(\"Process Cache has been Cleared\");\r\n });\r\n }\r\n\r\n private getProcessInfo(): void {\r\n this.testService.getProcessInfo().then(() => {\r\n alert(\"Process Information written to logs.\");\r\n });\r\n }\r\n\r\n private getProcessJson(): void {\r\n this.testService.getProcessJson(this.$scope.processId).then((json) => {\r\n this.$scope.processJson = json;\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"TestController\", [\"$scope\", \"testService\"]);","/// \r\nmodule warsApp.controllers {\r\n export interface ITestMemoryScope extends angular.IScope {\r\n model: Wars.Domain.Model.Dtos.TestMemoryConsumptionDto;\r\n beforeProcessInfo: string;\r\n afterProcessInfo: string;\r\n processInfo: string;\r\n getProcessInfo: () => void;\r\n test: () => void;\r\n clear: () => void ;\r\n }\r\n\r\n export class TestMemoryController implements IController {\r\n constructor(\r\n private $scope: ITestMemoryScope,\r\n private testService: services.TestService)\r\n {\r\n $scope.test = () => this.test();\r\n $scope.clear = () => this.clear();\r\n $scope.getProcessInfo = () => this.getProcessInfo();\r\n $scope.model = {};\r\n }\r\n\r\n private test() : void {\r\n this.testService.getProcessInfo().then((processInfo) => {\r\n this.$scope.beforeProcessInfo = processInfo;\r\n });\r\n this.testService.testMemoryFootprint(this.$scope.model).then((processInfo) => {\r\n this.$scope.afterProcessInfo = processInfo;\r\n });\r\n }\r\n\r\n private clear(): void {\r\n this.testService.clearTestItemsFromMemory().then((processInfo) => {\r\n this.$scope.beforeProcessInfo = undefined;\r\n this.$scope.afterProcessInfo = undefined;\r\n this.$scope.processInfo = processInfo;\r\n\r\n });\r\n }\r\n\r\n private getProcessInfo(): void {\r\n this.testService.getProcessInfo().then((processInfo) => {\r\n this.$scope.processInfo = processInfo;\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"TestMemoryController\", [\"$scope\", \"testService\"]);","/// \r\nmodule warsApp.controllers {\r\n export interface ITestProcessEventScope extends angular.IScope {\r\n model: any;\r\n }\r\n\r\n export class TestProcessEventController implements IController {\r\n constructor(\r\n private $scope: ITestProcessEventScope,\r\n private testService: services.TestService)\r\n {\r\n $scope.model = {};\r\n $scope.model.setProcessEventToCurrentValue = () => { this.setProcessEventToCurrentValue(); }\r\n $scope.model.rollback = () => { this.rollback(); }\r\n }\r\n\r\n private setProcessEventToCurrentValue() : void {\r\n this.testService.getCurrentProcessEventMaxId(this.$scope.model.processId).then((max) => {\r\n this.$scope.model.processEventId = max;\r\n });\r\n }\r\n\r\n private rollback(): void {\r\n this.testService.rollbackProcess(this.$scope.model.processId, this.$scope.model.processEventId).then(() => {\r\n alert(\"Process Reverted!\");\r\n });\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerController(\"TestProcessEventController\", [\"$scope\", \"testService\"]);","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/// \r\nvar warsApp;\r\n(function (warsApp) {\r\n var services;\r\n (function (services) {\r\n var TestService = /** @class */ (function (_super) {\r\n __extends(TestService, _super);\r\n function TestService($http, $q) {\r\n var _this = _super.call(this, $http) || this;\r\n _this.$q = $q;\r\n return _this;\r\n }\r\n TestService.prototype.getActiveProcessTypes = function () {\r\n this.handlerUrl = './api/developer/ActiveProcessTypes';\r\n return this.useGetHandler({});\r\n };\r\n TestService.prototype.testAjaxPostException = function () {\r\n this.handlerUrl = './api/developer/AjaxException';\r\n return this.usePostHandler({});\r\n };\r\n ;\r\n TestService.prototype.unloadAppPool = function () {\r\n this.handlerUrl = './api/developer/UnloadApplicationPool';\r\n return this.usePostHandler({});\r\n };\r\n TestService.prototype.clearReportData = function (processTypeId) {\r\n this.handlerUrl = './api/developer/ClearReportData';\r\n return this.usePostHandler({ processTypeId: processTypeId });\r\n };\r\n TestService.prototype.clearAndRegenReportData = function (processId) {\r\n this.handlerUrl = './api/developer/ClearAndRegenReportDataForProcess/' + processId;\r\n return this.usePostHandler({});\r\n };\r\n TestService.prototype.regenReportData = function (processTypeId) {\r\n this.handlerUrl = './api/developer/RegenReportData';\r\n return this.usePostHandler({ processTypeId: processTypeId });\r\n };\r\n TestService.prototype.clearProcessExecutionData = function (vm) {\r\n this.handlerUrl = './api/developer/ClearProcessExecutionData';\r\n return this.usePostHandler(vm);\r\n };\r\n TestService.prototype.clearProcessCache = function () {\r\n this.handlerUrl = './api/developer/ClearProcessCache';\r\n return this.usePostHandler({});\r\n };\r\n TestService.prototype.getProcessInfo = function () {\r\n this.handlerUrl = './api/developer/GetProcessInfo';\r\n return this.useGetHandler({});\r\n };\r\n TestService.prototype.getProcessJson = function (processId) {\r\n this.handlerUrl = './api/developer/ProcessJson/' + processId;\r\n return this.useGetHandler({});\r\n };\r\n TestService.prototype.getCurrentProcessEventMaxId = function (processId) {\r\n this.handlerUrl = './api/developer/GetCurrentProcessEventMaxId/' + processId;\r\n return this.useGetHandler({});\r\n };\r\n TestService.prototype.rollbackProcess = function (processId, processEventId) {\r\n this.handlerUrl = './api/developer/RollbackProcess/' + processId + \"/\" + processEventId;\r\n return this.usePostHandler({});\r\n };\r\n TestService.prototype.testMemoryFootprint = function (dto) {\r\n this.handlerUrl = './api/developer/MemoryFootprint';\r\n return this.usePostHandler(dto);\r\n };\r\n TestService.prototype.clearTestItemsFromMemory = function () {\r\n this.handlerUrl = './api/developer/ClearTestMemory';\r\n return this.usePostHandler({});\r\n };\r\n TestService.prototype.getInWorkProcessConfigs = function () {\r\n this.handlerUrl = './api/developer/GetInWorkProcessConfigs';\r\n return this.useGetHandler({});\r\n };\r\n TestService.prototype.batchVersionAndActivate = function (model) {\r\n this.handlerUrl = './api/developer/BatchVersionAndActivate';\r\n return this.usePostHandler(model);\r\n };\r\n TestService.prototype.impersonate = function (userId) {\r\n this.handlerUrl = \"./api/test/Impersonate/\" + userId;\r\n return this.usePostHandler({});\r\n };\r\n TestService.prototype.endImpersonation = function () {\r\n this.handlerUrl = \"./api/test/EndImpersonation\";\r\n return this.usePostHandler({});\r\n };\r\n TestService.prototype.changeDateTime = function (dto) {\r\n this.handlerUrl = \"./api/test/ProvideOffset\";\r\n return this.usePostHandler(dto);\r\n };\r\n TestService.prototype.endChangeDateTime = function () {\r\n this.handlerUrl = \"./api/test/ClearOffset\";\r\n return this.usePostHandler({});\r\n };\r\n return TestService;\r\n }(services.HttpHandlerService));\r\n services.TestService = TestService;\r\n })(services = warsApp.services || (warsApp.services = {}));\r\n})(warsApp || (warsApp = {}));\r\nwarsApp.registerService('TestService', ['$http', '$q']);\r\n","/// \r\nmodule warsApp.services {\r\n\r\n export class TestService extends HttpHandlerService {\r\n\r\n constructor($http: ng.IHttpService, private $q: ng.IQService) {\r\n super($http);\r\n }\r\n\r\n public getActiveProcessTypes(): ng.IPromise {\r\n this.handlerUrl = './api/developer/ActiveProcessTypes';\r\n return this.useGetHandler({});\r\n }\r\n\r\n public testAjaxPostException(): ng.IPromise {\r\n this.handlerUrl = './api/developer/AjaxException';\r\n return this.usePostHandler({});\r\n };\r\n\r\n public unloadAppPool() : ng.IPromise {\r\n this.handlerUrl = './api/developer/UnloadApplicationPool';\r\n return this.usePostHandler({});\r\n }\r\n\r\n public clearReportData(processTypeId: string): ng.IPromise {\r\n this.handlerUrl = './api/developer/ClearReportData';\r\n return this.usePostHandler({ processTypeId: processTypeId });\r\n }\r\n\r\n public clearAndRegenReportData(processId: string): ng.IPromise {\r\n this.handlerUrl = './api/developer/ClearAndRegenReportDataForProcess/' + processId;\r\n return this.usePostHandler({});\r\n }\r\n\r\n public regenReportData(processTypeId: string): ng.IPromise {\r\n this.handlerUrl = './api/developer/RegenReportData';\r\n return this.usePostHandler({ processTypeId: processTypeId });\r\n }\r\n\r\n public clearProcessExecutionData(vm: any): ng.IPromise {\r\n this.handlerUrl = './api/developer/ClearProcessExecutionData';\r\n return this.usePostHandler(vm);\r\n }\r\n\r\n public clearProcessCache(): ng.IPromise {\r\n this.handlerUrl = './api/developer/ClearProcessCache';\r\n return this.usePostHandler({});\r\n }\r\n\r\n public getProcessInfo(): ng.IPromise {\r\n this.handlerUrl = './api/developer/GetProcessInfo';\r\n return this.useGetHandler({});\r\n }\r\n\r\n public getProcessJson(processId: string): ng.IPromise {\r\n this.handlerUrl = './api/developer/ProcessJson/' + processId;\r\n return this.useGetHandler({});\r\n }\r\n \r\n public getCurrentProcessEventMaxId(processId: string): ng.IPromise {\r\n this.handlerUrl = './api/developer/GetCurrentProcessEventMaxId/' + processId;\r\n return this.useGetHandler({});\r\n }\r\n\r\n public rollbackProcess(processId: string, processEventId: number) {\r\n this.handlerUrl = './api/developer/RollbackProcess/' + processId + \"/\" + processEventId;\r\n return this.usePostHandler({});\r\n }\r\n\r\n public testMemoryFootprint(dto: Wars.Domain.Model.Dtos.TestMemoryConsumptionDto): ng.IPromise {\r\n this.handlerUrl = './api/developer/MemoryFootprint';\r\n return this.usePostHandler(dto);\r\n }\r\n\r\n public clearTestItemsFromMemory(): ng.IPromise {\r\n this.handlerUrl = './api/developer/ClearTestMemory';\r\n return this.usePostHandler({});\r\n }\r\n\r\n public getInWorkProcessConfigs(): ng.IPromise {\r\n this.handlerUrl = './api/developer/GetInWorkProcessConfigs';\r\n return this.useGetHandler({});\r\n }\r\n\r\n public batchVersionAndActivate(model: any): ng.IPromise {\r\n this.handlerUrl = './api/developer/BatchVersionAndActivate';\r\n return this.usePostHandler(model);\r\n }\r\n\r\n public impersonate(userId: string): ng.IPromise {\r\n this.handlerUrl = \"./api/test/Impersonate/\" + userId;\r\n return this.usePostHandler({});\r\n }\r\n\r\n public endImpersonation(): ng.IPromise {\r\n this.handlerUrl = \"./api/test/EndImpersonation\";\r\n return this.usePostHandler({});\r\n }\r\n\r\n public changeDateTime(dto: Wars.Domain.Model.Dtos.DateTimeOffsetDto): ng.IPromise {\r\n this.handlerUrl = \"./api/test/ProvideOffset\";\r\n return this.usePostHandler(dto);\r\n }\r\n\r\n public endChangeDateTime(): ng.IPromise {\r\n this.handlerUrl = \"./api/test/ClearOffset\";\r\n return this.usePostHandler({});\r\n }\r\n }\r\n}\r\n\r\nwarsApp.registerService('TestService', ['$http', '$q']);"]}