{"version":3,"sources":["webpack:///../$_lazy_route_resource lazy namespace object","webpack:///../node_modules/hammerjs/hammer.js","webpack:///../node_modules/moment/locale sync ^\\.\\/.*$","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/acm-api.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/acm-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/content-types.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/form-definition.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-schema-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-variations/connector-api-variation.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-variations/data-api-variation.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-variations/decision-table-api-variations.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-variations/file-api-variation.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-variations/form-api-variation.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-variations/process-api-variation.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-variations/script-api-variation.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-variations/trigger-api-variation.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/model-variations/ui-api-variation.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/process-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/project-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api-implementations/acm-api/request-api.helper.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api/api.interface.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api/model-schema-api.interface.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api/project-api.interface.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api/regex-patterns.ts","webpack:///../projects/modeling-shared/sdk/src/lib/api/types.ts","webpack:///../projects/modeling-shared/sdk/src/lib/code-editor/code-editor.extensions.ts","webpack:///../projects/modeling-shared/sdk/src/lib/code-editor/code-editor.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/code-editor/components/code-editor/code-editor.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/code-editor/components/code-editor/code-editor.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/code-editor/helpers/file-uri.ts","webpack:///../projects/modeling-shared/sdk/src/lib/code-editor/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/code-editor/services/code-editor-service.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/code-editor/services/code-validator.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/components/input-mapping-table/input-mapping-table.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/components/input-mapping-table/input-mapping-table.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/components/input-mapping-table/input-mapping-table.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/components/input-mapping-table/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/components/mapping-dialog/mapping-dialog.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/components/mapping-dialog/mapping-dialog.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/components/mapping-dialog/mapping-dialog.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/components/mapping-dialog/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/components/output-mapping-table/output-mapping-table.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/components/output-mapping-table/output-mapping-table.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/components/output-mapping-table/output-mapping-table.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/components/output-mapping-table/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/confirmation-dialog/components/confirmation-dialog/confirmation-dialog.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/confirmation-dialog/components/confirmation-dialog/confirmation-dialog.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/confirmation-dialog/confirmation-dialog.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/confirmation-dialog/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/confirmation-dialog/services/dialog.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/connector-editor/connector-editor.actions.ts","webpack:///../projects/modeling-shared/sdk/src/lib/connector-editor/connector-editor.selectors.ts","webpack:///../projects/modeling-shared/sdk/src/lib/connector-editor/connector-entities.state.ts","webpack:///../projects/modeling-shared/sdk/src/lib/connector-editor/connector.creator.ts","webpack:///../projects/modeling-shared/sdk/src/lib/connector-editor/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/extension/connector-editor.ts","webpack:///../projects/modeling-shared/sdk/src/lib/extension/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/components/entity-dialog/entity-dialog.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/components/entity-dialog/entity-dialog.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/components/header-breadcrumbs/header-breadcrumbs.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/components/header-breadcrumbs/header-breadcrumbs.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/directives/allowed-characters.directive.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/primitive-types.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/shared.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/unsaved-page.guard.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/utils/about-provider.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/utils/arrayize.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/utils/create-entries-names.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/utils/createJsonBlob.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/utils/empty-decision-table.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/utils/empty-diagram.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/utils/empty-script.ts","webpack:///../projects/modeling-shared/sdk/src/lib/helpers/utils/log-filters.ts","webpack:///../projects/modeling-shared/sdk/src/lib/i18n/provide-translations.ts","webpack:///../projects/modeling-shared/sdk/src/lib/i18n/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/interfaces/model-creator.interface.ts","webpack:///../projects/modeling-shared/sdk/src/lib/interfaces/model-editor-routes.ts","webpack:///../projects/modeling-shared/sdk/src/lib/interfaces/model-filter.interface.ts","webpack:///../projects/modeling-shared/sdk/src/lib/interfaces/model-uploader.interface.ts","webpack:///../projects/modeling-shared/sdk/src/lib/interfaces/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/bpmn-element.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/bpmn-modeler.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/bpmn-renderer.provider.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/cardview-properties/decision-task-item.model.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/cardview-properties/default-sequence-flow-item.model.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/cardview-properties/form-key.model.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/cardview-properties/implementation-item.model.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/cardview-properties/script-task-item.model.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/palette.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/process-editor.actions.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/process-editor.selectors.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/process-extensions.model.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/project-editor.constants.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/properties.ts","webpack:///../projects/modeling-shared/sdk/src/lib/process-editor/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/project-editor/project-context-menu.ts","webpack:///../projects/modeling-shared/sdk/src/lib/project-editor/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/ama-authentication.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/ama-services.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/auth.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/blob.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/download-resource.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/input-mapping-dialog.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/log-factory.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/mapping-dialog.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/output-mapping-dialog.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/title.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/services/uuid.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/ama-store.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/app.actions.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/app.selectors.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/app.state.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/base.effects.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/dashboard.selectors.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/dashboard.state.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/dialog.actions.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/entities.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/entity.actions.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/entity.selectors.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/logging.actions.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/project-entities.reducer.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/project-entities.state.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/project-tree.state.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/project.actions.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/project.selectors.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/project.state.ts","webpack:///../projects/modeling-shared/sdk/src/lib/store/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/validators/card-view-model-name.validator.ts","webpack:///../projects/modeling-shared/sdk/src/lib/validators/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/file.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/properties-viewer.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/properties-viewer.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-input.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-inputs/array-input.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-inputs/boolean-input.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-inputs/date-input.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-inputs/date-time-input.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-inputs/file-input.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-inputs/integer-input.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-inputs/json-input.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-inputs/string-input.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/value-type-inputs/value-type-inputs.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/properties-viewer/variable-value.pipe.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/variables.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/variables/variables.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/variables.module.ts","webpack:///../projects/modeling-shared/sdk/src/lib/variables/variables.service.ts","webpack:///../projects/modeling-shared/sdk/src/lib/workbench-layout/components/workbench-layout-content.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/workbench-layout/components/workbench-layout-content.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/workbench-layout/components/workbench-layout-sidenav.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/workbench-layout/components/workbench-layout-sidenav.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/workbench-layout/components/workbench-layout.component.html","webpack:///../projects/modeling-shared/sdk/src/lib/workbench-layout/components/workbench-layout.component.ts","webpack:///../projects/modeling-shared/sdk/src/lib/workbench-layout/public-api.ts","webpack:///../projects/modeling-shared/sdk/src/lib/workbench-layout/workbench-layout.module.ts","webpack:///../projects/modeling-shared/sdk/src/public-api.ts","webpack:///./app/ama-role-guard.service.ts","webpack:///./app/app-store.module.ts","webpack:///./app/app.component.ts","webpack:///./app/app.module.ts","webpack:///./app/app.routes.ts","webpack:///./app/app/about/about.component.css","webpack:///./app/app/about/about.component.html","webpack:///./app/app/about/about.component.ts","webpack:///./app/app/app-layout/app-layout.component.html","webpack:///./app/app/app-layout/app-layout.component.ts","webpack:///./app/app/app-layout/editor-footer/editor-footer.component.html","webpack:///./app/app/app-layout/editor-footer/editor-footer.component.ts","webpack:///./app/app/app-layout/editor-footer/editor-footer.service.interface.ts","webpack:///./app/app/app-layout/logging/components/log-history/log-history-entry/log-history-entry.component.html","webpack:///./app/app/app-layout/logging/components/log-history/log-history-entry/log-history-entry.component.ts","webpack:///./app/app/app-layout/logging/components/log-history/log-history.component.html","webpack:///./app/app/app-layout/logging/components/log-history/log-history.component.ts","webpack:///./app/app/app-layout/search-header/search-header.component.html","webpack:///./app/app/app-layout/search-header/search-header.component.ts","webpack:///./app/app/app-login/app-login.component.html","webpack:///./app/app/app-login/app-login.component.ts","webpack:///./app/app/error/error-content.component.html","webpack:///./app/app/error/error-content.component.ts","webpack:///./app/app/header/header-menu.component.html","webpack:///./app/app/header/header-menu.component.ts","webpack:///./app/app/host-settings/host-settings.component.html","webpack:///./app/app/host-settings/host-settings.component.ts","webpack:///./app/app/settings/settings-dialog.component.html","webpack:///./app/app/settings/settings-dialog.component.ts","webpack:///./app/app/themes.ts","webpack:///./app/bpmnjs-properties/bpmn-factory-with-properties.service.ts","webpack:///./app/bpmnjs-properties/bpmnjs-properties.module.ts","webpack:///./app/common/adf.module.ts","webpack:///./app/common/helpers/router-state.serializer.ts","webpack:///./app/common/helpers/services/error-handler.service.ts","webpack:///./app/common/helpers/services/error.service.ts","webpack:///./app/common/material.module.ts","webpack:///./app/common/services/ama-localstorage-merge-guard.service.ts","webpack:///./app/common/services/ama-model-schema-loader-guard.service.ts","webpack:///./app/common/services/app-footer.service.ts","webpack:///./app/common/services/application.constants.ts","webpack:///./app/common/services/model-storage.service.ts","webpack:///./app/common/services/plugin-routes-manager.service.ts","webpack:///./app/connector-editor/components/connector-editor/connector-editor.component.html","webpack:///./app/connector-editor/components/connector-editor/connector-editor.component.ts","webpack:///./app/connector-editor/components/connector-header/connector-header.component.html","webpack:///./app/connector-editor/components/connector-header/connector-header.component.ts","webpack:///./app/connector-editor/connector-editor.module.ts","webpack:///./app/connector-editor/extension/connector-creator.extension.ts","webpack:///./app/connector-editor/extension/connector-uploader.extension.ts","webpack:///./app/connector-editor/extension/connectors-filter.data-adapter.ts","webpack:///./app/connector-editor/extension/connectors-filter.extension.ts","webpack:///./app/connector-editor/router/connector-editor-routing.module.ts","webpack:///./app/connector-editor/router/connector-editor.routes.ts","webpack:///./app/connector-editor/router/guards/connector-loader.guard.ts","webpack:///./app/connector-editor/router/guards/connectors-loader.guard.ts","webpack:///./app/connector-editor/services/connector-editor.constants.ts","webpack:///./app/connector-editor/services/connector-editor.service.ts","webpack:///./app/connector-editor/store/connector-editor.actions.ts","webpack:///./app/connector-editor/store/connector-editor.effects.ts","webpack:///./app/connector-editor/store/connector-editor.reducer.ts","webpack:///./app/connector-editor/store/connector-editor.selectors.ts","webpack:///./app/connector-editor/store/connector-editor.state.ts","webpack:///./app/connector-editor/store/connector-entities.reducer.ts","webpack:///./app/dashboard/components/dashboard-navigation/dashboard-navigation.component.html","webpack:///./app/dashboard/components/dashboard-navigation/dashboard-navigation.component.ts","webpack:///./app/dashboard/components/projects-list/projects-list.component.html","webpack:///./app/dashboard/components/projects-list/projects-list.component.ts","webpack:///./app/dashboard/dashboard.module.ts","webpack:///./app/dashboard/router/dashboard-routing.module.ts","webpack:///./app/dashboard/router/dashboard.routes.ts","webpack:///./app/dashboard/services/dashboard.service.ts","webpack:///./app/dashboard/store/effects/projects.effects.ts","webpack:///./app/extensions.module.ts","webpack:///./app/process-editor/components/assignment/assignment-dialog.component.html","webpack:///./app/process-editor/components/assignment/assignment-dialog.component.scss","webpack:///./app/process-editor/components/assignment/assignment-dialog.component.ts","webpack:///./app/process-editor/components/process-editor/process-editor.component.html","webpack:///./app/process-editor/components/process-editor/process-editor.component.ts","webpack:///./app/process-editor/components/process-header/process-header.component.html","webpack:///./app/process-editor/components/process-header/process-header.component.ts","webpack:///./app/process-editor/components/process-modeler/messages/messages-dialog.component.html","webpack:///./app/process-editor/components/process-modeler/messages/messages-dialog.component.ts","webpack:///./app/process-editor/components/process-modeler/palette/palette-overlay.directive.ts","webpack:///./app/process-editor/components/process-modeler/palette/palette.component.html","webpack:///./app/process-editor/components/process-modeler/palette/palette.component.ts","webpack:///./app/process-editor/components/process-modeler/process-modeler.component.html","webpack:///./app/process-editor/components/process-modeler/process-modeler.component.ts","webpack:///./app/process-editor/components/process-properties/process-properties.component.html","webpack:///./app/process-editor/components/process-properties/process-properties.component.scss","webpack:///./app/process-editor/components/process-properties/process-properties.component.ts","webpack:///./app/process-editor/config/palette-elements.json.ts","webpack:///./app/process-editor/extension/process-creator.extension.ts","webpack:///./app/process-editor/extension/process-uploader.extension.ts","webpack:///./app/process-editor/extension/processes-filter.data-adapter.ts","webpack:///./app/process-editor/extension/processes-filter.extension.ts","webpack:///./app/process-editor/process-editor.module.ts","webpack:///./app/process-editor/router/guards/process-deactivate.guard.ts","webpack:///./app/process-editor/router/guards/process-loader.guard.ts","webpack:///./app/process-editor/router/guards/processes-loader.guard.ts","webpack:///./app/process-editor/router/process-editor-routing.module.ts","webpack:///./app/process-editor/router/process-editor.routes.ts","webpack:///./app/process-editor/services/bpmn-factory.service.ts","webpack:///./app/process-editor/services/bpmn-js/element.helper.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/assignee.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/calledElement.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/candidateGroups.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/candidateUsers.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/correlation-key.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/decisionTask.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/default-sequence-flow.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/documentation.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/dueDate.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/errorRef.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/expression.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/formSelector.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/id.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/implementation.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/isExecutable.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/message.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/model-name.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/multi-instance.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/name.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/priority.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/process-id.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/process-messages.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/process-name.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/process-variables.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/property.handlers.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/scriptTask.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/signalRef.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/signalScope.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/textAnnotation.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/timer-definition.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/update-event-definition-property.handler.ts","webpack:///./app/process-editor/services/bpmn-js/property-handlers/update-shape-property.handler.ts","webpack:///./app/process-editor/services/bpmn-js/renderers/decision-table.renderer.ts","webpack:///./app/process-editor/services/bpmn-js/renderers/script.renderer.ts","webpack:///./app/process-editor/services/bpmn/elements-properties.ts","webpack:///./app/process-editor/services/cardview-properties/assignee-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/assignment-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/bpmn2CardView.ts","webpack:///./app/process-editor/services/cardview-properties/called-element-item/called-element-item.component.html","webpack:///./app/process-editor/services/cardview-properties/called-element-item/called-element-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/called-element-item/called-element-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/calledElement-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/candidateGroups-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/candidateUsers-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/cardview-properties.factory.ts","webpack:///./app/process-editor/services/cardview-properties/correlationKey-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/decision-task-item/decision-task-item.component.html","webpack:///./app/process-editor/services/cardview-properties/decision-task-item/decision-task-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/decisionTask-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/default-sequence-flow-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/default-sequence-flow/default-sequence-flow-item.component.html","webpack:///./app/process-editor/services/cardview-properties/default-sequence-flow/default-sequence-flow-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/documentation-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/due-date-item/due-date-item.component.html","webpack:///./app/process-editor/services/cardview-properties/due-date-item/due-date-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/due-date-item/due-date-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/dueDate-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/error-ref-item/error-ref-item.component.html","webpack:///./app/process-editor/services/cardview-properties/error-ref-item/error-ref-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/error-ref-item/error-ref-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/errorRef-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/expression-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/formSelector-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/id-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/implementation-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/implementation-item/implementation-item.component.html","webpack:///./app/process-editor/services/cardview-properties/implementation-item/implementation-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/isExecutable-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/message-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/message-item/message-item.component.html","webpack:///./app/process-editor/services/cardview-properties/message-item/message-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/message-item/message-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/message-payload-item/message-payload-item.component.html","webpack:///./app/process-editor/services/cardview-properties/message-payload-item/message-payload-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/message-payload-item/message-payload-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/message-variable-mapping/message-variable-mapping.component.html","webpack:///./app/process-editor/services/cardview-properties/message-variable-mapping/message-variable-mapping.component.ts","webpack:///./app/process-editor/services/cardview-properties/message-variable-mapping/message-variable-mapping.service.ts","webpack:///./app/process-editor/services/cardview-properties/messagePayload-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/model-name-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/multi-instance-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/multi-instance-item/multi-instance-item.component.html","webpack:///./app/process-editor/services/cardview-properties/multi-instance-item/multi-instance-item.component.scss","webpack:///./app/process-editor/services/cardview-properties/multi-instance-item/multi-instance-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/multi-instance-item/multi-instance-item.service.ts","webpack:///./app/process-editor/services/cardview-properties/multi-instance-item/multi-instance.item.model.ts","webpack:///./app/process-editor/services/cardview-properties/name-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/priority-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/process-id-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/process-messages-item-property.ts","webpack:///./app/process-editor/services/cardview-properties/process-messages-item/process-messages-item.component.html","webpack:///./app/process-editor/services/cardview-properties/process-messages-item/process-messages-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/process-messages-item/process-messages-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/process-name-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/process-name-item/process-name-item.component.html","webpack:///./app/process-editor/services/cardview-properties/process-name-item/process-name-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/process-name-item/process-name-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/process-variable-item-property.ts","webpack:///./app/process-editor/services/cardview-properties/process-variable-item/process-variable-item.component.html","webpack:///./app/process-editor/services/cardview-properties/process-variable-item/process-variable-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/process-variable-item/process-variable-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/script-task-item/script-task-item.component.html","webpack:///./app/process-editor/services/cardview-properties/script-task-item/script-task-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/scriptTask-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/signal-ref-item/signal-ref-item.component.html","webpack:///./app/process-editor/services/cardview-properties/signal-ref-item/signal-ref-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/signal-ref-item/signal-ref-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/signalRef-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/signalScope-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/task-assignment-item/task-assignment-item.component.html","webpack:///./app/process-editor/services/cardview-properties/task-assignment-item/task-assignment-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/task-assignment-item/task-assignment-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/task-assignment-item/task-assignment.service.ts","webpack:///./app/process-editor/services/cardview-properties/text-annotation-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/timer-definition-item/timer-definition-item.component.html","webpack:///./app/process-editor/services/cardview-properties/timer-definition-item/timer-definition-item.component.ts","webpack:///./app/process-editor/services/cardview-properties/timer-definition-item/timer-definition-item.model.ts","webpack:///./app/process-editor/services/cardview-properties/timerDefinition-cardview-property.ts","webpack:///./app/process-editor/services/cardview-properties/validators/card-view-expression.validator.ts","webpack:///./app/process-editor/services/cardview-properties/validators/name-property.validator.ts","webpack:///./app/process-editor/services/cardview-properties/variables-cardview-property.ts","webpack:///./app/process-editor/services/clipboard/clipboard.service.ts","webpack:///./app/process-editor/services/messages.service.ts","webpack:///./app/process-editor/services/palette/dummy-bpmn-palette.provider.ts","webpack:///./app/process-editor/services/palette/handlers/element-creation.ts","webpack:///./app/process-editor/services/palette/handlers/tools.ts","webpack:///./app/process-editor/services/palette/process-modeler-palette.service.ts","webpack:///./app/process-editor/services/process-diagram-loader.service.ts","webpack:///./app/process-editor/services/process-editor.constants.ts","webpack:///./app/process-editor/services/process-editor.service.ts","webpack:///./app/process-editor/services/process-modeler.service.ts","webpack:///./app/process-editor/services/process-xml-updater.ts","webpack:///./app/process-editor/services/transformJsonSchema.ts","webpack:///./app/process-editor/store/process-editor.actions.ts","webpack:///./app/process-editor/store/process-editor.effects.ts","webpack:///./app/process-editor/store/process-editor.reducer.ts","webpack:///./app/process-editor/store/process-editor.selectors.ts","webpack:///./app/process-editor/store/process-editor.state.ts","webpack:///./app/process-editor/store/process-entities.reducer.ts","webpack:///./app/process-editor/store/process-entities.state.ts","webpack:///./app/process-editor/store/process-messages.actions.ts","webpack:///./app/process-editor/store/process-messages.effects.ts","webpack:///./app/process-editor/store/process-task-assignment.actions.ts","webpack:///./app/process-editor/store/process-task-assignment.effects.ts","webpack:///./app/process-editor/store/process-variables.actions.ts","webpack:///./app/process-editor/store/process-variables.effects.ts","webpack:///./app/project-editor/components/project-content/project-content.component.html","webpack:///./app/project-editor/components/project-content/project-content.component.ts","webpack:///./app/project-editor/components/project-navigation/project-navigation.component.html","webpack:///./app/project-editor/components/project-navigation/project-navigation.component.ts","webpack:///./app/project-editor/components/project-tree/project-tree-icons/project-tree-icons.component.html","webpack:///./app/project-editor/components/project-tree/project-tree-icons/project-tree-icons.component.scss","webpack:///./app/project-editor/components/project-tree/project-tree-icons/project-tree-icons.component.ts","webpack:///./app/project-editor/components/project-tree/project-tree-module-filter/project-tree-filter.component.html","webpack:///./app/project-editor/components/project-tree/project-tree-module-filter/project-tree-filter.component.ts","webpack:///./app/project-editor/components/project-tree/project-tree.component.html","webpack:///./app/project-editor/components/project-tree/project-tree.component.ts","webpack:///./app/project-editor/components/project-tree/project-tree.helper.ts","webpack:///./app/project-editor/components/upload-file-button/upload-file-button.component.html","webpack:///./app/project-editor/components/upload-file-button/upload-file-button.component.ts","webpack:///./app/project-editor/project-editor.module.ts","webpack:///./app/project-editor/router/guards/project-loader.guard.ts","webpack:///./app/project-editor/router/guards/selected-project-setter.guard.ts","webpack:///./app/project-editor/router/project-editor-routing.module.ts","webpack:///./app/project-editor/router/project-editor.routes.ts","webpack:///./app/project-editor/services/project-editor.service.ts","webpack:///./app/project-editor/store/effects/project.effects.ts","webpack:///./app/project-editor/store/project-editor.actions.ts","webpack:///./app/project-editor/store/reducers/project-tree.reducer.ts","webpack:///./app/project-editor/store/selectors/project-tree.selectors.ts","webpack:///./app/store/actions.ts","webpack:///./app/store/actions/app.actions.ts","webpack:///./app/store/actions/settings.ts","webpack:///./app/store/actions/ui.ts","webpack:///./app/store/effects/auth.effects.ts","webpack:///./app/store/effects/dialog.effects.ts","webpack:///./app/store/effects/settings.effects.ts","webpack:///./app/store/effects/snackbar.effects.ts","webpack:///./app/store/effects/ui.effects.ts","webpack:///./app/store/reducers/app.reducer.ts","webpack:///./app/store/reducers/logout.meta.reducer.ts","webpack:///./app/store/reducers/meta.reducers.ts","webpack:///./app/store/reducers/reducers.ts","webpack:///./app/store/reducers/settings.reducer.ts","webpack:///./app/store/selectors/app.selectors.ts","webpack:///./app/store/states/app.state.ts","webpack:///./app/store/states/settings.state.ts","webpack:///./environments/environment.ts","webpack:///./main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,yE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK;AAC3C,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,MAAM,GAAG,KAAK,EAAE,KAAK;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO,KAAK;AACvB,WAAW,OAAO,KAAK;AACvB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA,UAAU;AACV,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA,UAAU;AACV,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA,4BAA4B,8BAA8B;;AAE1D;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,gBAAgB;;AAEhB;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA,kCAAkC,EAAE;;AAEpC;AACA;AACA;AACA,iBAAiB;AACjB;AACA,gCAAgC,EAAE;;AAElC;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C,2BAA2B,cAAc;AACzC,2BAA2B,gCAAgC;AAC3D,yBAAyB,gCAAgC;AACzD;AACA,yBAAyB,4BAA4B;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;AACA;AACA,4BAA4B,gCAAgC;;AAE5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,mGAAmG,GAAG;AACtG;;AAEA,IAAI,IAA0C;AAC9C,IAAI,mCAAO;AACX;AACA,KAAK;AAAA,oGAAC;AACN,CAAC,MAAM,EAIN;;AAED,CAAC;;;;;;;;;;;;ACllFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8E;;;;;;;;;;;;;;;;;;;;;;;ACpRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;GAeG;;AAE2D;AACf;AACZ;AACW;AAab;AACoC;AACwB;AACrC;AAC2B;AACzB;AACe;AACM;AACN;AAC3B;AAC2B;AAClB;AACsB;AACE;AAExE,SAAS,eAAe,CAAE,cAA2C,EAAE,gBAAkC;IAC5G,OAAO,IAAI,oDAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAC1D,CAAC;AAEM,SAAS,iBAAiB,CAAE,cAA2C,EAAE,gBAAkC;IAC9G,OAAO,IAAI,2DAAa,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAC/D,CAAC;AAKD;IAAA;IAwCA,CAAC;qBAxCY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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"../$$_lazy_route_resource lazy recursive\";","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","var map = {\n\t\"./af\": \"../node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"../node_modules/moment/locale/af.js\",\n\t\"./ar\": \"../node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"../node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"../node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"../node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"../node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"../node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"../node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"../node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"../node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"../node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"../node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"../node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"../node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"../node_modules/moment/locale/ar.js\",\n\t\"./az\": \"../node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"../node_modules/moment/locale/az.js\",\n\t\"./be\": \"../node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"../node_modules/moment/locale/be.js\",\n\t\"./bg\": \"../node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"../node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"../node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"../node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"../node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"../node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"../node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"../node_modules/moment/locale/bo.js\",\n\t\"./br\": \"../node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"../node_modules/moment/locale/br.js\",\n\t\"./bs\": \"../node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"../node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"../node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"../node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"../node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"../node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"../node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"../node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"../node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"../node_modules/moment/locale/cy.js\",\n\t\"./da\": \"../node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"../node_modules/moment/locale/da.js\",\n\t\"./de\": \"../node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"../node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"../node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"../node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"../node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"../node_modules/moment/locale/de.js\",\n\t\"./dv\": \"../node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"../node_modules/moment/locale/dv.js\",\n\t\"./el\": \"../node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"../node_modules/moment/locale/el.js\",\n\t\"./en-SG\": \"../node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"../node_modules/moment/locale/en-SG.js\",\n\t\"./en-au\": \"../node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"../node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"../node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"../node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"../node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"../node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"../node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"../node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"../node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"../node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"../node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"../node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"../node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"../node_modules/moment/locale/eo.js\",\n\t\"./es\": \"../node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"../node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"../node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"../node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"../node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"../node_modules/moment/locale/es.js\",\n\t\"./et\": \"../node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"../node_modules/moment/locale/et.js\",\n\t\"./eu\": \"../node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"../node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"../node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"../node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"../node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"../node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"../node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"../node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"../node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"../node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"../node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"../node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"../node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"../node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"../node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"../node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"../node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"../node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"../node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"../node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"../node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"../node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"../node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"../node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"../node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"../node_modules/moment/locale/gu.js\",\n\t\"./he\": \"../node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"../node_modules/moment/locale/he.js\",\n\t\"./hi\": \"../node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"../node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"../node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"../node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"../node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"../node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"../node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"../node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"../node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"../node_modules/moment/locale/id.js\",\n\t\"./is\": \"../node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"../node_modules/moment/locale/is.js\",\n\t\"./it\": \"../node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"../node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"../node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"../node_modules/moment/locale/it.js\",\n\t\"./ja\": \"../node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"../node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"../node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"../node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"../node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"../node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"../node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"../node_modules/moment/locale/kk.js\",\n\t\"./km\": \"../node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"../node_modules/moment/locale/km.js\",\n\t\"./kn\": \"../node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"../node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"../node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"../node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"../node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"../node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"../node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"../node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"../node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"../node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"../node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"../node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"../node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"../node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"../node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"../node_modules/moment/locale/lv.js\",\n\t\"./me\": \"../node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"../node_modules/moment/locale/me.js\",\n\t\"./mi\": \"../node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"../node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"../node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"../node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"../node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"../node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"../node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"../node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"../node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"../node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"../node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"../node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"../node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"../node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"../node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"../node_modules/moment/locale/mt.js\",\n\t\"./my\": \"../node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"../node_modules/moment/locale/my.js\",\n\t\"./nb\": \"../node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"../node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"../node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"../node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"../node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"../node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"../node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"../node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"../node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"../node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"../node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"../node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"../node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"../node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"../node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"../node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"../node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"../node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"../node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"../node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"../node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"../node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"../node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"../node_modules/moment/locale/sd.js\",\n\t\"./se\": \"../node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"../node_modules/moment/locale/se.js\",\n\t\"./si\": \"../node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"../node_modules/moment/locale/si.js\",\n\t\"./sk\": \"../node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"../node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"../node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"../node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"../node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"../node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"../node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"../node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"../node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"../node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"../node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"../node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"../node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"../node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"../node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"../node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"../node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"../node_modules/moment/locale/ta.js\",\n\t\"./te\": \"../node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"../node_modules/moment/locale/te.js\",\n\t\"./tet\": \"../node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"../node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"../node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"../node_modules/moment/locale/tg.js\",\n\t\"./th\": \"../node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"../node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"../node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"../node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"../node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"../node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"../node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"../node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"../node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"../node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"../node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"../node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"../node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"../node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"../node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"../node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"../node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"../node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"../node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"../node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"../node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"../node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"../node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"../node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"../node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"../node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"../node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"../node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"../node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"../node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"../node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"../node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"../node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"../node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"../node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"../node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"../node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ACMApi } from './acm-api';\r\nimport { ACMProjectApi } from './project-api';\r\nimport {\r\n AmaApi,\r\n CONNECTOR_API_TOKEN,\r\n UI_API_TOKEN,\r\n PROCESS_API_TOKEN,\r\n FORM_API_TOKEN,\r\n DECISION_TABLE_API_TOKEN,\r\n DATA_API_TOKEN,\r\n FILE_API_TOKEN,\r\n SCHEMA_API_TOKEN,\r\n SCRIPT_API_TOKEN,\r\n TRIGGER_API_TOKEN\r\n} from '../../api/api.interface';\r\nimport { UiApiVariation } from './model-variations/ui-api-variation';\r\nimport { DecisionTableApiVariation } from './model-variations/decision-table-api-variations';\r\nimport { RequestApiHelper } from './request-api.helper';\r\nimport { ConnectorApiVariation } from './model-variations/connector-api-variation';\r\nimport { ModelApi, ModelApiVariation } from './model-api';\r\nimport { FormApiVariation } from './model-variations/form-api-variation';\r\nimport { ProcessApiVariation } from './model-variations/process-api-variation';\r\nimport { DataApiVariation } from './model-variations/data-api-variation';\r\nimport { ProcessAcmApi } from './process-api';\r\nimport { FileApiVariation } from './model-variations/file-api-variation';\r\nimport { ModelSchemaAcmApi } from './model-schema-api';\r\nimport { ScriptApiVariation } from './model-variations/script-api-variation';\r\nimport { TriggerApiVariation } from './model-variations/trigger-api-variation';\r\n\r\nexport function modelApiFactory (modelVariation: ModelApiVariation, requestApiHelper: RequestApiHelper) {\r\n return new ModelApi(modelVariation, requestApiHelper);\r\n}\r\n\r\nexport function processApiFactory (modelVariation: ModelApiVariation, requestApiHelper: RequestApiHelper) {\r\n return new ProcessAcmApi(modelVariation, requestApiHelper);\r\n}\r\n\r\n@NgModule({\r\n imports: [CommonModule]\r\n})\r\nexport class ACMApiModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: ACMApiModule,\r\n providers: [\r\n { provide: AmaApi, useClass: ACMApi },\r\n RequestApiHelper,\r\n ACMProjectApi,\r\n\r\n ProcessApiVariation,\r\n { provide: PROCESS_API_TOKEN, useFactory: processApiFactory, deps: [ProcessApiVariation, RequestApiHelper] },\r\n\r\n ConnectorApiVariation,\r\n { provide: CONNECTOR_API_TOKEN, useFactory: modelApiFactory, deps: [ConnectorApiVariation, RequestApiHelper] },\r\n\r\n FormApiVariation,\r\n { provide: FORM_API_TOKEN, useFactory: modelApiFactory, deps: [FormApiVariation, RequestApiHelper] },\r\n\r\n UiApiVariation,\r\n { provide: UI_API_TOKEN, useFactory: modelApiFactory, deps: [UiApiVariation, RequestApiHelper] },\r\n\r\n DecisionTableApiVariation,\r\n { provide: DECISION_TABLE_API_TOKEN, useFactory: modelApiFactory, deps: [DecisionTableApiVariation, RequestApiHelper]},\r\n\r\n DataApiVariation,\r\n { provide: DATA_API_TOKEN, useFactory: modelApiFactory, deps: [DataApiVariation, RequestApiHelper] },\r\n\r\n FileApiVariation,\r\n { provide: FILE_API_TOKEN, useFactory: modelApiFactory, deps: [FileApiVariation, RequestApiHelper] },\r\n\r\n { provide: SCHEMA_API_TOKEN, useClass: ModelSchemaAcmApi },\r\n\r\n ScriptApiVariation,\r\n { provide: SCRIPT_API_TOKEN, useFactory: modelApiFactory, deps: [ScriptApiVariation, RequestApiHelper] },\r\n\r\n TriggerApiVariation,\r\n { provide: TRIGGER_API_TOKEN, useFactory: modelApiFactory, deps: [TriggerApiVariation, RequestApiHelper] }\r\n ]\r\n };\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport {\r\n AmaApi,\r\n CONNECTOR_API_TOKEN,\r\n UI_API_TOKEN,\r\n PROCESS_API_TOKEN,\r\n FORM_API_TOKEN,\r\n DECISION_TABLE_API_TOKEN,\r\n DATA_API_TOKEN,\r\n FILE_API_TOKEN,\r\n SCRIPT_API_TOKEN,\r\n TRIGGER_API_TOKEN\r\n} from '../../api/api.interface';\r\nimport { ACMProjectApi } from './project-api';\r\nimport { ModelApiInterface } from '../../api/generalmodel-api.interface';\r\nimport {\r\n Connector as ConnectorType,\r\n ConnectorContent,\r\n Form as FormType,\r\n Ui as UiType,\r\n Process as ProcessType,\r\n ProcessContent,\r\n DecisionTable as DecisionTableType,\r\n DecisionTableContent,\r\n UiContent,\r\n Data as DataType,\r\n DataContent,\r\n FormContent,\r\n ActivitiFile,\r\n ActivitiFileContent,\r\n ActivitiScript,\r\n ActivitiScriptContent,\r\n Trigger,\r\n TriggerContent\r\n} from '../../api/types';\r\n\r\n@Injectable()\r\nexport class ACMApi implements AmaApi {\r\n constructor(\r\n public Project: ACMProjectApi,\r\n @Inject(PROCESS_API_TOKEN) public Process: ModelApiInterface,\r\n @Inject(CONNECTOR_API_TOKEN) public Connector: ModelApiInterface,\r\n @Inject(FORM_API_TOKEN) public Form: ModelApiInterface,\r\n @Inject(DECISION_TABLE_API_TOKEN) public DecisionTable: ModelApiInterface,\r\n @Inject(UI_API_TOKEN) public Ui: ModelApiInterface,\r\n @Inject(DATA_API_TOKEN) public Data: ModelApiInterface,\r\n @Inject(FILE_API_TOKEN) public File: ModelApiInterface,\r\n @Inject(SCRIPT_API_TOKEN) public script: ModelApiInterface,\r\n @Inject(TRIGGER_API_TOKEN) public trigger: ModelApiInterface\r\n ) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport const ContentType = {\r\n Model: 'MODEL',\r\n Process: 'PROCESS',\r\n Connector: 'CONNECTOR',\r\n Data: 'DATA',\r\n DecisionTable: 'DECISION',\r\n Form: 'FORM',\r\n Ui: 'UI',\r\n File: 'FILE',\r\n Script: 'SCRIPT',\r\n Trigger: 'TRIGGER'\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { FormContent } from '../../api/types';\r\n\r\nexport const createEmptyForm = (id: string, name: string, description?: string): FormContent => ({\r\n formRepresentation: {\r\n id,\r\n name,\r\n description,\r\n version: 0,\r\n standAlone: true,\r\n formDefinition: {\r\n tabs: [],\r\n fields: [],\r\n outcomes: [],\r\n metadata: {},\r\n variables: []\r\n }\r\n }\r\n});\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Observable, forkJoin, from, OperatorFunction, of } from 'rxjs';\r\nimport { RequestApiHelper, RequestApiHelperOptions } from './request-api.helper';\r\nimport { map, concatMap, flatMap } from 'rxjs/operators';\r\nimport { ModelApiInterface } from '../../api/generalmodel-api.interface';\r\nimport { Model, MinimalModelSummary } from '../../api/types';\r\nimport { createBlobFormDataFromStringContent, createBlobFormData } from '../../helpers/utils/createJsonBlob';\r\n\r\nexport interface ModelResponse {\r\n entry: T;\r\n}\r\n\r\nexport interface ModelsResponse {\r\n list: {\r\n entries: ModelResponse[]\r\n };\r\n}\r\n\r\nexport interface ModelApiVariation {\r\n readonly contentType: string;\r\n readonly retrieveModelAfterUpdate: boolean;\r\n serialize(content: Partial): string;\r\n createInitialMetadata(model: Partial): Partial;\r\n createInitialContent(model: M): C;\r\n createSummaryPatch(model: Partial, content: Partial): MinimalModelSummary;\r\n patchModel(model: Partial): M;\r\n getFileToUpload(model: Partial, content: Partial): Blob;\r\n getModelMimeType(model: Partial): string;\r\n getModelFileName(model: Partial): string;\r\n}\r\n\r\nexport class ModelApi implements ModelApiInterface {\r\n\r\n constructor(protected modelVariation: ModelApiVariation, protected requestApiHelper: RequestApiHelper) { }\r\n\r\n public getList(containerId: string): Observable {\r\n return this.requestApiHelper\r\n .get>(\r\n `/modeling-service/v1/projects/${containerId}/models`,\r\n { queryParams: { type: this.modelVariation.contentType, maxItems: 1000 } })\r\n .pipe(\r\n map((nodePaging) => {\r\n return nodePaging.list.entries\r\n .map(entry => entry.entry)\r\n .map((entry) => this.createEntity(entry, containerId));\r\n })\r\n );\r\n }\r\n\r\n public create(model: Partial, containerId: string): Observable {\r\n return this.requestApiHelper\r\n .post>(\r\n `/modeling-service/v1/projects/${containerId}/models`,\r\n { bodyParam: { ...this.modelVariation.createInitialMetadata(model), type: this.modelVariation.contentType } })\r\n .pipe(\r\n map(response => response.entry),\r\n concatMap(createdEntity => {\r\n // Patch: BE does not return the description...\r\n const createdEntityWithDescription: T = {\r\n description: model.description,\r\n ...createdEntity\r\n };\r\n\r\n return this.updateContent(createdEntityWithDescription, this.modelVariation.createInitialContent(createdEntityWithDescription));\r\n }),\r\n map(createdEntity => this.createEntity(createdEntity, containerId))\r\n );\r\n }\r\n\r\n public retrieve(modelId: string, containerId: string, queryParams?: any): Observable {\r\n return this.requestApiHelper\r\n .get>(\r\n `/modeling-service/v1/models/${modelId}`,\r\n { queryParams: queryParams })\r\n .pipe(\r\n map(response => this.createEntity(response.entry, containerId))\r\n );\r\n }\r\n\r\n public update(modelId: string, model: Partial, content: S, containerId: string, ignoreContent?: boolean): Observable {\r\n const summary = this.modelVariation.createSummaryPatch(model, content);\r\n\r\n return this.requestApiHelper\r\n // It is supposed to be a patch, rather than a put. Waiting for BE to implement it...\r\n .put>(`/modeling-service/v1/models/${modelId}`, { bodyParam: summary })\r\n .pipe(\r\n concatMap(response => ignoreContent ? of(response.entry) : this.updateContent(response.entry, content)),\r\n map(updatedEntity => this.createEntity(updatedEntity, containerId))\r\n );\r\n }\r\n\r\n private updateContent(model: T, content: Partial): Observable {\r\n const file = createBlobFormData(this.modelVariation.getFileToUpload(model, content), this.modelVariation.getModelFileName(model));\r\n const requestOptions: RequestApiHelperOptions = {\r\n formParams: { file },\r\n queryParams: { type: this.modelVariation.contentType },\r\n contentTypes: ['multipart/form-data']\r\n };\r\n\r\n return this.requestApiHelper\r\n .put(`/modeling-service/v1/models/${model.id}/content`, requestOptions)\r\n .pipe(this.getUpdateOperator(model));\r\n }\r\n\r\n private getUpdateOperator(model: T): OperatorFunction {\r\n if (this.modelVariation.retrieveModelAfterUpdate) {\r\n return flatMap(() => this.retrieve(model.id, model.id));\r\n } else {\r\n return map(() => model);\r\n }\r\n }\r\n\r\n public delete(modelId: string): Observable {\r\n return this.requestApiHelper\r\n .delete(`/modeling-service/v1/models/${modelId}`);\r\n }\r\n\r\n public validate(modelId: string, content: S, modelExtensions?: any): Observable {\r\n const requestOptions: RequestApiHelperOptions = {\r\n formParams: { file: new Blob([this.modelVariation.serialize(content)], { type: 'text/plain' }) },\r\n contentTypes: ['multipart/form-data']\r\n };\r\n if (modelExtensions) {\r\n return this.requestApiHelper\r\n .post(`/modeling-service/v1/models/${modelId}/validate`, requestOptions).pipe(\r\n concatMap(() => this.validateModelExtensions(modelId, modelExtensions))\r\n );\r\n } else {\r\n return this.requestApiHelper\r\n .post(`/modeling-service/v1/models/${modelId}/validate`, requestOptions);\r\n }\r\n }\r\n\r\n private validateModelExtensions(modelId: string, modelExtensions: string) {\r\n const requestOptions: RequestApiHelperOptions = {\r\n formParams: {\r\n file: createBlobFormDataFromStringContent(modelExtensions, `${modelId}-extensions.json`)\r\n },\r\n contentTypes: ['multipart/form-data']\r\n };\r\n\r\n return from(this.requestApiHelper\r\n .post(`/modeling-service/v1/models/${modelId}/validate/extensions`, requestOptions));\r\n }\r\n\r\n public import(file: File, containerId: string): Observable {\r\n const requestOptions: RequestApiHelperOptions = {\r\n formParams: { file },\r\n queryParams: { type: this.modelVariation.contentType },\r\n contentTypes: ['multipart/form-data']\r\n };\r\n\r\n return this.requestApiHelper\r\n .post>(`/modeling-service/v1/projects/${containerId}/models/import`, requestOptions)\r\n .pipe(\r\n map(response => this.createEntity(response.entry, containerId))\r\n );\r\n }\r\n\r\n public export(modelId: string, responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text'): Observable {\r\n const requestOptions: RequestApiHelperOptions = {\r\n responseType: responseType\r\n };\r\n\r\n return this.requestApiHelper.get(`/modeling-service/v1/models/${modelId}/content`, requestOptions);\r\n }\r\n\r\n private createEntity(entity: Partial, containerId: string): T {\r\n return {\r\n description: '',\r\n version: '0.0.1',\r\n projectId: entity.projectId,\r\n // Patch: BE does not return empty or not yet defined properties at all, like extensions\r\n ...(this.modelVariation.patchModel(entity) as object)\r\n } as T;\r\n }\r\n\r\n updateContentFile(modelId: string, file: File, responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text'): Observable<[T, S]> {\r\n const requestOptions: RequestApiHelperOptions = {\r\n formParams: { file },\r\n queryParams: { type: this.modelVariation.contentType },\r\n contentTypes: ['multipart/form-data']\r\n };\r\n\r\n return this.requestApiHelper\r\n .put(`/modeling-service/v1/models/${modelId}/content`, requestOptions).pipe(\r\n flatMap(() => {\r\n const content$ = this.export(modelId, responseType),\r\n model$ = this.retrieve(modelId, modelId);\r\n return forkJoin(model$, content$);\r\n })\r\n );\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ModelSchemaApi, MODEL_SCHEMA_TYPE, Json } from '../../api/model-schema-api.interface';\r\nimport { RequestApiHelper } from './request-api.helper';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ModelSchemaAcmApi implements ModelSchemaApi {\r\n constructor(private requestApiHelper: RequestApiHelper) {}\r\n\r\n retrieve(modelType: MODEL_SCHEMA_TYPE) {\r\n return this.requestApiHelper.get(`/modeling-service/v1/schemas/${modelType}`);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Connector, ConnectorContent, MinimalModelSummary } from '../../../api/types';\r\nimport { ContentType } from '../content-types';\r\nimport { ModelApiVariation } from '../model-api';\r\nimport { CONNECTOR_FILE_FORMAT } from '../../../helpers/utils/create-entries-names';\r\n\r\n@Injectable()\r\nexport class ConnectorApiVariation implements ModelApiVariation {\r\n readonly contentType = ContentType.Connector;\r\n readonly retrieveModelAfterUpdate = false;\r\n\r\n public serialize(content: C): string {\r\n return JSON.stringify(content);\r\n }\r\n\r\n createInitialMetadata(model: Partial): Partial {\r\n return model as Partial;\r\n }\r\n\r\n public createInitialContent(model: M): C {\r\n return {\r\n name: model.name,\r\n description: model.description\r\n };\r\n }\r\n\r\n public createSummaryPatch(model: Partial, modelContent: C) {\r\n const { name, description } = modelContent;\r\n return {\r\n name,\r\n description,\r\n type: this.contentType\r\n };\r\n }\r\n\r\n public patchModel(model: Partial): M {\r\n return model;\r\n }\r\n\r\n public getModelMimeType(model: Partial): string {\r\n return 'application/json';\r\n }\r\n\r\n public getModelFileName(model: Partial): string {\r\n return model.name + CONNECTOR_FILE_FORMAT;\r\n }\r\n\r\n public getFileToUpload(model: Partial, content: C): Blob {\r\n return new Blob([this.serialize(content)], { type: this.getModelMimeType(model) });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { DataContent, Data, MinimalModelSummary } from '../../../api/types';\r\nimport { ModelApiVariation } from '../model-api';\r\nimport { ContentType } from '../content-types';\r\nimport { formatUuid, DATA_FILE_FORMAT } from '../../../helpers/utils/create-entries-names';\r\n\r\n@Injectable()\r\nexport class DataApiVariation implements ModelApiVariation {\r\n readonly contentType = ContentType.Data;\r\n readonly retrieveModelAfterUpdate = false;\r\n\r\n public serialize(content: C): string {\r\n return JSON.stringify(content);\r\n }\r\n\r\n createInitialMetadata(model: Partial): Partial {\r\n return model as Partial;\r\n }\r\n\r\n public createInitialContent(model: M): C {\r\n return {\r\n id: formatUuid(this.contentType, model.id),\r\n name: model.name,\r\n description: model.description\r\n };\r\n }\r\n\r\n public createSummaryPatch(model: Partial, modelContent: C) {\r\n const { name, description } = modelContent;\r\n return {\r\n name,\r\n description,\r\n type: this.contentType\r\n };\r\n }\r\n\r\n public patchModel(model: Partial): M {\r\n return model;\r\n }\r\n\r\n public getModelMimeType(model: Partial): string {\r\n return 'application/json';\r\n }\r\n\r\n public getModelFileName(model: Partial): string {\r\n return model.name + DATA_FILE_FORMAT;\r\n }\r\n\r\n public getFileToUpload(model: Partial, content: C): Blob {\r\n return new Blob([this.serialize(content)], { type: this.getModelMimeType(model) });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { DecisionTableContent, DecisionTable, MinimalModelSummary } from '../../../api/types';\r\nimport { ContentType } from '../content-types';\r\nimport { ModelApiVariation } from '../model-api';\r\nimport { DECISION_TABLE_FILE_FORMAT } from '../../../helpers/utils/create-entries-names';\r\nimport { getEmptyDecisionTable } from '../../../helpers/utils/empty-decision-table';\r\n\r\n@Injectable()\r\nexport class DecisionTableApiVariation implements ModelApiVariation {\r\n readonly contentType = ContentType.DecisionTable;\r\n readonly retrieveModelAfterUpdate = false;\r\n\r\n public serialize(content: C): string {\r\n return content;\r\n }\r\n\r\n createInitialMetadata(model: Partial): Partial {\r\n return model as Partial;\r\n }\r\n\r\n public createInitialContent(model: M): C {\r\n return getEmptyDecisionTable(model);\r\n }\r\n\r\n public createSummaryPatch(model: Partial, modelContent: C) {\r\n const { name, description } = model;\r\n return {\r\n name,\r\n description,\r\n type: this.contentType\r\n };\r\n }\r\n\r\n public patchModel(model: Partial): M {\r\n return model;\r\n }\r\n\r\n public getModelMimeType(model: Partial): string {\r\n return 'text/plain';\r\n }\r\n\r\n public getModelFileName(model: Partial): string {\r\n return model.name + DECISION_TABLE_FILE_FORMAT;\r\n }\r\n\r\n public getFileToUpload(model: Partial, content: C): Blob {\r\n return new Blob([this.serialize(content)], { type: this.getModelMimeType(model) });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivitiFileContent, ActivitiFile, MinimalModelSummary } from '../../../api/types';\r\nimport { ModelApiVariation } from '../model-api';\r\nimport { ContentType } from '../content-types';\r\nimport { FILE_FILE_FORMAT } from '../../../helpers/utils/create-entries-names';\r\n\r\n@Injectable()\r\nexport class FileApiVariation implements ModelApiVariation {\r\n readonly contentType = ContentType.File;\r\n readonly retrieveModelAfterUpdate = true;\r\n\r\n public serialize(content: C): string {\r\n return '';\r\n }\r\n\r\n createInitialMetadata(model: Partial): Partial {\r\n return model as Partial;\r\n }\r\n\r\n public createInitialContent(model: M): C {\r\n return new File([], this.getModelFileName(model));\r\n }\r\n\r\n public createSummaryPatch(model: Partial, modelContent: C) {\r\n const { name, description } = model;\r\n return {\r\n name,\r\n description,\r\n type: this.contentType\r\n };\r\n }\r\n\r\n public patchModel(model: Partial): M {\r\n return {\r\n ...model,\r\n extensions: {\r\n ...model.extensions\r\n }\r\n };\r\n }\r\n\r\n public getModelMimeType(model: Partial): string {\r\n let mimeType = 'application/octet-stream';\r\n if (model.extensions && model.extensions.content && model.extensions.content.mimeType) {\r\n mimeType = model.extensions.content.mimeType;\r\n }\r\n return mimeType;\r\n }\r\n\r\n public getModelFileName(model: Partial): string {\r\n let filename = model.name + FILE_FILE_FORMAT;\r\n if (model.extensions && model.extensions.name) {\r\n filename = model.extensions.name;\r\n }\r\n return filename;\r\n }\r\n\r\n public getFileToUpload(model: Partial, content: C): Blob {\r\n return content;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { ContentType } from '../content-types';\r\nimport { formatUuid, FORM_FILE_FORMAT } from '../../../helpers/utils/create-entries-names';\r\nimport { ModelApiVariation } from '../model-api';\r\nimport { Form, FormContent, MinimalModelSummary } from '../../../api/types';\r\nimport { createEmptyForm } from '../form-definition';\r\n\r\n@Injectable()\r\nexport class FormApiVariation implements ModelApiVariation {\r\n readonly contentType = ContentType.Form;\r\n readonly retrieveModelAfterUpdate = true;\r\n\r\n public serialize(content: C): string {\r\n return JSON.stringify(content);\r\n }\r\n\r\n createInitialMetadata(model: Partial): Partial {\r\n return model as Partial;\r\n }\r\n\r\n public createInitialContent(model: M): C {\r\n return createEmptyForm(formatUuid(ContentType.Form, model.id), model.name, model.description);\r\n }\r\n\r\n public createSummaryPatch(model: Partial, { formRepresentation }: C) {\r\n const { name, description } = formRepresentation;\r\n return {\r\n name,\r\n description,\r\n type: this.contentType\r\n };\r\n }\r\n\r\n public patchModel(model: Partial): M {\r\n return model;\r\n }\r\n\r\n public getModelMimeType(model: Partial): string {\r\n return 'application/json';\r\n }\r\n\r\n public getModelFileName(model: Partial): string {\r\n return model.name + FORM_FILE_FORMAT;\r\n }\r\n\r\n public getFileToUpload(model: Partial, content: C): Blob {\r\n return new Blob([this.serialize(content)], { type: this.getModelMimeType(model) });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { ContentType } from '../content-types';\r\nimport { ModelApiVariation } from '../model-api';\r\nimport { Process, ProcessContent, MinimalModelSummary } from '../../../api/types';\r\nimport { getEmptyDiagram } from '../../../helpers/utils/empty-diagram';\r\nimport { PROCESS_FILE_FORMAT } from '../../../helpers/utils/create-entries-names';\r\nconst shortid = require('shortid');\r\n\r\n@Injectable()\r\nexport class ProcessApiVariation implements ModelApiVariation {\r\n readonly contentType = ContentType.Process;\r\n readonly retrieveModelAfterUpdate = false;\r\n\r\n public serialize(content: C): string {\r\n return content;\r\n }\r\n\r\n public createInitialMetadata(model: Partial): Partial {\r\n const processId = 'Process_' + shortid();\r\n\r\n return {\r\n ...model,\r\n extensions: {\r\n [processId]: {\r\n constants: {},\r\n mappings: {},\r\n properties: {},\r\n assignments: {}\r\n }\r\n }\r\n } as Partial;\r\n }\r\n\r\n public createInitialContent(model: M): C {\r\n return getEmptyDiagram(model, Object.keys(model.extensions)[0]);\r\n }\r\n\r\n public createSummaryPatch(model: Partial, modelContent: C) {\r\n const { name, description, extensions } = model;\r\n return {\r\n name,\r\n description,\r\n extensions,\r\n type: this.contentType\r\n };\r\n }\r\n\r\n public patchModel(model: Partial): M {\r\n return {\r\n ...model,\r\n extensions: {\r\n ...model.extensions\r\n }\r\n };\r\n }\r\n\r\n public getModelMimeType(model: Partial): string {\r\n return 'text/plain';\r\n }\r\n\r\n public getModelFileName(model: Partial): string {\r\n return model.name + PROCESS_FILE_FORMAT;\r\n }\r\n\r\n public getFileToUpload(model: Partial, content: C): Blob {\r\n return new Blob([this.serialize(content)], { type: this.getModelMimeType(model) });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivitiScriptContent, ActivitiScript, MinimalModelSummary } from '../../../api/types';\r\nimport { ModelApiVariation } from '../model-api';\r\nimport { ContentType } from '../content-types';\r\nimport { SCRIPT_FILE_FORMAT } from '../../../helpers/utils/create-entries-names';\r\nimport { getEmptyScript } from '../../../helpers/utils/empty-script';\r\n\r\n@Injectable()\r\nexport class ScriptApiVariation implements ModelApiVariation {\r\n readonly contentType = ContentType.Script;\r\n readonly retrieveModelAfterUpdate = true;\r\n\r\n public serialize(content: C): string {\r\n return content;\r\n }\r\n\r\n createInitialMetadata(model: Partial): Partial {\r\n return model as Partial;\r\n }\r\n\r\n public createInitialContent(model: M): C {\r\n return getEmptyScript(model);\r\n }\r\n\r\n public createSummaryPatch(model: Partial, modelContent: C) {\r\n const { name, description, extensions } = model;\r\n return {\r\n name,\r\n description,\r\n extensions,\r\n type: this.contentType\r\n };\r\n }\r\n\r\n public patchModel(model: Partial): M {\r\n return {\r\n ...model,\r\n extensions: {\r\n ...model.extensions\r\n }\r\n };\r\n }\r\n\r\n public getModelMimeType(model: Partial): string {\r\n let mimeType = 'application/octet-stream';\r\n if (model.extensions && model.extensions.content && model.extensions.content.mimeType) {\r\n mimeType = model.extensions.content.mimeType;\r\n }\r\n return mimeType;\r\n }\r\n\r\n public getModelFileName(model: Partial): string {\r\n let filename = model.name + SCRIPT_FILE_FORMAT;\r\n if (model.extensions && model.extensions.name) {\r\n filename = model.extensions.name;\r\n }\r\n return filename;\r\n }\r\n\r\n public getFileToUpload(model: Partial, content: C): Blob {\r\n return new Blob([this.serialize(content)], { type: this.getModelMimeType(model) });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Trigger, TriggerContent, MinimalModelSummary } from '../../../api/types';\r\nimport { ModelApiVariation } from '../model-api';\r\nimport { ContentType } from '../content-types';\r\nimport { formatUuid, TRIGGER_FILE_FORMAT } from '../../../helpers/utils/create-entries-names';\r\n\r\n@Injectable()\r\nexport class TriggerApiVariation implements ModelApiVariation {\r\n readonly contentType = ContentType.Trigger;\r\n readonly retrieveModelAfterUpdate = false;\r\n\r\n public serialize(content: C): string {\r\n return JSON.stringify(content);\r\n }\r\n\r\n createInitialMetadata(model: Partial): Partial {\r\n return model as Partial;\r\n }\r\n\r\n public createInitialContent(model: M): C {\r\n return {\r\n id: formatUuid(this.contentType, model.id),\r\n name: model.name,\r\n description: model.description\r\n };\r\n }\r\n\r\n public createSummaryPatch(model: Partial, modelContent: C) {\r\n const { name, description } = modelContent;\r\n return {\r\n name,\r\n description,\r\n type: this.contentType\r\n };\r\n }\r\n\r\n public patchModel(model: Partial): M {\r\n return model;\r\n }\r\n\r\n public getModelMimeType(model: Partial): string {\r\n return 'application/json';\r\n }\r\n\r\n public getModelFileName(model: Partial): string {\r\n return model.name + TRIGGER_FILE_FORMAT;\r\n }\r\n\r\n public getFileToUpload(model: Partial, content: C): Blob {\r\n return new Blob([this.serialize(content)], { type: this.getModelMimeType(model) });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Ui, UiContent, MinimalModelSummary } from '../../../api/types';\r\nimport { ModelApiVariation } from '../model-api';\r\nimport { ContentType } from '../content-types';\r\nimport { formatUuid, UI_FILE_FORMAT } from '../../../helpers/utils/create-entries-names';\r\n\r\n@Injectable()\r\nexport class UiApiVariation implements ModelApiVariation {\r\n readonly contentType = ContentType.Ui;\r\n readonly retrieveModelAfterUpdate = false;\r\n\r\n public serialize(content: C): string {\r\n return JSON.stringify(content);\r\n }\r\n\r\n createInitialMetadata(model: Partial): Partial {\r\n return model as Partial;\r\n }\r\n\r\n public createInitialContent(model: M): C {\r\n return {\r\n id: formatUuid(this.contentType, model.id),\r\n name: model.name,\r\n description: model.description,\r\n 'adf-template': 'content',\r\n plugins: []\r\n };\r\n }\r\n\r\n public createSummaryPatch(model: Partial, modelContent: C) {\r\n const { name, description } = modelContent;\r\n return {\r\n name,\r\n description,\r\n type: this.contentType\r\n };\r\n }\r\n\r\n public patchModel(model: Partial): M {\r\n return model;\r\n }\r\n\r\n public getModelMimeType(model: Partial): string {\r\n return 'application/json';\r\n }\r\n\r\n public getModelFileName(model: Partial): string {\r\n return model.name + UI_FILE_FORMAT;\r\n }\r\n\r\n public getFileToUpload(model: Partial, content: C): Blob {\r\n return new Blob([this.serialize(content)], { type: this.getModelMimeType(model) });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Observable, from } from 'rxjs';\r\nimport { Process, ProcessContent } from '../../api/types';\r\nimport { ModelApi } from './model-api';\r\nimport { ModelApiInterface } from '../../api/generalmodel-api.interface';\r\nimport { RequestApiHelperOptions } from './request-api.helper';\r\nimport { concatMap } from 'rxjs/operators';\r\nimport { createBlobFormDataFromStringContent } from '../../helpers/utils/createJsonBlob';\r\n\r\nexport class ProcessAcmApi extends ModelApi implements ModelApiInterface {\r\n public validate(modelId: string, content: S, modelExtensions: any): Observable {\r\n return super.validate(modelId, content).pipe(\r\n concatMap(() => this.validateExtensions(modelId, JSON.stringify(modelExtensions)))\r\n );\r\n }\r\n\r\n private validateExtensions(modelId: string, modelExtensions: string) {\r\n const requestOptions: RequestApiHelperOptions = {\r\n formParams: {\r\n file: createBlobFormDataFromStringContent(modelExtensions, `process-${modelId}.extensions.json`)\r\n },\r\n contentTypes: [ 'multipart/form-data' ]\r\n };\r\n\r\n return from(this.requestApiHelper\r\n .post(`/modeling-service/v1/models/${modelId}/validate/extensions`, requestOptions));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { ProjectApi, FetchQueries } from '../../api/project-api.interface';\r\nimport { Observable } from 'rxjs';\r\nimport { Project, PROJECT, Release, Pagination, ReleaseEntry, ServerSideSorting, SearchQuery, CollaboratorEntry } from '../../api/types';\r\nimport { map } from 'rxjs/operators';\r\nimport { RequestApiHelper } from './request-api.helper';\r\nimport { ValidationErrors } from '../../interfaces/validation-errors.interface';\r\nimport { PaginatedEntries } from '@alfresco/js-api';\r\nimport { IdentityUserModel } from '@alfresco/adf-core';\r\n\r\nexport interface BackendProject {\r\n id: string;\r\n name: string;\r\n description: string;\r\n creationDate: Date;\r\n createdBy: string;\r\n lastModifiedDate: Date;\r\n lastModifiedBy: string;\r\n version: string;\r\n}\r\n\r\n@Injectable()\r\nexport class ACMProjectApi implements ProjectApi {\r\n\r\n constructor(\r\n private requestApiHelper: RequestApiHelper\r\n ) {}\r\n\r\n public get(projectId: string): Observable {\r\n return this.requestApiHelper\r\n .get(`/modeling-service/v1/projects/${projectId}`)\r\n .pipe(\r\n map((response: any) => response.entry),\r\n map(this.createProject.bind(this))\r\n );\r\n }\r\n\r\n public validate(projectId: string): Observable {\r\n return this.requestApiHelper.get(`/modeling-service/v1/projects/${projectId}/validate`, { responseType: 'blob' });\r\n }\r\n\r\n public create(project: Partial): Observable {\r\n return this.requestApiHelper\r\n .post('/modeling-service/v1/projects/', { bodyParam: project })\r\n .pipe(\r\n map((response: any) => response.entry),\r\n map(this.createProject.bind(this))\r\n );\r\n }\r\n\r\n public update(projectId: string, project: Partial): Observable {\r\n return this.requestApiHelper\r\n .put(`/modeling-service/v1/projects/${projectId}`, { bodyParam: project })\r\n .pipe(\r\n map((response: any) => response.entry),\r\n map(this.createProject.bind(this))\r\n );\r\n }\r\n\r\n public delete(projectId: string): Observable {\r\n return this.requestApiHelper.delete(`/modeling-service/v1/projects/${projectId}`);\r\n }\r\n\r\n public import(file: File, name?: string): Observable> {\r\n const postData: any = { formParams: { 'file': file }, contentTypes: ['multipart/form-data'] };\r\n\r\n if (name) {\r\n postData.formParams.name = name;\r\n }\r\n\r\n return this.requestApiHelper\r\n .post(`/modeling-service/v1/projects/import`, postData)\r\n .pipe(\r\n map((response: any) => response.entry),\r\n map(this.createProject.bind(this))\r\n );\r\n }\r\n\r\n public export(projectId: string): Observable {\r\n return this.requestApiHelper.get(\r\n `/modeling-service/v1/projects/${projectId}/export`,\r\n { queryParams: { 'attachment': false }, responseType: 'blob' }\r\n );\r\n }\r\n\r\n public getAll(\r\n fetchQueries: FetchQueries = {},\r\n sorting: ServerSideSorting = { key: 'name', direction: 'asc' },\r\n search: SearchQuery = { key: 'name', value: '' }\r\n ): Observable> {\r\n const queryParams = {\r\n ...fetchQueries,\r\n sort: `${sorting.key},${sorting.direction}`,\r\n [search.key]: search.value\r\n };\r\n\r\n return this.requestApiHelper\r\n .get('/modeling-service/v1/projects', { queryParams })\r\n .pipe(\r\n map((nodePaging: any) => {\r\n return {\r\n pagination: nodePaging.list.pagination,\r\n entries: nodePaging.list.entries.map(entry => this.createProject(entry.entry))\r\n };\r\n })\r\n );\r\n }\r\n\r\n private createProject(backendProject: BackendProject): Project {\r\n const type = PROJECT;\r\n\r\n return {\r\n type,\r\n ...backendProject\r\n };\r\n }\r\n\r\n public release(projectId: string): Observable {\r\n return this.requestApiHelper\r\n .post(`/modeling-service/v1/projects/${projectId}/releases`)\r\n .pipe(\r\n map((response: any) => response.entry)\r\n );\r\n }\r\n\r\n public getProjectReleases(\r\n projectId: string,\r\n pagination: Partial = {},\r\n sorting: ServerSideSorting = { key: 'creationDate', direction: 'desc' },\r\n showAllVersions: boolean = true\r\n ): Observable> {\r\n const queryParams = {\r\n showAllVersions: showAllVersions,\r\n ...pagination,\r\n sort: `${sorting.key},${sorting.direction}`\r\n };\r\n return this.requestApiHelper\r\n .get(`/modeling-service/v1/projects/${projectId}/releases`, { queryParams: queryParams })\r\n .pipe(\r\n map((nodePaging: any) => {\r\n return {\r\n pagination: nodePaging.list.pagination,\r\n entries: nodePaging.list.entries\r\n };\r\n })\r\n );\r\n }\r\n\r\n public getCollaborators(projectId: string): Observable> {\r\n return this.requestApiHelper\r\n .get(`/modeling-service/v1/projects/${projectId}/collaborators`)\r\n .pipe(\r\n map((nodePaging: any) => {\r\n return {\r\n pagination: nodePaging.list.pagination,\r\n entries: nodePaging.list.entries\r\n };\r\n })\r\n );\r\n }\r\n\r\n public addCollaborator(projectId: string, collaborator: IdentityUserModel): Observable {\r\n return this.requestApiHelper\r\n .put(`/modeling-service/v1/projects/${projectId}/collaborators/${collaborator.username}`);\r\n }\r\n\r\n public removeCollaborator(projectId: string, collaborator: IdentityUserModel): Observable {\r\n return this.requestApiHelper\r\n .delete(`/modeling-service/v1/projects/${projectId}/collaborators/${collaborator.username}`);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { from, Observable, defer } from 'rxjs';\r\nimport { AppConfigService, AlfrescoApiService, StorageService } from '@alfresco/adf-core';\r\n\r\nexport interface RequestApiHelperOptions {\r\n pathParams?: { [key: string]: any} ;\r\n queryParams?: { [key: string]: any} ;\r\n headerParams?: { [key: string]: any} ;\r\n formParams?: { [key: string]: any} ;\r\n bodyParam?: { [key: string]: any} ;\r\n contentTypes?: string[];\r\n accepts?: string[];\r\n returnType?: any;\r\n contextRoot?: string;\r\n responseType?: 'arraybuffer'|'blob'|'document'|'json'|'text';\r\n}\r\n\r\nfunction getDefaultOptions(): RequestApiHelperOptions {\r\n return {\r\n pathParams: {},\r\n queryParams: {},\r\n headerParams: {},\r\n formParams: {},\r\n bodyParam: {},\r\n contentTypes: ['application/json'],\r\n accepts: ['application/json'],\r\n returnType: null\r\n };\r\n}\r\n\r\n@Injectable()\r\nexport class RequestApiHelper {\r\n\r\n constructor(\r\n private appConfig: AppConfigService,\r\n private storageService: StorageService,\r\n private alfrescoApiService: AlfrescoApiService\r\n ) {}\r\n\r\n private get api() {\r\n return this.alfrescoApiService.getInstance().oauth2Auth;\r\n }\r\n\r\n private buildUrl(endPoint: string): string {\r\n const trimSlash = (str: string) => str.replace(/^\\/|\\/$/g, '');\r\n const path = '/' + trimSlash(endPoint);\r\n\r\n let host;\r\n if (this.storageService.hasItem('bpmHost')) {\r\n host = this.storageService.getItem('bpmHost');\r\n } else {\r\n host = trimSlash(this.appConfig.get('bpmHost'));\r\n }\r\n\r\n return `${host}${path}`;\r\n }\r\n\r\n public get(endPoint: string, overriddenOptions?: RequestApiHelperOptions) {\r\n return this.request('GET', endPoint, overriddenOptions);\r\n }\r\n\r\n public post(endPoint: string, overriddenOptions?: RequestApiHelperOptions) {\r\n return this.request('POST', endPoint, overriddenOptions);\r\n }\r\n\r\n public put(endPoint: string, overriddenOptions?: RequestApiHelperOptions) {\r\n return this.request('PUT', endPoint, overriddenOptions);\r\n }\r\n\r\n public delete(endPoint: string, overriddenOptions?: RequestApiHelperOptions) {\r\n return this.request('DELETE', endPoint, overriddenOptions);\r\n }\r\n\r\n private request(httpMethod: string, endPoint: string, overriddenOptions?: RequestApiHelperOptions): Observable {\r\n\r\n const options = {\r\n ...getDefaultOptions(),\r\n ...overriddenOptions\r\n };\r\n\r\n const {\r\n pathParams,\r\n queryParams,\r\n headerParams,\r\n formParams,\r\n bodyParam,\r\n contentTypes,\r\n accepts,\r\n returnType,\r\n contextRoot,\r\n responseType\r\n } = options;\r\n\r\n return defer(() => from(this.api.callCustomApi(\r\n this.buildUrl(endPoint),\r\n httpMethod,\r\n pathParams,\r\n queryParams,\r\n headerParams,\r\n formParams,\r\n bodyParam,\r\n contentTypes,\r\n accepts,\r\n returnType,\r\n contextRoot,\r\n responseType\r\n )));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, InjectionToken } from '@angular/core';\r\nimport { ProjectApi } from './project-api.interface';\r\nimport { ModelApiInterface } from './generalmodel-api.interface';\r\nimport {\r\n Process,\r\n ProcessContent,\r\n Connector,\r\n ConnectorContent,\r\n Form,\r\n FormContent,\r\n Ui,\r\n UiContent,\r\n DecisionTable,\r\n DecisionTableContent,\r\n Data,\r\n DataContent,\r\n ActivitiFile,\r\n ActivitiFileContent,\r\n ActivitiScript,\r\n ActivitiScriptContent,\r\n Trigger,\r\n TriggerContent\r\n} from './types';\r\nimport { ModelSchemaApi } from './model-schema-api.interface';\r\n\r\nexport const PROCESS_API_TOKEN = new InjectionToken>('connector-api');\r\nexport const CONNECTOR_API_TOKEN = new InjectionToken>('connector-api');\r\nexport const FORM_API_TOKEN = new InjectionToken>('form-api');\r\nexport const UI_API_TOKEN = new InjectionToken>('ui-api');\r\nexport const DECISION_TABLE_API_TOKEN = new InjectionToken>('connector-api');\r\nexport const DATA_API_TOKEN = new InjectionToken>('data-api');\r\nexport const FILE_API_TOKEN = new InjectionToken>('file-api');\r\nexport const SCHEMA_API_TOKEN = new InjectionToken('schema-api');\r\nexport const SCRIPT_API_TOKEN = new InjectionToken>('script-api');\r\nexport const TRIGGER_API_TOKEN = new InjectionToken>('trigger-api');\r\n\r\n@Injectable()\r\nexport abstract class AmaApi {\r\n public Project: ProjectApi;\r\n public Process: ModelApiInterface;\r\n public Connector: ModelApiInterface;\r\n public Form: ModelApiInterface;\r\n public Ui: ModelApiInterface;\r\n public Data: ModelApiInterface;\r\n public DecisionTable: ModelApiInterface;\r\n public File: ModelApiInterface;\r\n public script: ModelApiInterface;\r\n public trigger: ModelApiInterface;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nexport enum MODEL_SCHEMA_TYPE {\r\n PROCESS_EXTENSION = 'PROCESS-EXTENSION',\r\n CONNECTOR = 'CONNECTOR',\r\n FORM = 'FORM',\r\n UI = 'UI',\r\n FILE = 'FILE',\r\n SCRIPT = 'SCRIPT',\r\n TRIGGER = 'TRIGGER'\r\n}\r\n\r\nexport interface JsonArray extends Array { }\r\nexport interface Json {\r\n [key: string]: string|number|boolean|Date|Json|JsonArray;\r\n}\r\n\r\nexport interface ModelSchemaApi {\r\n retrieve(modelType: MODEL_SCHEMA_TYPE): Observable;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Project, Release, Pagination, ReleaseEntry, ServerSideSorting, SearchQuery, CollaboratorEntry } from './types';\r\nimport { ValidationErrors } from '../interfaces/validation-errors.interface';\r\nimport { PaginatedEntries } from '@alfresco/js-api';\r\nimport { IdentityUserModel } from '@alfresco/adf-core';\r\n\r\n@Injectable()\r\nexport abstract class ProjectApi {\r\n public abstract create(project: Partial): Observable;\r\n public abstract get(projectId: string): Observable;\r\n public abstract update(projectId: string, project: Partial): Observable;\r\n public abstract delete(projectId: string): Observable;\r\n public abstract validate(projectId: string): Observable;\r\n\r\n public abstract import(file: File, name?: string): Observable;\r\n public abstract export(projectId: string): Observable;\r\n public abstract getAll(fetchQueries?: FetchQueries, sorting?: ServerSideSorting, search?: SearchQuery): Observable>;\r\n public abstract release(projectId: string): Observable;\r\n public abstract getProjectReleases(projectId: string, pagination?: Partial): Observable>;\r\n public abstract getCollaborators(projectId: string): Observable>;\r\n public abstract addCollaborator(projectId: string, collaborator: IdentityUserModel): Observable;\r\n public abstract removeCollaborator(projectId: string, collaborator: IdentityUserModel): Observable;\r\n}\r\n\r\nexport interface FetchQueries {\r\n skipCount?: number;\r\n maxItems?: number;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './api.interface';\r\nexport * from './project-api.interface';\r\nexport * from './generalmodel-api.interface';\r\nexport * from './model-schema-api.interface';\r\nexport * from './types';\r\nexport * from './regex-patterns';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport const NAME_REGEXP = /^([A-Za-z0-9\\-\\_]+)?$/;\r\nexport const URL_REGEXP = /^[A-Za-z][A-Za-z\\d.+-]*:\\/*(?:\\w+(?::\\w+)?@)?[^\\s/]+(?::\\d+)?(?:\\/[\\w#!:.?+=&%@\\-/]*)?$/;\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport type PROJECT_TYPE = 'project';\r\nexport type CUSTOM_MODEL_TYPE = 'model';\r\nexport type PROCESS_TYPE = 'process';\r\nexport type FORM_TYPE = 'form';\r\nexport type CONNECTOR_TYPE = 'connector';\r\nexport type DATA_TYPE = 'data';\r\nexport type DECISION_TABLE_TYPE = 'decision';\r\nexport type UI_TYPE = 'ui';\r\nexport type FILE_TYPE = 'file';\r\nexport type SCRIPT_TYPE = 'script';\r\nexport type TRIGGER_TYPE = 'trigger';\r\nexport type MODEL_TYPE = PROCESS_TYPE | FORM_TYPE | CONNECTOR_TYPE | DATA_TYPE | DECISION_TABLE_TYPE | UI_TYPE | FILE_TYPE | SCRIPT_TYPE | TRIGGER_TYPE;\r\n\r\nexport const PROJECT: PROJECT_TYPE = 'project';\r\nexport const CUSTOM_MODEL: CUSTOM_MODEL_TYPE = 'model';\r\nexport const PROCESS: PROCESS_TYPE = 'process';\r\nexport const FORM: FORM_TYPE = 'form';\r\nexport const CONNECTOR: CONNECTOR_TYPE = 'connector';\r\nexport const DATA: DATA_TYPE = 'data';\r\nexport const DECISION_TABLE: DECISION_TABLE_TYPE = 'decision';\r\nexport const UI: UI_TYPE = 'ui';\r\nexport const FILE: FILE_TYPE = 'file';\r\nexport const SCRIPT: SCRIPT_TYPE = 'script';\r\nexport const TRIGGER: TRIGGER_TYPE = 'trigger';\r\n\r\nexport interface Project {\r\n type: PROJECT_TYPE;\r\n id: string;\r\n name: string;\r\n creationDate: Date;\r\n createdBy: string;\r\n lastModifiedDate: Date;\r\n lastModifiedBy: string;\r\n description: string;\r\n version: string;\r\n}\r\n\r\nexport type CustomModelStatus = 'ACTIVE' | 'DRAFT';\r\nexport const ACTIVE_STATUS: CustomModelStatus = 'ACTIVE';\r\nexport const INACTIVE_STATUS: CustomModelStatus = 'DRAFT';\r\n\r\nexport interface CustomTypePayload {\r\n name: string;\r\n parentName: string;\r\n title: string;\r\n description?: string;\r\n}\r\n\r\nexport interface CustomAspectPayload {\r\n name: string;\r\n parentName: string;\r\n title: string;\r\n description?: string;\r\n}\r\n\r\nexport interface ApiError {\r\n errorKey?: string;\r\n statusCode: number;\r\n briefSummary: string;\r\n stackTrace: string;\r\n descriptionURL: string;\r\n logId?: string;\r\n}\r\n\r\nexport interface ApiErrorResponse {\r\n error: ApiError;\r\n}\r\n\r\nexport interface ReleaseEntry {\r\n entry: Release;\r\n}\r\n\r\nexport interface CollaboratorEntry {\r\n entry: Collaborator;\r\n}\r\n\r\nexport interface Release {\r\n id: string;\r\n name: string;\r\n creationDate: Date;\r\n createdBy: string;\r\n lastModifiedDate: Date;\r\n lastModifiedBy: string;\r\n version?: string;\r\n projectName?: string;\r\n}\r\n\r\nexport interface Collaborator {\r\n createdBy: string;\r\n id: string;\r\n projectId: string;\r\n username: string;\r\n}\r\n\r\nexport interface MinimalModelSummary {\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport interface Model extends MinimalModelSummary {\r\n id: string;\r\n description: string;\r\n version: string;\r\n applicationId?: string; // To remove, since BE finally returns it\r\n projectId: string;\r\n type: string;\r\n creationDate: Date;\r\n createdBy: string;\r\n lastModifiedDate: Date;\r\n lastModifiedBy: string;\r\n}\r\n\r\nexport interface Filter extends Model {\r\n icon?: string;\r\n}\r\n\r\nexport interface Process extends Model {\r\n type: PROCESS_TYPE;\r\n extensions?: ModelExtensions;\r\n}\r\n\r\nexport type ProcessVariableId = string;\r\n\r\nexport enum MappingType {\r\n variable = 'variable',\r\n value = 'value',\r\n static = 'static_value'\r\n}\r\n\r\nexport interface ServiceParameterMapping {\r\n [name: string]: {\r\n type: MappingType,\r\n value: any;\r\n };\r\n}\r\n\r\nexport interface ServiceParameterMappings {\r\n inputs?: ServiceParameterMapping;\r\n outputs?: ServiceParameterMapping;\r\n}\r\n\r\nexport interface ServicesParameterMappings {\r\n [serviceTaskId: string]: ServiceParameterMappings;\r\n}\r\n\r\nexport interface ServicesConstants {\r\n [serviceTaskId: string]: ServicesParameterConstants;\r\n}\r\n\r\nexport interface ServicesParameterConstants {\r\n [type: string]: {\r\n value: string;\r\n };\r\n}\r\n\r\nexport enum AssignmentMode {\r\n candidates = 'candidates',\r\n assignee = 'assignee'\r\n}\r\n\r\nexport enum AssignmentType {\r\n static = 'static',\r\n identity = 'identity',\r\n expression = 'expression'\r\n}\r\n\r\nexport interface TaskAssignment {\r\n id: string;\r\n type: AssignmentType;\r\n assignment: AssignmentMode;\r\n}\r\n\r\nexport interface TaskAssignmentContent {\r\n [serviceTaskId: string]: TaskAssignment;\r\n}\r\n\r\nexport interface ProcessExtensionsContent {\r\n properties: EntityProperties;\r\n mappings: ServicesParameterMappings;\r\n constants: ServicesConstants;\r\n assignments?: TaskAssignmentContent;\r\n}\r\n\r\nexport interface ProcessExtensions {\r\n id: string;\r\n extensions: ProcessExtensionsContent;\r\n}\r\n\r\nexport interface ModelExtensions {\r\n [processID: string]: ProcessExtensionsContent;\r\n}\r\n\r\nexport interface EntityProperty {\r\n id: string;\r\n name: string;\r\n type: string;\r\n required?: boolean;\r\n value: string;\r\n}\r\n\r\nexport interface EntityProperties {\r\n [propertiesId: string]: EntityProperty;\r\n}\r\n\r\nexport type ProcessContent = string;\r\n\r\nexport interface Connector extends Model {\r\n type: CONNECTOR_TYPE;\r\n template?: string;\r\n}\r\n\r\nexport interface ConnectorConfigParameter {\r\n name: string;\r\n description?: string;\r\n required?: boolean;\r\n value: string;\r\n}\r\n\r\nexport interface ConnectorParameter {\r\n id: string;\r\n name: string;\r\n description?: string;\r\n type: string;\r\n mappingValueType?: string;\r\n required?: boolean;\r\n readOnly?: boolean;\r\n value?: any;\r\n}\r\nexport interface ConnectorContent {\r\n name: string;\r\n description?: string;\r\n actions?: ConnectorFeatureData;\r\n events?: ConnectorFeatureData;\r\n config?: ConnectorConfigParameter[];\r\n template?: string;\r\n}\r\n\r\nexport interface ConnectorFeatureData {\r\n [actionId: string]: ConnectorFeature;\r\n}\r\n\r\nexport interface ConnectorFeature {\r\n id: string;\r\n name: string;\r\n description?: string;\r\n inputs?: ConnectorParameter[];\r\n outputs?: ConnectorParameter[];\r\n}\r\n\r\nexport interface Form extends Model {\r\n type: FORM_TYPE;\r\n}\r\n\r\nexport interface FormContent {\r\n formRepresentation: FormRepresentation;\r\n}\r\n\r\nexport interface FormRepresentation {\r\n id: string;\r\n name: string;\r\n description: string;\r\n version?: number;\r\n formDefinition?: FormDefinition;\r\n standAlone?: boolean;\r\n}\r\n\r\nexport interface FormTab {\r\n id: string;\r\n title: string;\r\n visibilityCondition: string | null;\r\n}\r\n\r\nexport interface FormOutcome {\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport interface FormDefinition {\r\n tabs: FormTab[];\r\n fields: any[];\r\n outcomes: FormOutcome[];\r\n metadata: {};\r\n variables: EntityProperties[];\r\n}\r\n\r\nexport interface UiPlugin {\r\n name: string;\r\n version: string;\r\n order: string;\r\n}\r\n\r\nexport interface UiContent {\r\n id: string;\r\n name: string;\r\n description?: string;\r\n 'adf-template': string;\r\n plugins: UiPlugin[];\r\n configs?: any;\r\n}\r\n\r\nexport interface Ui extends Model {\r\n type: UI_TYPE;\r\n}\r\n\r\nexport interface DataContent {\r\n id: string;\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport type DecisionTableContent = string;\r\n\r\nexport interface Data extends Model {\r\n type: DATA_TYPE;\r\n}\r\n\r\nexport interface DecisionTable extends Model {\r\n type: DECISION_TABLE_TYPE;\r\n}\r\n\r\nexport interface Pagination {\r\n count: number;\r\n hasMoreItems: boolean;\r\n maxItems: number;\r\n skipCount: number;\r\n totalItems: number;\r\n}\r\n\r\nexport interface ServerSideSorting {\r\n key: string;\r\n direction: string;\r\n}\r\n\r\nexport interface SearchQuery {\r\n key: string;\r\n value: string;\r\n}\r\n\r\nexport interface ErrorResponse {\r\n status: number;\r\n message: string;\r\n}\r\n\r\nexport interface FileModel {\r\n content: ActivitiFileContent;\r\n model: ActivitiFile;\r\n}\r\n\r\nexport type ActivitiFileContent = File;\r\n\r\nexport interface ActivitiFile extends Model {\r\n type: FILE_TYPE;\r\n extensions: FileExtensions;\r\n}\r\n\r\nexport interface FileExtensions {\r\n id: string;\r\n uri: string;\r\n name?: string;\r\n content?: FileExtensionsContent;\r\n createdAt?: Date;\r\n}\r\n\r\nexport interface FileExtensionsContent {\r\n mimeType?: string;\r\n mimeTypeName?: string;\r\n sizeInBytes?: number;\r\n encoding?: string;\r\n}\r\n\r\nexport interface ScriptModel {\r\n content: ActivitiScriptContent;\r\n model: ActivitiScript;\r\n}\r\n\r\nexport type ActivitiScriptContent = string;\r\n\r\nexport interface ActivitiScript extends Model {\r\n type: SCRIPT_TYPE;\r\n extensions: ScriptExtensions;\r\n}\r\n\r\nexport interface ScriptExtensions {\r\n uri: string;\r\n name?: string;\r\n content?: ScriptExtensionsContent;\r\n createdAt?: Date;\r\n language: string;\r\n variables?: EntityProperty[];\r\n\r\n}\r\n\r\nexport interface ScriptExtensionsContent {\r\n mimeType?: string;\r\n mimeTypeName?: string;\r\n sizeInBytes?: number;\r\n encoding?: string;\r\n}\r\nexport interface MessagePayload {\r\n type: string;\r\n value: string | number | null;\r\n name: string;\r\n}\r\n\r\nexport interface TriggerEvent {\r\n source: string;\r\n inputs: any;\r\n}\r\n\r\nexport interface TriggerAction {\r\n source: string;\r\n payload: any;\r\n}\r\n\r\nexport interface TriggerContent {\r\n id: string;\r\n name: string;\r\n description?: string;\r\n event?: TriggerEvent;\r\n action?: TriggerAction;\r\n}\r\n\r\nexport interface Trigger extends Model {\r\n type: TRIGGER_TYPE;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { InjectionToken, ValueProvider } from '@angular/core';\r\nimport { MODEL_TYPE } from '../api/types';\r\nimport { MODEL_SCHEMA_TYPE } from '../api/model-schema-api.interface';\r\n\r\nexport type JsonSchemaTransformer = (jsonSchema: Object) => any;\r\n\r\nexport interface SchemaModelMap {\r\n modelType: MODEL_TYPE;\r\n schemaKey: MODEL_SCHEMA_TYPE;\r\n transform?: JsonSchemaTransformer;\r\n}\r\n\r\nexport const MODEL_SCHEMAS_TO_LOAD = new InjectionToken('model-schemas-to-load');\r\n\r\nexport function provideLoadableModelSchema(schemaModelMap: SchemaModelMap): ValueProvider {\r\n return {\r\n provide: MODEL_SCHEMAS_TO_LOAD,\r\n multi: true,\r\n useValue: schemaModelMap\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MonacoEditorModule, NGX_MONACO_EDITOR_CONFIG } from 'ngx-monaco-editor';\r\nimport { CodeEditorComponent } from './components/code-editor/code-editor.component';\r\nimport { CodeEditorService } from './services/code-editor-service.service';\r\n\r\nexport function monacoEditorConfigFactory(codeEditorService: CodeEditorService) {\r\n return codeEditorService.getConfig();\r\n}\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n // We re-provide module's internal NGX_MONACO_EDITOR_CONFIG, see the providers\r\n MonacoEditorModule.forRoot({})\r\n ],\r\n declarations: [CodeEditorComponent],\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n MonacoEditorModule,\r\n CodeEditorComponent\r\n ],\r\n providers: [\r\n {\r\n provide: NGX_MONACO_EDITOR_CONFIG,\r\n useFactory: monacoEditorConfigFactory,\r\n deps: [ CodeEditorService ]\r\n }\r\n ]\r\n})\r\nexport class CodeEditorModule {}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input, OnDestroy, ChangeDetectionStrategy, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { NgxEditorModel, NgxMonacoEditorConfig } from 'ngx-monaco-editor';\r\nconst memoize = require('lodash/memoize');\r\n\r\nexport type EditorOptions = monaco.editor.IEditorOptions | { language: string; theme: string };\r\nexport interface CodeEditorPosition {\r\n column: number;\r\n lineNumber: number;\r\n}\r\n\r\nconst createMemoizedEditorOptions = memoize(\r\n (theme, language, basicOptions): EditorOptions => ({ ...basicOptions, theme, language }),\r\n (theme, language) => `${theme}-${language}`\r\n);\r\n\r\nconst DEFAULT_OPTIONS = {\r\n language: 'json',\r\n scrollBeyondLastLine: false,\r\n contextmenu: true,\r\n formatOnPaste: true,\r\n formatOnType: true,\r\n minimap: {\r\n enabled: false\r\n },\r\n automaticLayout: true\r\n};\r\n\r\n@Component({\r\n selector: 'modelingsdk-code-editor',\r\n templateUrl: './code-editor.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CodeEditorComponent implements OnDestroy, OnInit, OnChanges {\r\n @Input() vsTheme = 'vs-light';\r\n @Input() options: EditorOptions;\r\n @Input() fileUri: string;\r\n @Input() language: string;\r\n @Input() content = '';\r\n @Output() changed = new EventEmitter();\r\n @Output() positionChanged = new EventEmitter();\r\n\r\n editorModel: NgxEditorModel;\r\n config: NgxMonacoEditorConfig;\r\n\r\n private editor: monaco.editor.ICodeEditor = { dispose: () => {} };\r\n private defaultOptions: any;\r\n\r\n ngOnInit() {\r\n this.defaultOptions = Object.assign({}, DEFAULT_OPTIONS, this.options);\r\n this.editorModel = {\r\n value: this.content,\r\n language: this.language,\r\n uri: this.fileUri\r\n };\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.fileUri && changes.fileUri.currentValue) {\r\n this.editorModel = Object.assign({}, this.editorModel, { uri: changes.fileUri.currentValue });\r\n }\r\n }\r\n\r\n get editorOptions(): EditorOptions {\r\n return createMemoizedEditorOptions(this.vsTheme, this.defaultOptions.language, this.defaultOptions);\r\n }\r\n\r\n get editorConfig(): NgxMonacoEditorConfig {\r\n return this.editorConfig;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.editor.dispose();\r\n }\r\n\r\n onEditorInit(editor: monaco.editor.ICodeEditor): void {\r\n this.editor = editor;\r\n let timer = null;\r\n\r\n editor.onKeyUp(() => {\r\n clearTimeout(timer);\r\n timer = window.setTimeout(() => this.onEditorChange(), 1);\r\n });\r\n\r\n editor.onDidChangeCursorPosition((event: { position: CodeEditorPosition }) => {\r\n this.positionChanged.emit(event.position);\r\n });\r\n }\r\n\r\n onEditorChange(): void {\r\n this.changed.emit(this.content);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport function getFileUri(scheme: string, fileType: string, uriParts: string) {\r\n return `${scheme}://${fileType}:${uriParts}`;\r\n}\r\n\r\nexport function getFileUriPattern(scheme: string, fileType: string) {\r\n return getFileUri(scheme, fileType, '*');\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport { CodeEditorModule } from './code-editor.module';\r\nexport { CodeEditorPosition, CodeEditorComponent } from './components/code-editor/code-editor.component';\r\nexport {\r\n CodeValidatorService,\r\n ValidationResponse\r\n} from './services/code-validator.service';\r\nexport * from './services/code-editor-service.service';\r\nexport * from './helpers/file-uri';\r\nexport * from './code-editor.extensions';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { arrayize } from '../../helpers/utils/arrayize';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CodeEditorService {\r\n\r\n private schemas = [];\r\n\r\n addSchema(uri: string, fileMatch: string | string[], schema: string | Object) {\r\n this.schemas.push({\r\n uri,\r\n fileMatch: arrayize(fileMatch),\r\n schema\r\n });\r\n }\r\n\r\n getConfig() {\r\n return {\r\n baseUrl: './assets',\r\n onMonacoLoad: this.onMonacoLoad.bind(this)\r\n };\r\n }\r\n\r\n private onMonacoLoad() {\r\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\r\n validate: true,\r\n schemas: this.schemas\r\n });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport interface ValidationResponse {\r\n json: T;\r\n valid: boolean;\r\n error: string | null;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CodeValidatorService {\r\n\r\n validateJson(jsonString: string = ''): ValidationResponse {\r\n let json, validationResponse: ValidationResponse;\r\n try {\r\n json = JSON.parse(jsonString.trim());\r\n return { json, valid: true, error: null };\r\n } catch {\r\n validationResponse = { json: null, valid: false, error: 'APP.GENERAL.ERRORS.NOT_VALID_JSON' };\r\n }\r\n\r\n return validationResponse;\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n {{ parameterColumnHeader | translate }}\\r\\n \\r\\n \\r\\n {{ parameter.label || parameter.name }}\\r\\n *\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ variableColumnHeader | translate }} /\\r\\n {{ 'SDK.VARIABLE_MAPPING.VALUE' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{values[parameter.name] | variablevalue}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ property.name }}\\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 {{ 'SDK.VARIABLE_MAPPING.NO_PROCESS_PROPERTIES' | translate }}\\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material';\r\nimport { ConnectorParameter, EntityProperty, MappingType, ServiceParameterMapping, ServiceParameterMappings } from '../../api/types';\r\nimport { Store } from '@ngrx/store';\r\nimport { map } from 'rxjs/operators';\r\nimport { selectSelectedTheme } from '../../store/app.selectors';\r\nimport { DialogService } from '../../confirmation-dialog/services/dialog.service';\r\nimport { AmaState } from '../../store/app.state';\r\nimport { MappingDialogComponent } from '../mapping-dialog/mapping-dialog.component';\r\nimport { Subject } from 'rxjs';\r\nimport { MappingDialogData, VariableMappingType } from '../../services/mapping-dialog.service';\r\nimport { InputMappingDialogService } from '../../services/input-mapping-dialog.service';\r\n\r\nexport interface ParameterSelectOption {\r\n id: string | Symbol;\r\n name: string;\r\n}\r\nexport interface ParametersSelectOptions {\r\n [paramName: string]: ParameterSelectOption[];\r\n}\r\nexport const NoneValue = Symbol('None value');\r\n\r\n@Component({\r\n selector: 'modelingsdk-input-mapping-table',\r\n templateUrl: 'input-mapping-table.component.html',\r\n host: { class: 'modelingsdk-input-mapping-table' }\r\n})\r\nexport class InputMappingTableComponent implements OnChanges {\r\n @Input()\r\n parameters: ConnectorParameter[];\r\n\r\n @Input()\r\n processProperties: EntityProperty[];\r\n\r\n @Input()\r\n mapping: ServiceParameterMapping;\r\n\r\n @Input()\r\n parameterColumnHeader = 'SDK.VARIABLE_MAPPING.PARAMETER';\r\n\r\n @Input()\r\n variableColumnHeader = 'SDK.VARIABLE_MAPPING.PROCESS_VARIABLE';\r\n\r\n @Input()\r\n extensionObject: any;\r\n\r\n @Output()\r\n update = new EventEmitter();\r\n\r\n data: ServiceParameterMapping = {};\r\n\r\n VALUE_TYPE = MappingType.value;\r\n VARIABLE_TYPE = MappingType.variable;\r\n\r\n displayedColumns: string[] = ['name', 'process-variable'];\r\n dataSource: MatTableDataSource;\r\n dataSelect: any[] = [];\r\n optionsForParams: ParametersSelectOptions = {};\r\n mappingTypes: { [paramName: string]: MappingType } = {};\r\n values: { [paramName: string]: string } = {};\r\n paramName2VariableName: { [paramName: string]: string } = {};\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private store: Store,\r\n private inputMappingDataSourceService: InputMappingDialogService\r\n ) { }\r\n\r\n ngOnChanges() {\r\n if (this.parameters) {\r\n this.initOptionsForParams();\r\n this.initMapping();\r\n this.dataSource = new MatTableDataSource(this.parameters);\r\n }\r\n this.data = { ...this.mapping };\r\n }\r\n\r\n selectVariable(\r\n selection: ParameterSelectOption,\r\n param: ConnectorParameter\r\n ): void {\r\n const noneSelected = selection.id === NoneValue;\r\n\r\n if (noneSelected && !param.required) {\r\n delete this.data[param.name];\r\n this.paramName2VariableName[param.name] = null;\r\n } else {\r\n this.data[param.name] = {\r\n type: MappingType.variable,\r\n value: noneSelected ? null : selection.name\r\n };\r\n this.paramName2VariableName[param.name] = this.data[param.name].value;\r\n }\r\n this.update.emit(this.data);\r\n }\r\n\r\n setParamWithValue(value: string, param: ConnectorParameter): void {\r\n if (!value.length && !param.required) {\r\n delete this.data[param.name];\r\n } else {\r\n this.data[param.name] = {\r\n type: MappingType.value,\r\n value\r\n };\r\n }\r\n this.update.emit(this.data);\r\n }\r\n\r\n initOptionsForParams() {\r\n this.parameters.forEach(param => {\r\n this.optionsForParams[param.name] = [\r\n { id: NoneValue, name: 'None' },\r\n ...this.processProperties.filter(\r\n prop => this.inputMappingDataSourceService.getPrimitiveType(prop.type) === this.inputMappingDataSourceService.getPrimitiveType(param.type)\r\n )\r\n ];\r\n });\r\n }\r\n\r\n initMapping() {\r\n this.parameters.forEach(param => {\r\n if (!this.mappingTypes[param.name]) {\r\n this.mappingTypes[param.name] = MappingType.variable;\r\n }\r\n\r\n if (this.mapping[param.name]) {\r\n this.mappingTypes[param.name] = this.mapping[param.name].type;\r\n this.values[param.name] =\r\n this.mapping[param.name].type === MappingType.value\r\n ? this.mapping[param.name].value\r\n : '';\r\n this.paramName2VariableName[param.name] =\r\n this.mapping[param.name].type === MappingType.variable\r\n ? this.mapping[param.name].value\r\n : '';\r\n }\r\n });\r\n }\r\n\r\n compareWith(option: ParameterSelectOption, selectedVariableName: string) {\r\n if (selectedVariableName === null && option.id === NoneValue) {\r\n return true;\r\n }\r\n\r\n return option.name === selectedVariableName;\r\n }\r\n\r\n isThereOptionForParam(parameter: ConnectorParameter) {\r\n if (parameter.required) {\r\n return this.optionsForParams[parameter.name].length > 1;\r\n }\r\n\r\n return this.optionsForParams[parameter.name].length > 0;\r\n }\r\n\r\n toggle(paramName: string) {\r\n this.mappingTypes[paramName] =\r\n this.mappingTypes[paramName] === MappingType.variable\r\n ? MappingType.value\r\n : MappingType.variable;\r\n }\r\n\r\n edit(parameterRow: number) {\r\n const inputMappingUpdate$ = new Subject();\r\n\r\n const theme$ = this.store.select(selectSelectedTheme).pipe(\r\n map(theme => (theme.className === 'dark-theme' ? 'vs-dark' : 'vs-light'))\r\n );\r\n\r\n const dialogData: MappingDialogData = {\r\n inputMapping: this.mapping,\r\n inputParameters: this.parameters,\r\n mappingType: VariableMappingType.input,\r\n processProperties: this.processProperties,\r\n selectedRow: parameterRow,\r\n theme$: theme$,\r\n inputMappingUpdate$: inputMappingUpdate$,\r\n extensionObject: this.extensionObject\r\n };\r\n\r\n this.dialogService.openDialog(MappingDialogComponent, {\r\n disableClose: true,\r\n height: '530px',\r\n width: '1000px',\r\n data: dialogData,\r\n });\r\n\r\n inputMappingUpdate$.subscribe(data => {\r\n this.data = data;\r\n this.update.emit(data);\r\n });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n MatTableModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatSelectModule,\r\n MatInputModule\r\n} from '@angular/material';\r\nimport { InputMappingTableComponent } from './input-mapping-table.component';\r\nimport { CoreModule } from '@alfresco/adf-core';\r\nimport { MappingDialogModule } from '../mapping-dialog/public-api';\r\nimport { VariablesModule } from '../../variables/variables.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatTableModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatSelectModule,\r\n MatInputModule,\r\n MappingDialogModule,\r\n VariablesModule,\r\n CoreModule.forChild()\r\n ],\r\n declarations: [InputMappingTableComponent],\r\n exports: [InputMappingTableComponent]\r\n})\r\nexport class InputMappingTableModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './input-mapping-table.component';\r\nexport * from './input-mapping-table.module';\r\n","module.exports = \"

\\r\\n compare_arrows{{'SDK.MAPPING_DIALOG.TITLE' | translate}}\\r\\n

\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'SDK.MAPPING_DIALOG.SELECTOR_TITLE' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'SDK.MAPPING_DIALOG.INPUT_MAPPING' | translate }}\\r\\n \\r\\n \\r\\n {{ 'SDK.MAPPING_DIALOG.OUTPUT_MAPPING' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'SDK.MAPPING_DIALOG.INPUT_PARAMETER' | translate }}\\r\\n {{ 'SDK.MAPPING_DIALOG.OUTPUT_PARAMETER' | translate }}/{{ 'SDK.MAPPING_DIALOG.VALUE_MAPPING' | translate }}\\r\\n \\r\\n \\r\\n {{element.name | variablevalue}} *\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n arrow_backward\\r\\n arrow_forward\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'SDK.MAPPING_DIALOG.PROCESS_VARIABLE' | translate }}/{{ 'SDK.MAPPING_DIALOG.VALUE_MAPPING' | translate }}\\r\\n {{ 'SDK.MAPPING_DIALOG.PROCESS_VARIABLE' | translate }}\\r\\n \\r\\n \\r\\n {{element.value | variablevalue}}\\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 {{'SDK.MAPPING_DIALOG.INPUT_PARAMETER' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{ property.name }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'SDK.MAPPING_DIALOG.PROCESS_VARIABLE' | translate}}\\r\\n \\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 \\r\\n {{'SDK.MAPPING_DIALOG.NONE'| translate}}\\r\\n \\r\\n {{ property.name }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'SDK.MAPPING_DIALOG.NONE'| translate}}\\r\\n \\r\\n {{ property.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 * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatSelectChange } from '@angular/material';\r\nimport { Observable } from 'rxjs';\r\nimport { ConnectorParameter, EntityProperty, ServiceParameterMapping } from '../../api/types';\r\nimport { UuidService } from '../../services/uuid.service';\r\nimport { VariableMappingType, MappingRowModel, MappingValueType, MappingDialogService, MappingDialogData } from '../../services/mapping-dialog.service';\r\nimport { InputMappingDialogService } from '../../services/input-mapping-dialog.service';\r\nimport { OutputMappingDialogService } from '../../services/output-mapping-dialog.service';\r\n\r\n@Component({\r\n templateUrl: './mapping-dialog.component.html',\r\n selector: 'modelingsdk-mapping-dialog',\r\n host: { class: 'modelingsdk-mapping-dialog' }\r\n})\r\n\r\nexport class MappingDialogComponent implements OnInit, OnDestroy {\r\n inputMapping: ServiceParameterMapping;\r\n inputParameters: ConnectorParameter[];\r\n outputParameters: ConnectorParameter[];\r\n outputMapping: ServiceParameterMapping;\r\n processProperties: EntityProperty[];\r\n mappingType: VariableMappingType;\r\n selectedRow: number;\r\n selectedProcessVariable: string;\r\n selectedOutputParameter: string;\r\n vsTheme$: Observable;\r\n selectedDestination: string;\r\n extensionObject: any;\r\n\r\n service: MappingDialogService;\r\n\r\n dataSource: MappingRowModel[];\r\n displayedColumns: string[] = ['name', 'icon', 'value'];\r\n\r\n selectedTab = 0;\r\n tabCheck = 0;\r\n\r\n variableValue = undefined;\r\n valueValue = undefined;\r\n expressionValue = '';\r\n\r\n filteredProcessVariables: EntityProperty[];\r\n\r\n language = 'expressions';\r\n\r\n extendedProperties = {};\r\n\r\n constructor(\r\n public dialog: MatDialogRef,\r\n private uuidService: UuidService,\r\n private inputMappingDataSourceService: InputMappingDialogService,\r\n private outputMappingDataSourceService: OutputMappingDialogService,\r\n @Inject(MAT_DIALOG_DATA) public data: MappingDialogData\r\n ) {\r\n this.inputMapping = data.inputMapping;\r\n this.inputParameters = data.inputParameters;\r\n this.outputMapping = data.outputMapping;\r\n this.outputParameters = data.outputParameters;\r\n this.processProperties = data.processProperties;\r\n this.mappingType = data.mappingType;\r\n this.selectedRow = data.selectedRow;\r\n this.selectedProcessVariable = data.selectedProcessVariable;\r\n this.selectedOutputParameter = data.selectedOutputParameter;\r\n this.vsTheme$ = data.theme$;\r\n this.extensionObject = data.extensionObject;\r\n }\r\n\r\n ngOnInit() {\r\n this.language = this.language + '-' + this.uuidService.generate();\r\n this.dataSourceInit(this.mappingType);\r\n if (this.selectedRow) {\r\n this.extendedProperties = this.getExtendedProperties(this.dataSource[this.selectedRow].type);\r\n }\r\n this.service.initExpressionEditor(this.language, this.mappingType === VariableMappingType.output ? this.outputParameters : this.processProperties);\r\n this.initSelectedRow();\r\n if (this.mappingType === VariableMappingType.output) {\r\n this.displayedColumns.push('delete');\r\n this.filteredProcessVariables = this.service.getFilteredProcessVariables(this.dataSource, this.processProperties, this.selectedRow);\r\n }\r\n this.selectedDestination = this.service.getDataSourceName(this.dataSource, this.selectedRow);\r\n this.initSelectedTab(this.selectedRow, true);\r\n const values = this.service.initMappingValue(this.dataSource, this.selectedRow);\r\n Object.assign(this, { variableValue: values.variableValue, expressionValue: values.expressionValue, valueValue: values.valueValue });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.service.removeEditorLanguageSettings(this.language);\r\n }\r\n\r\n private dataSourceInit(type: VariableMappingType): void {\r\n let mapping: ServiceParameterMapping;\r\n let parameters: ConnectorParameter[];\r\n switch (type) {\r\n case VariableMappingType.output:\r\n this.service = this.outputMappingDataSourceService;\r\n mapping = this.outputMapping;\r\n parameters = this.outputParameters;\r\n break;\r\n default:\r\n this.service = this.inputMappingDataSourceService;\r\n mapping = this.inputMapping;\r\n parameters = this.inputParameters;\r\n }\r\n this.dataSource = this.service.dataSourceInit(mapping, parameters, this.processProperties);\r\n }\r\n\r\n private initSelectedRow() {\r\n if (this.mappingType === VariableMappingType.output) {\r\n const index = this.dataSource.findIndex(row => row.value === this.selectedProcessVariable);\r\n if (index < 0) {\r\n this.addOutputMapping(this.selectedOutputParameter);\r\n } else {\r\n this.selectedRow = index;\r\n this.extendedProperties = this.getExtendedProperties(this.dataSource[this.selectedRow].type);\r\n }\r\n }\r\n }\r\n\r\n private initSelectedTab(i: number, isInit?: boolean) {\r\n switch (this.dataSource[i].mappingValueType) {\r\n case MappingValueType.variable:\r\n this.selectedTab = 0;\r\n break;\r\n case MappingValueType.value:\r\n this.selectedTab = 1;\r\n break;\r\n case MappingValueType.expression:\r\n this.selectedTab = 2;\r\n break;\r\n default:\r\n this.selectedTab = 0;\r\n break;\r\n }\r\n\r\n if (isInit) {\r\n this.tabCheck = this.selectedTab;\r\n }\r\n }\r\n\r\n isMappingSelectorEnabled(): boolean {\r\n switch (this.mappingType) {\r\n case VariableMappingType.output:\r\n return this.inputParameters !== undefined && this.inputParameters !== null;\r\n default:\r\n return this.outputParameters !== undefined && this.outputParameters !== null;\r\n }\r\n }\r\n\r\n selectedTabChange() {\r\n switch (this.selectedTab) {\r\n case 0:\r\n this.dataSource[this.selectedRow].mappingValueType = MappingValueType.variable;\r\n this.service.setDataSourceValue(this.dataSource, this.selectedRow, this.variableValue);\r\n break;\r\n case 1:\r\n this.dataSource[this.selectedRow].mappingValueType = MappingValueType.value;\r\n if (this.variableValue && this.service.getPrimitiveType(this.dataSource[this.selectedRow].type) === 'json' && this.valueValue) {\r\n this.service.setDataSourceValue(this.dataSource, this.selectedRow, JSON.parse(this.valueValue));\r\n } else {\r\n this.service.setDataSourceValue(this.dataSource, this.selectedRow, this.valueValue);\r\n }\r\n break;\r\n case 2:\r\n this.dataSource[this.selectedRow].mappingValueType = MappingValueType.expression;\r\n if (this.expressionValue && this.service.getPrimitiveType(this.dataSource[this.selectedRow].type) === 'json' && this.expressionValue) {\r\n this.service.setDataSourceValue(this.dataSource, this.selectedRow, JSON.parse(this.expressionValue));\r\n } else {\r\n this.service.setDataSourceValue(this.dataSource, this.selectedRow, this.expressionValue);\r\n }\r\n }\r\n this.tabCheck = this.selectedTab;\r\n }\r\n\r\n variableMappingTypeChange($event: MatSelectChange) {\r\n if ($event.value === VariableMappingType.output) {\r\n this.displayedColumns.push('delete');\r\n this.inputMapping = this.service.createMappingFromDataSource(this.dataSource);\r\n } else {\r\n this.displayedColumns.pop();\r\n this.outputMapping = this.service.createMappingFromDataSource(this.dataSource);\r\n }\r\n this.dataSourceInit($event.value);\r\n }\r\n\r\n editRow(i: number) {\r\n if (!this.dataSource[i].readOnly) {\r\n if (i !== undefined && i < this.dataSource.length) {\r\n this.selectedRow = i;\r\n this.extendedProperties = this.getExtendedProperties(this.dataSource[this.selectedRow].type);\r\n this.selectedDestination = this.service.getDataSourceName(this.dataSource, i);\r\n const values = this.service.initMappingValue(this.dataSource, i);\r\n Object.assign(this, { variableValue: values.variableValue, expressionValue: values.expressionValue, valueValue: values.valueValue });\r\n this.initSelectedTab(i);\r\n if (this.mappingType === VariableMappingType.output) {\r\n this.service.getFilteredProcessVariables(this.dataSource, this.processProperties, i);\r\n }\r\n }\r\n\r\n if (this.selectedTab !== this.tabCheck) {\r\n this.selectedTabChange();\r\n }\r\n }\r\n }\r\n\r\n getFilteredProcessProperties(type: string): EntityProperty[] {\r\n return this.processProperties.filter(prop => this.service.getPrimitiveType(prop.type) === this.service.getPrimitiveType(type));\r\n }\r\n\r\n getFilteredOutputParameters(type: string): ConnectorParameter[] {\r\n return this.outputParameters.filter(prop => this.service.getPrimitiveType(prop.type) === this.service.getPrimitiveType(type));\r\n }\r\n\r\n variableMappingValueChange($event: MatSelectChange, i: number) {\r\n this.dataSource[i].mappingValueType = MappingValueType.variable;\r\n this.variableValue = $event.value;\r\n this.service.setDataSourceValue(this.dataSource, i, $event.value);\r\n }\r\n\r\n valueMappingValueChange($event: any, i: number) {\r\n this.dataSource[i].mappingValueType = MappingValueType.value;\r\n let value = $event;\r\n if (typeof $event === 'string' && this.service.getPrimitiveType(this.dataSource[i].type) === 'json') {\r\n value = JSON.parse($event);\r\n this.expressionValue = $event;\r\n } else if (this.service.getPrimitiveType(this.dataSource[i].type) === 'json') {\r\n this.expressionValue = JSON.stringify($event);\r\n }\r\n this.service.setDataSourceValue(this.dataSource, i, value);\r\n }\r\n\r\n valueMappingExpressionChange($event: string, i: number) {\r\n this.dataSource[i].mappingValueType = MappingValueType.expression;\r\n this.expressionValue = $event;\r\n if (this.service.getPrimitiveType(this.dataSource[i].type) === 'json') {\r\n this.valueValue = JSON.parse($event);\r\n this.service.setDataSourceValue(this.dataSource, i, this.valueValue);\r\n } else {\r\n this.service.setDataSourceValue(this.dataSource, i, this.expressionValue);\r\n }\r\n }\r\n\r\n outputMappingDestinationChange($event: MatSelectChange) {\r\n this.selectedDestination = $event.value;\r\n const processVariable = this.processProperties.find(variable => variable.name === $event.value);\r\n if (this.dataSource[this.selectedRow].type !== processVariable.type && this.dataSource[this.selectedRow].mappingValueType === MappingValueType.value) {\r\n this.dataSource[this.selectedRow].name = null;\r\n }\r\n this.dataSource[this.selectedRow].type = processVariable.type;\r\n this.dataSource[this.selectedRow].value = $event.value;\r\n }\r\n\r\n addOutputMapping(defaultOutputParameter: string) {\r\n let type = undefined;\r\n let mappingValueType = MappingValueType.expression;\r\n if (defaultOutputParameter) {\r\n const outputParameter = this.outputParameters.find(parameter => parameter.name === defaultOutputParameter);\r\n if (outputParameter) {\r\n type = outputParameter.type;\r\n mappingValueType = MappingValueType.variable;\r\n }\r\n }\r\n this.dataSource = this.dataSource.concat({ name: defaultOutputParameter, value: undefined, type: type, mappingValueType: mappingValueType });\r\n this.editRow(this.dataSource.length - 1);\r\n }\r\n\r\n deleteRow(i: number) {\r\n this.dataSource.splice(i, 1);\r\n this.dataSource = this.dataSource.filter(() => true);\r\n this.selectedRow = undefined;\r\n this.extendedProperties = null;\r\n this.selectedTab = 0;\r\n this.tabCheck = 0;\r\n }\r\n\r\n save() {\r\n if (this.mappingType === VariableMappingType.input) {\r\n this.inputMapping = this.service.createMappingFromDataSource(this.dataSource);\r\n } else {\r\n this.outputMapping = this.service.createMappingFromDataSource(this.dataSource);\r\n }\r\n\r\n if (this.inputMapping) {\r\n this.data.inputMappingUpdate$.next(this.inputMapping);\r\n this.data.inputMappingUpdate$.complete();\r\n }\r\n if (this.outputMapping) {\r\n this.data.outputMappingUpdate$.next(this.outputMapping);\r\n this.data.outputMappingUpdate$.complete();\r\n }\r\n\r\n this.dialog.close();\r\n }\r\n\r\n onClose() {\r\n this.dialog.close();\r\n }\r\n\r\n trackBy(index: number) {\r\n return index;\r\n }\r\n\r\n private getExtendedProperties(inputType: string): any {\r\n let extendedProperties;\r\n switch (inputType) {\r\n case 'content-metadata':\r\n extendedProperties = { processProperties: this.processProperties };\r\n break;\r\n case 'expression-mapping':\r\n extendedProperties = this.extensionObject;\r\n break;\r\n default:\r\n extendedProperties = null;\r\n }\r\n return extendedProperties;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CoreModule } from '@alfresco/adf-core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatIconModule, MatInputModule, MatSelectModule, MatTableModule, MatTooltipModule, MatDialogModule } from '@angular/material';\r\nimport { MappingDialogComponent } from './mapping-dialog.component';\r\nimport { DialogService } from '../../confirmation-dialog/services/dialog.service';\r\nimport { VariablesModule } from '../../variables/variables.module';\r\nimport { CodeEditorModule } from '../../code-editor/public-api';\r\nimport { InputMappingDialogService } from '../../services/input-mapping-dialog.service';\r\nimport { OutputMappingDialogService } from '../../services/output-mapping-dialog.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatTableModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatSelectModule,\r\n MatInputModule,\r\n MatDialogModule,\r\n VariablesModule,\r\n CodeEditorModule,\r\n CoreModule.forChild()\r\n ],\r\n providers: [DialogService, InputMappingDialogService, OutputMappingDialogService],\r\n declarations: [MappingDialogComponent],\r\n exports: [MappingDialogComponent],\r\n entryComponents: [MappingDialogComponent]\r\n})\r\nexport class MappingDialogModule { }\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './mapping-dialog.component';\r\nexport * from './mapping-dialog.module';\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n {{ 'SDK.VARIABLE_MAPPING.PARAMETER' | translate }}\\r\\n \\r\\n {{ parameter.label || parameter.name | variablevalue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ 'SDK.VARIABLE_MAPPING.PROCESS_VARIABLE' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ property.name }}\\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 {{ 'SDK.VARIABLE_MAPPING.NO_PROCESS_PROPERTIES' | translate }}\\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material';\r\nimport { ConnectorParameter, EntityProperty, MappingType, ServiceParameterMapping, ServiceParameterMappings } from '../../api/types';\r\nimport { Store } from '@ngrx/store';\r\nimport { map } from 'rxjs/operators';\r\nimport { selectSelectedTheme } from '../../store/app.selectors';\r\nimport { DialogService } from '../../confirmation-dialog/services/dialog.service';\r\nimport { AmaState } from '../../store/app.state';\r\nimport { MappingDialogComponent } from '../mapping-dialog/mapping-dialog.component';\r\nimport { Subject } from 'rxjs';\r\nimport { MappingDialogData, VariableMappingType } from '../../services/mapping-dialog.service';\r\nimport { OutputMappingDialogService } from '../../services/output-mapping-dialog.service';\r\nimport { EXPRESSION } from '../../helpers/primitive-types';\r\n\r\n@Component({\r\n selector: 'modelingsdk-output-mapping-table',\r\n templateUrl: 'output-mapping-table.component.html',\r\n host: { class: 'modelingsdk-input-mapping-table' }\r\n})\r\nexport class OutputMappingTableComponent implements OnChanges {\r\n @Input()\r\n parameters: ConnectorParameter[];\r\n\r\n @Input()\r\n processProperties: EntityProperty[];\r\n\r\n @Input()\r\n mapping: ServiceParameterMapping;\r\n\r\n @Output()\r\n update = new EventEmitter();\r\n data: ServiceParameterMapping = {};\r\n\r\n noneValue = 'None';\r\n displayedColumns: string[] = ['name', 'process-variable'];\r\n dataSource: MatTableDataSource;\r\n optionsForParams: {\r\n [paramName: string]: { id: string; name: string }[];\r\n } = {};\r\n\r\n filteredParameters = [];\r\n mappingParameters = [];\r\n tableParameters = [];\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private store: Store,\r\n private outputMappingDataSourceService: OutputMappingDialogService\r\n ) { }\r\n\r\n ngOnChanges() {\r\n this.initFilteredParameters();\r\n this.initParametersFromMapping();\r\n this.tableParameters = this.filteredParameters.concat(this.mappingParameters);\r\n this.dataSource = new MatTableDataSource(this.tableParameters);\r\n this.data = { ...this.mapping };\r\n this.initOptionsForParams(this.tableParameters);\r\n }\r\n\r\n private initParametersFromMapping() {\r\n this.mappingParameters = [];\r\n const filtered = this.parameters.filter((param) => param.mappingValueType && param.mappingValueType === EXPRESSION);\r\n filtered.forEach(params => this.mappingParameters.push({ ...params }));\r\n\r\n const processVariables = Object.keys(this.mapping);\r\n processVariables.forEach(processVariable => {\r\n if (this.mapping[processVariable].type !== MappingType.variable) {\r\n this.createOrUpdateMapping(processVariable);\r\n } else {\r\n const index = this.filteredParameters.findIndex(parameter => parameter.name === this.mapping[processVariable].value && !parameter['processVariable']);\r\n if (index >= 0) {\r\n this.filteredParameters[index]['processVariable'] = processVariable;\r\n } else {\r\n this.mappingParameters.push({\r\n id: processVariable,\r\n processVariable: processVariable,\r\n name: this.mapping[processVariable].value,\r\n type: this.processProperties.find(variable => variable.name === processVariable).type,\r\n description: ''\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n createOrUpdateMapping(processVariable) {\r\n const parameter = this.mappingParameters.find(param => param.name === this.mapping[processVariable].value);\r\n if (parameter) {\r\n parameter.processVariable = processVariable;\r\n parameter.type = this.processProperties.find(variable => variable.name === processVariable).type;\r\n } else {\r\n this.mappingParameters.push({\r\n id: processVariable,\r\n processVariable: processVariable,\r\n name: this.mapping[processVariable].value,\r\n type: this.processProperties.find(variable => variable.name === processVariable).type,\r\n description: ''\r\n });\r\n }\r\n }\r\n\r\n private initFilteredParameters() {\r\n this.filteredParameters = [];\r\n const filtered = this.parameters.filter((param) => !param.name.includes('variables.') && param.mappingValueType !== EXPRESSION);\r\n filtered.forEach(filteredParam => this.filteredParameters.push({ ...filteredParam, processVariable: undefined }));\r\n }\r\n\r\n changeSelection(\r\n { value: variableName },\r\n index: number,\r\n parameter: ConnectorParameter\r\n ): void {\r\n const oldVariable = this.getProcessVariable(index);\r\n if (oldVariable) {\r\n delete this.data[oldVariable];\r\n }\r\n\r\n if (this.isExpression(parameter)) {\r\n this.data[variableName] = {\r\n type: MappingType.value,\r\n value: parameter.name\r\n };\r\n } else if (variableName !== this.noneValue) {\r\n this.data[variableName] = {\r\n type: MappingType.variable,\r\n value: parameter.name\r\n };\r\n }\r\n this.update.emit(this.data);\r\n }\r\n\r\n initOptionsForParams(parameters: ConnectorParameter[]) {\r\n parameters.forEach((param, index) => this.setOptionForAParam(param, index));\r\n }\r\n\r\n private setOptionForAParam(param, index) {\r\n this.optionsForParams[index] = [\r\n ...(param.required === false ? [{ id: null, name: 'None' }] : []),\r\n ...this.processProperties\r\n .filter(variable => this.outputMappingDataSourceService.getPrimitiveType(variable.type) === this.outputMappingDataSourceService.getPrimitiveType(param.type))\r\n .filter(\r\n variable =>\r\n !this.mapping[variable.name] ||\r\n variable.name === this.getProcessVariable(index)\r\n )\r\n ];\r\n }\r\n\r\n edit(parameterRow: number) {\r\n const outputMappingUpdate$ = new Subject();\r\n\r\n const theme$ = this.store.select(selectSelectedTheme).pipe(\r\n map(theme => (theme.className === 'dark-theme' ? 'vs-dark' : 'vs-light'))\r\n );\r\n\r\n let selectedProcessVariable;\r\n const variableNames = Object.keys(this.data);\r\n variableNames.forEach(variable => {\r\n if (this.data[variable].value === this.tableParameters[parameterRow].name) {\r\n selectedProcessVariable = variable;\r\n }\r\n });\r\n\r\n const dialogData: MappingDialogData = {\r\n mappingType: VariableMappingType.output,\r\n outputMapping: this.mapping,\r\n outputParameters: this.parameters,\r\n processProperties: this.processProperties,\r\n selectedProcessVariable: selectedProcessVariable,\r\n selectedOutputParameter: this.tableParameters[parameterRow].name,\r\n theme$: theme$,\r\n outputMappingUpdate$: outputMappingUpdate$\r\n };\r\n\r\n this.dialogService.openDialog(MappingDialogComponent, {\r\n disableClose: true,\r\n height: '530px',\r\n width: '1000px',\r\n data: dialogData,\r\n });\r\n\r\n outputMappingUpdate$.subscribe(data => {\r\n this.mapping = data;\r\n this.update.emit(data);\r\n this.ngOnChanges();\r\n });\r\n }\r\n\r\n isValueMapping(parameterName: string): boolean {\r\n return this.parameters.findIndex(parameter => parameter.name === parameterName) === -1;\r\n }\r\n\r\n getProcessVariable(i: number): string {\r\n return this.tableParameters[i]['processVariable'];\r\n }\r\n\r\n private isExpression(parameter: ConnectorParameter): boolean {\r\n return parameter.mappingValueType && parameter.mappingValueType === EXPRESSION;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CoreModule } from '@alfresco/adf-core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatIconModule, MatInputModule, MatSelectModule, MatTableModule, MatTooltipModule } from '@angular/material';\r\nimport { OutputMappingTableComponent } from './output-mapping-table.component';\r\nimport { MappingDialogModule } from '../mapping-dialog/public-api';\r\nimport { VariablesModule } from '../../variables/public-api';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatTableModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatSelectModule,\r\n MatInputModule,\r\n MappingDialogModule,\r\n VariablesModule,\r\n CoreModule.forChild()\r\n ],\r\n declarations: [OutputMappingTableComponent],\r\n exports: [OutputMappingTableComponent]\r\n})\r\nexport class OutputMappingTableModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './output-mapping-table.component';\r\nexport * from './output-mapping-table.module';\r\n","module.exports = \"

{{ title | translate }}

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

{{ subtitle | translate }}

\\r\\n\\r\\n
    \\r\\n
  • {{ error | translate }}
  • \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Inject, OnInit, Optional } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport interface ConfirmDialogPayload {\r\n subject: Subject;\r\n title?: string;\r\n subtitle?: string;\r\n errors?: string[];\r\n confirmButton?: boolean;\r\n}\r\n\r\n@Component({\r\n templateUrl: './confirmation-dialog.component.html'\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n title: string;\r\n subtitle: string;\r\n confirmButton: boolean;\r\n errors: string[];\r\n subject: Subject;\r\n\r\n constructor(\r\n public dialog: MatDialogRef,\r\n @Optional()\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: ConfirmDialogPayload\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.title = this.data.title || 'APP.DIALOGS.CONFIRM.TITLE';\r\n this.subtitle = this.data.subtitle;\r\n this.subject = this.data.subject;\r\n this.confirmButton = this.data.confirmButton;\r\n this.errors = this.data.errors || [];\r\n }\r\n\r\n choose(choice: boolean): void {\r\n this.subject.next(choice);\r\n this.dialog.close();\r\n this.subject.complete();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { DialogService } from './services/dialog.service';\r\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CoreModule } from '@alfresco/adf-core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatIconModule } from '@angular/material';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n RouterModule,\r\n CoreModule.forChild(),\r\n ],\r\n providers: [ DialogService ],\r\n declarations: [\r\n ConfirmationDialogComponent\r\n ],\r\n entryComponents: [ ConfirmationDialogComponent ],\r\n exports: [\r\n CommonModule,\r\n MatIconModule,\r\n RouterModule\r\n ]\r\n})\r\nexport class ConfirmationDialogModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport { ConfirmationDialogModule } from './confirmation-dialog.module';\r\nexport { DialogService } from './services/dialog.service';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { ConfirmationDialogComponent } from '../components/confirmation-dialog/confirmation-dialog.component';\r\nimport { ConfirmDialogData } from '../../store/app.actions';\r\nimport { Action } from '@ngrx/store';\r\n\r\n@Injectable()\r\nexport class DialogService {\r\n constructor(private dialog: MatDialog) {}\r\n\r\n openDialog(dialog, options = {}): void {\r\n this.dialog.open(dialog, {\r\n width: '600px',\r\n ...options\r\n });\r\n }\r\n\r\n closeAll(): void {\r\n this.dialog.closeAll();\r\n }\r\n\r\n confirm(dialogData?: ConfirmDialogData, action?: Action): Observable {\r\n const subjectConfirm = new Subject();\r\n\r\n this.dialog.open(ConfirmationDialogComponent, {\r\n width: '600px',\r\n disableClose: true,\r\n data: {\r\n ...dialogData,\r\n ...({ confirmButton: !!action }),\r\n subject: subjectConfirm\r\n }\r\n });\r\n\r\n return subjectConfirm.asObservable();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { Connector } from './../api/types';\r\nimport { EntityDialogForm } from '../helpers/common';\r\n\r\nexport const GET_CONNECTOR_ATTEMPT = '[Connector] Get attempt';\r\nexport class GetConnectorAttemptAction implements Action {\r\n readonly type = GET_CONNECTOR_ATTEMPT;\r\n constructor(public connectorId: string) {}\r\n}\r\n\r\nexport const LOAD_CONNECTOR_ATTEMPT = '[Connector] Load attempt';\r\nexport class LoadConnectorAttemptAction implements Action {\r\n readonly type = LOAD_CONNECTOR_ATTEMPT;\r\n constructor(public connectorId: string) {}\r\n}\r\n\r\nexport const CREATE_CONNECTOR_SUCCESS = '[Connector] Create success';\r\nexport class CreateConnectorSuccessAction implements Action {\r\n readonly type = CREATE_CONNECTOR_SUCCESS;\r\n constructor(public connector: Connector, public navigateTo = false) {}\r\n}\r\n\r\nexport const CREATE_CONNECTOR_ATTEMPT = '[Connector] Create attempt';\r\nexport class CreateConnectorAttemptAction implements Action {\r\n readonly type = CREATE_CONNECTOR_ATTEMPT;\r\n constructor(public payload: Partial, public navigateTo = false, public callback?: Function) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createSelector, MemoizedSelector } from '@ngrx/store';\r\nimport { ConnectorEntitiesState } from './connector-entities.state';\r\nimport { selectSelectedProjectId } from '../store/app.selectors';\r\nimport { Connector } from '../api/types';\r\nimport { getEntitiesState } from '../store/entity.selectors';\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport interface EntitiesWithConnectors { connectors: ConnectorEntitiesState; }\r\nexport const selectConnectorsEntityContainer = createSelector(getEntitiesState, (state: any) => state.connectors);\r\nexport const selectConnectorEntities = createSelector(selectConnectorsEntityContainer, state => state.entities);\r\nexport const selectConnectorEntityContents = createSelector(selectConnectorsEntityContainer, state => state.entityContents);\r\n\r\nexport const CONNECTOR_SELECTORS_TOKEN = new InjectionToken>('connector-selectors');\r\nexport const selectProjectConnectorsArray = createSelector(\r\n selectConnectorEntities,\r\n selectSelectedProjectId,\r\n (connectors, selectedProjectId) => Object.values(connectors).filter((connector: Connector) => connector.projectId === selectedProjectId)\r\n);\r\n\r\nexport const connectorByName = name => createSelector(\r\n selectConnectorEntities,\r\n (entities) => {\r\n if (!name) {\r\n return null;\r\n }\r\n\r\n const wantedConnector = Object.keys(entities)\r\n .map(connectorId => entities[connectorId])\r\n .filter(connector => connector.name === name);\r\n\r\n return wantedConnector[0] || null;\r\n }\r\n);\r\n\r\nexport const projectConnectorByName = (projectId: string, name: string) => createSelector(\r\n selectConnectorEntities,\r\n (entities) => {\r\n if (!projectId || !name) {\r\n return null;\r\n }\r\n\r\n const wantedConnector = Object.keys(entities)\r\n .map(connectorId => entities[connectorId])\r\n .filter(connector => connector.name === name && connector.projectId === projectId);\r\n\r\n return wantedConnector[0] || null;\r\n }\r\n);\r\n\r\nexport const connectorContentById = id => createSelector(\r\n selectConnectorEntityContents,\r\n (entityContents) => {\r\n if (!id) {\r\n return null;\r\n }\r\n\r\n return entityContents[id] || null;\r\n }\r\n);\r\n\r\nexport const connectorActions = id => createSelector(\r\n selectConnectorEntityContents,\r\n (entities) => {\r\n if (!id) {\r\n return null;\r\n }\r\n\r\n return entities && entities[id] && entities[id].actions ? entities[id].actions : null;\r\n }\r\n);\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { EntityState, createEntityAdapter } from '@ngrx/entity';\r\nimport { Connector, ConnectorContent } from '../api/types';\r\n\r\nexport interface ConnectorEntitiesState extends EntityState {\r\n loading: boolean;\r\n loaded: boolean;\r\n entityContents: {[key: string]: ConnectorContent};\r\n}\r\n\r\nexport const connectorEntityAdapter = createEntityAdapter();\r\n\r\nexport const initialConnectorEntitiesState = connectorEntityAdapter.getInitialState({\r\n ...connectorEntityAdapter.getInitialState(),\r\n loading: false,\r\n loaded: false,\r\n entityContents: {}\r\n});\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ModelCreator } from '../interfaces/model-creator.interface';\r\nimport { CONNECTOR } from '../api/types';\r\nimport { MODELER_NAME_REGEX } from '../helpers/utils/create-entries-names';\r\nimport { CreateConnectorAttemptAction } from './connector-editor.actions';\r\n\r\nexport const CONNECTOR_ICON = 'wrap_text';\r\n\r\nexport function createConnectorCreator(callback = (param) => {}): ModelCreator {\r\n return {\r\n name: 'PROJECT_EDITOR.NEW_MENU.MENU_ITEMS.CREATE_CONNECTOR',\r\n icon: CONNECTOR_ICON,\r\n order: 1,\r\n type: CONNECTOR,\r\n dialog: {\r\n title: 'PROJECT_EDITOR.CONNECTOR_DIALOG.TITLE_CREATE',\r\n nameField: 'PROJECT_EDITOR.CONNECTOR_DIALOG.CONNECTOR_NAME',\r\n descriptionField: 'PROJECT_EDITOR.CONNECTOR_DIALOG.CONNECTOR_DESC',\r\n allowedCharacters: {\r\n regex: MODELER_NAME_REGEX,\r\n error: 'APP.DIALOGS.ERROR.GENERAL_NAME_VALIDATION'\r\n },\r\n action: CreateConnectorAttemptAction,\r\n callback: callback\r\n }\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './connector-editor.selectors';\r\nexport * from './connector-entities.state';\r\nexport * from './connector-editor.actions';\r\nexport * from './connector.creator';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport interface AdvancedConnectorEditorData {\r\n connectorContent: string;\r\n onChangeAttempt(connectorContentString: string): void;\r\n}\r\n\r\nexport const AdvancedConnectorEditorKey = 'AdvancedConnectorEditorKey';\r\nexport const ProjectSettingsConnectorTabKey = 'ProjectSettingsConnectorTabKey';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './connector-editor';\r\n","module.exports = \"

{{ data.title | translate }}

\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ allowedCharacters.error | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, Optional, Inject, HostListener, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Store } from '@ngrx/store';\r\nimport { AmaState } from '../../../store/app.state';\r\nimport { EntityDialogPayload, AllowedCharacters, EntityDialogForm } from '../../common';\r\nimport { MODELER_NAME_REGEX } from '../../utils/create-entries-names';\r\n\r\n@Component({\r\n templateUrl: './entity-dialog.component.html'\r\n})\r\nexport class EntityDialogComponent implements OnInit {\r\n\r\n submitButton: string;\r\n allowedCharacters: AllowedCharacters;\r\n form: Partial;\r\n ENTER_KEY = 13;\r\n\r\n @ViewChild('entityName')\r\n private entityNameField: ElementRef;\r\n\r\n @ViewChild('buttonSubmit')\r\n private submitButtonField: ElementRef;\r\n\r\n constructor(\r\n private store: Store,\r\n public dialog: MatDialogRef,\r\n @Optional()\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: EntityDialogPayload\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n const { values, allowedCharacters } = this.data;\r\n this.submitButton = values ? 'APP.DIALOGS.SAVE' : 'APP.DIALOGS.CREATE';\r\n this.allowedCharacters = allowedCharacters || {\r\n regex: MODELER_NAME_REGEX,\r\n error: 'APP.DIALOGS.ERROR.GENERAL_NAME_VALIDATION'\r\n };\r\n this.form = {\r\n name: values && values.name ? values.name : '',\r\n description: values && values.description ? values.description : ''\r\n };\r\n }\r\n\r\n validate(): boolean {\r\n return this.allowedCharacters.regex.test(this.form.name);\r\n }\r\n\r\n submit(): void {\r\n const { values } = this.data;\r\n const payload: any = values ? { id: values.id, form: this.form } : this.form;\r\n\r\n if (this.data.submitData) {\r\n payload.submitData = this.data.submitData;\r\n }\r\n\r\n const navigateTo = this.data.navigateTo !== undefined ? this.data.navigateTo : true;\r\n this.store.dispatch(new this.data.action(payload, navigateTo, this.data.callback));\r\n this.dialog.close();\r\n }\r\n\r\n @HostListener('document:keydown.enter', ['$event.target'])\r\n keyEvent(element: HTMLElement) {\r\n if (this.validate() && (element === this.entityNameField.nativeElement || element === this.submitButtonField.nativeElement)) {\r\n this.submit();\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n\\r\\n \\r\\n {{ item.name | translate }}\\r\\n \\r\\n\\r\\n
\\r\\n {{ item.name | translate }}\\r\\n
\\r\\n\\r\\n \\r\\n chevron_right\\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { BreadcrumbItem } from '../../common';\r\nimport { AmaState } from '../../../store/app.state';\r\nimport { selectAppDirtyState } from '../../../store/app.selectors';\r\n\r\n@Component({\r\n selector: 'modelingsdk-header-breadcrumbs',\r\n templateUrl: './header-breadcrumbs.component.html'\r\n})\r\n\r\nexport class HeaderBreadcrumbsComponent implements OnInit {\r\n @Input() breadcrumbs$: Observable;\r\n\r\n dirtyState$: Observable;\r\n\r\n constructor(private store: Store) {}\r\n\r\n ngOnInit() {\r\n this.dirtyState$ = this.store.select(selectAppDirtyState);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Directive, HostListener, ElementRef, Input, Renderer2 } from '@angular/core';\r\nimport { MODELER_NAME_REGEX } from './../utils/create-entries-names';\r\nimport { Store } from '@ngrx/store';\r\nimport { AmaState } from '../../store/app.state';\r\nimport { SnackbarErrorAction } from '../../store/public-api';\r\nimport { TranslationService } from '@alfresco/adf-core';\r\n\r\n@Directive({\r\n selector: '[modelingsdk-allowed-characters]'\r\n})\r\nexport class AllowedCharactersDirective {\r\n\r\n /* tslint:disable-next-line:no-input-rename */\r\n @Input('modelingsdk-allowed-characters') regexInput: RegExp = MODELER_NAME_REGEX;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n private store: Store,\r\n private translationService: TranslationService\r\n ) {}\r\n\r\n get regex() {\r\n return this.regexInput || MODELER_NAME_REGEX;\r\n }\r\n\r\n @HostListener('keypress', ['$event']) onKeyPress(event) {\r\n const previousValue = event.target.value;\r\n const characterLocation = event.target.selectionStart;\r\n const newValue = [previousValue.slice(0, characterLocation), event.key, previousValue.slice(characterLocation)].join('');\r\n return this.validate(newValue);\r\n }\r\n\r\n @HostListener('paste', ['$event']) onPaste(event: ClipboardEvent) {\r\n setTimeout(() => {\r\n const isValid = this.validate(this.el.nativeElement.value);\r\n\r\n if (!isValid) {\r\n this.renderer.setProperty(this.el.nativeElement, 'value', '');\r\n this.el.nativeElement.dispatchEvent(new Event('input'));\r\n event.preventDefault();\r\n\r\n const errorMessage = `${this.translationService.instant('SDK.SNACKBAR.PASTED_VALUE_NEEDS_TO_FOLLOW_PATTERN')}: /${this.regex}/`;\r\n this.store.dispatch(new SnackbarErrorAction(errorMessage));\r\n }\r\n });\r\n }\r\n\r\n private validate(value: string): boolean {\r\n return this.regex.test(value);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport const primitive_types: string[] = [\r\n 'string',\r\n 'integer',\r\n 'boolean',\r\n 'date',\r\n 'datetime',\r\n 'file',\r\n 'json',\r\n 'folder',\r\n 'array'\r\n];\r\n\r\nexport const AMA_DATETIME_FORMATS = {\r\n parse: {\r\n dateInput: 'L',\r\n monthInput: 'MMMM',\r\n timeInput: 'HH:mm:ss',\r\n datetimeInput: 'YYYY-MM-DD HH:mm:ss'\r\n },\r\n display: {\r\n dateInput: 'L',\r\n monthInput: 'MMMM',\r\n datetimeInput: 'YYYY-MM-DD HH:mm:ss',\r\n timeInput: 'LTS',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'HH:mm:ss',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n popupHeaderDateLabel: 'ddd, DD MMM'\r\n }\r\n};\r\n\r\n/* cspell: disable-next-line */\r\nexport const MOMENT_DATETIME_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\r\nexport const ANGULAR_DATETIME_DISPLAY_FORMAT = 'yyyy-MM-ddTHH:mm:ss';\r\nexport const EXPRESSION = 'expression';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './common';\r\nexport * from './unsaved-page.guard';\r\nexport * from './utils/create-entries-names';\r\nexport * from './shared.module';\r\nexport * from './utils/empty-diagram';\r\nexport * from './utils/empty-decision-table';\r\nexport * from './primitive-types';\r\nexport * from './utils/createJsonBlob';\r\nexport * from './utils/about-provider';\r\nexport * from './utils/arrayize';\r\nexport { EntityDialogComponent } from './components/entity-dialog/entity-dialog.component';\r\nexport { AllowedCharactersDirective } from './directives/allowed-characters.directive';\r\nexport * from './utils/log-filters';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { HeaderBreadcrumbsComponent } from './components/header-breadcrumbs/header-breadcrumbs.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatIconModule } from '@angular/material';\r\nimport { EntityDialogComponent } from './components/entity-dialog/entity-dialog.component';\r\nimport { CoreModule } from '@alfresco/adf-core';\r\nimport { AllowedCharactersDirective } from './directives/allowed-characters.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n RouterModule,\r\n CoreModule.forChild(),\r\n ],\r\n declarations: [\r\n HeaderBreadcrumbsComponent,\r\n EntityDialogComponent,\r\n AllowedCharactersDirective\r\n ],\r\n entryComponents: [EntityDialogComponent],\r\n exports: [\r\n HeaderBreadcrumbsComponent,\r\n EntityDialogComponent,\r\n AllowedCharactersDirective\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslationService } from '@alfresco/adf-core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { of, Observable, zip } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\nimport { AmaState } from '../store/app.state';\r\nimport { DialogService } from '../confirmation-dialog/services/dialog.service';\r\nimport { AmaTitleService } from '../services/title.service';\r\nimport { selectAppDirtyState, selectSelectedModel } from '../store/app.selectors';\r\nimport { ConfirmDialogData } from '../store/app.actions';\r\n\r\nexport interface CanComponentDeactivate {\r\n canDeactivate: () => Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class UnsavedPageGuard\r\n implements CanDeactivate {\r\n\r\n constructor(\r\n private store: Store,\r\n private dialogService: DialogService,\r\n private titleService: AmaTitleService,\r\n private translationService: TranslationService\r\n ) {\r\n }\r\n\r\n canDeactivate(component: CanComponentDeactivate): Observable {\r\n return this.store.select(selectAppDirtyState).pipe(\r\n switchMap(dirty => zip(of(dirty), this.store.select(selectSelectedModel))),\r\n switchMap(([dirty, model]) => {\r\n if (dirty && model) {\r\n const types = this.translationService.instant(`APP.DIALOGS.CONFIRM.TYPES.${model.type}`);\r\n const subtitle = this.translationService.instant('APP.DIALOGS.CONFIRM.UNSAVED_PAGE', { types });\r\n\r\n const dialogData: ConfirmDialogData = {\r\n subtitle: `${subtitle}: \"${model.name || ''}\" ?`\r\n };\r\n\r\n return this.dialogService.confirm(dialogData, true).pipe(\r\n tap(response => {\r\n if (response) {\r\n this.titleService.setSavedTitle();\r\n }\r\n })\r\n );\r\n } else {\r\n return of(true);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport const APP_GITHUB_COMMIT = new InjectionToken('app_github_commit');\r\nexport const APP_VERSION = new InjectionToken('app_version');\r\nexport const APP_DEPS = new InjectionToken('app_dependencies');\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport function arrayize(value: T | T[]): T[] {\r\n return Array.isArray(value) ? value : [ value ];\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport const PROCESS_FILE_FORMAT = '.bpmn20.xml';\r\nexport const PROCESS_SVG_FILE_FORMAT = '.svg';\r\nexport const CONNECTOR_FILE_FORMAT = '.json';\r\nexport const FORM_FILE_FORMAT = '.json';\r\nexport const UI_FILE_FORMAT = '.json';\r\nexport const DATA_FILE_FORMAT = '.json';\r\nexport const DECISION_TABLE_FILE_FORMAT = '.dmn';\r\nexport const FILE_FILE_FORMAT = '.bin';\r\nexport const SCRIPT_FILE_FORMAT = '.bin';\r\nexport const TRIGGER_FILE_FORMAT = '.json';\r\nexport const MODEL_NAME_CHARACTERS = 'a-z0-9-';\r\nexport const MODELER_NAME_REGEX = /^[a-z]([-a-z0-9]{0,24}[a-z0-9])?$/;\r\nexport const FIELD_VARIABLE_NAME_REGEX = /^[a-z][a-z0-9_]*$/i;\r\n\r\nexport const sanitizeString = (text: string) => {\r\n const pastedText = text,\r\n negativeRegex = new RegExp(`[^${MODEL_NAME_CHARACTERS}]`, 'g'),\r\n sanitizedValue = pastedText.replace(negativeRegex, '').replace(/\\s/g, '');\r\n return sanitizedValue;\r\n};\r\n\r\nexport const createModelName = (name) => {\r\n return sanitizeString(name.replace(PROCESS_FILE_FORMAT, ''));\r\n};\r\n\r\nexport const createDecisionTableName = (name) => {\r\n return sanitizeString(name.replace(DECISION_TABLE_FILE_FORMAT, ''));\r\n};\r\n\r\nexport const changeFileName = (file: File, newName: string): File => {\r\n const blob = file.slice(0, file.size, file.type);\r\n return new File([blob], newName, { type: file.type });\r\n};\r\n\r\nexport const formatUuid = (contentType: string, uuid: string): string => {\r\n return `${ contentType.toLowerCase()}-${uuid}`;\r\n};\r\n\r\n/* cspell: disable-next-line */\r\nexport const getRandomCharsAndNums = (noOfCharStringLengths: number): string => {\r\n return Math.random().toString(36).replace(/[^a-z0-9]+/g, '').substr(0, noOfCharStringLengths);\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport function createBlobFormData(file: Blob, fileName: string) {\r\n const formData = new FormData();\r\n formData.append('file', file, fileName);\r\n return formData.get('file');\r\n}\r\n\r\nexport function createBlobFormDataFromStringContent(fileContent: string, fileName: string, type = 'application/json') {\r\n const formData = new FormData(),\r\n file = new Blob([fileContent], { type: type });\r\n formData.append('file', file, fileName);\r\n\r\n return formData.get('file');\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { formatUuid, createDecisionTableName } from './create-entries-names';\r\nimport { ContentType } from './../../api-implementations/acm-api/content-types';\r\nimport { DecisionTable } from '../../api/types';\r\n\r\nexport const getEmptyDecisionTable = (decisionTable: DecisionTable) => {\r\n const id = formatUuid(ContentType.DecisionTable, decisionTable.id),\r\n name = createDecisionTableName(decisionTable.name);\r\n\r\n return `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `;\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createModelName, formatUuid } from './create-entries-names';\r\nimport { ContentType } from './../../api-implementations/acm-api/content-types';\r\n\r\n/* tslint:disable */\r\nexport const getEmptyDiagram = (model, processId) => {\r\n const modelId = formatUuid(ContentType.Model, model.id);\r\n\r\n return `\r\n \r\n \r\n ${model.description ? model.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 * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n\r\n/* tslint:disable */\r\n/* cSpell:disable */\r\nexport const getEmptyScript = (model) => {\r\n \r\n return ` \r\n /* What can be used? \r\n * 1 - Input Variables Example:\r\n * let cost = variables.cost;\r\n * let taxes = variables.taxes[0];\r\n * \r\n * 2 - Output Variables Example:\r\n * variables.totalCost = cost * (1 + taxes);\r\n * \r\n * 3 - Content APIs Example. The following APIs are currently supported: nodesApi, groupsApi, peopleApi and siteApi.\r\n * let parentNodeId = \"daf40357-b177-4de1-a031-a71630cbdfb4\";\r\n * let nodeBodyCreate = nodeBody.create();\r\n * nodeBodyCreate.name(\"test\");\r\n * nodeBodyCreate.nodeType(\"cm:folder\");\r\n * nodesApi.createNode(parentNodeId, nodeBodyCreate, true, null, null); \r\n * \r\n * The syntax to create the needed @Body for the differents APIs are:\r\n * 3.1 - nodesApi:\r\n * let nodeBodyCreate = nodeBody.create();\r\n * let nodeBodyUpdate = nodeBody.update();\r\n * let nodeBodyLock = nodeBody.lock();\r\n * let nodeBodyMove = nodeBody.move();\r\n * \r\n * 3.2 - groupsApi:\r\n * let groupBodyCreate = groupBody.create();\r\n * let groupBodyUpdate = groupBody.update();\r\n * let groupMembershipBodyCreate = groupMembershipBody.create();\r\n * \r\n * 3.3 - peopleApi:\r\n * let personBodyCreate = personBody.create();\r\n * let personBodyUpdate = personBody.update();\r\n * let passwordResetBody = passwordBody.reset();\r\n * \r\n * 3.4 - siteApi:\r\n * let siteBodyCreate = siteBody.create();\r\n * let siteBodyUpdate = siteBody.update();\r\n * let siteMembershipBodyCreate = siteMembershipBody.create();\r\n * let siteMembershipBodyUpdate = siteMembershipBody.update();\r\n * let siteMembershipBodyApproval = siteMembershipBody.approval();\r\n * let siteMembershipBodyRequestCreate = siteMembershipBody.requestCreate();\r\n * let siteMembershipBodyRejection = siteMembershipBody.rejection();\r\n * let siteMembershipBodyRequestUpdate = siteMembershipBody.requestUpdate();\r\n * \r\n * 4 - Runtime Commands (ProcessPayloadBuilder and CommandProducer) Example:\r\n * let startProcessInstanceCmd = processPayloadBuilder.start().withProcessDefinitionKey(\"1af40357-b122-4de1-a031-a71630cbdf33\").build();\r\n * commandProducer.send(startProcessInstanceCmd);\r\n */`;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { InjectionToken } from '@angular/core';\r\nimport { LogMessageInitiator } from '../../store/app.state';\r\n\r\nexport const ALL_LOGS = '*';\r\nexport const allLogFilter: LogMessageInitiator = {\r\n key: ALL_LOGS,\r\n displayName: 'SDK.ALL'\r\n};\r\n\r\nexport const LOG_FILTER_ITEM_TOKEN = new InjectionToken('log-filter-item');\r\n\r\nexport function provideLogFilter(logFilter: LogMessageInitiator) {\r\n return {\r\n provide: LOG_FILTER_ITEM_TOKEN,\r\n multi: true,\r\n useValue: logFilter\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { TRANSLATION_PROVIDER } from '@alfresco/adf-core';\r\n\r\nexport function provideTranslations(moduleName: string) {\r\n return {\r\n provide: TRANSLATION_PROVIDER,\r\n multi: true,\r\n useValue: { name: moduleName, source: `assets/${moduleName}` }\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './provide-translations';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Action } from '@ngrx/store';\r\nimport { MODEL_TYPE } from '../api/types';\r\nimport { AllowedCharacters } from '../helpers/common';\r\n\r\nexport type ActionConstructor = new (...args: any[]) => Action;\r\n\r\nexport interface ModelCreatorDialogParams {\r\n title: string;\r\n nameField: string;\r\n descriptionField: string;\r\n allowedCharacters?: AllowedCharacters;\r\n action: ActionConstructor;\r\n callback: Function;\r\n}\r\n\r\nexport interface ModelCreator {\r\n name: string;\r\n type: MODEL_TYPE;\r\n icon: string;\r\n order: number;\r\n dialog: ModelCreatorDialogParams;\r\n}\r\n\r\nexport const MODEL_CREATORS = new InjectionToken('model-creators');\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport const MODULE_EDITOR_ROUTES = 'MODULE_EDITOR_ROUTES';\r\nexport const DASHBOARD_ROUTES = 'DASHBOARD_ROUTES';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { Filter, MODEL_TYPE } from '../api/types';\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport interface FilterDataAdapter {\r\n expandedPredicate: (filters) => boolean;\r\n contents: Observable[]>;\r\n loading: Observable;\r\n load(projectId: string): void;\r\n}\r\n\r\nexport interface ModelFilter {\r\n type: MODEL_TYPE;\r\n name: string;\r\n icon: string;\r\n adapter: FilterDataAdapter;\r\n order: number;\r\n}\r\n\r\nexport const MODEL_FILTERS = new InjectionToken('model-filters');\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { InjectionToken } from '@angular/core';\r\nimport { MODEL_TYPE } from '../api/types';\r\nimport { ActionConstructor } from './model-creator.interface';\r\n\r\nexport interface ModelUploader {\r\n type: MODEL_TYPE;\r\n acceptedFileType: string;\r\n action: ActionConstructor;\r\n}\r\n\r\nexport const MODEL_UPLOADERS = new InjectionToken('model-uploaders');\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './validation-errors.interface';\r\nexport * from './model-filter.interface';\r\nexport * from './model-creator.interface';\r\nexport * from './model-uploader.interface';\r\nexport * from './model-editor-routes';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport const DECISION_TASK_IMPLEMENTATION = 'dmn-connector.EXECUTE_TABLE';\r\nexport const SCRIPT_TASK_IMPLEMENTATION = 'script.EXECUTE';\r\nexport const DECISION_TABLE_INPUT_PARAM_NAME = '_activiti_dmn_table_';\r\nexport const SCRIPT_INPUT_PARAM_NAME = '_activiti_script_';\r\n\r\nexport enum BpmnElement {\r\n Process = 'bpmn:Process',\r\n IntermediateCatchEvent = 'bpmn:IntermediateCatchEvent',\r\n IntermediateThrowEvent = 'bpmn:IntermediateThrowEvent',\r\n StartEvent = 'bpmn:StartEvent',\r\n ErrorEventDefinition = 'bpmn:ErrorEventDefinition',\r\n TimerEventDefinition = 'bpmn:TimerEventDefinition',\r\n SignalEventDefinition = 'bpmn:SignalEventDefinition',\r\n MessageEventDefinition = 'bpmn:MessageEventDefinition',\r\n Message = 'bpmn:Message',\r\n EndEvent = 'bpmn:EndEvent',\r\n BoundaryEvent = 'bpmn:BoundaryEvent',\r\n SequenceFlow = 'bpmn:SequenceFlow',\r\n Participant = 'bpmn:Participant',\r\n ExclusiveGateway = 'bpmn:ExclusiveGateway',\r\n FormalExpression = 'bpmn:FormalExpression',\r\n ParallelGateway = 'bpmn:ParallelGateway',\r\n InclusiveGateway = 'bpmn:InclusiveGateway',\r\n ServiceTask = 'bpmn:ServiceTask',\r\n UserTask = 'bpmn:UserTask',\r\n CallActivity = 'bpmn:CallActivity',\r\n SubProcess= 'bpmn:SubProcess',\r\n MultiInstanceLoopCharacteristics = 'bpmn:MultiInstanceLoopCharacteristics',\r\n Expression = 'bpmn:Expression',\r\n DataOutput = 'bpmn:DataOutput',\r\n Task = 'bpmn:Task',\r\n TextAnnotation= 'bpmn:TextAnnotation',\r\n Collaboration = 'bpmn:Collaboration',\r\n Lane = 'bpmn:Lane'\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { MESSAGE } from './../store/app.state';\r\nimport { BpmnProperty, BpmnCompositeProperty } from './properties';\r\n\r\nexport interface ModelerInitOptions {\r\n clickHandler: (event) => any | void;\r\n changeHandler: (event) => any | void;\r\n removeHandler: (event) => any | void;\r\n selectHandler: (event) => any | void;\r\n}\r\n\r\nexport interface XmlParsingProblem {\r\n type: MESSAGE;\r\n messages: string[];\r\n}\r\n\r\nexport interface ProcessModelerService {\r\n init(modelerInitOptions: ModelerInitOptions): void;\r\n render(container): void;\r\n getFromModeler(token: Bpmn.NamedDiagramService): any;\r\n getElement(shapeId: string): Bpmn.DiagramElement;\r\n getRootProcessElement(): Bpmn.DiagramElement;\r\n updateElementProperty(shapeId: string, propertyName: BpmnProperty | BpmnCompositeProperty, value: any): void;\r\n loadXml(xml: string): Observable;\r\n export(type?: string): Promise;\r\n zoomIn(): void;\r\n zoomOut(): void;\r\n fitViewPort(): void;\r\n undo(): void;\r\n redo(): void;\r\n destroy(): void;\r\n}\r\n\r\nexport interface BpmnFactory {\r\n create(): Bpmn.Modeler;\r\n}\r\n\r\nexport const BpmnFactoryToken = new InjectionToken('bpmn-factory-token');\r\nexport const ProcessModelerServiceToken = new InjectionToken('process-modeler-service');\r\nexport const ALFRESCO_BPMN_RENDERERS = new InjectionToken('alfresco-bpmn-renderers');\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ALFRESCO_BPMN_RENDERERS } from './bpmn-modeler';\r\n\r\nexport function provideBpmnRenderer(customRendererModule: Diagram.CustomRendererModule) {\r\n return {\r\n provide: ALFRESCO_BPMN_RENDERERS,\r\n useValue: customRendererModule,\r\n multi: true\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '../properties';\r\nimport { ImplementationItemModel } from './implementation-item.model';\r\n\r\nexport class DecisionTaskItemModel extends ImplementationItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.decisionTask;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '../properties';\r\n\r\nexport class DefaultSequenceFlowItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.defaultSequenceFlow;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '../properties';\r\n\r\nexport class CardViewFormKeyModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.formKey;\r\n\r\n get displayValue() {\r\n if (this.isEmpty()) {\r\n return this.default;\r\n } else {\r\n return this.value;\r\n }\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '../properties';\r\n\r\nexport class ImplementationItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.implementation;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '../properties';\r\nimport { ImplementationItemModel } from './implementation-item.model';\r\n\r\nexport class ScriptTaskItemModel extends ImplementationItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.scriptTask;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { InjectionToken, Type } from '@angular/core';\r\n\r\nexport interface GeneralTrigger {\r\n group: string;\r\n type: string;\r\n icon: string;\r\n title: string;\r\n clickable: boolean;\r\n draggable: boolean;\r\n svg?: string;\r\n}\r\nexport interface ToolTrigger extends GeneralTrigger {\r\n group: 'tool';\r\n}\r\n\r\nexport interface BpmnElementTrigger extends GeneralTrigger {\r\n group: 'element';\r\n options?: any;\r\n}\r\n\r\nexport type BpmnTrigger = BpmnElementTrigger | ToolTrigger;\r\n\r\nexport interface PaletteSeparatorElement {\r\n group: 'separator';\r\n}\r\n\r\nexport interface PaletteGroupElement {\r\n group: 'container';\r\n icon: string;\r\n title: string;\r\n children?: GeneralTrigger[];\r\n}\r\n\r\nexport type PaletteElement = PaletteSeparatorElement | PaletteGroupElement | BpmnTrigger | GeneralTrigger;\r\n\r\nexport interface TriggerHandler {\r\n processEvent(event: any, element: GeneralTrigger): void;\r\n}\r\n\r\nexport interface PaletteElementHandler {\r\n key: string;\r\n handler: TriggerHandler;\r\n}\r\n\r\nexport const PaletteElementsToken = new InjectionToken('palette-elements');\r\nexport const PaletteElementsHandlersToken = new InjectionToken('palette-element-handlers');\r\nexport const PaletteElementIconsToken = new InjectionToken('palette-element-icons');\r\nexport function providePaletteHandler(key: string, handler: Type) {\r\n return [\r\n handler,\r\n {\r\n provide: PaletteElementsHandlersToken,\r\n useValue: { key, handler },\r\n multi: true\r\n }\r\n ];\r\n}\r\n\r\nexport function providePaletteElements(elements: PaletteElement[]) {\r\n return {\r\n provide: PaletteElementsToken,\r\n multi: true,\r\n useValue: elements\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { ServiceParameterMappings, ServicesParameterConstants, TaskAssignment } from '../api/types';\r\n\r\nexport const UPDATE_SERVICE_PARAMETERS = '[ProcessEditor] Update Service Parameters';\r\nexport class UpdateServiceParametersAction implements Action {\r\n readonly type = UPDATE_SERVICE_PARAMETERS;\r\n constructor(\r\n public modelId: string,\r\n public processId: string,\r\n public serviceId: string,\r\n public serviceParameterMappings: ServiceParameterMappings,\r\n public constants?: ServicesParameterConstants\r\n ) {}\r\n}\r\n\r\nexport const AUTO_SAVE_PROCESS = '[ProcessEditor] Auto save process';\r\nexport class AutoSaveProcessAction implements Action {\r\n readonly type = AUTO_SAVE_PROCESS;\r\n}\r\n\r\nexport const UPDATE_TASK_ASSIGNMENTS = '[ProcessEditor] Update Task Assignments';\r\nexport class UpdateServiceAssignmentAction implements Action {\r\n readonly type = UPDATE_TASK_ASSIGNMENTS;\r\n constructor(\r\n public modelId: string,\r\n public processId: string,\r\n public serviceId: string,\r\n public taskAssignment: TaskAssignment,\r\n ) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { ServiceParameterMappings, EntityProperty, TaskAssignmentContent } from '../api/types';\r\nimport { getEntitiesState } from '../store/entity.selectors';\r\nimport { selectOpenedModel } from '../store/app.selectors';\r\nimport { ProcessExtensionsModel } from './process-extensions.model';\r\n\r\nexport const PROCESS_EDITOR_STATE_NAME = 'process-editor';\r\nexport const getProcessEditorFeatureState = createFeatureSelector(PROCESS_EDITOR_STATE_NAME);\r\n\r\nexport const selectProcessEntityContainer = createSelector(getEntitiesState, (state: any) => state.processes);\r\n\r\nexport const selectSelectedProcess = createSelector(\r\n selectOpenedModel,\r\n selectProcessEntityContainer,\r\n (openedModel, state) => openedModel ? state.entities[openedModel.id] : null);\r\n\r\nexport const selectProcessPropertiesArrayFor = (processId: string) => {\r\n return createSelector(\r\n selectSelectedProcess,\r\n (process): EntityProperty[] => {\r\n if (process && process.extensions) {\r\n return Object.values(new ProcessExtensionsModel(process.extensions).getProperties(processId));\r\n } else {\r\n return [];\r\n }\r\n }\r\n );\r\n};\r\n\r\nexport const selectExternalProcessPropertiesArrayFor = (modelId: string) => {\r\n return createSelector(\r\n selectProcessEntityContainer,\r\n (processes): EntityProperty[] => {\r\n const process = processes.entities[modelId];\r\n if (process && process.extensions) {\r\n return Object.values(new ProcessExtensionsModel(process.extensions).getAllProperties());\r\n } else {\r\n return [];\r\n }\r\n }\r\n );\r\n};\r\n\r\nexport const selectProcessMappingsFor = (processId: string, elementId: string) => {\r\n return createSelector(\r\n selectSelectedProcess,\r\n (process): ServiceParameterMappings => {\r\n let mapping = {};\r\n if (process && process.extensions) {\r\n mapping = new ProcessExtensionsModel(process.extensions).getMappings(processId);\r\n }\r\n return mapping && mapping[elementId] ? mapping[elementId] : {};\r\n }\r\n );\r\n};\r\n\r\nexport const selectProcessTaskAssignmentFor = (processId: string, serviceId: string) => {\r\n return createSelector(\r\n selectSelectedProcess,\r\n (process) => {\r\n if (!process || !process.extensions) {\r\n return {};\r\n }\r\n const assignments = new ProcessExtensionsModel(process.extensions).getAssignments(processId);\r\n return assignments && assignments[serviceId] ? assignments[serviceId] : {};\r\n }\r\n );\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport {\r\n ModelExtensions,\r\n EntityProperties,\r\n ServiceParameterMappings,\r\n TaskAssignmentContent,\r\n ServicesParameterConstants,\r\n TaskAssignment,\r\n ServicesConstants\r\n} from '../api/types';\r\n\r\nexport function createExtensionsObject() {\r\n return {\r\n constants: {},\r\n mappings: {},\r\n properties: {},\r\n assignments: {}\r\n };\r\n}\r\n\r\nexport class ProcessExtensionsModel {\r\n\r\n extensions: ModelExtensions;\r\n\r\n constructor(extensions: ModelExtensions) {\r\n this.extensions = extensions;\r\n }\r\n\r\n setProperties(processId: string, properties: EntityProperties): ModelExtensions {\r\n const processExtensions = this.extensions[processId] ? this.extensions[processId] : createExtensionsObject();\r\n processExtensions.properties = properties;\r\n this.extensions[processId] = processExtensions;\r\n return this.extensions;\r\n }\r\n\r\n getProperties(processId: string): EntityProperties {\r\n return this.extensions[processId] ? this.extensions[processId].properties : {};\r\n }\r\n\r\n getAllProperties(): EntityProperties {\r\n let properties = {};\r\n\r\n Object.keys(this.extensions).map((extensionPropertyKey: string) => {\r\n if (extensionPropertyKey !== 'constants' && extensionPropertyKey !== 'mappings' && extensionPropertyKey !== 'properties') {\r\n properties = { ...this.extensions[extensionPropertyKey].properties };\r\n }\r\n });\r\n\r\n return properties;\r\n }\r\n\r\n setMappings(processId: string, elementId: string, mappings: ServiceParameterMappings): ModelExtensions {\r\n const processExtensions = this.extensions[processId] ? this.extensions[processId] : createExtensionsObject();\r\n if (Object.values(mappings).length) {\r\n processExtensions.mappings[elementId] = mappings;\r\n } else {\r\n delete processExtensions.mappings[elementId];\r\n }\r\n this.extensions[processId] = processExtensions;\r\n return this.extensions;\r\n }\r\n\r\n getMappings(processId: string): ServiceParameterMappings {\r\n return this.extensions[processId] ? this.extensions[processId].mappings : {};\r\n }\r\n\r\n getAllMappings(): ServiceParameterMappings {\r\n let mappings = {};\r\n\r\n Object.keys(this.extensions).map((extensionPropertyKey: string) => {\r\n if (extensionPropertyKey !== 'constants' && extensionPropertyKey !== 'mappings' && extensionPropertyKey !== 'properties') {\r\n mappings = { ...mappings, ...this.extensions[extensionPropertyKey].mappings };\r\n }\r\n });\r\n\r\n return mappings;\r\n }\r\n\r\n setAssignments(processId: string, serviceId: string, assignment: TaskAssignment): ModelExtensions {\r\n const processExtensions = this.extensions[processId] ? this.extensions[processId] : createExtensionsObject();\r\n if (processExtensions.assignments === undefined) {\r\n processExtensions.assignments = {};\r\n }\r\n\r\n if (Object.values(assignment).length) {\r\n processExtensions.assignments[serviceId] = assignment;\r\n } else {\r\n delete processExtensions.assignments[serviceId];\r\n }\r\n this.extensions[processId] = processExtensions;\r\n return this.extensions;\r\n }\r\n\r\n getAssignments(processId: string): TaskAssignmentContent {\r\n return this.extensions[processId] ? this.extensions[processId].assignments : {};\r\n }\r\n\r\n setConstants(processId: string, elementId: string, constants: ServicesParameterConstants): ModelExtensions {\r\n const processExtensions = this.extensions[processId] ? this.extensions[processId] : createExtensionsObject();\r\n if (Object.values(constants).length) {\r\n processExtensions.constants[elementId] = constants;\r\n } else {\r\n delete processExtensions.constants[elementId];\r\n }\r\n this.extensions[processId] = processExtensions;\r\n return this.extensions;\r\n }\r\n\r\n getConstants(processId: string): ServicesConstants {\r\n return this.extensions[processId] ? this.extensions[processId].constants : {};\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { LogMessageInitiator } from '../store/app.state';\r\n\r\nexport const PROJECT_EDITOR_LOGS = 'Project Editor';\r\n\r\nexport function getProjectEditorLogInitiator(extra?: any): LogMessageInitiator {\r\n return {\r\n key: PROJECT_EDITOR_LOGS,\r\n displayName: 'Project Editor',\r\n extra\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Type, InjectionToken } from '@angular/core';\r\n\r\nexport enum BpmnProperty {\r\n id = 'id',\r\n name = 'name',\r\n modelName = 'modelName',\r\n documentation = 'documentation',\r\n implementation = 'implementation',\r\n decisionTask = 'decisionTask',\r\n scriptTask = 'scriptTask',\r\n formKey = 'formKey',\r\n variables = 'variables',\r\n assignee = 'assignee',\r\n candidateUsers = 'candidateUsers',\r\n candidateGroups = 'candidateGroups',\r\n dueDate = 'dueDate',\r\n priority = 'priority',\r\n calledElement = 'calledElement',\r\n conditionExpression = 'conditionExpression',\r\n processName = 'processName',\r\n processId = 'processId',\r\n defaultSequenceFlow = 'default',\r\n signalRef = 'signalRef',\r\n signalScope = 'signalScope',\r\n timerEventDefinition = 'timerEventDefinition',\r\n errorRef = 'errorRef',\r\n messageRef = 'messageRef',\r\n correlationKey = 'correlationKey',\r\n multiInstanceType = 'multiInstanceType',\r\n messageExpression = 'messageExpression',\r\n messagePayload = 'messagePayload',\r\n textAnnotation = 'textAnnotation',\r\n isExecutable = 'isExecutable'\r\n}\r\n\r\nexport enum BpmnCompositeProperty {\r\n assignment = 'assignment',\r\n properties = 'properties',\r\n messages = 'messages'\r\n}\r\n\r\nexport const PROCESS_EDITOR_CUSTOM_PROPERTY_HANDLERS = new InjectionToken('process-editor-custom-property-handlers');\r\n\r\nexport interface ProcessEditorCustomProperty {\r\n type: string;\r\n implementationClass: Type<{}>;\r\n}\r\n\r\nexport function providePropertyHandler(type: BpmnProperty | BpmnCompositeProperty, implementationClass: Type<{}>) {\r\n return {\r\n provide: PROCESS_EDITOR_CUSTOM_PROPERTY_HANDLERS,\r\n useValue: { type, implementationClass: implementationClass },\r\n multi: true\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './cardview-properties/implementation-item.model';\r\nexport * from './cardview-properties/decision-task-item.model';\r\nexport * from './cardview-properties/script-task-item.model';\r\nexport * from './cardview-properties/form-key.model';\r\nexport * from './cardview-properties/default-sequence-flow-item.model';\r\nexport * from './project-editor.constants';\r\nexport * from './bpmn-element';\r\nexport * from './bpmn-modeler';\r\nexport * from './palette';\r\nexport * from './process-editor.actions';\r\nexport * from './process-editor.selectors';\r\nexport * from './process-extensions.model';\r\nexport * from './bpmn-renderer.provider';\r\nexport * from './properties';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport interface ProjectContextMenuAction extends Action {\r\n projectId: string;\r\n}\r\n\r\nexport interface ProjectContextMenuDialog {\r\n title: string;\r\n}\r\n\r\nexport interface ProjectContextMenuOption {\r\n title: string;\r\n actionClass: ProjectContextMenuActionClass;\r\n automationId: string;\r\n icon: string;\r\n}\r\n\r\nexport interface ProjectContextMenuActionClass {\r\n // tslint:disable-next-line\r\n new(projectId: string): ProjectContextMenuAction;\r\n}\r\n\r\nexport const PROJECT_CONTEXT_MENU_OPTIONS = new InjectionToken('project-context-menu-options');\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './project-context-menu';\r\nexport * from './project-summary-entities';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthenticationService, LogService } from '@alfresco/adf-core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class AmaAuthenticationService {\r\n keepAlive: Subscription = { unsubscribe: () => {} };\r\n\r\n constructor(\r\n private authService: AuthenticationService,\r\n private logService: LogService,\r\n router: Router\r\n ) {\r\n this.authService.onLogout.subscribe(() => {\r\n router.navigate(['/login']);\r\n });\r\n }\r\n\r\n logout() {\r\n this.authService.logout().subscribe({\r\n error: (error) => {\r\n this.logService.error('An unknown error occurred while logging out', error);\r\n },\r\n complete: () => {\r\n this.keepAlive.unsubscribe();\r\n }\r\n });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { UuidService } from './uuid.service';\r\nimport { AmaTitleService } from './title.service';\r\nimport { DownloadResourceService } from './download-resource.service';\r\nimport { provideTranslations } from '../i18n/provide-translations';\r\nimport { BlobService } from './blob.service';\r\n\r\n@NgModule()\r\nexport class AmaServicesModule {\r\n static forApplication(): ModuleWithProviders {\r\n return {\r\n ngModule: AmaServicesModule,\r\n providers: [\r\n provideTranslations('modeling-sdk'),\r\n BlobService,\r\n UuidService,\r\n AmaTitleService,\r\n DownloadResourceService\r\n ]\r\n };\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nconst indexOf = require('lodash/indexOf');\r\n\r\n@Injectable()\r\nexport class AuthTokenProcessorService {\r\n private helper;\r\n\r\n constructor() {\r\n this.helper = new JwtHelperService();\r\n }\r\n\r\n getRoles(): string[] {\r\n const access = this.getValueFromToken('realm_access');\r\n const roles = access ? access['roles'] : [];\r\n return roles;\r\n }\r\n\r\n hasToken() {\r\n return localStorage.getItem('access_token');\r\n }\r\n\r\n hasRole(role: string): boolean {\r\n let hasRole = false;\r\n if (this.hasToken()) {\r\n const roles = this.getRoles();\r\n hasRole = indexOf(roles, role) >= 0;\r\n }\r\n return hasRole;\r\n }\r\n\r\n hasRoles(roles: string []): boolean {\r\n let hasRole = false;\r\n roles.forEach(r => {\r\n if (this.hasRole(r)) {\r\n hasRole = true;\r\n return;\r\n }\r\n });\r\n return hasRole;\r\n }\r\n\r\n getValueFromToken(key: string): T {\r\n let value;\r\n const token = localStorage.getItem('access_token');\r\n if (token) {\r\n const tokenPayload = this.helper.decodeToken(token);\r\n value = tokenPayload[key];\r\n }\r\n return value;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { createBlobFormDataFromStringContent } from '../helpers/utils/createJsonBlob';\r\n\r\n@Injectable()\r\nexport class BlobService {\r\n\r\n convert2Json(blob: Blob): Observable {\r\n return new Observable((observer) => {\r\n const reader = new FileReader();\r\n\r\n reader.addEventListener('loadend', ({ srcElement }: any) => {\r\n observer.next(JSON.parse(srcElement.result));\r\n });\r\n\r\n reader.readAsText(blob);\r\n });\r\n }\r\n\r\n createJsonBlob(fileContent: string, fileName: string) {\r\n return createBlobFormDataFromStringContent(fileContent, fileName);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DownloadResourceService {\r\n downloadResource(name: string, data: Blob, extension: string) {\r\n const link = document.createElement('a');\r\n link.style.display = 'none';\r\n link.download = name + extension;\r\n document.body.appendChild(link);\r\n\r\n const url = window.URL.createObjectURL(data);\r\n\r\n link.href = url;\r\n link.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n downloadResourceWithFilename(filename: string, data: Blob) {\r\n const link = document.createElement('a');\r\n link.style.display = 'none';\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n\r\n const url = window.URL.createObjectURL(data);\r\n\r\n link.href = url;\r\n link.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n downloadUrl(url: string, fileName?: string) {\r\n if (url) {\r\n const link = document.createElement('a');\r\n\r\n link.style.display = 'none';\r\n link.href = url;\r\n if (fileName) {\r\n link.download = fileName;\r\n }\r\n\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { MappingDialogService, MappingRowModel, MappingValueType } from './mapping-dialog.service';\r\nimport { ServiceParameterMapping, ConnectorParameter, MappingType, EntityProperty } from '../api/types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InputMappingDialogService extends MappingDialogService {\r\n getDataSourceValue(dataSource: MappingRowModel[], i: number): any {\r\n return dataSource[i].value;\r\n }\r\n getDataSourceName(dataSource: MappingRowModel[], i: number): any {\r\n return dataSource[i].name;\r\n }\r\n setDataSourceValue(dataSource: MappingRowModel[], i: number, value: any) {\r\n dataSource[i].value = value;\r\n }\r\n\r\n dataSourceInit(mapping: ServiceParameterMapping, parameters: ConnectorParameter[], properties: EntityProperty[]): MappingRowModel[] {\r\n const dataSource: MappingRowModel[] = [];\r\n\r\n if (mapping === undefined || mapping === null) {\r\n mapping = {};\r\n }\r\n\r\n parameters.forEach(parameter => {\r\n let value = null;\r\n let mappingValueType = MappingValueType.variable;\r\n if (mapping[parameter.name]) {\r\n mappingValueType = this.getMappingValueTypeFromMappingType(mapping[parameter.name].type, mapping[parameter.name].value, this.getPrimitiveType(parameter.type));\r\n value = mapping[parameter.name].value;\r\n }\r\n dataSource.push({\r\n name: parameter.name,\r\n description: parameter.description,\r\n value: value,\r\n type: parameter.type,\r\n required: parameter.required,\r\n readOnly: parameter.readOnly,\r\n mappingValueType: mappingValueType\r\n });\r\n });\r\n\r\n return dataSource;\r\n }\r\n\r\n createMappingFromDataSource(dataSource: MappingRowModel[]): ServiceParameterMapping {\r\n const inputMapping = {};\r\n dataSource.forEach(item => {\r\n if (item.value) {\r\n inputMapping[item.name] = {\r\n type: item.mappingValueType === MappingValueType.variable ? MappingType.variable : MappingType.value,\r\n value: item.value\r\n };\r\n }\r\n });\r\n return inputMapping;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslationService } from '@alfresco/adf-core';\r\nimport { LogAction } from '../store/logging.actions';\r\nimport { LogMessageInitiator, MESSAGE } from '../store/app.state';\r\n\r\n@Injectable({ providedIn: 'root'})\r\nexport class LogFactoryService {\r\n constructor(private translation: TranslationService) {}\r\n\r\n private translateMessages(messages: string | string[]): string[] {\r\n if (messages) {\r\n messages = Array.isArray(messages) ? messages : [messages];\r\n return messages.map(message => this.translation.instant(message));\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n logInfo(initiator: LogMessageInitiator, messages: string | string[]): LogAction {\r\n return new LogAction({\r\n type: MESSAGE.INFO,\r\n datetime: new Date(),\r\n initiator,\r\n messages: this.translateMessages(messages)\r\n });\r\n }\r\n\r\n logWarning(initiator: LogMessageInitiator, messages: string | string[]): LogAction {\r\n return new LogAction({\r\n type: MESSAGE.WARN,\r\n datetime: new Date(),\r\n initiator,\r\n messages: this.translateMessages(messages)\r\n });\r\n }\r\n\r\n logError(initiator: LogMessageInitiator, messages: string | string[]): LogAction {\r\n return new LogAction({\r\n type: MESSAGE.ERROR,\r\n datetime: new Date(),\r\n initiator,\r\n messages: this.translateMessages(messages)\r\n });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ServiceParameterMapping, ConnectorParameter, MappingType, EntityProperty } from '../api/types';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { InputTypeItem, INPUT_TYPE_ITEM_HANDLER } from '../variables/public-api';\r\nimport { Inject } from '@angular/core';\r\n\r\nexport interface MappingDialogData {\r\n inputMapping?: ServiceParameterMapping;\r\n inputParameters?: ConnectorParameter[];\r\n outputMapping?: ServiceParameterMapping;\r\n outputParameters?: ConnectorParameter[];\r\n processProperties: EntityProperty[];\r\n mappingType: VariableMappingType;\r\n selectedRow?: number;\r\n selectedProcessVariable?: string;\r\n selectedOutputParameter?: string;\r\n theme$: Observable;\r\n inputMappingUpdate$?: Subject;\r\n outputMappingUpdate$?: Subject;\r\n extensionObject?: any;\r\n}\r\n\r\nexport enum VariableMappingType {\r\n input = 'input',\r\n output = 'output'\r\n}\r\n\r\nexport interface MappingRowModel {\r\n name: string;\r\n description?: string;\r\n value: any;\r\n required?: boolean;\r\n type?: string;\r\n readOnly?: boolean;\r\n mappingValueType: MappingValueType;\r\n}\r\n\r\nexport enum MappingValueType {\r\n variable = 'variable',\r\n value = 'value',\r\n expression = 'expression'\r\n}\r\n\r\nexport abstract class MappingDialogService {\r\n constructor(@Inject(INPUT_TYPE_ITEM_HANDLER) private inputTypeItemHandler: InputTypeItem[]) { }\r\n\r\n abstract getDataSourceValue(dataSource: MappingRowModel[], i: number): any;\r\n abstract getDataSourceName(dataSource: MappingRowModel[], i: number): any;\r\n abstract setDataSourceValue(dataSource: MappingRowModel[], i: number, value: any);\r\n abstract dataSourceInit(mapping: ServiceParameterMapping, parameters: ConnectorParameter[], properties: EntityProperty[]): MappingRowModel[];\r\n abstract createMappingFromDataSource(dataSource: MappingRowModel[]): ServiceParameterMapping;\r\n\r\n getPrimitiveType(type: string) {\r\n for (const handler of this.inputTypeItemHandler) {\r\n if (handler.type === type) {\r\n return handler.primitiveType;\r\n }\r\n }\r\n return 'json';\r\n }\r\n\r\n getFilteredProcessVariables(dataSource: MappingRowModel[], processProperties: EntityProperty[], i: number): EntityProperty[] {\r\n let filteredProcessVariables = processProperties.filter(() => true);\r\n const element = dataSource[i];\r\n if (element.type) {\r\n filteredProcessVariables = processProperties.filter(variable => variable.type === element.type);\r\n }\r\n dataSource.forEach(mapping => {\r\n if (mapping.value && mapping.value !== element.value) {\r\n const index = filteredProcessVariables.findIndex(variable => variable.name === mapping.value);\r\n if (index >= 0) {\r\n filteredProcessVariables.splice(index, 1);\r\n }\r\n }\r\n });\r\n\r\n return filteredProcessVariables;\r\n }\r\n\r\n initMappingValue(dataSource: MappingRowModel[], i: number): { variableValue: string, valueValue: any, expressionValue: string } {\r\n let expressionValue = '';\r\n let variableValue = undefined;\r\n let valueValue = undefined;\r\n\r\n const value = this.getDataSourceValue(dataSource, i);\r\n\r\n switch (dataSource[i].mappingValueType) {\r\n case MappingValueType.variable:\r\n variableValue = value;\r\n break;\r\n case MappingValueType.value:\r\n valueValue = value;\r\n if (this.getPrimitiveType(dataSource[i].type) === 'json') {\r\n expressionValue = JSON.stringify(value, null, 4);\r\n }\r\n break;\r\n case MappingValueType.expression:\r\n if (typeof value === 'string') {\r\n expressionValue = value;\r\n } else {\r\n expressionValue = JSON.stringify(value, null, 4);\r\n }\r\n if (this.getPrimitiveType(dataSource[i].type) === 'json') {\r\n if (value) {\r\n valueValue = JSON.parse(expressionValue);\r\n } else {\r\n valueValue = value;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n return { variableValue, valueValue, expressionValue };\r\n }\r\n\r\n getMappingValueTypeFromMappingType(type: MappingType, value: any, parameterType: string): MappingValueType {\r\n switch (type) {\r\n case MappingType.variable:\r\n return MappingValueType.variable;\r\n case MappingType.static:\r\n return MappingValueType.value;\r\n case MappingType.value:\r\n default:\r\n if (JSON.stringify(value).includes('${') && parameterType !== 'json') {\r\n return MappingValueType.expression;\r\n } else {\r\n return MappingValueType.value;\r\n }\r\n }\r\n }\r\n\r\n initExpressionEditor(language: string, parameters: any[]) {\r\n const suggestions: monaco.languages.CompletionItem[] = [];\r\n parameters.forEach(parameter => {\r\n suggestions.push({\r\n label: parameter.name,\r\n kind: monaco.languages.CompletionItemKind.Text,\r\n insertText: '${' + parameter.name + '}',\r\n documentation: 'type: ' + parameter.type\r\n });\r\n });\r\n\r\n const expression: monaco.languages.IShortMonarchLanguageAction = 'expression';\r\n const rules: monaco.languages.IMonarchLanguageRule[] = [[/[\\$]\\{([^\\}]*)\\}/, expression]];\r\n const languagesDef = {\r\n tokenizer: {\r\n root: rules\r\n }\r\n };\r\n\r\n const themeNames = ['dark-theme', 'vs-dark', 'vs-light'];\r\n const themeRules: monaco.editor.ITokenThemeRule[] = [{ token: 'expression', foreground: '008800' }];\r\n let baseTheme: monaco.editor.BuiltinTheme;\r\n const themes = [];\r\n themeNames.forEach(themeName => {\r\n switch (themeName) {\r\n case 'dark-theme':\r\n baseTheme = 'hc-black';\r\n break;\r\n case 'vs-dark':\r\n baseTheme = 'vs-dark';\r\n break;\r\n default:\r\n baseTheme = 'vs';\r\n break;\r\n }\r\n themes.push({\r\n base: baseTheme,\r\n inherit: true,\r\n rules: themeRules,\r\n colors: undefined\r\n });\r\n });\r\n\r\n this.updateEditorLanguageSettings(language, languagesDef, themeNames, themes, suggestions);\r\n }\r\n\r\n updateEditorLanguageSettings(\r\n language: string,\r\n languagesDef?: monaco.languages.IMonarchLanguage,\r\n themeNames?: string[],\r\n themes?: monaco.editor.IStandaloneThemeData[],\r\n suggestions?: monaco.languages.CompletionItem[]) {\r\n\r\n const languages = monaco.languages.getLanguages();\r\n if (languages.findIndex(lang => lang.id === language) < 0) {\r\n monaco.languages.register({ id: language });\r\n }\r\n\r\n if (languagesDef) {\r\n monaco.languages.setMonarchTokensProvider(language, languagesDef);\r\n }\r\n\r\n if (themeNames && themes) {\r\n for (let i = 0; i < themeNames.length; i++) {\r\n monaco.editor.defineTheme(themeNames[i], themes[i]);\r\n }\r\n }\r\n\r\n if (suggestions) {\r\n monaco.languages.registerCompletionItemProvider(language, {\r\n provideCompletionItems: function (model, position) {\r\n return { suggestions };\r\n }\r\n });\r\n }\r\n }\r\n\r\n removeEditorLanguageSettings(language: string) {\r\n const languages = monaco.languages.getLanguages();\r\n if (languages.findIndex(lang => lang.id === language) >= 0) {\r\n monaco.languages.registerCompletionItemProvider(language, {\r\n provideCompletionItems: function (model, position) {\r\n return { suggestions: [] };\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { MappingDialogService, MappingRowModel, MappingValueType } from './mapping-dialog.service';\r\nimport { ServiceParameterMapping, ConnectorParameter, MappingType, EntityProperty } from '../api/types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OutputMappingDialogService extends MappingDialogService {\r\n getDataSourceValue(dataSource: MappingRowModel[], i: number): any {\r\n return dataSource[i].name;\r\n }\r\n\r\n getDataSourceName(dataSource: MappingRowModel[], i: number): any {\r\n return dataSource[i].value;\r\n }\r\n\r\n setDataSourceValue(dataSource: MappingRowModel[], i: number, value: any) {\r\n dataSource[i].name = value;\r\n }\r\n\r\n dataSourceInit(mapping: ServiceParameterMapping, parameters: ConnectorParameter[], properties: EntityProperty[]): MappingRowModel[] {\r\n const dataSource = [];\r\n\r\n if (mapping === undefined || mapping === null) {\r\n mapping = {};\r\n }\r\n\r\n const processParameters = Object.keys(mapping);\r\n processParameters.forEach(key => {\r\n const processVariable = properties.find(variable => variable.name === key);\r\n const outputParameter = mapping[key].type === MappingType.variable ?\r\n parameters.find(parameter => parameter.name === mapping[key].value)\r\n : null;\r\n\r\n const mappingValueType = outputParameter !== null ?\r\n MappingValueType.variable\r\n : (JSON.stringify(mapping[key].value).includes('${') ? MappingValueType.expression : MappingValueType.value);\r\n\r\n dataSource.push({\r\n name: mapping[key].value,\r\n description: outputParameter != null ? outputParameter.description : null,\r\n value: key,\r\n type: processVariable.type,\r\n mappingValueType: mappingValueType\r\n });\r\n });\r\n return dataSource;\r\n }\r\n\r\n createMappingFromDataSource(dataSource: MappingRowModel[]): ServiceParameterMapping {\r\n const outputMapping = {};\r\n dataSource.forEach(item => {\r\n if (item.value) {\r\n outputMapping[item.value] = {\r\n type: item.mappingValueType === MappingValueType.variable ? MappingType.variable : MappingType.value,\r\n value: item.name\r\n };\r\n }\r\n });\r\n return outputMapping;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './uuid.service';\r\nexport * from './title.service';\r\nexport * from './download-resource.service';\r\nexport * from './ama-authentication.service';\r\nexport * from './ama-services.module';\r\nexport * from './auth.service';\r\nexport * from './blob.service';\r\nexport * from './log-factory.service';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\nexport class AmaTitleService {\r\n title: string;\r\n\r\n constructor(private titleService: Title) {\r\n this.title = this.titleService.getTitle();\r\n }\r\n\r\n setUnsavedTitle() {\r\n const tempTitle = '* ' + this.title;\r\n this.titleService.setTitle(tempTitle);\r\n }\r\n\r\n setSavedTitle() {\r\n this.titleService.setTitle(this.title);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nconst uuidv4 = require('uuid/v4');\r\n\r\n@Injectable()\r\nexport class UuidService {\r\n generate(): string {\r\n return uuidv4();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule, ModuleWithProviders, InjectionToken } from '@angular/core';\r\nimport { StoreModule, ActionReducerMap } from '@ngrx/store';\r\n\r\nexport const ENTITIES_REDUCER_TOKEN = new InjectionToken>('entities-reducer');\r\nexport const ENTITY_REDUCERS_TOKEN = new InjectionToken>('entity-reducer');\r\n\r\nexport function entityReducerFactory(entityReducers: any[]): ActionReducerMap {\r\n return entityReducers.reduce((reducers, entityReducer) => {\r\n return {\r\n ...reducers,\r\n [entityReducer.key]: entityReducer.reducer\r\n };\r\n }, {});\r\n}\r\n\r\n// Don't remove this line below, otherwise typescript dies with metadata error in AOT\r\n// @dynamic\r\n@NgModule({\r\n imports: [ StoreModule.forFeature('entities', ENTITIES_REDUCER_TOKEN), ]\r\n})\r\nexport class AmaStoreModule {\r\n static registerEntity(entityReducerObject: any): ModuleWithProviders {\r\n return {\r\n ngModule: AmaStoreModule,\r\n providers: [\r\n { provide: ENTITY_REDUCERS_TOKEN, useValue: entityReducerObject, multi: true },\r\n { provide: ENTITIES_REDUCER_TOKEN, deps: [ ENTITY_REDUCERS_TOKEN ], useFactory: entityReducerFactory }\r\n ]\r\n };\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { MODEL_TYPE } from '../api/types';\r\n\r\nexport const SNACKBAR_ERROR = 'SNACKBAR_ERROR';\r\nexport class SnackbarErrorAction implements Action {\r\n readonly type = SNACKBAR_ERROR;\r\n constructor(public message: string, public params?: any) {}\r\n}\r\n\r\nexport const SNACKBAR_INFO = 'SNACKBAR_INFO';\r\nexport class SnackbarInfoAction implements Action {\r\n readonly type = SNACKBAR_INFO;\r\n constructor(public message: string, public params?: any) {}\r\n}\r\n\r\nexport const SNACKBAR_WARNING = 'SNACKBAR_WARNING';\r\nexport class SnackbarWarningAction implements Action {\r\n readonly type = SNACKBAR_WARNING;\r\n constructor(public message: string, public params?: any) {}\r\n}\r\n\r\nexport const SET_APP_DIRTY_STATE = '[App] Set dirty state';\r\nexport class SetAppDirtyStateAction implements Action {\r\n readonly type = SET_APP_DIRTY_STATE;\r\n constructor(public payload: boolean) {}\r\n}\r\n\r\nexport interface ConfirmDialogData {\r\n title?: string;\r\n subtitle?: string;\r\n errors?: string[];\r\n}\r\n\r\nexport interface OpenConfirmDialogActionPayload {\r\n action?: Action;\r\n dialogData?: ConfirmDialogData;\r\n}\r\n\r\nexport const OPEN_CONFIRM_DIALOG = 'OPEN_CONFIRM_DIALOG';\r\nexport class OpenConfirmDialogAction implements Action {\r\n readonly type = OPEN_CONFIRM_DIALOG;\r\n constructor(public payload: OpenConfirmDialogActionPayload) {}\r\n}\r\n\r\nexport const OPEN_FILTER = '[App Tree] Open filter';\r\nexport class OpenFilterAction implements Action {\r\n readonly type = OPEN_FILTER;\r\n constructor(public filterType: MODEL_TYPE) {}\r\n}\r\n\r\nexport const LEAVE_PROJECT = 'Leave project editor';\r\nexport class LeaveProjectAction implements Action {\r\n readonly type = LEAVE_PROJECT;\r\n constructor() {}\r\n}\r\n\r\nexport const TOOLBAR_MESSAGE = '[App] TOOLBAR_MESSAGE';\r\nexport class ToolbarMessageAction implements Action {\r\n readonly type = TOOLBAR_MESSAGE;\r\n constructor(public message: string) {}\r\n}\r\n\r\nexport const LOADED_APPLICATION = '[App] APPLICATION_LOADED';\r\nexport class SetApplicationLoadingStateAction implements Action {\r\n readonly type = LOADED_APPLICATION;\r\n constructor(public loading: boolean) {}\r\n}\r\n\r\nexport const SET_LOG_HISTORY_VISIBILITY = '[App] SET_LOG_HISTORY_VISIBILITY';\r\nexport class SetLogHistoryVisibilityAction implements Action {\r\n readonly type = SET_LOG_HISTORY_VISIBILITY;\r\n constructor(public visible: boolean) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createSelector } from '@ngrx/store';\r\nimport { AmaState, AppState } from './app.state';\r\nimport { getEntitiesState } from './entity.selectors';\r\n\r\nexport const selectApp = (state: AmaState) => state.app;\r\n\r\nexport const selectSelectedTheme = createSelector(selectApp, (state: AppState) => state.selectedTheme);\r\nexport const selectSelectedProjectId = createSelector(selectApp, (state: AppState) => state.selectedProjectId);\r\nexport const selectAppDirtyState = createSelector(selectApp, (state: AppState) => state.dirtyState);\r\nexport const selectOpenedModel = createSelector(selectApp, (state: AppState) => state.openedModel);\r\n\r\nexport const selectSelectedModel = createSelector(getEntitiesState, selectApp, (entities, app) => {\r\n for (let i = 0; i < Object.keys(entities).length; i++) {\r\n const key = Object.keys(entities)[i];\r\n if (app.openedModel && entities[key].ids && entities[key].ids.indexOf(app.openedModel.id) !== -1) {\r\n return entities[key].entities[app.openedModel.id];\r\n }\r\n }\r\n});\r\n\r\nexport const selectSelectedModelIdFor = function(modelType: string) {\r\n return createSelector(selectApp, (state: AppState) => {\r\n return state.openedModel && state.openedModel.type.toLowerCase() === modelType.toLowerCase() ? state.openedModel.id : null;\r\n });\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ModelIdentifier } from './project.actions';\r\n\r\nexport interface AppTheme {\r\n name: string;\r\n className: string;\r\n}\r\nexport interface AppState {\r\n menuOpened: boolean;\r\n selectedProjectId: string | null;\r\n openedModel: ModelIdentifier;\r\n selectedTheme: AppTheme;\r\n dirtyState: boolean;\r\n toolbar: ToolbarState;\r\n logs: LogMessage[];\r\n}\r\n\r\nexport interface AmaState {\r\n app: AppState;\r\n}\r\n\r\nexport interface ToolbarState {\r\n inProgress: boolean;\r\n userMessage: string;\r\n logHistoryVisible: boolean;\r\n}\r\n\r\nexport interface LogMessage {\r\n type: MESSAGE;\r\n datetime: Date;\r\n initiator: LogMessageInitiator;\r\n messages: string[];\r\n}\r\n\r\nexport enum MESSAGE {\r\n INFO = 'info',\r\n WARN = 'warning',\r\n ERROR = 'error'\r\n}\r\n\r\nexport interface LogMessageInitiator {\r\n key: string | Symbol;\r\n displayName: string;\r\n extra?: any;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { LogService } from '@alfresco/adf-core';\r\n\r\n@Injectable()\r\nexport abstract class BaseEffects {\r\n constructor(protected router: Router, protected logService: LogService) {}\r\n\r\n protected genericErrorHandler(specificErrorHandler, error, ...args) {\r\n this.logService.error(error);\r\n if (error.status === 401) {\r\n this.router.navigate(['login']);\r\n return of();\r\n }\r\n if (error.status === 403) {\r\n this.router.navigate(['error/403']);\r\n return of();\r\n }\r\n return specificErrorHandler(error, ...args);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createSelector } from '@ngrx/store';\r\nimport { getEntitiesState } from './entity.selectors';\r\nimport { ProjectEntitiesState } from './project-entities.state';\r\n\r\nexport const getDashboardFeatureState = createSelector(getEntitiesState, (state: any) => state.projects);\r\n\r\nconst selectLoadingFromState = (state: ProjectEntitiesState) => state.loading;\r\nconst selectProjectsLoadedFromState = (state: ProjectEntitiesState) => state.loaded;\r\nconst selectProjectSummariesFromState = (state: ProjectEntitiesState) => state.entities;\r\nconst selectPaginationFromState = (state: ProjectEntitiesState) => state.pagination;\r\n\r\nexport const selectLoading = createSelector(getDashboardFeatureState, selectLoadingFromState);\r\nexport const selectPagination = createSelector(getDashboardFeatureState, selectPaginationFromState);\r\nexport const selectProjectsLoaded = createSelector(getDashboardFeatureState, selectProjectsLoadedFromState);\r\nexport const selectProjectSummaries = createSelector(getDashboardFeatureState, selectProjectSummariesFromState);\r\nexport const selectProjectsArray = createSelector(selectProjectSummaries, project => Object.values(project));\r\n\r\nexport const selectProjectById = (projectId: string) => createSelector(\r\n selectProjectSummaries,\r\n (projects) => {\r\n return projects[projectId];\r\n }\r\n);\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Pagination } from '../api/types';\r\nimport { ProjectSummaryEntities } from '../project-editor/project-summary-entities';\r\n\r\nexport interface DashboardState {\r\n projects: ProjectSummaryEntities;\r\n loading: boolean;\r\n projectsLoaded: boolean;\r\n pagination: Pagination;\r\n}\r\n\r\nexport const INITIAL_DASHBOARD_STATE: DashboardState = {\r\n projects: {},\r\n pagination: null,\r\n loading: false,\r\n projectsLoaded: false\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { TemplateRef } from '@angular/core';\r\nimport { MatDialogConfig } from '@angular/material';\r\nimport { ComponentType } from '@angular/cdk/portal';\r\nimport { EntityDialogPayload } from '../helpers/common';\r\n\r\nexport const OPEN_DIALOG = 'OPEN_DIALOG';\r\nexport class OpenDialogAction implements Action {\r\n readonly type = OPEN_DIALOG;\r\n constructor(\r\n public dialogContent: ComponentType | TemplateRef,\r\n public dialogConfig?: MatDialogConfig\r\n ) {}\r\n}\r\n\r\nexport const CLOSE_ALL_DIALOGS = 'CLOSE_ALL_DIALOGS';\r\nexport class CloseAllDialogsAction implements Action {\r\n readonly type = CLOSE_ALL_DIALOGS;\r\n}\r\n\r\nexport const OPEN_ENTITY_DIALOG = 'OPEN_ENTITY_DIALOG';\r\nexport class OpenEntityDialogAction implements Action {\r\n readonly type = OPEN_ENTITY_DIALOG;\r\n constructor(public payload: EntityDialogPayload) {}\r\n}\r\n\r\nexport const CREATE_PROJECT_DIALOG = 'CREATE_PROJECT_DIALOG';\r\nexport class CreateProjectDialogAction implements Action {\r\n readonly type = CREATE_PROJECT_DIALOG;\r\n}\r\n\r\nexport const OVERRIDE_PROJECT_NAME_DIALOG = 'OVERRIDE_PROJECT_NAME_DIALOG';\r\nexport class OverrideProjectNameDialogAction implements Action {\r\n readonly type = OVERRIDE_PROJECT_NAME_DIALOG;\r\n constructor(public file: File, public name: string) {}\r\n}\r\n\r\nexport const IMPORT_PROJECT_DIALOG = 'IMPORT_PROJECT_DIALOG';\r\nexport class ImportProjectDialogAction implements Action {\r\n readonly type = IMPORT_PROJECT_DIALOG;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Model, MODEL_TYPE } from '../api/types';\r\nimport { ModelApiInterface } from '../api/generalmodel-api.interface';\r\n\r\nexport interface ModelRegistration {\r\n modelType: MODEL_TYPE;\r\n token: InjectionToken>;\r\n entityKey: string;\r\n}\r\nexport const REGISTERED_MODELS_TOKEN = new InjectionToken('model-storage-apis');\r\n\r\nexport function registerModel(modelType: MODEL_TYPE, token: InjectionToken>, entityKey: string) {\r\n return [\r\n { provide: REGISTERED_MODELS_TOKEN, useValue: { modelType, token, entityKey }, multi: true }\r\n ];\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { Model, MODEL_TYPE } from '../api/types';\r\n\r\nexport const SHOW_MODELS = '[Entities] Show particular models';\r\nexport class ShowModelsAction implements Action {\r\n readonly type = SHOW_MODELS;\r\n constructor(public projectId: string, public modelType: MODEL_TYPE) {}\r\n}\r\n\r\nexport const GET_MODELS_ATTEMPT = '[Entities] Get particular models (attempt)';\r\nexport class GetModelsAttemptAction implements Action {\r\n readonly type = GET_MODELS_ATTEMPT;\r\n constructor(public projectId: string, public modelType: MODEL_TYPE) {}\r\n}\r\n\r\nexport const GET_MODELS_SUCCESS = '[Entities] Get particular models (success)';\r\nexport class GetModelsSuccessAction implements Action {\r\n readonly type = GET_MODELS_SUCCESS;\r\n constructor(public models: Model[], public modelType: MODEL_TYPE) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { Model } from '../api/types';\r\nimport { EntityState, EntityMap } from '@ngrx/entity';\r\n\r\nexport const ENTITIES_KEY = 'entities';\r\nexport const PROJECT_ENTITY_KEY = 'projects';\r\nexport const PROCESSES_ENTITY_KEY = 'processes';\r\nexport const CONNECTORS_ENTITY_KEY = 'connectors';\r\nexport const FORMS_ENTITY_KEY = 'forms';\r\nexport const UIS_ENTITY_KEY = 'uis';\r\nexport const DECISION_TABLES_ENTITY_KEY = 'decisionTables';\r\nexport const DATA_ENTITY_KEY = 'data';\r\nexport const FILES_ENTITY_KEY = 'files';\r\nexport const SCRIPTS_ENTITY_KEY = 'scripts';\r\nexport const TRIGGERS_ENTITY_KEY = 'triggers';\r\n\r\nexport interface ModelEntitiesState extends EntityState {\r\n loading: boolean;\r\n loaded: boolean;\r\n entityContents: {[key: string]: any};\r\n}\r\n\r\nexport interface EntitiesState {\r\n [key: string]: ModelEntitiesState;\r\n}\r\n\r\nexport const getEntitiesState = createFeatureSelector>('entities');\r\n\r\nexport const selectModelsEntityContainer = (entityContainer: string) => {\r\n return createSelector, ModelEntitiesState>(\r\n getEntitiesState,\r\n state => state[entityContainer]\r\n );\r\n};\r\n\r\nexport const selectModelsLoaded = (entityContainer: string) => {\r\n return createSelector(\r\n selectModelsEntityContainer(entityContainer),\r\n state => state.loaded\r\n );\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { LogMessage } from './../store/app.state';\r\n\r\nexport const LOG_ACTION = 'LOG_ACTION';\r\nexport class LogAction implements Action {\r\n readonly type = LOG_ACTION;\r\n constructor(public log: LogMessage) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { ProjectEntitiesState, initialProjectEntitiesState, projectAdapter } from './project-entities.state';\r\nimport {\r\n GET_PROJECTS_ATTEMPT,\r\n GET_PROJECT_SUCCESS,\r\n GetProjectSuccessAction,\r\n GET_PROJECTS_SUCCESS,\r\n GetProjectsSuccessAction,\r\n CREATE_PROJECT_SUCCESS,\r\n CreateProjectSuccessAction,\r\n UPDATE_PROJECT_SUCCESS,\r\n UpdateProjectSuccessAction,\r\n DELETE_PROJECT_SUCCESS,\r\n DeleteProjectSuccessAction,\r\n UPLOAD_PROJECT_SUCCESS,\r\n UploadProjectSuccessAction\r\n} from './project.actions';\r\nimport { Pagination } from '../api/types';\r\n\r\nexport function projectEntitiesReducer(state: ProjectEntitiesState = initialProjectEntitiesState, action: Action): ProjectEntitiesState {\r\n let newState: ProjectEntitiesState;\r\n\r\n switch (action.type) {\r\n\r\n case GET_PROJECTS_ATTEMPT:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n\r\n case GET_PROJECTS_SUCCESS:\r\n newState = setProjects(state, action);\r\n break;\r\n\r\n case CREATE_PROJECT_SUCCESS:\r\n newState = createProject(state, action);\r\n break;\r\n\r\n case UPDATE_PROJECT_SUCCESS:\r\n newState = updateProject(state, action);\r\n break;\r\n\r\n case DELETE_PROJECT_SUCCESS:\r\n newState = deleteProject(state, action);\r\n break;\r\n\r\n case UPLOAD_PROJECT_SUCCESS:\r\n newState = uploadProject(state, action);\r\n break;\r\n\r\n case GET_PROJECT_SUCCESS:\r\n newState = setProject(state, action);\r\n break;\r\n\r\n default:\r\n newState = Object.assign({}, state);\r\n }\r\n\r\n return newState;\r\n}\r\n\r\nfunction setProjects(state: ProjectEntitiesState, action: GetProjectsSuccessAction): ProjectEntitiesState {\r\n const newState = projectAdapter.removeAll({ ...state });\r\n return projectAdapter.addMany(action.payload, {\r\n ...newState,\r\n pagination: action.pagination,\r\n loading: false,\r\n loaded: true\r\n });\r\n}\r\n\r\nfunction createProject(state: ProjectEntitiesState, action: CreateProjectSuccessAction): ProjectEntitiesState {\r\n return projectAdapter.addOne(action.payload, state);\r\n}\r\n\r\nfunction updateProject(state: ProjectEntitiesState, action: UpdateProjectSuccessAction): ProjectEntitiesState {\r\n const newState = {\r\n ...state\r\n };\r\n return projectAdapter.updateOne({ ...action.payload, changes: action.payload.changes }, newState);\r\n}\r\n\r\nfunction deleteProject(state: ProjectEntitiesState, action: DeleteProjectSuccessAction): ProjectEntitiesState {\r\n return projectAdapter.removeOne(action.payload, state);\r\n}\r\n\r\nfunction uploadProject(state: ProjectEntitiesState, action: UploadProjectSuccessAction): ProjectEntitiesState {\r\n return projectAdapter.addOne(action.payload, state);\r\n}\r\n\r\nfunction setProject(state: ProjectEntitiesState, action: GetProjectSuccessAction): ProjectEntitiesState {\r\n return projectAdapter.addOne(action.payload, state);\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createEntityAdapter, EntityState } from '@ngrx/entity';\r\nimport { Project, Pagination } from '../api/types';\r\n\r\nexport interface ProjectEntitiesState extends EntityState> {\r\n loading: boolean;\r\n loaded: boolean;\r\n entityContents: {[key: string]: Partial};\r\n pagination: Pagination;\r\n}\r\n\r\nexport const projectAdapter = createEntityAdapter>();\r\n\r\nexport const initialProjectEntitiesState = projectAdapter.getInitialState({\r\n ...projectAdapter.getInitialState(),\r\n loading: false,\r\n loaded: false,\r\n entityContents: {},\r\n pagination: null\r\n});\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { MODEL_TYPE } from '../api/types';\r\n\r\nexport interface ProjectTreeState {\r\n openedFilters: MODEL_TYPE[];\r\n}\r\n\r\nexport const INITIAL_PROJECT_TREE_STATE: ProjectTreeState = {\r\n openedFilters: []\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { EntityDialogForm } from '../helpers/common';\r\nimport { Action } from '@ngrx/store';\r\nimport { Release, ServerSideSorting, SearchQuery, Project } from '../api/types';\r\nimport { FetchQueries } from '../api/project-api.interface';\r\nimport { Update } from '@ngrx/entity';\r\nimport { Pagination } from '@alfresco/js-api';\r\n\r\nexport const CREATE_PROJECT_ATTEMPT = 'CREATE_PROJECT_ATTEMPT';\r\nexport class CreateProjectAttemptAction implements Action {\r\n readonly type = CREATE_PROJECT_ATTEMPT;\r\n constructor(public payload: Partial) {}\r\n}\r\n\r\nexport const OVERRIDE_PROJECT_ATTEMPT = 'OVERRIDE_PROJECT_ATTEMPT';\r\nexport class OverrideProjectAttemptAction implements Action {\r\n readonly type = OVERRIDE_PROJECT_ATTEMPT;\r\n constructor(public payload: any) {}\r\n}\r\n\r\nexport interface ModelIdentifier {\r\n type: string;\r\n id: string;\r\n}\r\n\r\nexport const MODEL_OPENED = 'MODEL_OPENED';\r\nexport class ModelOpenedAction implements Action {\r\n readonly type = MODEL_OPENED;\r\n constructor(public model: ModelIdentifier) {}\r\n}\r\n\r\nexport const MODEL_CLOSED = 'MODEL_CLOSED';\r\nexport class ModelClosedAction implements Action {\r\n readonly type = MODEL_CLOSED;\r\n constructor(public model: ModelIdentifier) {}\r\n}\r\n\r\nexport const GET_PROJECTS_ATTEMPT = 'GET_PROJECTS_ATTEMPT';\r\nexport class GetProjectsAttemptAction implements Action {\r\n readonly type = GET_PROJECTS_ATTEMPT;\r\n constructor(public pagination?: FetchQueries, public sorting?: ServerSideSorting, public search?: SearchQuery) {}\r\n}\r\n\r\nexport const GET_PROJECT_ATTEMPT = 'GET_PROJECT_ATTEMPT';\r\nexport class GetProjectAttemptAction implements Action {\r\n readonly type = GET_PROJECT_ATTEMPT;\r\n constructor(public payload: string) {}\r\n}\r\n\r\nexport const RELEASE_PROJECT_ATTEMPT = 'RELEASE_PROJECT_ATTEMPT';\r\nexport class ReleaseProjectAttemptAction implements Action {\r\n readonly type = RELEASE_PROJECT_ATTEMPT;\r\n constructor(public projectId: string) {}\r\n}\r\n\r\nexport const RELEASE_PROJECT_SUCCESS = 'RELEASE_PROJECT_SUCCESS';\r\nexport class ReleaseProjectSuccessAction implements Action {\r\n readonly type = RELEASE_PROJECT_SUCCESS;\r\n constructor(public release: Partial, public projectId: string) {}\r\n}\r\n\r\nexport const GET_PROJECT_SUCCESS = 'GET_PROJECT_SUCCESS';\r\nexport class GetProjectSuccessAction implements Action {\r\n readonly type = GET_PROJECT_SUCCESS;\r\n constructor(public payload: Partial) {}\r\n}\r\n\r\nexport const UPLOAD_PROJECT_ATTEMPT = 'UPLOAD_PROJECT_ATTEMPT';\r\nexport class UploadProjectAttemptAction implements Action {\r\n readonly type = UPLOAD_PROJECT_ATTEMPT;\r\n constructor(public file: File, public name?: string) {}\r\n}\r\n\r\nexport interface EditProjectPayload {\r\n id: string;\r\n form: Partial;\r\n}\r\n\r\nexport const CREATE_PROJECT_SUCCESS = 'CREATE_PROJECT_SUCCESS';\r\nexport class CreateProjectSuccessAction implements Action {\r\n readonly type = CREATE_PROJECT_SUCCESS;\r\n constructor(public payload: Partial) {}\r\n}\r\n\r\nexport const UPDATE_PROJECT_ATTEMPT = 'UPDATE_PROJECT_ATTEMPT';\r\nexport class UpdateProjectAttemptAction implements Action {\r\n readonly type = UPDATE_PROJECT_ATTEMPT;\r\n constructor(public payload: EditProjectPayload) {}\r\n}\r\n\r\nexport const UPLOAD_PROJECT_SUCCESS = 'UPLOAD_PROJECT_SUCCESS';\r\nexport class UploadProjectSuccessAction implements Action {\r\n readonly type = UPLOAD_PROJECT_SUCCESS;\r\n constructor(public payload: Partial) {}\r\n}\r\n\r\nexport const UPDATE_PROJECT_SUCCESS = 'UPDATE_PROJECT_SUCCESS';\r\nexport class UpdateProjectSuccessAction implements Action {\r\n readonly type = UPDATE_PROJECT_SUCCESS;\r\n constructor(public payload: Update>) {}\r\n}\r\n\r\nexport const DELETE_PROJECT_ATTEMPT = 'DELETE_PROJECT_ATTEMPT';\r\nexport class DeleteProjectAttemptAction implements Action {\r\n readonly type = DELETE_PROJECT_ATTEMPT;\r\n constructor(public projectId: string, public sorting?, public search?: SearchQuery) {}\r\n}\r\n\r\nexport const DELETE_PROJECT_SUCCESS = 'DELETE_PROJECT_SUCCESS';\r\nexport class DeleteProjectSuccessAction implements Action {\r\n readonly type = DELETE_PROJECT_SUCCESS;\r\n constructor(public payload: string) {}\r\n}\r\n\r\nexport const GET_PROJECTS_SUCCESS = 'GET_PROJECTS_SUCCESS';\r\nexport class GetProjectsSuccessAction implements Action {\r\n readonly type = GET_PROJECTS_SUCCESS;\r\n constructor(public payload: Project[], public pagination: Pagination) {}\r\n}\r\n\r\nexport const SHOW_PROJECTS = 'SHOW_PROJECTS';\r\nexport class ShowProjectsAction implements Action {\r\n readonly type = SHOW_PROJECTS;\r\n constructor(public pagination?: Partial) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\r\nimport { ProjectEditorState } from './project.state';\r\nimport { selectSelectedProjectId } from './app.selectors';\r\nimport { getDashboardFeatureState } from './dashboard.selectors';\r\n\r\nexport const PROJECT_EDITOR_STATE_NAME = 'project-editor';\r\nexport const getProjectEditorFeatureState = createFeatureSelector(PROJECT_EDITOR_STATE_NAME);\r\n\r\nexport const selectProject = createSelector(\r\n getDashboardFeatureState, selectSelectedProjectId,\r\n (state, projectId) => state.entities[projectId]\r\n);\r\n\r\nexport const selectProjectLoading = createSelector(\r\n getProjectEditorFeatureState,\r\n (state: ProjectEditorState) => state.loading\r\n);\r\n\r\nexport const selectProjectTree = createSelector(\r\n getProjectEditorFeatureState,\r\n (state: ProjectEditorState) => state.tree\r\n);\r\n\r\nexport const selectProjectCrumb = createSelector(selectProject, project => {\r\n return project ? { url: `/projects/${project.id}`, name: project.name } : null;\r\n});\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ProjectTreeState, INITIAL_PROJECT_TREE_STATE } from './project-tree.state';\r\n\r\nexport interface ProjectEditorState {\r\n tree: ProjectTreeState;\r\n loading: boolean;\r\n}\r\n\r\nexport const INITIAL_PROJECT_EDITOR_STATE: ProjectEditorState = {\r\n tree: INITIAL_PROJECT_TREE_STATE,\r\n loading: false\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './app.state';\r\nexport * from './app.selectors';\r\nexport * from './entities';\r\nexport * from './entity.actions';\r\nexport * from './entity.selectors';\r\nexport * from './ama-store.module';\r\nexport * from './app.actions';\r\nexport * from './base.effects';\r\nexport * from './project.state';\r\nexport * from './project.selectors';\r\nexport * from './project-entities.state';\r\nexport * from './project-entities.reducer';\r\nexport * from './project-tree.state';\r\nexport * from './project.actions';\r\nexport * from './logging.actions';\r\nexport * from './dialog.actions';\r\nexport * from './dashboard.state';\r\nexport * from './dashboard.selectors';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewItemValidator } from '@alfresco/adf-core';\r\nimport { MODELER_NAME_REGEX } from '../helpers/utils/create-entries-names';\r\n\r\nexport class CardViewModelNameValidator implements CardViewItemValidator {\r\n\r\n constructor(public message: string) {}\r\n\r\n isValid(value: string): boolean {\r\n return value.length > 0 && MODELER_NAME_REGEX.test(value);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './card-view-model-name.validator';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { AmaApi } from '../../../lib/api/api.interface';\r\nimport { Observable } from 'rxjs';\r\nimport { ActivitiFile } from '../../api/types';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n })\r\nexport class FileService {\r\n\r\n constructor(private amaApi: AmaApi) {}\r\n\r\n getList(projectId: string): Observable {\r\n return this.amaApi.File.getList(projectId);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n {{ 'SDK.VARIABLES_EDITOR.TABLE.COLUMN_NAME' | translate }}\\r\\n \\r\\n \\r\\n {{element.name}}\\r\\n \\r\\n\\r\\n \\r\\n {{ 'SDK.VARIABLES_EDITOR.TABLE.COLUMN_TYPE' | translate }}\\r\\n \\r\\n \\r\\n {{element.type}}\\r\\n \\r\\n\\r\\n \\r\\n {{ 'SDK.VARIABLES_EDITOR.TABLE.COLUMN_REQUIRED' | translate }}\\r\\n \\r\\n \\r\\n {{element.required}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'SDK.VARIABLES_EDITOR.TABLE.COLUMN_VALUE' | translate }}\\r\\n \\r\\n \\r\\n {{element.value | variablevalue}}\\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

{{ 'SDK.VARIABLES_EDITOR.ERRORS.EMPTY_NAME' | translate }}

\\r\\n

{{ 'SDK.VARIABLES_EDITOR.ERRORS.INVALID_NAME' | translate }}\\r\\n info\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{type}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'SDK.VARIABLES_EDITOR.TABLE.COLUMN_REQUIRED' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n

{{'SDK.VARIABLES_EDITOR.TABLE.NO_PROPERTIES' | translate}}

\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { MatTableDataSource } from '@angular/material';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { VariablesService } from '../variables.service';\r\nimport { UuidService } from './../../services/uuid.service';\r\nimport { primitive_types } from '../../helpers/primitive-types';\r\nimport { EntityProperty, EntityProperties } from './../../api/types';\r\nimport { FIELD_VARIABLE_NAME_REGEX } from '../../helpers/utils/create-entries-names';\r\n\r\n@Component({\r\n templateUrl: './properties-viewer.component.html',\r\n selector: 'modelingsdk-properties-viewer'\r\n})\r\n\r\nexport class PropertiesViewerComponent implements OnInit, OnDestroy {\r\n types = primitive_types;\r\n subscription: Subscription;\r\n serviceSubscription: Subscription;\r\n dataSource: MatTableDataSource;\r\n data: EntityProperties = {};\r\n name: string;\r\n selectedType: string;\r\n form: EntityProperty;\r\n position: number;\r\n showForm = false;\r\n error = false;\r\n isSelected = false;\r\n required?: boolean;\r\n value: any;\r\n id: string;\r\n selection = new SelectionModel();\r\n @Input() properties = '';\r\n @Input() requiredCheckbox = true;\r\n @Input() displayedColumns = ['name', 'type', 'required', 'value', 'delete'];\r\n @Output() propertyChanged: EventEmitter = new EventEmitter();\r\n\r\n constructor(private variablesService: VariablesService, private uuidService: UuidService) {\r\n this.form = {\r\n id: '',\r\n name: '',\r\n type: '',\r\n value: ''\r\n };\r\n\r\n if (this.requiredCheckbox) {\r\n this.form.required = false;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (this.properties) {\r\n let dataArray: EntityProperty[] = [];\r\n dataArray = Object.values(JSON.parse(this.properties));\r\n this.convertJsonObjectsToJsonStringVariables(dataArray);\r\n\r\n this.dataSource = new MatTableDataSource(dataArray);\r\n this.data = JSON.parse(this.properties);\r\n }\r\n this.serviceSubscription = this.variablesService.variablesData.subscribe(dataObj => {\r\n if (!dataObj.error || dataObj.error === 'SDK.VARIABLES_EDITOR.ERRORS.EMPTY_NAME') {\r\n let dataArray: EntityProperty[] = [];\r\n dataArray = Object.values(JSON.parse(dataObj.data));\r\n\r\n this.dataSource = new MatTableDataSource(dataArray);\r\n this.data = JSON.parse(dataObj.data);\r\n\r\n dataArray.forEach((item, index) => {\r\n if (this.position === index) {\r\n this.name = item.name;\r\n this.selectedType = item.type;\r\n this.required = item.required;\r\n this.id = item.id;\r\n }\r\n });\r\n\r\n this.error = false;\r\n }\r\n });\r\n }\r\n\r\n private convertJsonObjectsToJsonStringVariables(properties) {\r\n for (const key in properties) {\r\n if ( (properties[key].type === 'json' || properties[key].type === 'folder' ) && typeof(properties[key].value) === 'object') {\r\n properties[key].value = JSON.stringify(properties[key].value);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.serviceSubscription.unsubscribe();\r\n }\r\n\r\n deleteRow(element, index) {\r\n this.showForm = false;\r\n this.position = -1;\r\n delete this.data[element.id];\r\n this.variablesService.sendData(JSON.stringify(this.data, null, 2), null);\r\n\r\n if (this.isNotEmpty(this.data)) {\r\n this.error = false;\r\n }\r\n this.propertyChanged.emit(true);\r\n }\r\n\r\n editRow(element, index: number) {\r\n this.showForm = true;\r\n this.name = element.name;\r\n this.selectedType = element.type;\r\n this.required = element.required;\r\n this.value = this.form.value = element.value;\r\n this.position = index;\r\n this.id = element.id;\r\n }\r\n\r\n onTypeChange() {\r\n delete this.form.value;\r\n this.saveChanges();\r\n }\r\n\r\n saveChanges() {\r\n this.form.name = this.name;\r\n this.form.type = this.selectedType;\r\n this.form.required = this.required;\r\n this.form.id = this.id;\r\n\r\n this.data[this.id] = this.form;\r\n\r\n if (this.isNotEmpty(this.data)) {\r\n\r\n if (!this.isValid(this.name)) {\r\n this.variablesService.sendData(JSON.stringify(this.data, null, 2), 'SDK.VARIABLES_EDITOR.ERRORS.INVALID_NAME');\r\n this.error = true;\r\n } else {\r\n this.variablesService.sendData(JSON.stringify(this.data, null, 2), null);\r\n this.error = false;\r\n }\r\n\r\n } else {\r\n this.variablesService.sendData(JSON.stringify(this.data, null, 2), 'SDK.VARIABLES_EDITOR.ERRORS.EMPTY_NAME');\r\n this.error = true;\r\n }\r\n this.propertyChanged.emit(true);\r\n }\r\n\r\n updateVariableValue(value?: any) {\r\n if (value !== '' || value !== undefined || value !== null) {\r\n this.form.value = value;\r\n } else {\r\n delete this.form.value;\r\n }\r\n\r\n this.saveChanges();\r\n }\r\n\r\n isNotEmpty(data: EntityProperties) {\r\n return Object.values(data).every(item => !!item.name.trim().length);\r\n }\r\n\r\n isValid(name: string): boolean {\r\n return FIELD_VARIABLE_NAME_REGEX.test(name);\r\n }\r\n\r\n addRow() {\r\n const newVariable = {\r\n 'id': this.uuidService.generate(),\r\n 'name': '',\r\n 'type': 'string',\r\n 'value': ''\r\n };\r\n\r\n if (this.requiredCheckbox) {\r\n newVariable['required'] = false;\r\n }\r\n\r\n this.data[newVariable.id] = newVariable;\r\n this.variablesService.sendData(JSON.stringify(this.data, null, 2), 'SDK.VARIABLES_EDITOR.ERRORS.EMPTY_NAME');\r\n this.error = true;\r\n const length = Object.keys(this.data).length;\r\n this.editRow(newVariable, length - 1);\r\n this.propertyChanged.emit(true);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport {\r\n Component,\r\n Output,\r\n EventEmitter,\r\n Input,\r\n ViewContainerRef,\r\n ViewChild,\r\n ComponentRef,\r\n ComponentFactory,\r\n OnDestroy,\r\n ComponentFactoryResolver,\r\n OnChanges,\r\n forwardRef,\r\n SimpleChanges,\r\n Inject,\r\n Type\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { INPUT_TYPE_ITEM_HANDLER, InputTypeItem } from './value-type-inputs/value-type-inputs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { PropertiesViewerJsonInputComponent } from './value-type-inputs/json-input.component';\r\n\r\n@Component({\r\n template: '',\r\n selector: 'modelingsdk-value-type-input',\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ValueTypeInputComponent), multi: true }\r\n ]\r\n})\r\n\r\nexport class ValueTypeInputComponent implements OnDestroy, OnChanges, ControlValueAccessor {\r\n onDestroy$: Subject = new Subject();\r\n\r\n @Input() value = null;\r\n @Input() index: number;\r\n // tslint:disable-next-line\r\n @Output() onChange = new EventEmitter();\r\n @Input() type: string;\r\n @Input() disabled = false;\r\n @Input() extendedProperties = null;\r\n @Input() required = false;\r\n @Input() placeholder: string;\r\n\r\n @ViewChild('valueTypeInput', { read: ViewContainerRef }) valueTypeInput;\r\n valueTypeInputRef: ComponentRef;\r\n\r\n _onChange: any = () => { };\r\n\r\n constructor(private resolver: ComponentFactoryResolver,\r\n @Inject(INPUT_TYPE_ITEM_HANDLER) private inputTypeItemHandler: InputTypeItem[]) { }\r\n\r\n setInputValue(value) {\r\n this.value = value;\r\n this.valueTypeInputRef.instance.value = this.value;\r\n this._onChange(value);\r\n this.onChange.emit(this.value);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n if (!changes.value && changes.type && changes.type.previousValue !== changes.type.currentValue) {\r\n this.value = null;\r\n }\r\n\r\n if (changes.index && !changes.value) {\r\n this.value = null;\r\n } else if (!changes.value && this.valueTypeInputRef.instance.value) {\r\n this.value = this.valueTypeInputRef.instance.value;\r\n }\r\n\r\n this.valueTypeInput.clear();\r\n const factory: ComponentFactory = this.resolver.resolveComponentFactory(this.getInputItemImplementationClass(this.type));\r\n\r\n this.valueTypeInputRef = this.valueTypeInput.createComponent(factory);\r\n this.valueTypeInputRef.instance.disabled = this.disabled;\r\n this.valueTypeInputRef.instance.placeholder = this.placeholder;\r\n this.valueTypeInputRef.instance.extendedProperties = this.extendedProperties;\r\n this.writeValue(this.value);\r\n this.valueTypeInputRef.instance.change.pipe(takeUntil(this.onDestroy$)).subscribe(inputValue => this.setInputValue(inputValue));\r\n }\r\n\r\n private getInputItemImplementationClass(type: string): Type<{}> {\r\n for (const handler of this.inputTypeItemHandler) {\r\n if (handler.type === type) {\r\n return handler.implementationClass;\r\n }\r\n }\r\n return PropertiesViewerJsonInputComponent;\r\n }\r\n\r\n writeValue(value) {\r\n if (value !== undefined && value !== null) {\r\n if (this.type === 'json' && typeof (value) === 'object') {\r\n value = JSON.stringify(value, null, 4);\r\n }\r\n if (value !== this.valueTypeInputRef.instance.value && this.valueTypeInputRef.instance.ngOnChanges) {\r\n this.valueTypeInputRef.instance.value = value;\r\n this.valueTypeInputRef.instance.ngOnChanges(value);\r\n } else {\r\n this.valueTypeInputRef.instance.value = value;\r\n }\r\n }\r\n }\r\n\r\n registerOnChange(fn) {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched() { }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.valueTypeInputRef.destroy();\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input, OnInit, ViewChild, ElementRef, OnChanges } from '@angular/core';\r\nimport { MatAutocompleteSelectedEvent, MatAutocomplete } from '@angular/material/autocomplete';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { Observable } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n template: `\r\n \r\n \r\n \r\n {{item}}\r\n cancel\r\n \r\n \r\n \r\n \r\n \r\n {{item}}\r\n \r\n \r\n \r\n `\r\n})\r\n\r\nexport class PropertiesViewerArrayInputComponent implements OnInit, OnChanges {\r\n\r\n // tslint:disable-next-line\r\n @Output() change = new EventEmitter();\r\n @Input() value: any[];\r\n @Input() disabled: boolean;\r\n @Input() placeholder: string;\r\n @Input() extendedProperties: {\r\n regexInput?: RegExp;\r\n autocompleteEnabled?: boolean;\r\n getValueFromInput(input): any;\r\n getDefaultAutocompleteValues(): any[];\r\n getFilteredAutocompleteValues(item): any[];\r\n };\r\n arrayCtrl = new FormControl();\r\n filteredItems: Observable;\r\n regexInput = /.*/;\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n @ViewChild('arrayInput') arrayInput: ElementRef;\r\n @ViewChild('auto') matAutocomplete: MatAutocomplete;\r\n\r\n data: any[] = [];\r\n\r\n ngOnInit() {\r\n if (this.value) {\r\n this.data = [].concat(this.value);\r\n }\r\n\r\n if (!this.extendedProperties || !this.extendedProperties.getValueFromInput) {\r\n this.extendedProperties = {\r\n autocompleteEnabled: false,\r\n getValueFromInput(input) {\r\n return input;\r\n },\r\n getDefaultAutocompleteValues() {\r\n return [];\r\n },\r\n getFilteredAutocompleteValues(item) {\r\n return [];\r\n }\r\n };\r\n } else if (this.extendedProperties.regexInput) {\r\n this.regexInput = this.extendedProperties.regexInput;\r\n }\r\n\r\n if (this.extendedProperties.autocompleteEnabled) {\r\n this.filteredItems = this.arrayCtrl.valueChanges.pipe(\r\n startWith(null),\r\n map((item: any) => item ? this.extendedProperties.getFilteredAutocompleteValues(item) : this.extendedProperties.getDefaultAutocompleteValues()));\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.value) {\r\n this.data = [].concat(this.value);\r\n }\r\n }\r\n\r\n add(event: MatChipInputEvent): void {\r\n if (!this.matAutocomplete.isOpen) {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n if ((value || '').trim()) {\r\n this.data.push(this.extendedProperties.getValueFromInput(value));\r\n }\r\n\r\n if (input) {\r\n input.value = '';\r\n }\r\n this.onChange();\r\n }\r\n }\r\n\r\n remove(item: any): void {\r\n const index = this.data.indexOf(item);\r\n\r\n if (index >= 0) {\r\n this.data.splice(index, 1);\r\n }\r\n\r\n this.onChange();\r\n }\r\n\r\n selected(event: MatAutocompleteSelectedEvent): void {\r\n this.data.push(event.option.viewValue);\r\n this.arrayInput.nativeElement.value = '';\r\n this.arrayCtrl.setValue(null);\r\n }\r\n\r\n onChange() {\r\n this.change.emit([].concat(this.data));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input } from '@angular/core';\r\n@Component({\r\n template: `\r\n \r\n \r\n true\r\n false\r\n \r\n \r\n `\r\n})\r\n\r\nexport class PropertiesViewerBooleanInputComponent {\r\n\r\n // tslint:disable-next-line\r\n @Output() change = new EventEmitter();\r\n @Input() value: boolean;\r\n @Input() disabled: boolean;\r\n @Input() placeholder = '';\r\n\r\n onChange() {\r\n this.change.emit(this.value);\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport moment from 'moment-es6';\r\nimport { MatDatepickerInputEvent, MAT_DATE_FORMATS, DateAdapter, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { MomentDateAdapter } from '@alfresco/adf-core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n template: `\r\n \r\n \r\n \r\n \r\n \r\n `,\r\n providers: [\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useValue: {\r\n parse: {\r\n dateInput: 'YYYY-MM-DD',\r\n },\r\n display: {\r\n dateInput: 'YYYY-MM-DD',\r\n monthYearLabel: 'YYYY-MM-DD',\r\n dateA11yLabel: 'YYYY-MM-DD',\r\n monthYearA11yLabel: 'YYYY-MM-DD',\r\n },\r\n }\r\n },\r\n ]\r\n})\r\n\r\nexport class PropertiesViewerDateInputComponent {\r\n\r\n // tslint:disable-next-line\r\n @Output() change = new EventEmitter();\r\n @Input() value: string;\r\n @Input() disabled: boolean;\r\n\r\n format = 'YYYY-MM-DD';\r\n\r\n get pickerDate() {\r\n return new FormControl({ value: this.value ? moment(this.value, this.format) : '', disabled: this.disabled });\r\n }\r\n\r\n onChange(event: MatDatepickerInputEvent) {\r\n this.change.emit(moment(event.value).format(this.format));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport moment from 'moment-es6';\r\nimport { MatDatepickerInputEvent, DateAdapter, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MAT_DATETIME_FORMATS, DatetimeAdapter } from '@mat-datetimepicker/core';\r\nimport { MomentDatetimeAdapter } from '@mat-datetimepicker/moment';\r\nimport { MomentDateAdapter } from '@alfresco/adf-core';\r\nimport { AMA_DATETIME_FORMATS, MOMENT_DATETIME_FORMAT } from '../../../helpers/primitive-types';\r\n\r\n@Component({\r\n template: `\r\n \r\n {{placeholder}}\r\n \r\n \r\n \r\n \r\n `,\r\n providers: [\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: DatetimeAdapter, useClass: MomentDatetimeAdapter },\r\n { provide: MAT_DATETIME_FORMATS, useValue: AMA_DATETIME_FORMATS }\r\n ]\r\n})\r\n\r\nexport class PropertiesViewerDateTimeInputComponent {\r\n\r\n // tslint:disable-next-line\r\n @Output() change = new EventEmitter();\r\n @Input() value: string;\r\n @Input() disabled: boolean;\r\n @Input() placeholder: '';\r\n\r\n today = new Date();\r\n\r\n get pickerDate(): FormControl {\r\n return new FormControl({ value: this.value ? moment(this.value, MOMENT_DATETIME_FORMAT) : '', disabled: this.disabled });\r\n }\r\n\r\n onChange(event: MatDatepickerInputEvent) {\r\n this.change.emit(moment(event.value).format(MOMENT_DATETIME_FORMAT));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input, OnInit } from '@angular/core';\r\nimport { FileService } from '../file.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ActivitiFile } from '../../../api/types';\r\nimport { Store } from '@ngrx/store';\r\nimport { AmaState } from '../../../store/app.state';\r\nimport { selectSelectedProjectId } from '../../../store/app.selectors';\r\n\r\n@Component({\r\n template: `\r\n \r\n \r\n \r\n {{file.name}}\r\n \r\n \r\n \r\n `\r\n})\r\n\r\nexport class PropertiesViewerFileInputComponent implements OnInit {\r\n\r\n // tslint:disable-next-line\r\n @Output() change = new EventEmitter();\r\n @Input() value: ActivitiFile;\r\n @Input() disabled: boolean;\r\n\r\n projectId: string;\r\n files: Observable;\r\n\r\n constructor(private store: Store, private fileService: FileService) { }\r\n\r\n ngOnInit() {\r\n this.store.select(selectSelectedProjectId)\r\n .subscribe(projectId => this.files = this.fileService.getList(projectId));\r\n }\r\n onChange() {\r\n this.change.emit(this.value);\r\n }\r\n\r\n compareObjects(o1: any, o2: any): boolean {\r\n if (!o1 || !o2) {\r\n return false;\r\n } else {\r\n return o1.uri === o2.uri;\r\n }\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input } from '@angular/core';\r\n@Component({\r\n template: `\r\n \r\n \r\n \r\n `\r\n})\r\n\r\nexport class PropertiesViewerIntegerInputComponent {\r\n\r\n // tslint:disable-next-line\r\n @Output() change = new EventEmitter();\r\n @Input() value: string;\r\n @Input() disabled: boolean;\r\n regexInput = /^[0-9]*$/;\r\n\r\n onChange() {\r\n const value = parseInt(this.value, 10);\r\n this.change.emit(isNaN(value) ? null : value);\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input, ViewChild } from '@angular/core';\r\nimport { EditorComponent } from 'ngx-monaco-editor';\r\n\r\n@Component({\r\n template: `\r\n \r\n \r\n `\r\n})\r\n\r\nexport class PropertiesViewerJsonInputComponent {\r\n\r\n // tslint:disable-next-line\r\n @Output() change = new EventEmitter();\r\n @Input() value;\r\n @Input() disabled: boolean;\r\n\r\n @ViewChild('editor') editor: EditorComponent;\r\n\r\n monacoEditor: any;\r\n\r\n editorOptions = {\r\n language: 'json',\r\n readOnly: this.disabled\r\n };\r\n\r\n onInit(editor) {\r\n this.monacoEditor = editor;\r\n this.monacoEditor.updateOptions({\r\n language: 'json',\r\n readOnly: this.disabled\r\n });\r\n }\r\n\r\n onConfigurationChange(configuration) {\r\n if (configuration.readOnly === undefined || configuration.readOnly !== this.disabled) {\r\n this.monacoEditor.updateOptions({\r\n language: 'json',\r\n readOnly: this.disabled\r\n });\r\n }\r\n }\r\n\r\n onChange() {\r\n if (this.value && this.value.trim()) {\r\n try {\r\n JSON.parse(this.value);\r\n } catch (e) {\r\n return;\r\n }\r\n this.change.emit(this.value);\r\n } else {\r\n this.change.emit(null);\r\n }\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input } from '@angular/core';\r\n@Component({\r\n template: `\r\n \r\n \r\n \r\n `\r\n})\r\n\r\nexport class PropertiesViewerStringInputComponent {\r\n\r\n // tslint:disable-next-line\r\n @Output() change = new EventEmitter();\r\n @Input() value: string;\r\n @Input() disabled: boolean;\r\n\r\n onChange() {\r\n this.change.emit( (this.value && this.value.length) ? this.value : null);\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Type, InjectionToken } from '@angular/core';\r\n\r\nexport const INPUT_TYPE_ITEM_HANDLER = new InjectionToken('input-type-item-handlers');\r\n\r\nexport interface InputTypeItem {\r\n type: string;\r\n primitiveType: string;\r\n implementationClass: Type<{}>;\r\n}\r\n\r\nexport function provideInputTypeItemHandler(type: string, implementationClass: Type<{}>, primitiveType?: string) {\r\n return {\r\n provide: INPUT_TYPE_ITEM_HANDLER,\r\n useValue: { type, primitiveType: primitiveType ? primitiveType : type, implementationClass: implementationClass },\r\n multi: true\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n/* cSpell:disable */\r\n@Pipe({ name: 'variablevalue' })\r\n/* cSpell:enable */\r\nexport class VariableValuePipe implements PipeTransform {\r\n transform(value: any): string {\r\n if (value === undefined || value === null) {\r\n return null;\r\n } else if (typeof value === 'object' && value.uri !== undefined) {\r\n return this.getFileNameFromUri(value.uri);\r\n } else if (typeof value === 'object' && value.uri === undefined) {\r\n return JSON.stringify(value);\r\n } else {\r\n return String(value);\r\n }\r\n }\r\n\r\n private getFileNameFromUri(uri: string): string {\r\n return uri.slice('file:/'.length).split('.').slice(0, -1).join('.');\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport { VariablesModule } from './variables.module';\r\nexport { VariablesComponent } from './variables.component';\r\nexport { VariableValuePipe } from './properties-viewer/variable-value.pipe';\r\nexport * from './properties-viewer/value-type-inputs/value-type-inputs';\r\nexport { PropertiesViewerIntegerInputComponent } from './properties-viewer/value-type-inputs/integer-input.component';\r\nexport { PropertiesViewerStringInputComponent } from './properties-viewer/value-type-inputs/string-input.component';\r\nexport { PropertiesViewerBooleanInputComponent } from './properties-viewer/value-type-inputs/boolean-input.component';\r\nexport { PropertiesViewerDateInputComponent } from './properties-viewer/value-type-inputs/date-input.component';\r\nexport { PropertiesViewerJsonInputComponent } from './properties-viewer/value-type-inputs/json-input.component';\r\nexport { PropertiesViewerFileInputComponent } from './properties-viewer/value-type-inputs/file-input.component';\r\nexport { PropertiesViewerDateTimeInputComponent } from './properties-viewer/value-type-inputs/date-time-input.component';\r\nexport { PropertiesViewerArrayInputComponent } from './properties-viewer/value-type-inputs/array-input.component';\r\n","module.exports = \"

layers{{title | translate}}

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

{{ 'SDK.VARIABLES_EDITOR.ERRORS.NAME_ALREADY_EXISTS' | translate }}

\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material';\r\nimport { Subject, Subscription, Observable } from 'rxjs';\r\nimport { VariablesService } from './variables.service';\r\nimport { CodeValidatorService } from './../code-editor/services/code-validator.service';\r\nimport { EntityProperties } from '../../lib/api/types';\r\n\r\nconst Ajv = require('ajv');\r\n\r\nexport interface VariableDialogData extends MatDialogConfig {\r\n properties: EntityProperties;\r\n columns: string[];\r\n title: string;\r\n required: boolean;\r\n propertiesUpdate$: Subject;\r\n theme$: Observable;\r\n}\r\n\r\n@Component({\r\n templateUrl: './variables.component.html'\r\n})\r\n\r\nexport class VariablesComponent implements OnInit, OnDestroy {\r\n error: string;\r\n ajv = new Ajv();\r\n editorContent = '{}';\r\n subscription: Subscription;\r\n serviceSubscription: Subscription;\r\n vsTheme$: Observable;\r\n title: string;\r\n requiredCheckbox: boolean;\r\n columns: string[];\r\n validVariables = true;\r\n\r\n constructor(\r\n public dialog: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: VariableDialogData,\r\n private variablesService: VariablesService,\r\n private codeValidatorService: CodeValidatorService\r\n ) {\r\n this.vsTheme$ = data.theme$;\r\n this.title = data.title;\r\n this.requiredCheckbox = data.required;\r\n this.columns = data.columns;\r\n }\r\n\r\n ngOnInit() {\r\n this.serviceSubscription = this.variablesService.variablesData.subscribe(dataObj => {\r\n if (dataObj.data) {\r\n this.editorContent = dataObj.data;\r\n this.error = dataObj.error;\r\n }\r\n\r\n });\r\n\r\n if (this.data && this.data.properties) {\r\n if (this.data.properties) {\r\n this.editorContent = JSON.stringify(this.data.properties, null, 2);\r\n this.variablesService.sendData(this.editorContent, null);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.serviceSubscription.unsubscribe();\r\n }\r\n\r\n onChange($event) {\r\n this.error = this.validate($event).error;\r\n this.variablesService.sendData($event, this.error);\r\n }\r\n\r\n onPropertyChanged() {\r\n try {\r\n const data = JSON.parse(this.editorContent);\r\n this.validVariables = this.validateDuplicateVariable( data);\r\n } catch (e) {\r\n // tslint:disable-next-line:no-console\r\n console.log('Error cannot parse JSON', e);\r\n }\r\n }\r\n\r\n validate(properties: string) {\r\n return this.codeValidatorService.validateJson(properties);\r\n }\r\n\r\n validateDuplicateVariable(variables: EntityProperties): boolean {\r\n return this.variablesService.validateFormVariable(variables);\r\n }\r\n\r\n save() {\r\n const data = JSON.parse(this.editorContent);\r\n\r\n this.convertJsonStringVariablesToJsonObjects(data);\r\n this.data.propertiesUpdate$.next(data);\r\n this.data.propertiesUpdate$.complete();\r\n this.dialog.close();\r\n }\r\n\r\n private convertJsonStringVariablesToJsonObjects(data) {\r\n for (const key in data) {\r\n if ((data[key].type === 'json' || data[key].type === 'folder') && data[key].value && typeof(data[key].value) !== 'object') {\r\n data[key].value = JSON.parse(data[key].value);\r\n }\r\n }\r\n }\r\n\r\n onClose() {\r\n this.data.propertiesUpdate$.complete();\r\n }\r\n\r\n isSaveDisabled(): boolean {\r\n return !!(this.error && this.error !== 'undefined' || !this.validVariables);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CodeEditorModule } from './../code-editor/code-editor.module';\r\nimport { CoreModule } from '@alfresco/adf-core';\r\nimport { VariablesComponent } from './variables.component';\r\nimport { PropertiesViewerComponent } from './properties-viewer/properties-viewer.component';\r\nimport { ValueTypeInputComponent } from './properties-viewer/value-type-input.component';\r\nimport { PropertiesViewerStringInputComponent } from './properties-viewer/value-type-inputs/string-input.component';\r\nimport { PropertiesViewerIntegerInputComponent } from './properties-viewer/value-type-inputs/integer-input.component';\r\nimport { PropertiesViewerBooleanInputComponent } from './properties-viewer/value-type-inputs/boolean-input.component';\r\nimport { PropertiesViewerDateInputComponent } from './properties-viewer/value-type-inputs/date-input.component';\r\nimport { PropertiesViewerJsonInputComponent } from './properties-viewer/value-type-inputs/json-input.component';\r\nimport { PropertiesViewerFileInputComponent } from './properties-viewer/value-type-inputs/file-input.component';\r\nimport { SharedModule } from '../helpers/public-api';\r\nimport { VariableValuePipe } from './properties-viewer/variable-value.pipe';\r\nimport { PropertiesViewerDateTimeInputComponent } from './properties-viewer/value-type-inputs/date-time-input.component';\r\nimport { provideInputTypeItemHandler } from './properties-viewer/value-type-inputs/value-type-inputs';\r\nimport { PropertiesViewerArrayInputComponent } from './properties-viewer/value-type-inputs/array-input.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CoreModule.forChild(),\r\n CodeEditorModule,\r\n SharedModule\r\n ],\r\n declarations: [\r\n VariablesComponent,\r\n PropertiesViewerComponent,\r\n ValueTypeInputComponent,\r\n PropertiesViewerStringInputComponent,\r\n PropertiesViewerIntegerInputComponent,\r\n PropertiesViewerBooleanInputComponent,\r\n PropertiesViewerDateInputComponent,\r\n PropertiesViewerDateTimeInputComponent,\r\n PropertiesViewerJsonInputComponent,\r\n PropertiesViewerFileInputComponent,\r\n VariableValuePipe,\r\n PropertiesViewerArrayInputComponent\r\n ],\r\n entryComponents: [\r\n VariablesComponent,\r\n PropertiesViewerIntegerInputComponent,\r\n PropertiesViewerStringInputComponent,\r\n PropertiesViewerBooleanInputComponent,\r\n PropertiesViewerDateInputComponent,\r\n PropertiesViewerDateTimeInputComponent,\r\n PropertiesViewerJsonInputComponent,\r\n PropertiesViewerFileInputComponent,\r\n PropertiesViewerArrayInputComponent\r\n ],\r\n providers: [\r\n provideInputTypeItemHandler('string', PropertiesViewerStringInputComponent),\r\n provideInputTypeItemHandler('integer', PropertiesViewerIntegerInputComponent),\r\n provideInputTypeItemHandler('boolean', PropertiesViewerBooleanInputComponent),\r\n provideInputTypeItemHandler('date', PropertiesViewerDateInputComponent),\r\n provideInputTypeItemHandler('datetime', PropertiesViewerDateTimeInputComponent),\r\n provideInputTypeItemHandler('json', PropertiesViewerJsonInputComponent),\r\n provideInputTypeItemHandler('file', PropertiesViewerFileInputComponent),\r\n provideInputTypeItemHandler('folder', PropertiesViewerJsonInputComponent),\r\n provideInputTypeItemHandler('array', PropertiesViewerArrayInputComponent)\r\n ],\r\n exports: [\r\n ValueTypeInputComponent,\r\n VariableValuePipe\r\n ]\r\n})\r\nexport class VariablesModule { }\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Output, EventEmitter } from '@angular/core';\r\nimport { EntityProperties, EntityProperty } from '../../lib/api/types';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n })\r\nexport class VariablesService {\r\n @Output() variablesData: EventEmitter = new EventEmitter();\r\n constructor() {}\r\n\r\n sendData(data: string, error: string) {\r\n this.variablesData.emit({ data: data, error: error });\r\n }\r\n\r\n validateFormVariable(variables: EntityProperties): boolean {\r\n for (const key of Object.keys(variables)) {\r\n if (this.variableNameExists(variables[key], variables)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n private variableNameExists(variable: EntityProperty, variables: EntityProperties): boolean {\r\n const variableIndex = Object.keys(variables).findIndex( key => {\r\n return variables[key].name === variable.name && variables[key].id !== variable.id;\r\n });\r\n return variableIndex > -1;\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ContentChild, Component, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'modelingsdk-workbench-layout-content',\r\n templateUrl: './workbench-layout-content.component.html'\r\n})\r\nexport class WorkbenchLayoutContentComponent {\r\n @ContentChild(TemplateRef)\r\n public template: TemplateRef;\r\n}\r\n","module.exports = \"\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ContentChild, Component, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'modelingsdk-workbench-layout-sidenav',\r\n templateUrl: './workbench-layout-sidenav.component.html'\r\n})\r\nexport class WorkbenchLayoutSidenavComponent {\r\n @ContentChild(TemplateRef)\r\n public template: TemplateRef;\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'modelingsdk-workbench-layout',\r\n templateUrl: './workbench-layout.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'modelingsdk-workbench-layout' }\r\n})\r\nexport class WorkbenchLayoutComponent {\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport { WorkbenchLayoutModule } from './workbench-layout.module';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { WorkbenchLayoutSidenavComponent } from './components/workbench-layout-sidenav.component';\r\nimport { WorkbenchLayoutContentComponent } from './components/workbench-layout-content.component';\r\nimport { WorkbenchLayoutComponent } from './components/workbench-layout.component';\r\nimport { CoreModule } from '@alfresco/adf-core';\r\n\r\n@NgModule({\r\n imports: [\r\n CoreModule.forChild()\r\n ],\r\n declarations: [\r\n WorkbenchLayoutComponent,\r\n WorkbenchLayoutContentComponent,\r\n WorkbenchLayoutSidenavComponent\r\n ],\r\n exports: [\r\n WorkbenchLayoutComponent,\r\n WorkbenchLayoutContentComponent,\r\n WorkbenchLayoutSidenavComponent\r\n ],\r\n entryComponents: [ ]\r\n})\r\nexport class WorkbenchLayoutModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/// \r\n/// \r\n\r\nexport * from './lib/api/public-api';\r\nexport * from './lib/code-editor/public-api';\r\nexport * from './lib/components/input-mapping-table/public-api';\r\nexport * from './lib/components/output-mapping-table/public-api';\r\nexport * from './lib/components/mapping-dialog/public-api';\r\nexport * from './lib/process-editor/public-api';\r\nexport * from './lib/connector-editor/public-api';\r\nexport * from './lib/confirmation-dialog/public-api';\r\nexport * from './lib/connector-editor/public-api';\r\nexport * from './lib/extension/public-api';\r\nexport * from './lib/helpers/public-api';\r\nexport * from './lib/i18n/public-api';\r\nexport * from './lib/interfaces/public-api';\r\nexport * from './lib/process-editor/public-api';\r\nexport * from './lib/services/public-api';\r\nexport * from './lib/store/public-api';\r\nexport * from './lib/validators/public-api';\r\nexport * from './lib/variables/public-api';\r\nexport * from './lib/workbench-layout/public-api';\r\nexport * from './lib/project-editor/public-api';\r\n\r\nexport * from './lib/api-implementations/acm-api/acm-api.module';\r\n\r\n// TODO: Remove it ===================================================\r\nexport * from './lib/api-implementations/acm-api/content-types';\r\nexport * from './lib/api-implementations/acm-api/form-definition';\r\n// TODO: =============================================================\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\nimport { AppConfigService } from '@alfresco/adf-core';\r\nimport { AuthTokenProcessorService } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class AmaRoleGuard implements CanActivate {\r\n isAllowed = false;\r\n\r\n constructor(\r\n private appConfig: AppConfigService,\r\n private router: Router,\r\n private authService: AuthTokenProcessorService) { }\r\n\r\n canActivate(): boolean {\r\n const roles = this.appConfig.get('roles');\r\n roles.forEach(role => {\r\n if (this.authService.hasRole(role)) {\r\n this.isAllowed = true;\r\n }\r\n });\r\n\r\n if (!this.isAllowed) {\r\n this.router.navigate(['/error/403']);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreRouterConnectingModule, RouterStateSerializer } from '@ngrx/router-store';\r\nimport { AmaRouterStateSerializer } from './common/helpers/router-state.serializer';\r\n\r\nimport { UiEffects } from './store/effects/ui.effects';\r\nimport { SnackbarEffects } from './store/effects/snackbar.effects';\r\nimport { DialogEffects } from './store/effects/dialog.effects';\r\nimport { SettingsEffects } from './store/effects/settings.effects';\r\n\r\nimport { environment } from '../environments/environment';\r\nimport { AuthEffects } from './store/effects/auth.effects';\r\nimport { rootReducers } from './store/reducers/reducers';\r\nimport { INITIAL_STATE } from './store/states/app.state';\r\nimport { metaReducers } from './store/reducers/meta.reducers';\r\n\r\n@NgModule({\r\n imports: [\r\n StoreModule.forRoot(rootReducers, { initialState: INITIAL_STATE, metaReducers: metaReducers }),\r\n EffectsModule.forRoot([\r\n AuthEffects,\r\n SnackbarEffects,\r\n DialogEffects,\r\n SettingsEffects,\r\n UiEffects\r\n ]),\r\n StoreRouterConnectingModule.forRoot({ stateKey: 'router' }),\r\n !environment.production ? StoreDevtoolsModule.instrument({ maxAge: 25 }) : []\r\n ],\r\n providers: [{ provide: RouterStateSerializer, useClass: AmaRouterStateSerializer }]\r\n})\r\nexport class AppStoreModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, Renderer2, OnDestroy } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AmaState, selectSelectedTheme } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { PluginRoutesManagerService } from './common/services/plugin-routes-manager.service';\r\nimport { AlfrescoApiService, AuthenticationService } from '@alfresco/adf-core';\r\nimport { MatDialog } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'ama-root',\r\n template: ''\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n onDestroy$: Subject = new Subject();\r\n\r\n constructor(\r\n private store: Store,\r\n private renderer: Renderer2,\r\n private pluginRoutesManager: PluginRoutesManagerService,\r\n private router: Router,\r\n private alfrescoApiService: AlfrescoApiService,\r\n private authenticationService: AuthenticationService,\r\n private dialogRef: MatDialog) {\r\n this.pluginRoutesManager.patchRoutes();\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n }\r\n\r\n ngOnInit() {\r\n this.alfrescoApiService.getInstance().on('error', (error) => {\r\n if (error.status === 401) {\r\n if (!this.authenticationService.isLoggedIn()) {\r\n this.dialogRef.closeAll();\r\n this.router.navigate(['/login']);\r\n }\r\n }\r\n });\r\n this.store\r\n .select(selectSelectedTheme)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(selectedTheme => this.renderer.setAttribute(document.body, 'class', selectedTheme.className));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, ErrorHandler } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MaterialModule } from './common/material.module';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { AboutComponent } from './app/about/about.component';\r\nimport { AppLoginComponent } from './app/app-login/app-login.component';\r\nimport { AppLayoutComponent } from './app/app-layout/app-layout.component';\r\nimport { HeaderMenuComponent } from './app/header/header-menu.component';\r\nimport { SettingsDialogComponent } from './app/settings/settings-dialog.component';\r\nimport { HostSettingsComponent } from './app/host-settings/host-settings.component';\r\n\r\nimport { AdfModule } from './common/adf.module';\r\nimport { AppStoreModule } from './app-store.module';\r\nimport { ProcessEditorModule } from './process-editor/process-editor.module';\r\nimport { ProjectEditorModule } from './project-editor/project-editor.module';\r\n\r\nimport { appRoutes } from './app.routes';\r\nimport { ConnectorEditorModule } from './connector-editor/connector-editor.module';\r\nimport { AmaLocalStorageMergeGuard } from './common/services/ama-localstorage-merge-guard.service';\r\nimport { ErrorContentComponent } from './app/error/error-content.component';\r\nimport { BpmnjsPropertiesModule } from './bpmnjs-properties/bpmnjs-properties.module';\r\nimport { environment } from '../environments/environment';\r\nimport { MatInputModule } from '@angular/material';\r\n\r\nimport {\r\n ACMApiModule,\r\n AmaServicesModule,\r\n ConfirmationDialogModule,\r\n AmaAuthenticationService,\r\n AuthTokenProcessorService,\r\n allLogFilter,\r\n provideLogFilter\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { AmaRoleGuard } from './ama-role-guard.service';\r\nimport { AppExtensionsModule } from './extensions.module';\r\nimport { ModelStorageService } from './common/services/model-storage.service';\r\nimport { GlobalErrorHandler } from './common/helpers/services/error-handler.service';\r\nimport { LogHistoryComponent } from './app/app-layout/logging/components/log-history/log-history.component';\r\nimport { LogHistoryEntryComponent } from './app/app-layout/logging/components/log-history/log-history-entry/log-history-entry.component';\r\nimport { EditorFooterComponent } from './app/app-layout/editor-footer/editor-footer.component';\r\nimport { AppFooterService } from './common/services/app-footer.service';\r\nimport { EDITOR_FOOTER_SERVICE_TOKEN } from './app/app-layout/editor-footer/editor-footer.service.interface';\r\nimport localeJa from '@angular/common/locales/ja';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport { DashboardModule } from './dashboard/dashboard.module';\r\nimport { AmaModelSchemaLoaderGuard } from './common/services/ama-model-schema-loader-guard.service';\r\nimport { getBackendLogInitiator } from './common/services/application.constants';\r\n\r\nregisterLocaleData(localeJa);\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserAnimationsModule,\r\n ReactiveFormsModule,\r\n BrowserModule,\r\n FormsModule,\r\n MaterialModule,\r\n FlexLayoutModule,\r\n HttpClientModule,\r\n\r\n AdfModule,\r\n AppStoreModule,\r\n\r\n AmaServicesModule.forApplication(),\r\n\r\n ACMApiModule.forRoot(),\r\n\r\n RouterModule.forRoot(appRoutes, { useHash: true }),\r\n\r\n DashboardModule,\r\n ProjectEditorModule,\r\n ProcessEditorModule,\r\n ConnectorEditorModule,\r\n\r\n MatInputModule,\r\n ConfirmationDialogModule,\r\n\r\n AppExtensionsModule,\r\n\r\n /** @deprecated: bpmnjs-properties */\r\n !environment.production ? BpmnjsPropertiesModule : []\r\n ],\r\n declarations: [\r\n AppComponent,\r\n AboutComponent,\r\n AppLoginComponent,\r\n AppLayoutComponent,\r\n ErrorContentComponent,\r\n HeaderMenuComponent,\r\n SettingsDialogComponent,\r\n HostSettingsComponent,\r\n LogHistoryComponent,\r\n LogHistoryEntryComponent,\r\n EditorFooterComponent,\r\n AboutComponent\r\n ],\r\n entryComponents: [SettingsDialogComponent],\r\n providers: [\r\n { provide: ErrorHandler, useClass: GlobalErrorHandler },\r\n AmaLocalStorageMergeGuard,\r\n AmaRoleGuard,\r\n AmaModelSchemaLoaderGuard,\r\n AuthTokenProcessorService,\r\n AmaAuthenticationService,\r\n ModelStorageService,\r\n { provide: EDITOR_FOOTER_SERVICE_TOKEN, useClass: AppFooterService },\r\n provideLogFilter(getBackendLogInitiator()),\r\n provideLogFilter(allLogFilter)\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Routes } from '@angular/router';\r\nimport { AuthGuard } from '@alfresco/adf-core';\r\nimport { AppLayoutComponent } from './app/app-layout/app-layout.component';\r\nimport { AppLoginComponent } from './app/app-login/app-login.component';\r\nimport { projectEditorRoutes } from './project-editor/router/project-editor.routes';\r\nimport { HostSettingsComponent } from './app/host-settings/host-settings.component';\r\nimport { AmaLocalStorageMergeGuard } from './common/services/ama-localstorage-merge-guard.service';\r\nimport { AmaRoleGuard } from './ama-role-guard.service';\r\nimport { ErrorContentComponent } from './app/error/error-content.component';\r\nimport { AboutComponent } from './app/about/about.component';\r\nimport { dashboardRoutes } from './dashboard/router/dashboard.routes';\r\nimport { AmaModelSchemaLoaderGuard } from './common/services/ama-model-schema-loader-guard.service';\r\nimport { DASHBOARD_ROUTES } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const appRoutes: Routes = [\r\n { path: 'login', component: AppLoginComponent },\r\n { path: 'settings', component: HostSettingsComponent },\r\n {\r\n path: '',\r\n\r\n component: AppLayoutComponent,\r\n canActivate: [\r\n AuthGuard,\r\n AmaLocalStorageMergeGuard,\r\n AmaModelSchemaLoaderGuard\r\n ],\r\n children: [\r\n { path: 'error/:id', component: ErrorContentComponent },\r\n {\r\n path: 'dashboard',\r\n canActivate: [AmaRoleGuard],\r\n children: dashboardRoutes,\r\n data: { hostFor: DASHBOARD_ROUTES }\r\n },\r\n // Impossible to lazily load ADF modules, that is why the hack\r\n {\r\n path: 'projects',\r\n canActivate: [AmaRoleGuard],\r\n children: projectEditorRoutes\r\n },\r\n { path: 'about', component: AboutComponent },\r\n { path: 'home', redirectTo: 'dashboard', pathMatch: 'full' },\r\n { path: '', redirectTo: 'dashboard', pathMatch: 'full' }\r\n ]\r\n }\r\n];\r\n","module.exports = \".ama-about-container {\\r\\n padding: 16px;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXBwL2Fib3V0L2Fib3V0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxhQUFhO0lBQ2IsWUFBWTtBQUNoQiIsImZpbGUiOiJzcmMvYXBwL2FwcC9hYm91dC9hYm91dC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFtYS1hYm91dC1jb250YWluZXIge1xyXG4gICAgcGFkZGluZzogMTZweDtcclxuICAgIGhlaWdodDogMTAwJTtcclxufVxyXG4iXX0= */\"","module.exports = \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Inject } from '@angular/core';\r\nimport { APP_GITHUB_COMMIT, APP_VERSION, APP_DEPS } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n selector: 'ama-about',\r\n templateUrl: './about.component.html',\r\n styleUrls: [ 'about.component.css' ]\r\n})\r\nexport class AboutComponent {\r\n showExtensions = true;\r\n\r\n constructor(\r\n @Inject(APP_GITHUB_COMMIT) public url: string,\r\n @Inject(APP_VERSION) public version: string,\r\n @Inject(APP_DEPS) public dependencies: any[]\r\n ) {}\r\n}\r\n","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, ViewChild, ViewEncapsulation, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { SidenavLayoutComponent, AppConfigService } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport { SetMenuAction } from '../../store/actions';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { selectMenuOpened } from '../../store/selectors/app.selectors';\r\nimport { first, takeUntil } from 'rxjs/operators';\r\nimport { SettingsDialogComponent } from '../settings/settings-dialog.component';\r\nimport { LogoutAction } from '../../store/actions/app.actions';\r\nimport { AmaState, OpenDialogAction } from '@alfresco-dbp/modeling-shared/sdk';\r\n import { Router } from '@angular/router';\r\n\r\n@Component({\r\n templateUrl: 'app-layout.component.html',\r\n host: { class: 'adf-app-layout' },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AppLayoutComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild('sidenavLayout') sidenavLayout: SidenavLayoutComponent;\r\n\r\n menuOpened$: Observable;\r\n onDestroy$ = new Subject();\r\n\r\n constructor(private store: Store, private appConfig: AppConfigService, private router: Router) {\r\n this.menuOpened$ = this.store.select(selectMenuOpened).pipe(first());\r\n }\r\n\r\n // Hack for adf-sidenav-layout\r\n ngAfterViewInit() {\r\n this.store\r\n .select(selectMenuOpened)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(menuOpened => {\r\n const isMenuMinimized = !menuOpened;\r\n if (isMenuMinimized !== this.sidenavLayout.isMenuMinimized) {\r\n this.sidenavLayout.toggleMenu();\r\n }\r\n });\r\n }\r\n\r\n get showLanguagePicker() {\r\n return this.appConfig.get('languagePicker') || false;\r\n }\r\n\r\n get showNotificationHistory() {\r\n return this.appConfig.get('showNotificationHistory') || false;\r\n }\r\n\r\n dispatchToggleMenuAction(menuOpened) {\r\n this.store.dispatch(new SetMenuAction(menuOpened));\r\n }\r\n\r\n onLogout() {\r\n this.store.dispatch(new LogoutAction());\r\n }\r\n\r\n onOpenSettings() {\r\n this.store.dispatch(new OpenDialogAction(SettingsDialogComponent));\r\n }\r\n\r\n onOpenAbout() {\r\n this.router.navigate(['/about']);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n Log history for\\r\\n \\r\\n \\r\\n {{filter.displayName | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Inject } from '@angular/core';\r\nimport { EDITOR_FOOTER_SERVICE_TOKEN, EditorFooterService } from './editor-footer.service.interface';\r\nimport { Store } from '@ngrx/store';\r\nimport { AmaState, LogMessage, LOG_FILTER_ITEM_TOKEN, LogMessageInitiator } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { selectToolbarLogsVisibility, selectLogsByInitiator } from '../../../../app/store/selectors/app.selectors';\r\nimport { Observable } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'ama-editor-footer',\r\n templateUrl: './editor-footer.component.html'\r\n})\r\nexport class EditorFooterComponent {\r\n filters: LogMessageInitiator[];\r\n showConsole$: Observable;\r\n filterType: LogMessageInitiator;\r\n logs$: Observable;\r\n\r\n constructor(\r\n @Inject(EDITOR_FOOTER_SERVICE_TOKEN) public editorFooterService: EditorFooterService,\r\n @Inject( LOG_FILTER_ITEM_TOKEN ) public logFilters: LogMessageInitiator[],\r\n private store: Store\r\n ) {\r\n this.showConsole$ = this.store.select(selectToolbarLogsVisibility);\r\n this.logs$ = this.editorFooterService.logs$;\r\n this.filters = (logFilters).flatten(1) || [];\r\n }\r\n\r\n toggleConsole() {\r\n this.showConsole$.pipe(take(1)).subscribe(\r\n showConsole => this.editorFooterService.setHistoryVisibility(!showConsole)\r\n );\r\n }\r\n\r\n clearLogs() {\r\n this.editorFooterService.clearLogs();\r\n }\r\n\r\n changeFilter() {\r\n this.logs$ = this.store.select(selectLogsByInitiator(this.filterType));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { LogMessage } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport interface EditorFooterService {\r\n userMessage$: Observable;\r\n inProgress$: Observable;\r\n logs$: Observable;\r\n newErrorNumber$: Observable;\r\n isNewError$: Observable;\r\n\r\n setHistoryVisibility(visibility: boolean): void;\r\n clearLogs(): void;\r\n}\r\n\r\nexport const EDITOR_FOOTER_SERVICE_TOKEN = new InjectionToken('editor-footer-service');\r\n","module.exports = \"
\\r\\n
\\r\\n chevron_right\\r\\n {{ log.initiator.displayName | translate }} at\\r\\n {{ log.datetime | date:\\\"HH:mm:ss\\\" }} \\r\\n [{{ log.type }}]\\r\\n
\\r\\n
\\r\\n
{{ message }}
\\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { LogMessage } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n selector: 'ama-log-history-entry',\r\n templateUrl: './log-history-entry.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LogHistoryEntryComponent {\r\n\r\n @Input()\r\n log: LogMessage;\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { LogMessage } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n selector: 'ama-log-history',\r\n templateUrl: './log-history.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LogHistoryComponent {\r\n\r\n @Input()\r\n messages: LogMessage[];\r\n}\r\n","module.exports = \"\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ServerSideSorting } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport {SearchTextStateEnum} from '@alfresco/adf-core';\r\n\r\nconst DEFAULT_SORT_KEY = 'name';\r\nconst DEFAULT_SORT_DIRECTION = 'asc';\r\n\r\nconst maxItems = 25;\r\nconst skipCount = 0;\r\nconst SEARCH_KEY = 'name';\r\n\r\n@Component({\r\n selector: 'ama-search-header',\r\n templateUrl: './search-header.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SearchHeaderComponent implements OnInit {\r\n\r\n value: string;\r\n expandable: boolean;\r\n searchInputState = SearchTextStateEnum.collapsed;\r\n\r\n sorting: ServerSideSorting = {\r\n key: DEFAULT_SORT_KEY,\r\n direction: DEFAULT_SORT_DIRECTION\r\n };\r\n\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n this.value = this.route.snapshot.queryParamMap.get(SEARCH_KEY);\r\n this.searchInputState = this.value ? SearchTextStateEnum.expanded : SearchTextStateEnum.collapsed;\r\n }\r\n\r\n onSearchSubmit(event: KeyboardEvent) {\r\n const value = (event.target as HTMLInputElement).value.toLowerCase();\r\n this.searchProjects(value);\r\n }\r\n\r\n searchProjects(value: string) {\r\n if (value !== this.value) {\r\n this.router.navigate(\r\n ['dashboard', 'projects'],\r\n {\r\n queryParams: {\r\n maxItems, skipCount ,\r\n sort: `${this.sorting.key},${this.sorting.direction}`,\r\n [SEARCH_KEY]: value\r\n },\r\n queryParamsHandling: 'merge'\r\n });\r\n }\r\n }\r\n\r\n onReset() {\r\n this.searchProjects('');\r\n }\r\n}\r\n","module.exports = \"\\r\\n settings\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, ViewChild, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LogService } from '@alfresco/adf-core';\r\nimport { Validators } from '@angular/forms';\r\n\r\n@Component({\r\n templateUrl: './app-login.component.html'\r\n})\r\nexport class AppLoginComponent implements OnInit {\r\n @ViewChild('amalogin') amalogin: any;\r\n\r\n customValidation: any;\r\n customMinLength = 2;\r\n form: any;\r\n\r\n constructor(private router: Router, private logService: LogService) {\r\n this.customValidation = {\r\n username: ['', Validators.compose([Validators.required, Validators.minLength(this.customMinLength)])],\r\n password: ['', Validators.required]\r\n };\r\n\r\n this.form = {\r\n username: '',\r\n password: ''\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n this.amalogin.addCustomValidationError('username', 'required', 'LOGIN.MESSAGES.USERNAME-REQUIRED');\r\n this.amalogin.addCustomValidationError('username', 'minlength', 'LOGIN.MESSAGES.USERNAME-MIN', {\r\n minLength: this.customMinLength\r\n });\r\n this.amalogin.addCustomValidationError('password', 'required', 'LOGIN.MESSAGES.PASSWORD-REQUIRED');\r\n }\r\n\r\n onLogin($event) {\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n onError($event) {\r\n this.logService.error($event);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ama-error-content',\r\n templateUrl: './error-content.component.html',\r\n styles: [\r\n ` :host(.ama-error-content) {\r\n flex: 1;\r\n }`\r\n ],\r\n host: {'class': 'ama-error-content'}\r\n})\r\nexport class ErrorContentComponent {\r\n constructor() {}\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ama-header-menu',\r\n templateUrl: './header-menu.component.html'\r\n})\r\nexport class HeaderMenuComponent {\r\n\r\n @Input() showLanguagePicker = false;\r\n @Output() logout = new EventEmitter();\r\n @Output() openSettings = new EventEmitter();\r\n @Output() openAbout = new EventEmitter();\r\n\r\n user: any = null;\r\n\r\n onLogout(): void {\r\n this.logout.next();\r\n }\r\n\r\n onOpenSettings() {\r\n this.openSettings.next();\r\n }\r\n\r\n onAbout() {\r\n this.openAbout.next();\r\n }\r\n}\r\n","module.exports = \"\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component } from '@angular/core';\r\nimport { LogService } from '@alfresco/adf-core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'ama-settings',\r\n templateUrl: 'host-settings.component.html'\r\n})\r\nexport class HostSettingsComponent {\r\n\r\n constructor(private router: Router, public logService: LogService) {}\r\n\r\n onError(error: string) {\r\n this.logService.log(error);\r\n }\r\n\r\n onCancel() {\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n onSuccess() {\r\n this.router.navigate(['/login']);\r\n }\r\n}\r\n","module.exports = \"

\\r\\n {{ 'APP.SETTINGS.HEADER' | translate }}\\r\\n

\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ theme.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 * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material';\r\nimport { Store } from '@ngrx/store';\r\nimport { UpdateSettingsAction } from '../../store/actions';\r\nimport { appThemes } from '../themes';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AppTheme, AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n templateUrl: './settings-dialog.component.html'\r\n})\r\nexport class SettingsDialogComponent implements OnInit, OnDestroy {\r\n form: any;\r\n themes: AppTheme[];\r\n onDestroy$: Subject = new Subject();\r\n\r\n constructor(private store: Store, public dialog: MatDialogRef) {\r\n this.themes = appThemes;\r\n }\r\n\r\n ngOnInit() {\r\n this.form = {};\r\n this.store\r\n .select('app')\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(app => {\r\n this.form.theme = app.selectedTheme.className;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n\r\n submit(): void {\r\n this.store.dispatch(new UpdateSettingsAction({ ...this.form }));\r\n this.dialog.close();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { AppTheme } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const appThemes: AppTheme[] = [\r\n { name: 'Light theme', className: 'light-theme' },\r\n { name: 'Dark theme', className: 'dark-theme' }\r\n];\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport * as propertiesPanelModule from 'bpmn-js-properties-panel';\r\nimport * as bpmnPropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/bpmn';\r\nimport * as camundaPropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda';\r\nimport { BpmnFactoryService } from '../process-editor/services/bpmn-factory.service';\r\n\r\n/** @deprecated: bpmnjs-properties */\r\n@Injectable()\r\nexport class BpmnFactoryWithPropertiesService extends BpmnFactoryService {\r\n\r\n protected getBpmnPropertiesPanelConfig() {\r\n const camundaDescriptors = false;\r\n\r\n return [\r\n propertiesPanelModule,\r\n ...(camundaDescriptors ? camundaPropertiesProviderModule : bpmnPropertiesProviderModule)\r\n ];\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { BpmnFactoryToken } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { BpmnFactoryWithPropertiesService } from './bpmn-factory-with-properties.service';\r\n\r\n/** @deprecated: bpmnjs-properties */\r\n@NgModule({\r\n providers: [\r\n { provide: BpmnFactoryToken, useClass: BpmnFactoryWithPropertiesService }\r\n ]\r\n})\r\nexport class BpmnjsPropertiesModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { CoreModule, AppConfigService, DebugAppConfigService, TRANSLATION_PROVIDER } from '@alfresco/adf-core';\r\nimport { ProcessServicesCloudModule } from '@alfresco/adf-process-services-cloud';\r\n@NgModule({\r\n imports: [ CoreModule.forRoot(), ProcessServicesCloudModule ],\r\n exports: [ CoreModule, ProcessServicesCloudModule ],\r\n providers: [\r\n { provide: AppConfigService, useClass: DebugAppConfigService },\r\n { provide: TRANSLATION_PROVIDER, multi: true, useValue: { name: 'app', source: 'resources' } }\r\n ]\r\n})\r\nexport class AdfModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Params, RouterStateSnapshot } from '@angular/router';\r\nimport { RouterReducerState, RouterStateSerializer } from '@ngrx/router-store';\r\n\r\nexport interface RouterStateUrl {\r\n override: 'AmaRouterStateSerializer';\r\n url: string;\r\n params: Params;\r\n queryParams: Params;\r\n}\r\n\r\nexport interface State {\r\n router: RouterReducerState;\r\n}\r\n\r\nexport class AmaRouterStateSerializer implements RouterStateSerializer {\r\n serialize(routerState: RouterStateSnapshot): RouterStateUrl {\r\n let route = routerState.root;\r\n\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n\r\n const {\r\n url,\r\n root: { queryParams }\r\n } = routerState;\r\n const { params } = route;\r\n\r\n // Only return an object including the URL, params and query params\r\n // instead of the entire snapshot\r\n return { override: 'AmaRouterStateSerializer', url, params, queryParams };\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { ErrorService } from './error.service';\r\nimport { Store } from '@ngrx/store';\r\nimport { SnackbarErrorAction } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n\r\n constructor(private injector: Injector) { }\r\n\r\n handleError(error: Error | HttpErrorResponse) {\r\n\r\n const errorService = this.injector.get(ErrorService);\r\n const store = this.injector.get(Store);\r\n\r\n let message;\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n message = errorService.getServerMessage(error);\r\n store.dispatch(new SnackbarErrorAction(message));\r\n } else {\r\n if (!this.isFailedECMLogin(error)) {\r\n message = errorService.getClientMessage(error);\r\n store.dispatch(new SnackbarErrorAction(message));\r\n }\r\n }\r\n console.error(error);\r\n }\r\n\r\n private isFailedECMLogin(error: any): boolean {\r\n let isFailedECMLoginError = false;\r\n if ( error.rejection && error.rejection.error && error.rejection.error.url) {\r\n isFailedECMLoginError = error.rejection.error.url.includes('authentication/versions/1/tickets/-me-');\r\n }\r\n return isFailedECMLoginError;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorService {\r\n\r\n getClientMessage(error: Error): string {\r\n if (!navigator.onLine) {\r\n return 'No Internet Connection';\r\n }\r\n return error.message ? error.message : error.toString();\r\n }\r\n\r\n getClientStack(error: Error): string {\r\n return error.stack;\r\n }\r\n\r\n getServerMessage(error: HttpErrorResponse): string {\r\n return error.message;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n MatDialogModule,\r\n MatInputModule,\r\n MatProgressBarModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSlideToggleModule,\r\n MatCardModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatToolbarModule,\r\n MatSnackBarModule,\r\n MatExpansionModule,\r\n MatTableModule,\r\n MatBadgeModule\r\n} from '@angular/material';\r\n\r\nconst MATERIAL_MODULES = [\r\n MatSlideToggleModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatDialogModule,\r\n MatSidenavModule,\r\n MatProgressBarModule,\r\n MatCardModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatToolbarModule,\r\n MatSnackBarModule,\r\n MatExpansionModule,\r\n MatTableModule,\r\n MatBadgeModule\r\n];\r\n\r\n@NgModule({\r\n imports: MATERIAL_MODULES,\r\n exports: MATERIAL_MODULES\r\n})\r\nexport class MaterialModule {\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\nimport { LoggedInAction } from '../../store/actions/app.actions';\r\n\r\n@Injectable()\r\nexport class AmaLocalStorageMergeGuard implements CanActivate {\r\n constructor(\r\n protected router: Router,\r\n protected store: Store\r\n ) {}\r\n\r\n canActivate(): Observable {\r\n this.store.dispatch(new LoggedInAction());\r\n return of(true);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { Observable, of, zip } from 'rxjs';\r\nimport {\r\n SCHEMA_API_TOKEN,\r\n ModelSchemaApi,\r\n CodeEditorService,\r\n getFileUriPattern,\r\n SchemaModelMap,\r\n Json,\r\n LogFactoryService,\r\n AmaState,\r\n MODEL_SCHEMAS_TO_LOAD,\r\n AssignmentMode\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { tap, map, catchError } from 'rxjs/operators';\r\nimport { Store } from '@ngrx/store';\r\nimport { getBackendLogInitiator } from './application.constants';\r\nimport assigneeSchema from './../../../../resources/schema/assignee-schema.json';\r\nimport candidateSchema from './../../../../resources/schema/candidates-schema.json';\r\n\r\nexport enum TaskAssignmentSchema {\r\n assigneeURI = 'TASK-ASSIGNEE-EXTENSION',\r\n candidatesURI = 'TASK-CANDIDATE-EXTENSION'\r\n}\r\n\r\n@Injectable()\r\nexport class AmaModelSchemaLoaderGuard implements CanActivate {\r\n constructor(\r\n @Inject(SCHEMA_API_TOKEN) private modelSchemaApi: ModelSchemaApi,\r\n @Inject(MODEL_SCHEMAS_TO_LOAD) private schemas: SchemaModelMap[],\r\n private codeEditorService: CodeEditorService,\r\n private store: Store,\r\n private logFactory: LogFactoryService\r\n ) {}\r\n\r\n canActivate(): Observable {\r\n this.registerTemporaryTaskAssignmentSchema();\r\n const schemaLoaders = this.schemas.map>(this.registerMonacoJsonSchema.bind(this));\r\n return zip(...schemaLoaders).pipe(\r\n map(() => true),\r\n catchError(error => {\r\n this.store.dispatch(this.logFactory.logError(getBackendLogInitiator(), error.message));\r\n return of(true);\r\n })\r\n );\r\n }\r\n\r\n private registerMonacoJsonSchema({ schemaKey, modelType, transform }: SchemaModelMap) {\r\n return this.modelSchemaApi.retrieve(schemaKey).pipe(\r\n catchError(() => {\r\n throw new Error(`${schemaKey} could not be loaded for model type: ${modelType}`);\r\n }),\r\n tap((schema) => {\r\n const monacoSchema = transform ? transform(schema) : schema;\r\n this.codeEditorService.addSchema(schemaKey, getFileUriPattern(modelType, 'json'), monacoSchema);\r\n })\r\n );\r\n }\r\n\r\n private registerTemporaryTaskAssignmentSchema() {\r\n this.codeEditorService.addSchema(TaskAssignmentSchema.assigneeURI, getFileUriPattern(AssignmentMode.assignee, 'json'), assigneeSchema);\r\n this.codeEditorService.addSchema(TaskAssignmentSchema.candidatesURI, getFileUriPattern(AssignmentMode.candidates, 'json'), candidateSchema);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, combineLatest, BehaviorSubject } from 'rxjs';\r\nimport { LogMessage, MESSAGE, SetLogHistoryVisibilityAction, AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { map, tap } from 'rxjs/operators';\r\nimport { ClearLogHistoryAction } from '../../../app/store/actions/app.actions';\r\nimport { selectToolbarUserMessage, selectToolbarInProgress, selectToolbarLogs, selectToolbarLogsVisibility } from '../../../app/store/selectors/app.selectors';\r\nimport { EditorFooterService } from '../../app/app-layout/editor-footer/editor-footer.service.interface';\r\n\r\n@Injectable()\r\nexport class AppFooterService implements EditorFooterService {\r\n userMessage$: Observable;\r\n inProgress$: Observable;\r\n logs$: Observable;\r\n newErrorNumber$: Observable;\r\n isNewError$: Observable;\r\n logHistoryVisibility$: Observable;\r\n\r\n errorNumberKnown$ = new BehaviorSubject(0);\r\n lastlyAccumulatedErrorNumber = 0;\r\n\r\n constructor(private store: Store) {\r\n this.userMessage$ = this.store.select(selectToolbarUserMessage);\r\n this.inProgress$ = this.store.select(selectToolbarInProgress);\r\n this.logs$ = this.store.select(selectToolbarLogs);\r\n this.logHistoryVisibility$ = this.store.select(selectToolbarLogsVisibility);\r\n this.setErrorIndicators();\r\n }\r\n\r\n setHistoryVisibility(visibility: boolean) {\r\n this.errorNumberKnown$.next(this.lastlyAccumulatedErrorNumber);\r\n this.store.dispatch(new SetLogHistoryVisibilityAction(visibility));\r\n }\r\n\r\n clearLogs() {\r\n this.store.dispatch(new ClearLogHistoryAction());\r\n }\r\n\r\n private setErrorIndicators() {\r\n const newErrorNumber$ = combineLatest(this.logs$, this.errorNumberKnown$).pipe(\r\n map(([logs, errorNumberKnown]) => [logs.filter(log => log.type === MESSAGE.ERROR).length, errorNumberKnown]),\r\n tap(([errorNumber]) => this.lastlyAccumulatedErrorNumber = errorNumber),\r\n map(([errorNumber, errorNumberKnown]) => errorNumber - errorNumberKnown)\r\n );\r\n\r\n this.newErrorNumber$ = combineLatest(newErrorNumber$, this.logHistoryVisibility$).pipe(\r\n map(([errorNumber, visible]) => visible ? 0 : errorNumber)\r\n );\r\n\r\n this.isNewError$ = this.newErrorNumber$.pipe(\r\n map(newErrorNumber => newErrorNumber > 0)\r\n );\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { LogMessageInitiator } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const APPLICATION_LOGS = 'Application';\r\nexport const BE_LOGS = 'Backend';\r\n\r\nexport function getBackendLogInitiator(extra?: any): LogMessageInitiator {\r\n return {\r\n key: BE_LOGS,\r\n displayName: 'APP.BACKEND_SERVICE',\r\n extra\r\n };\r\n}\r\n\r\nexport function getAppLogInitiator(extra?: any): LogMessageInitiator {\r\n return {\r\n key: APPLICATION_LOGS,\r\n displayName: 'APP.APPLICATION',\r\n extra\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Injector, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n MODEL_TYPE,\r\n Model,\r\n REGISTERED_MODELS_TOKEN,\r\n ModelRegistration\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class ModelStorageService {\r\n constructor(\r\n private injector: Injector,\r\n @Inject(REGISTERED_MODELS_TOKEN) private modelApiStorageRelations: ModelRegistration[]\r\n ) {}\r\n\r\n fetchAll(projectId: string, modelType: MODEL_TYPE): Observable {\r\n return this.getStorageApi(modelType).getList(projectId);\r\n }\r\n\r\n public getStorageKey(modelType: MODEL_TYPE) {\r\n const modelApiStorageRelation = this.modelApiStorageRelations\r\n .find(relation => relation.modelType === modelType);\r\n\r\n return modelApiStorageRelation.entityKey;\r\n }\r\n\r\n private getStorageApi(modelType: MODEL_TYPE) {\r\n const modelApiStorageRelation = this.modelApiStorageRelations\r\n .find(relation => relation.modelType === modelType);\r\n\r\n return this.injector.get(modelApiStorageRelation.token);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Router, Route } from '@angular/router';\r\nconst cloneDeep = require('lodash/cloneDeep');\r\n\r\nconst TARGET_PROPERTY = 'injectTo',\r\n HOST_PROPERTY = 'hostFor';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PluginRoutesManagerService {\r\n constructor(private router: Router) {}\r\n\r\n patchRoutes(): void {\r\n const pluginRoutes = this.router.config.filter(this.isPluginRoute),\r\n projectRoutes = this.router.config.filter(route => !this.isPluginRoute(route));\r\n\r\n const routes = this.injectPluginRoutes(projectRoutes, pluginRoutes);\r\n this.router.resetConfig(routes);\r\n }\r\n\r\n private injectPluginRoutes(routes: Route[], pluginRoutes: Route[]) {\r\n return routes.map(projectRoute => {\r\n const route = cloneDeep(projectRoute);\r\n const hostFor = route.data && route.data[HOST_PROPERTY];\r\n\r\n if (route.children) {\r\n route.children = this.injectPluginRoutes(route.children, pluginRoutes);\r\n }\r\n\r\n if (hostFor) {\r\n const pluginRoutesToInject = this.getRoutesForHost(hostFor, pluginRoutes);\r\n route.children = route.children.concat(pluginRoutesToInject);\r\n }\r\n\r\n return route;\r\n });\r\n }\r\n\r\n private isPluginRoute (route: Route) {\r\n return route.data && route.data[TARGET_PROPERTY];\r\n }\r\n\r\n private getRoutesForHost(hostFor: string, pluginRoutes: Route[]) {\r\n return pluginRoutes.filter(pluginRoute => {\r\n return pluginRoute.data[TARGET_PROPERTY] === hostFor;\r\n });\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentRegisterService } from '@alfresco/adf-extensions';\r\nimport { Store } from '@ngrx/store';\r\nimport { selectSelectedConnectorContent, selectConnectorLoadingState, selectSelectedConnectorId } from '../../store/connector-editor.selectors';\r\nimport { map, filter } from 'rxjs/operators';\r\nimport { Observable, of } from 'rxjs';\r\nimport { ChangeConnectorContent } from '../../store/connector-editor.actions';\r\nimport {\r\n AmaState,\r\n selectSelectedTheme,\r\n ConnectorContent,\r\n CodeValidatorService,\r\n ValidationResponse,\r\n AdvancedConnectorEditorData,\r\n AdvancedConnectorEditorKey,\r\n CONNECTOR,\r\n getFileUri,\r\n ToolbarMessageAction,\r\n CodeEditorPosition\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { MatTabChangeEvent } from '@angular/material';\r\nconst memoize = require('lodash/memoize');\r\n\r\n@Component({\r\n templateUrl: './connector-editor.component.html'\r\n})\r\n\r\nexport class ConnectorEditorComponent {\r\n disableSave = false;\r\n\r\n connectorId$: Observable;\r\n vsTheme$: Observable;\r\n editorContent$: Observable;\r\n loadingState$: Observable;\r\n componentKey = AdvancedConnectorEditorKey;\r\n\r\n boundOnChangeAttempt: any;\r\n getMemoizedDynamicComponentData: any;\r\n fileUri$: Observable;\r\n languageType: string;\r\n tabNames = [\r\n 'CONNECTOR_EDITOR.TABS.CONNECTOR_EDITOR',\r\n 'CONNECTOR_EDITOR.TABS.JSON_EDITOR'\r\n ];\r\n selectedTabIndex = 0;\r\n\r\n constructor(\r\n private store: Store,\r\n private codeValidatorService: CodeValidatorService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private componentRegister: ComponentRegisterService\r\n ) {\r\n this.vsTheme$ = this.getVsTheme();\r\n this.loadingState$ = this.store.select(selectConnectorLoadingState);\r\n this.connectorId$ = this.store.select(selectSelectedConnectorId);\r\n this.editorContent$ = this.store.select(selectSelectedConnectorContent).pipe(\r\n filter(content => !!content),\r\n map(content => JSON.stringify(content, undefined, 4).trim())\r\n );\r\n\r\n this.boundOnChangeAttempt = this.onChangeAttempt.bind(this);\r\n this.getMemoizedDynamicComponentData = memoize((connectorContent, onChangeAttempt) => {\r\n return { connectorContent, onChangeAttempt };\r\n });\r\n\r\n this.languageType = 'json';\r\n this.fileUri$ = this.connectorId$.pipe(\r\n map(id => getFileUri(CONNECTOR, this.languageType, id))\r\n );\r\n }\r\n\r\n onTabChange(event: MatTabChangeEvent): void {\r\n this.disableSave = false;\r\n this.selectedTabIndex = event.index;\r\n this.store.dispatch(new ToolbarMessageAction(this.tabNames[this.selectedTabIndex]));\r\n }\r\n\r\n isAdvancedEditorEmbedded(): boolean {\r\n return this.componentRegister.hasComponentById(this.componentKey);\r\n }\r\n\r\n getDynamicComponentData(editorContent: string): AdvancedConnectorEditorData {\r\n return this.getMemoizedDynamicComponentData(editorContent, this.boundOnChangeAttempt);\r\n }\r\n\r\n onChangeAttempt(connectorContentString: string): void {\r\n this.disableSave = !this.validate(connectorContentString).valid;\r\n\r\n if (!this.disableSave) {\r\n this.editorContent$ = of(connectorContentString);\r\n this.store.dispatch(new ChangeConnectorContent());\r\n }\r\n\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private validate(connectorContentString: string): ValidationResponse {\r\n return this.codeValidatorService.validateJson(connectorContentString);\r\n }\r\n\r\n private getVsTheme(): Observable {\r\n return this.store\r\n .select(selectSelectedTheme)\r\n .pipe(map(theme => (theme.className === 'dark-theme' ? 'vs-dark' : 'vs-light')));\r\n }\r\n\r\n codeEditorPositionChanged(position: CodeEditorPosition) {\r\n if (!this.isAdvancedEditorEmbedded() || this.selectedTabIndex > 0 ) {\r\n this.store.dispatch(new ToolbarMessageAction(`Ln ${position.lineNumber}, Col ${position.column}`));\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { Observable, combineLatest, of } from 'rxjs';\r\nimport { BreadcrumbItem, AmaState, OpenConfirmDialogAction, selectProjectCrumb, SnackbarInfoAction, SnackbarErrorAction } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\nimport { filter } from 'rxjs/operators';\r\nimport { selectConnectorCrumb } from '../../store/connector-editor.selectors';\r\nimport {\r\n DeleteConnectorAttemptAction,\r\n ValidateConnectorAttemptAction,\r\n DownloadConnectorAction,\r\n UpdateConnectorContentAttemptAction\r\n} from '../../store/connector-editor.actions';\r\n\r\n@Component({\r\n selector: 'ama-connector-header',\r\n templateUrl: './connector-header.component.html'\r\n})\r\nexport class ConnectorHeaderComponent {\r\n\r\n @Input()\r\n disableSave = false;\r\n\r\n @Input()\r\n connectorId: string;\r\n\r\n @Input()\r\n content: string;\r\n\r\n @Output()\r\n download = new EventEmitter();\r\n breadcrumbs$: Observable;\r\n\r\n constructor(private store: Store) {\r\n this.breadcrumbs$ = combineLatest(\r\n of({ url: '/home', name: 'Dashboard' }),\r\n this.store.select(selectProjectCrumb).pipe(filter(value => value !== null)),\r\n this.store.select(selectConnectorCrumb).pipe(filter(value => value !== null))\r\n );\r\n }\r\n\r\n onSave() {\r\n this.store.dispatch(new ValidateConnectorAttemptAction({\r\n title: 'APP.DIALOGS.CONFIRM.SAVE.CONNECTOR',\r\n connectorId: this.connectorId,\r\n connectorContent: JSON.parse(this.content),\r\n action: new UpdateConnectorContentAttemptAction(JSON.parse(this.content))\r\n }));\r\n }\r\n\r\n onDelete() {\r\n this.store.dispatch(\r\n new OpenConfirmDialogAction({\r\n dialogData: { title: 'APP.DIALOGS.CONFIRM.DELETE.CONNECTOR' },\r\n action: new DeleteConnectorAttemptAction(this.connectorId)\r\n })\r\n );\r\n }\r\n\r\n onDownload() {\r\n this.store.dispatch(new ValidateConnectorAttemptAction({\r\n title: 'APP.DIALOGS.CONFIRM.DOWNLOAD.CONNECTOR',\r\n connectorId: this.connectorId,\r\n connectorContent: JSON.parse(this.content),\r\n action: new DownloadConnectorAction()\r\n }));\r\n }\r\n\r\n onValidate() {\r\n this.store.dispatch(new ValidateConnectorAttemptAction({\r\n title: null,\r\n connectorId: this.connectorId,\r\n connectorContent: JSON.parse(this.content),\r\n action: new SnackbarInfoAction('CONNECTOR_EDITOR.CONNECTOR_VALID'),\r\n errorAction: new SnackbarErrorAction('CONNECTOR_EDITOR.CONNECTOR_INVALID')\r\n }));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CoreModule } from '@alfresco/adf-core';\r\nimport { ExtensionsModule } from '@alfresco/adf-extensions';\r\n\r\nimport { ConnectorEditorComponent } from './components/connector-editor/connector-editor.component';\r\nimport { ConnectorEditorRoutingModule } from './router/connector-editor-routing.module';\r\nimport { ConnectorHeaderComponent } from './components/connector-header/connector-header.component';\r\nimport {\r\n CodeEditorModule,\r\n SharedModule,\r\n provideTranslations,\r\n CONNECTORS_ENTITY_KEY,\r\n AmaStoreModule,\r\n provideLogFilter,\r\n selectProjectConnectorsArray,\r\n CONNECTOR_SELECTORS_TOKEN,\r\n provideLoadableModelSchema,\r\n CONNECTOR,\r\n MODEL_SCHEMA_TYPE\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { ConnectorEditorEffects } from './store/connector-editor.effects';\r\nimport { ConnectorEditorService } from './services/connector-editor.service';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { CONNECTOR_EDITOR_STATE_NAME } from './store/connector-editor.selectors';\r\nimport { connectorEditorReducer } from './store/connector-editor.reducer';\r\nimport { connectorEntitiesReducer } from './store/connector-entities.reducer';\r\nimport { getConnectorsFilterProvider } from './extension/connectors-filter.extension';\r\nimport { getConnectorCreatorProvider } from './extension/connector-creator.extension';\r\nimport { getConnectorUploaderProvider } from './extension/connector-uploader.extension';\r\nimport { getConnectorLogInitiator } from './services/connector-editor.constants';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CoreModule.forChild(),\r\n ExtensionsModule,\r\n ConnectorEditorRoutingModule,\r\n SharedModule,\r\n CodeEditorModule,\r\n EffectsModule.forFeature([ConnectorEditorEffects]),\r\n AmaStoreModule.registerEntity({\r\n key: CONNECTORS_ENTITY_KEY,\r\n reducer: connectorEntitiesReducer\r\n }),\r\n StoreModule.forFeature(CONNECTOR_EDITOR_STATE_NAME, connectorEditorReducer)\r\n ],\r\n declarations: [\r\n ConnectorEditorComponent,\r\n ConnectorHeaderComponent,\r\n ],\r\n exports: [ ConnectorEditorRoutingModule ],\r\n providers: [\r\n ConnectorEditorService,\r\n provideTranslations('connector-editor'),\r\n ...getConnectorsFilterProvider(),\r\n ...getConnectorCreatorProvider(),\r\n ...getConnectorUploaderProvider(),\r\n provideLogFilter(getConnectorLogInitiator()),\r\n provideLoadableModelSchema({\r\n modelType: CONNECTOR,\r\n schemaKey: MODEL_SCHEMA_TYPE.CONNECTOR\r\n }),\r\n { provide: CONNECTOR_SELECTORS_TOKEN, useValue: selectProjectConnectorsArray }\r\n ]\r\n})\r\nexport class ConnectorEditorModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { MODEL_CREATORS, createConnectorCreator } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport function createConnector() {\r\n return createConnectorCreator();\r\n}\r\n\r\nexport function getConnectorCreatorProvider() {\r\n return [\r\n { provide: MODEL_CREATORS, useFactory: createConnector, multi: true }\r\n ];\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ModelUploader, MODEL_UPLOADERS, CONNECTOR, CONNECTOR_FILE_FORMAT } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { UploadConnectorAttemptAction } from '../store/connector-editor.actions';\r\n\r\nexport function createConnectorUploader(): ModelUploader {\r\n return {\r\n type: CONNECTOR,\r\n acceptedFileType: CONNECTOR_FILE_FORMAT,\r\n action: UploadConnectorAttemptAction\r\n };\r\n}\r\n\r\nexport function getConnectorUploaderProvider() {\r\n return [\r\n {\r\n provide: MODEL_UPLOADERS,\r\n useFactory: createConnectorUploader,\r\n multi: true\r\n }\r\n ];\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n Connector,\r\n CONNECTOR,\r\n FilterDataAdapter,\r\n AmaState,\r\n CONNECTOR_SELECTORS_TOKEN,\r\n Filter\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store, MemoizedSelector } from '@ngrx/store';\r\nimport { selectConnectorsLoading } from '../store/connector-editor.selectors';\r\nimport { ShowConnectorsAction } from '../store/connector-editor.actions';\r\n\r\n@Injectable()\r\nexport class ConnectorsFilterDataAdapter implements FilterDataAdapter {\r\n constructor(\r\n private store: Store,\r\n @Inject(CONNECTOR_SELECTORS_TOKEN) private selectProjectConnectorsArray: MemoizedSelector\r\n ) {}\r\n\r\n get expandedPredicate() {\r\n return (filters) => filters.indexOf(CONNECTOR) !== -1;\r\n }\r\n\r\n get contents(): Observable {\r\n return this.store.select(this.selectProjectConnectorsArray);\r\n }\r\n\r\n get loading(): Observable {\r\n return this.store.select(selectConnectorsLoading);\r\n }\r\n\r\n load(projectId: string): void {\r\n this.store.dispatch(new ShowConnectorsAction(projectId));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { MODEL_FILTERS, CONNECTOR, ModelFilter, CONNECTOR_ICON } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ConnectorsFilterDataAdapter } from './connectors-filter.data-adapter';\r\n\r\nexport function createConnectorsFilter(connectorsFilterDataAdapter: ConnectorsFilterDataAdapter): ModelFilter {\r\n return {\r\n type: CONNECTOR,\r\n name: 'PROJECT_EDITOR.TREE.CONNECTORS',\r\n icon: CONNECTOR_ICON,\r\n adapter: connectorsFilterDataAdapter,\r\n order: 2\r\n };\r\n}\r\n\r\nexport function getConnectorsFilterProvider() {\r\n return [\r\n ConnectorsFilterDataAdapter,\r\n {\r\n provide: MODEL_FILTERS,\r\n useFactory: createConnectorsFilter,\r\n deps: [ConnectorsFilterDataAdapter],\r\n multi: true\r\n }\r\n ];\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { ConnectorLoaderGuard } from './guards/connector-loader.guard';\r\nimport { UnsavedPageGuard } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { connectorEditorRoutes } from './connector-editor.routes';\r\nimport { ConnectorsLoaderGuard } from './guards/connectors-loader.guard';\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forChild(connectorEditorRoutes)\r\n ],\r\n providers: [\r\n ConnectorsLoaderGuard,\r\n ConnectorLoaderGuard,\r\n UnsavedPageGuard\r\n ],\r\n exports: [ RouterModule ]\r\n})\r\nexport class ConnectorEditorRoutingModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Routes } from '@angular/router';\r\nimport { ConnectorLoaderGuard } from './guards/connector-loader.guard';\r\nimport { ConnectorEditorComponent } from '../components/connector-editor/connector-editor.component';\r\nimport { UnsavedPageGuard, CONNECTOR, MODULE_EDITOR_ROUTES } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ConnectorsLoaderGuard } from './guards/connectors-loader.guard';\r\n\r\nexport const connectorEditorRoutes: Routes = [\r\n {\r\n path: CONNECTOR,\r\n data: { injectTo: MODULE_EDITOR_ROUTES },\r\n children: [\r\n {\r\n path: ':connectorId',\r\n canActivate: [ ConnectorLoaderGuard ],\r\n canDeactivate: [ UnsavedPageGuard ],\r\n component: ConnectorEditorComponent\r\n }\r\n ],\r\n canActivate: [ ConnectorsLoaderGuard ]\r\n }\r\n];\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { ProjectEditorState, LoadConnectorAttemptAction, SetAppDirtyStateAction } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class ConnectorLoaderGuard implements CanActivate {\r\n\r\n constructor(private store: Store) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n const connectorId = route.params.connectorId;\r\n this.store.dispatch(new SetAppDirtyStateAction(false));\r\n this.store.dispatch(new LoadConnectorAttemptAction(connectorId));\r\n return of(true);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { AmaState, OpenFilterAction, CONNECTOR } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ShowConnectorsAction } from '../../store/connector-editor.actions';\r\n\r\n@Injectable()\r\nexport class ConnectorsLoaderGuard implements CanActivate {\r\n constructor(private store: Store) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n const projectId = route.params.projectId;\r\n this.store.dispatch(new ShowConnectorsAction(projectId));\r\n this.store.dispatch(new OpenFilterAction(CONNECTOR));\r\n\r\n return of(true);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { LogMessageInitiator } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const CONNECTOR_EDITOR_LOGS = 'Connector Editor';\r\n\r\nexport function getConnectorLogInitiator(extra?: any): LogMessageInitiator {\r\n return {\r\n key: CONNECTOR_EDITOR_LOGS,\r\n displayName: 'CONNECTOR_EDITOR.NAME',\r\n extra\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n DownloadResourceService,\r\n UploadFileAttemptPayload,\r\n EntityDialogForm,\r\n ConnectorContent,\r\n Connector,\r\n CONNECTOR_FILE_FORMAT,\r\n CONNECTOR_API_TOKEN,\r\n ModelApiInterface\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class ConnectorEditorService {\r\n constructor(\r\n @Inject(CONNECTOR_API_TOKEN) private connectorApi: ModelApiInterface,\r\n private downloadService: DownloadResourceService\r\n ) {}\r\n\r\n update(connectorId: string, model: Connector, content: ConnectorContent, projectId: string): Observable {\r\n return this.connectorApi.update(connectorId, model, content, projectId);\r\n }\r\n\r\n getDetails(connectorId: string, projectId: string) {\r\n return this.connectorApi.retrieve(connectorId, projectId);\r\n }\r\n\r\n getContent(connectorId: string) {\r\n return this.connectorApi.export(connectorId);\r\n }\r\n\r\n delete(connectorId: string) {\r\n return this.connectorApi.delete(connectorId);\r\n }\r\n\r\n create(form: Partial, projectId: string): Observable {\r\n return this.connectorApi.create(form, projectId);\r\n }\r\n\r\n fetchAll(projectId: string): Observable {\r\n return this.connectorApi.getList(projectId);\r\n }\r\n\r\n upload(payload: UploadFileAttemptPayload): Observable> {\r\n return this.connectorApi.import(payload.file, payload.projectId);\r\n }\r\n\r\n download(connectorName: string, connectorData: string) {\r\n const blob = new Blob([connectorData], { type: 'octet/stream' });\r\n this.downloadService.downloadResource(connectorName, blob, CONNECTOR_FILE_FORMAT);\r\n }\r\n\r\n validate(id: string, content: ConnectorContent) {\r\n return this.connectorApi.validate(id, content);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { Update } from '@ngrx/entity';\r\nimport {\r\n EntityDialogForm,\r\n GetConnectorAttemptAction,\r\n UploadFileAttemptPayload,\r\n Connector,\r\n ConnectorContent,\r\n CreateConnectorAttemptAction\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport interface ValidateConnectorPayload {\r\n title: string;\r\n connectorId: string;\r\n connectorContent: ConnectorContent;\r\n action: Action;\r\n errorAction?: Action;\r\n}\r\n\r\nexport const VALIDATE_CONNECTOR_ATTEMPT = '[Connector] Validate attempt';\r\nexport class ValidateConnectorAttemptAction implements Action {\r\n readonly type = VALIDATE_CONNECTOR_ATTEMPT;\r\n constructor(public payload: ValidateConnectorPayload) {}\r\n}\r\n\r\nexport const CHANGE_CONNECTOR_CONTENT = '[Connector] Content change';\r\nexport class ChangeConnectorContent implements Action {\r\n readonly type = CHANGE_CONNECTOR_CONTENT;\r\n constructor() {}\r\n}\r\n\r\nexport interface UpdateConnectorPayload {\r\n connectorId: string;\r\n projectId: string;\r\n form: Partial;\r\n}\r\n\r\nexport interface ConnectorDialogPayload {\r\n projectId: string;\r\n connector?: Connector;\r\n}\r\n\r\nexport const SHOW_CONNECTORS = '[Connectors] Show the list';\r\nexport class ShowConnectorsAction implements Action {\r\n readonly type = SHOW_CONNECTORS;\r\n constructor(public projectId: string) {}\r\n}\r\n\r\nexport const GET_CONNECTORS_ATTEMPT = '[Connectors] Get attempt';\r\nexport class GetConnectorsAttemptAction implements Action {\r\n readonly type = GET_CONNECTORS_ATTEMPT;\r\n constructor(public projectId: string) {}\r\n}\r\n\r\nexport const GET_CONNECTORS_SUCCESS = '[Connectors] Get success';\r\nexport class GetConnectorsSuccessAction implements Action {\r\n readonly type = GET_CONNECTORS_SUCCESS;\r\n constructor(public connectors: Connector[]) {}\r\n}\r\n\r\nexport const GET_CONNECTOR_SUCCESS = '[Connector] Get success';\r\nexport class GetConnectorSuccessAction implements Action {\r\n readonly type = GET_CONNECTOR_SUCCESS;\r\n constructor(public connector: Connector, public connectorContent: ConnectorContent) {}\r\n}\r\n\r\nexport const UPDATE_CONNECTOR_CONTENT_ATTEMPT = '[Connector] Update content attempt';\r\nexport class UpdateConnectorContentAttemptAction implements Action {\r\n readonly type = UPDATE_CONNECTOR_CONTENT_ATTEMPT;\r\n constructor(public payload: ConnectorContent) {}\r\n}\r\n\r\nexport const UPDATE_CONNECTOR_SUCCESS = '[Connector] Update success';\r\nexport class UpdateConnectorSuccessAction implements Action {\r\n readonly type = UPDATE_CONNECTOR_SUCCESS;\r\n constructor(public connector: Update>) {}\r\n}\r\n\r\nexport const DELETE_CONNECTOR_ATTEMPT = '[Connector] Delete attempt';\r\nexport class DeleteConnectorAttemptAction implements Action {\r\n readonly type = DELETE_CONNECTOR_ATTEMPT;\r\n constructor(public connectorId: string) {}\r\n}\r\n\r\nexport const DELETE_CONNECTOR_SUCCESS = '[Connector] Delete success';\r\nexport class DeleteConnectorSuccessAction implements Action {\r\n readonly type = DELETE_CONNECTOR_SUCCESS;\r\n constructor(public connectorId: string) {}\r\n}\r\n\r\nexport const UPLOAD_CONNECTOR_ATTEMPT = '[Connector] Upload file';\r\nexport class UploadConnectorAttemptAction implements Action {\r\n readonly type = UPLOAD_CONNECTOR_ATTEMPT;\r\n constructor(public payload: UploadFileAttemptPayload) {}\r\n}\r\n\r\nexport const DOWNLOAD_CONNECTOR = '[Connector] Download connector';\r\nexport class DownloadConnectorAction implements Action {\r\n readonly type = DOWNLOAD_CONNECTOR;\r\n constructor() {}\r\n}\r\n\r\nexport const CHANGE_CONNECTOR_SETTINGS = '[Connector] Changed connector settings';\r\nexport class ChangedConnectorSettingsAction implements Action {\r\n readonly type = CHANGE_CONNECTOR_SETTINGS;\r\n constructor(public isChecked: boolean) {}\r\n}\r\n\r\nexport type ConnectorActions =\r\n | ShowConnectorsAction\r\n | UploadConnectorAttemptAction\r\n | GetConnectorsAttemptAction\r\n | GetConnectorsSuccessAction\r\n | GetConnectorAttemptAction\r\n | GetConnectorSuccessAction\r\n | CreateConnectorAttemptAction\r\n | UpdateConnectorContentAttemptAction\r\n | UpdateConnectorSuccessAction\r\n | DeleteConnectorAttemptAction\r\n | DeleteConnectorSuccessAction;\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Actions, Effect, ofType } from '@ngrx/effects';\r\nimport {\r\n GetConnectorSuccessAction,\r\n UpdateConnectorContentAttemptAction,\r\n UPDATE_CONNECTOR_CONTENT_ATTEMPT,\r\n UpdateConnectorSuccessAction,\r\n UPDATE_CONNECTOR_SUCCESS,\r\n DELETE_CONNECTOR_ATTEMPT,\r\n DeleteConnectorAttemptAction,\r\n DeleteConnectorSuccessAction,\r\n DELETE_CONNECTOR_SUCCESS,\r\n GetConnectorsSuccessAction,\r\n GET_CONNECTORS_ATTEMPT,\r\n GetConnectorsAttemptAction,\r\n ShowConnectorsAction,\r\n SHOW_CONNECTORS,\r\n UploadConnectorAttemptAction,\r\n UPLOAD_CONNECTOR_ATTEMPT,\r\n DownloadConnectorAction,\r\n DOWNLOAD_CONNECTOR,\r\n ValidateConnectorAttemptAction,\r\n VALIDATE_CONNECTOR_ATTEMPT,\r\n ValidateConnectorPayload,\r\n ChangedConnectorSettingsAction,\r\n CHANGE_CONNECTOR_SETTINGS,\r\n CHANGE_CONNECTOR_CONTENT,\r\n ChangeConnectorContent\r\n} from './connector-editor.actions';\r\nimport { map, switchMap, catchError, mergeMap, take, withLatestFrom, tap } from 'rxjs/operators';\r\nimport {\r\n EntityDialogForm,\r\n CONNECTOR,\r\n ModelClosedAction,\r\n OpenConfirmDialogAction,\r\n GetConnectorAttemptAction,\r\n GET_CONNECTOR_ATTEMPT,\r\n ModelOpenedAction,\r\n LOAD_CONNECTOR_ATTEMPT,\r\n LoadConnectorAttemptAction,\r\n SetAppDirtyStateAction,\r\n CreateConnectorSuccessAction,\r\n CREATE_CONNECTOR_SUCCESS,\r\n SetApplicationLoadingStateAction,\r\n LogFactoryService,\r\n AmaState,\r\n SnackbarErrorAction,\r\n SnackbarInfoAction,\r\n UploadFileAttemptPayload,\r\n changeFileName,\r\n ConnectorContent,\r\n Connector,\r\n selectSelectedProjectId,\r\n BaseEffects,\r\n CreateConnectorAttemptAction,\r\n CREATE_CONNECTOR_ATTEMPT\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ConnectorEditorService } from '../services/connector-editor.service';\r\nimport { of, zip, forkJoin, Observable } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { LogService, StorageService } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport { selectConnectorsLoaded, selectSelectedConnectorContent, selectSelectedConnector } from './connector-editor.selectors';\r\nimport { getConnectorLogInitiator } from '../services/connector-editor.constants';\r\n\r\n@Injectable()\r\nexport class ConnectorEditorEffects extends BaseEffects {\r\n constructor(\r\n private store: Store,\r\n private actions$: Actions,\r\n private connectorEditorService: ConnectorEditorService,\r\n private storageService: StorageService,\r\n private logFactory: LogFactoryService,\r\n logService: LogService,\r\n router: Router\r\n ) {\r\n super(router, logService);\r\n }\r\n\r\n @Effect()\r\n validateConnectorEffect = this.actions$.pipe(\r\n ofType(VALIDATE_CONNECTOR_ATTEMPT),\r\n mergeMap(action => this.validateConnector(action.payload))\r\n );\r\n\r\n @Effect()\r\n updateConnectorContentEffect = this.actions$.pipe(\r\n ofType(UPDATE_CONNECTOR_CONTENT_ATTEMPT),\r\n map(action => action.payload),\r\n withLatestFrom(this.store.select(selectSelectedConnector), this.store.select(selectSelectedProjectId)),\r\n mergeMap(([content, model, projectId]) => this.updateConnector(model, content, projectId))\r\n );\r\n\r\n @Effect()\r\n deleteConnectorAttemptEffect = this.actions$.pipe(\r\n ofType(DELETE_CONNECTOR_ATTEMPT),\r\n map(action => action.connectorId),\r\n mergeMap(connectorId => this.deleteConnector(connectorId))\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n deleteConnectorSuccessEffect = this.actions$.pipe(\r\n ofType(DELETE_CONNECTOR_SUCCESS),\r\n withLatestFrom(this.store.select(selectSelectedProjectId)),\r\n map(([action, projectId]) => {\r\n this.router.navigate(['/projects', projectId]);\r\n })\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n createConnectorSuccessEffect = this.actions$.pipe(\r\n ofType(CREATE_CONNECTOR_SUCCESS),\r\n withLatestFrom(this.store.select(selectSelectedProjectId)),\r\n tap(([action, projectId]) => {\r\n if (action.navigateTo) {\r\n this.router.navigate(['/projects', projectId, 'connector', action.connector.id]);\r\n }\r\n })\r\n );\r\n\r\n @Effect()\r\n getConnectorEffect = this.actions$.pipe(\r\n ofType(GET_CONNECTOR_ATTEMPT),\r\n mergeMap(action => zip(of(action.connectorId), this.store.select(selectSelectedProjectId))),\r\n switchMap(([connectorId, projectId]) => this.getConnector(connectorId, projectId))\r\n );\r\n\r\n @Effect()\r\n loadConnectorEffect = this.actions$.pipe(\r\n ofType(LOAD_CONNECTOR_ATTEMPT),\r\n mergeMap(action => zip(of(action.connectorId), this.store.select(selectSelectedProjectId))),\r\n switchMap(([connectorId, projectId]) => this.getConnector(connectorId, projectId, true))\r\n );\r\n\r\n @Effect()\r\n changeConnectorContentEffect = this.actions$.pipe(\r\n ofType(CHANGE_CONNECTOR_CONTENT),\r\n mergeMap(() => of(new SetAppDirtyStateAction(true)))\r\n );\r\n\r\n @Effect()\r\n updateConnectorSuccessEffect = this.actions$.pipe(\r\n ofType(UPDATE_CONNECTOR_SUCCESS),\r\n mergeMap(() => [\r\n new SetApplicationLoadingStateAction(false),\r\n new SetAppDirtyStateAction(false)\r\n ])\r\n );\r\n\r\n @Effect()\r\n createConnectorEffect = this.actions$.pipe(\r\n ofType(CREATE_CONNECTOR_ATTEMPT),\r\n mergeMap(action => zip(of(action), this.store.select(selectSelectedProjectId))),\r\n mergeMap(([action, projectId]) => {\r\n return this.createConnector(action.payload, action.navigateTo, projectId, action.callback);\r\n })\r\n );\r\n\r\n @Effect()\r\n showConnectorsEffect = this.actions$.pipe(\r\n ofType(SHOW_CONNECTORS),\r\n map(action => action.projectId),\r\n mergeMap(projectId => zip(of(projectId), this.store.select(selectConnectorsLoaded))),\r\n mergeMap(([projectId, loaded]) => {\r\n if (!loaded) {\r\n return of(new GetConnectorsAttemptAction(projectId));\r\n } else {\r\n return of();\r\n }\r\n })\r\n );\r\n\r\n @Effect()\r\n getConnectorsEffect = this.actions$.pipe(\r\n ofType(GET_CONNECTORS_ATTEMPT),\r\n mergeMap(action => this.getConnectors(action.projectId))\r\n );\r\n\r\n @Effect()\r\n uploadConnectorEffect = this.actions$.pipe(\r\n ofType(UPLOAD_CONNECTOR_ATTEMPT),\r\n switchMap(action => this.uploadConnector(action.payload))\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n downloadConnectorEffect = this.actions$.pipe(\r\n ofType(DOWNLOAD_CONNECTOR),\r\n switchMap(() => this.downloadConnector())\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n changedConnectorSettingsEffect = this.actions$.pipe(\r\n ofType(CHANGE_CONNECTOR_SETTINGS),\r\n tap(action => this.storageService.setItem('showConnectorsWithTemplate', action.isChecked.toString())\r\n ));\r\n\r\n private validateConnector({ connectorId, connectorContent, action, title, errorAction }: ValidateConnectorPayload) {\r\n return this.connectorEditorService.validate(connectorId, connectorContent).pipe(\r\n switchMap(() => [new SetApplicationLoadingStateAction(true), action, new SetApplicationLoadingStateAction(false)]),\r\n catchError(response => {\r\n const errors = JSON.parse(response.message).errors.map(error => error.description);\r\n if (errorAction) {\r\n return [\r\n errorAction,\r\n this.logFactory.logError(getConnectorLogInitiator(), errors)\r\n ];\r\n }\r\n return [\r\n new OpenConfirmDialogAction({\r\n action,\r\n dialogData: {\r\n title: title || 'APP.DIALOGS.CONFIRM.TITLE',\r\n subtitle: 'APP.DIALOGS.ERROR.SUBTITLE',\r\n errors\r\n }\r\n }),\r\n this.logFactory.logError(getConnectorLogInitiator(), errors)\r\n ];\r\n })\r\n );\r\n }\r\n\r\n private uploadConnector(payload: UploadFileAttemptPayload): Observable {\r\n const file = changeFileName(payload.file, payload.file.name);\r\n return this.connectorEditorService.upload({ ...payload, file }).pipe(\r\n switchMap((connector: Connector) => [\r\n new CreateConnectorSuccessAction(connector, true),\r\n new SnackbarInfoAction('CONNECTOR_EDITOR.UPLOAD_SUCCESS')\r\n ]),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleError.bind(this, 'PROJECT_EDITOR.ERROR.UPLOAD_FILE'), e)\r\n )\r\n );\r\n }\r\n\r\n private getConnectors(projectId: string): Observable<{} | GetConnectorsSuccessAction> {\r\n return this.connectorEditorService.fetchAll(projectId).pipe(\r\n mergeMap(connectors => of(new GetConnectorsSuccessAction(connectors))),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleError.bind(this, 'PROJECT_EDITOR.ERROR.LOAD_MODELS'), e)\r\n )\r\n );\r\n }\r\n\r\n private createConnector(form: Partial, navigateTo: boolean,\r\n projectId: string, callback: Function): Observable<{} | SnackbarInfoAction | CreateConnectorSuccessAction> {\r\n return this.connectorEditorService.create(form, projectId).pipe(\r\n tap((connector) => callback && callback(connector)),\r\n mergeMap((connector) => [\r\n new CreateConnectorSuccessAction(connector, navigateTo),\r\n new SnackbarInfoAction('PROJECT_EDITOR.CONNECTOR_DIALOG.CONNECTOR_CREATED')\r\n ]),\r\n catchError(e => this.genericErrorHandler(this.handleConnectorCreationError.bind(this), e))\r\n );\r\n }\r\n\r\n private deleteConnector(connectorId: string): Observable<{} | SnackbarInfoAction | UpdateConnectorSuccessAction> {\r\n return this.connectorEditorService.delete(connectorId).pipe(\r\n mergeMap(() => [\r\n new DeleteConnectorSuccessAction(connectorId),\r\n new ModelClosedAction({id: connectorId, type: CONNECTOR}),\r\n new SetAppDirtyStateAction(false),\r\n new SnackbarInfoAction('PROJECT_EDITOR.CONNECTOR_DIALOG.CONNECTOR_DELETED')\r\n ]),\r\n catchError(e => this.genericErrorHandler(this.handleConnectorUpdatingError.bind(this), e))\r\n );\r\n }\r\n\r\n private updateConnector(connector: Connector, content: ConnectorContent, projectId: string): Observable<{} | SnackbarInfoAction | UpdateConnectorSuccessAction> {\r\n return this.connectorEditorService.update(connector.id, connector, content, projectId).pipe(\r\n switchMap(() => [\r\n new SetApplicationLoadingStateAction(true),\r\n new UpdateConnectorSuccessAction({ id: connector.id, changes: content }),\r\n this.logFactory.logInfo(getConnectorLogInitiator(), 'PROJECT_EDITOR.CONNECTOR_DIALOG.CONNECTOR_UPDATED'),\r\n new SnackbarInfoAction('PROJECT_EDITOR.CONNECTOR_DIALOG.CONNECTOR_UPDATED')\r\n ]),\r\n catchError(e => this.genericErrorHandler(this.handleConnectorUpdatingError.bind(this), e))\r\n );\r\n }\r\n\r\n private getConnector(connectorId: string, projectId: string, loadConnector?: boolean) {\r\n const connectorDetails$ = this.connectorEditorService.getDetails(connectorId, projectId),\r\n connectorContent$ = this.connectorEditorService.getContent(connectorId);\r\n\r\n return forkJoin(connectorDetails$, connectorContent$).pipe(\r\n switchMap(([connector, connectorContent]) => [\r\n new GetConnectorSuccessAction(connector, connectorContent),\r\n ...(loadConnector ? [new ModelOpenedAction({ id: connectorId, type: CONNECTOR })] : [])\r\n ]),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleError.bind(this, 'CONNECTOR_EDITOR.ERRORS.GET_CONNECTOR'), e)\r\n )\r\n );\r\n }\r\n\r\n private handleConnectorUpdatingError(error): Observable {\r\n let errorMessage;\r\n\r\n if (error.status === 409) {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.UPDATE_CONNECTOR.DUPLICATION';\r\n } else {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.UPDATE_CONNECTOR.GENERAL';\r\n }\r\n\r\n return of(new SnackbarErrorAction(errorMessage));\r\n }\r\n\r\n private handleConnectorCreationError(error): Observable {\r\n let errorMessage;\r\n\r\n if (error.status === 409) {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.CREATE_CONNECTOR.DUPLICATION';\r\n } else {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.CREATE_CONNECTOR.GENERAL';\r\n }\r\n\r\n return of(new SnackbarErrorAction(errorMessage));\r\n }\r\n\r\n private handleError(userMessage): Observable {\r\n return of(new SnackbarErrorAction(userMessage));\r\n }\r\n\r\n private downloadConnector() {\r\n return this.store.select(selectSelectedConnectorContent).pipe(\r\n map(content => this.connectorEditorService.download(content.name, JSON.stringify(content))),\r\n map(() => new SetApplicationLoadingStateAction(false)),\r\n take(1)\r\n );\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { ConnectorEditorState, INITIAL_CONNECTOR_EDITOR_STATE } from './connector-editor.state';\r\nimport { GET_CONNECTOR_SUCCESS, UPDATE_CONNECTOR_SUCCESS } from './connector-editor.actions';\r\nimport { GET_CONNECTOR_ATTEMPT, LOAD_CONNECTOR_ATTEMPT } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport function connectorEditorReducer(\r\n state: ConnectorEditorState = { ...INITIAL_CONNECTOR_EDITOR_STATE },\r\n action: Action\r\n): ConnectorEditorState {\r\n let newState: ConnectorEditorState;\r\n\r\n switch (action.type) {\r\n\r\n case GET_CONNECTOR_SUCCESS:\r\n case UPDATE_CONNECTOR_SUCCESS:\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n\r\n case LOAD_CONNECTOR_ATTEMPT:\r\n case GET_CONNECTOR_ATTEMPT:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n\r\n default:\r\n newState = { ...state };\r\n }\r\n\r\n return newState;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createSelector, createFeatureSelector } from '@ngrx/store';\r\nimport {\r\n selectSelectedModelIdFor,\r\n CONNECTOR,\r\n selectConnectorsEntityContainer,\r\n selectConnectorEntities,\r\n selectConnectorEntityContents\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ConnectorEditorState } from './connector-editor.state';\r\n\r\n// TODO: Move these selectors to the modeling-sdk as well\r\n// =================================================================================================\r\nexport const selectConnectorsIds = createSelector(selectConnectorsEntityContainer, state => state.ids);\r\nexport const selectConnectorsLoading = createSelector(selectConnectorsEntityContainer, state => state.loading);\r\nexport const selectConnectorsLoaded = createSelector(selectConnectorsEntityContainer, state => state.loaded);\r\n\r\nexport const selectSelectedConnectorId = selectSelectedModelIdFor(CONNECTOR);\r\n\r\nexport const selectConnectorsArray = createSelector(selectConnectorEntities, state => Object.values(state));\r\n\r\nexport const selectSelectedConnector = createSelector(\r\n selectSelectedConnectorId,\r\n selectConnectorEntities,\r\n (selectedConnectorId, entities) => entities[selectedConnectorId]\r\n);\r\n// =================================================================================================\r\n\r\nexport const CONNECTOR_EDITOR_STATE_NAME = 'connector-editor';\r\nconst getConnectorFeatureState = createFeatureSelector(CONNECTOR_EDITOR_STATE_NAME);\r\n\r\nexport const selectConnectorLoadingState = createSelector(\r\n getConnectorFeatureState,\r\n (state: ConnectorEditorState) => state.loading\r\n);\r\n\r\nexport const selectSelectedConnectorContent = createSelector(\r\n selectSelectedConnectorId,\r\n selectConnectorEntityContents,\r\n (selectedConnectorId, entityContents) => entityContents[selectedConnectorId]\r\n);\r\n\r\nexport const selectConnectorCrumb = createSelector(\r\n selectSelectedConnector,\r\n (selectedConnector) => {\r\n if (!selectedConnector) {\r\n return null;\r\n }\r\n return { name: selectedConnector.name };\r\n }\r\n);\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport interface ConnectorEditorState {\r\n loading: boolean;\r\n}\r\n\r\nexport const INITIAL_CONNECTOR_EDITOR_STATE: ConnectorEditorState = {\r\n loading: false\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport {\r\n GET_CONNECTORS_SUCCESS,\r\n UPDATE_CONNECTOR_SUCCESS,\r\n GET_CONNECTOR_SUCCESS,\r\n GetConnectorSuccessAction,\r\n DELETE_CONNECTOR_SUCCESS,\r\n UpdateConnectorSuccessAction,\r\n GET_CONNECTORS_ATTEMPT,\r\n GetConnectorsSuccessAction,\r\n DeleteConnectorSuccessAction\r\n} from './connector-editor.actions';\r\nimport {\r\n ConnectorContent,\r\n initialConnectorEntitiesState,\r\n ConnectorEntitiesState,\r\n connectorEntityAdapter,\r\n LEAVE_PROJECT,\r\n CreateConnectorSuccessAction,\r\n CREATE_CONNECTOR_SUCCESS\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Action } from '@ngrx/store';\r\n\r\nexport function connectorEntitiesReducer(\r\n state: ConnectorEntitiesState = initialConnectorEntitiesState,\r\n action: Action\r\n): ConnectorEntitiesState {\r\n switch (action.type) {\r\n case CREATE_CONNECTOR_SUCCESS:\r\n return createConnector(state, action);\r\n\r\n case GET_CONNECTORS_ATTEMPT:\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n\r\n case GET_CONNECTORS_SUCCESS:\r\n return getConnectorsSuccess(state, action);\r\n\r\n case DELETE_CONNECTOR_SUCCESS:\r\n return removeConnector(state, action);\r\n\r\n case UPDATE_CONNECTOR_SUCCESS:\r\n return updateConnector(state, action);\r\n\r\n case GET_CONNECTOR_SUCCESS:\r\n return getConnectorSuccess(state, action);\r\n case LEAVE_PROJECT:\r\n return {\r\n ...state,\r\n loaded: false\r\n };\r\n\r\n default:\r\n return { ...state };\r\n }\r\n}\r\n\r\nfunction createConnector(state: ConnectorEntitiesState, action: CreateConnectorSuccessAction): ConnectorEntitiesState {\r\n return connectorEntityAdapter.addOne(action.connector, state);\r\n}\r\n\r\nfunction removeConnector(state: ConnectorEntitiesState, action: DeleteConnectorSuccessAction): ConnectorEntitiesState {\r\n const newState = { ...state, entityContents: { ...state.entityContents } };\r\n delete newState.entityContents[action.connectorId];\r\n\r\n return connectorEntityAdapter.removeOne(action.connectorId, state);\r\n}\r\n\r\nfunction getConnectorsSuccess(state: ConnectorEntitiesState, action: GetConnectorsSuccessAction): ConnectorEntitiesState {\r\n return connectorEntityAdapter.addMany(action.connectors, {\r\n ...state,\r\n loading: false,\r\n loaded: true\r\n });\r\n}\r\n\r\nfunction getConnectorSuccess(state: ConnectorEntitiesState, action: GetConnectorSuccessAction): ConnectorEntitiesState {\r\n const connector = action.connector,\r\n connectorContent = action.connectorContent;\r\n\r\n const newState = { ...state, entityContents: { ...state.entityContents } };\r\n\r\n if (Object.keys(connectorContent).length) {\r\n newState.entityContents[connector.id] = connectorContent;\r\n } else {\r\n newState.entityContents[connector.id] = {\r\n name: connector.name,\r\n description: connector.description\r\n };\r\n }\r\n\r\n return connectorEntityAdapter.upsertOne(connector, newState);\r\n}\r\n\r\nfunction updateConnector(state: ConnectorEntitiesState, action: UpdateConnectorSuccessAction): ConnectorEntitiesState {\r\n const newState = {\r\n ...state,\r\n entityContents: {\r\n ...state.entityContents,\r\n [action.connector.id]: action.connector.changes\r\n }\r\n };\r\n const { name, description, template } = action.connector.changes;\r\n return connectorEntityAdapter.updateOne({ ...action.connector, changes: { name, description, template } }, newState);\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n arrow_drop_down\\r\\n
\\r\\n add_box\\r\\n
\\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.icon }}\\r\\n \\r\\n\\r\\n {{ item.label | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, AfterContentInit } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { AppConfigService } from '@alfresco/adf-core';\r\nimport { AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { selectMenuOpened } from '../../../store/selectors/app.selectors';\r\n\r\nexport interface CreateAction {\r\n title: string;\r\n icon: string;\r\n handler: string;\r\n}\r\n\r\n@Component({\r\n templateUrl: './dashboard-navigation.component.html'\r\n})\r\nexport class DashboardNavigationComponent implements OnInit, AfterContentInit {\r\n expanded$: Observable;\r\n navigation: any[];\r\n\r\n actions$ = new BehaviorSubject([]);\r\n\r\n constructor(\r\n private store: Store,\r\n private appConfig: AppConfigService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.actions$.next(this.appConfig.get('create', []));\r\n this.navigation = this.buildMenu();\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.expanded$ = this.store.select(selectMenuOpened);\r\n }\r\n\r\n private buildMenu() {\r\n const schema = this.appConfig.get('navigation');\r\n const data = Array.isArray(schema) ? { main: schema } : schema;\r\n\r\n return Object.keys(data).map(key => data[key]);\r\n }\r\n\r\n runAction(type: string) {\r\n this.store.dispatch({ type });\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n assessment\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'DASHBOARD.TABLE.COLUMN_NAME' | translate }}\\r\\n \\r\\n {{element.name}} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'DASHBOARD.TABLE.COLUMN_CREATED' | translate }}\\r\\n {{ element.creationDate | amTimeAgo }} \\r\\n \\r\\n\\r\\n \\r\\n {{ 'DASHBOARD.TABLE.COLUMN_CREATED_BY' | translate }}\\r\\n {{ element.createdBy }} \\r\\n \\r\\n\\r\\n \\r\\n {{ 'DASHBOARD.TABLE.COLUMN_VERSION' | translate }}\\r\\n {{ element.version }} \\r\\n \\r\\n\\r\\n \\r\\n {{ 'DASHBOARD.TABLE.COLUMN_OPTIONS' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, Inject, Optional } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\nimport { MatTableDataSource, PageEvent, Sort } from '@angular/material';\r\nimport {\r\n AmaState, Project, OpenConfirmDialogAction, MODELER_NAME_REGEX, Pagination, ServerSideSorting,\r\n SearchQuery, OpenEntityDialogAction, ProjectContextMenuOption,\r\n PROJECT_CONTEXT_MENU_OPTIONS, ProjectContextMenuActionClass,\r\n selectLoading, selectPagination, selectProjectSummaries, GetProjectsAttemptAction, DeleteProjectAttemptAction, UpdateProjectAttemptAction\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ExportProjectAction } from '../../../project-editor/store/project-editor.actions';\r\n\r\nconst DEFAULT_SORT_KEY = 'name';\r\nconst DEFAULT_SORT_DIRECTION = 'asc';\r\n\r\n@Component({\r\n selector: 'ama-projects-list',\r\n templateUrl: './projects-list.component.html'\r\n})\r\nexport class ProjectsListComponent implements OnInit {\r\n dataSource$: Observable>>;\r\n loading$: Observable;\r\n pagination$: Observable;\r\n displayedColumns = ['thumbnail', 'name', 'creationDate', 'createdBy', 'version', 'menu'];\r\n pageSizeOptions = [10, 25, 50, 100, 1000];\r\n sorting: ServerSideSorting = {\r\n key: DEFAULT_SORT_KEY,\r\n direction: DEFAULT_SORT_DIRECTION\r\n };\r\n\r\n @Input() customDataSource$: Observable[]>;\r\n\r\n search: SearchQuery = {\r\n key: 'name',\r\n value: null\r\n };\r\n\r\n private maxItems = 25;\r\n private skipCount = 0;\r\n\r\n constructor(\r\n @Inject(PROJECT_CONTEXT_MENU_OPTIONS)\r\n @Optional() public buttons: ProjectContextMenuOption[],\r\n private store: Store,\r\n private router: Router,\r\n private route: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n this.maxItems = +this.route.snapshot.queryParamMap.get('maxItems') || 25;\r\n this.skipCount = +this.route.snapshot.queryParamMap.get('skipCount') || 0;\r\n this.sorting = this.parseSorting(this.route.snapshot.queryParamMap.get('sort'));\r\n this.search.value = this.route.snapshot.queryParamMap.get(this.search.key);\r\n\r\n this.loadProjects();\r\n\r\n this.loading$ = this.store.select(selectLoading);\r\n this.pagination$ = this.store.select(selectPagination);\r\n this.dataSource$ = (this.customDataSource$ || this.store.select(selectProjectSummaries).pipe(\r\n map(entries => Object.keys(entries).map(id => entries[id]))\r\n )).pipe(\r\n map(entriesArray => new MatTableDataSource>(entriesArray))\r\n );\r\n }\r\n\r\n private parseSorting(value: string): ServerSideSorting {\r\n if (value) {\r\n const [key, direction] = value.split(',');\r\n return {\r\n key: key || DEFAULT_SORT_KEY,\r\n direction: direction || DEFAULT_SORT_DIRECTION\r\n };\r\n }\r\n\r\n return { key: DEFAULT_SORT_KEY, direction: DEFAULT_SORT_DIRECTION };\r\n }\r\n\r\n private loadProjects() {\r\n const { maxItems, skipCount, sorting, search } = this;\r\n\r\n this.store.dispatch(\r\n new GetProjectsAttemptAction({ maxItems, skipCount }, sorting, search)\r\n );\r\n }\r\n\r\n onPageChange(event: PageEvent, pagination: Pagination) {\r\n const maxItems = event.pageSize;\r\n const skipCount = event.pageSize === pagination.maxItems ? event.pageSize * event.pageIndex : 0;\r\n\r\n this.router.navigate(\r\n ['dashboard', 'projects'],\r\n {\r\n queryParams: { maxItems, skipCount },\r\n queryParamsHandling: 'merge'\r\n }\r\n );\r\n }\r\n\r\n onSearchChanged(value: string) {\r\n\r\n this.router.navigate(\r\n ['dashboard', 'projects'],\r\n {\r\n queryParams: {\r\n sort: `${this.sorting.key},${this.sorting.direction}`,\r\n [this.search.key]: value,\r\n skipCount: 0\r\n },\r\n queryParamsHandling: 'merge'\r\n }\r\n );\r\n }\r\n\r\n onSortChange(sort: Sort) {\r\n this.router.navigate(\r\n ['dashboard', 'projects'],\r\n {\r\n queryParams: {\r\n sort: `${sort.active},${sort.direction}`,\r\n [this.search.key]: this.search.value\r\n },\r\n queryParamsHandling: 'merge'\r\n }\r\n );\r\n }\r\n\r\n rowSelected(item: Partial): void {\r\n this.router.navigate(['projects', item.id]);\r\n }\r\n\r\n editRow(item: Partial): void {\r\n const { id, name, description } = item;\r\n\r\n this.store.dispatch(new OpenEntityDialogAction({\r\n title: 'DASHBOARD.NEW_MENU.EDIT_PROJECT_TITLE',\r\n nameField: 'DASHBOARD.DIALOGS.PROJECT_NAME',\r\n descriptionField: 'DASHBOARD.DIALOGS.PROJECT_DESC',\r\n values: { id, name, description },\r\n action: UpdateProjectAttemptAction,\r\n allowedCharacters: {\r\n regex: MODELER_NAME_REGEX,\r\n error: 'APP.DIALOGS.ERROR.GENERAL_NAME_VALIDATION'\r\n }\r\n }));\r\n }\r\n\r\n deleteRow(item: Partial): void {\r\n this.store.dispatch(new OpenConfirmDialogAction({\r\n dialogData: { title: 'APP.DIALOGS.CONFIRM.DELETE.PROJECT' },\r\n action: new DeleteProjectAttemptAction(item.id, this.sorting, this.search)\r\n }));\r\n }\r\n\r\n downloadProject(project: Project) {\r\n if (project) {\r\n const payload = {\r\n projectId: project.id,\r\n projectName: project.name\r\n };\r\n this.store.dispatch(new ExportProjectAction(payload));\r\n }\r\n }\r\n\r\n handleClick(actionClass: ProjectContextMenuActionClass, projectId: string) {\r\n this.store.dispatch(new actionClass(projectId));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DashboardRoutingModule } from './router/dashboard-routing.module';\r\n\r\nimport { CoreModule } from '@alfresco/adf-core';\r\nimport { MomentModule } from 'ngx-moment';\r\n\r\nimport { DashboardNavigationComponent } from './components/dashboard-navigation/dashboard-navigation.component';\r\nimport { ProjectsListComponent } from './components/projects-list/projects-list.component';\r\n\r\nimport { DashboardService } from './services/dashboard.service';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { ProjectsEffects } from './store/effects/projects.effects';\r\nimport { SharedModule, PROJECT_ENTITY_KEY, AmaStoreModule, projectEntitiesReducer, provideTranslations } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { SearchHeaderComponent } from '../app/app-layout/search-header/search-header.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MomentModule,\r\n DashboardRoutingModule,\r\n MatPaginatorModule,\r\n MatSortModule,\r\n CoreModule.forChild(),\r\n SharedModule,\r\n AmaStoreModule.registerEntity({\r\n key: PROJECT_ENTITY_KEY,\r\n reducer: projectEntitiesReducer\r\n }),\r\n EffectsModule.forFeature([ProjectsEffects])\r\n ],\r\n declarations: [\r\n DashboardNavigationComponent,\r\n ProjectsListComponent,\r\n SearchHeaderComponent\r\n ],\r\n exports: [DashboardRoutingModule],\r\n providers: [\r\n DashboardService,\r\n provideTranslations('dashboard')\r\n ]\r\n})\r\nexport class DashboardModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { dashboardRoutes } from './dashboard.routes';\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forChild(dashboardRoutes)\r\n ],\r\n exports: [\r\n RouterModule\r\n ]\r\n})\r\nexport class DashboardRoutingModule { }\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Routes } from '@angular/router';\r\nimport { DashboardNavigationComponent } from '../components/dashboard-navigation/dashboard-navigation.component';\r\nimport { ProjectsListComponent } from '../components/projects-list/projects-list.component';\r\nimport { SearchHeaderComponent } from '../../app/app-layout/search-header/search-header.component';\r\n\r\nexport const dashboardRoutes: Routes = [\r\n {\r\n path: 'projects',\r\n component: ProjectsListComponent,\r\n },\r\n {\r\n path: '',\r\n component: DashboardNavigationComponent,\r\n outlet: 'navigation'\r\n },\r\n {\r\n path: '',\r\n component: SearchHeaderComponent,\r\n outlet: 'search'\r\n },\r\n { path: '', redirectTo: '/dashboard/projects?maxItems=25&skipCount=0&sort=name,asc', pathMatch: 'full' }\r\n];\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { PaginatedEntries } from '@alfresco/js-api';\r\nimport { Project, AmaApi, EntityDialogForm, ServerSideSorting, FetchQueries, SearchQuery } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class DashboardService {\r\n constructor(private amaApi: AmaApi) {}\r\n\r\n fetchProjects(pagination?: FetchQueries, sorting?: ServerSideSorting, search?: SearchQuery): Observable> {\r\n return this.amaApi.Project.getAll(pagination, sorting, search);\r\n }\r\n\r\n createProject(form: Partial): Observable> {\r\n return this.amaApi.Project.create(form);\r\n }\r\n\r\n updateProject(projectId: string, form: Partial): Observable> {\r\n return this.amaApi.Project.update(projectId, form);\r\n }\r\n\r\n deleteProject(projectId: string): Observable {\r\n return this.amaApi.Project.delete(projectId);\r\n }\r\n\r\n importProject(file: File, name?: string): Observable> {\r\n return this.amaApi.Project.import(file, name);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Effect, Actions, ofType } from '@ngrx/effects';\r\nimport { Injectable } from '@angular/core';\r\nimport { LogService } from '@alfresco/adf-core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { DashboardService } from '../../services/dashboard.service';\r\nimport { tap, switchMap, catchError, map, mergeMap, withLatestFrom } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport {\r\n AmaState,\r\n CreateProjectAttemptAction,\r\n OverrideProjectNameDialogAction,\r\n CREATE_PROJECT_ATTEMPT,\r\n SnackbarErrorAction,\r\n SnackbarInfoAction,\r\n BaseEffects,\r\n Pagination,\r\n FetchQueries,\r\n ServerSideSorting,\r\n ErrorResponse,\r\n SearchQuery,\r\n EntityDialogForm,\r\n GetProjectsAttemptAction,\r\n GET_PROJECTS_ATTEMPT,\r\n selectPagination,\r\n selectProjectsLoaded,\r\n OverrideProjectAttemptAction,\r\n OVERRIDE_PROJECT_ATTEMPT,\r\n UploadProjectAttemptAction,\r\n UPLOAD_PROJECT_ATTEMPT,\r\n UpdateProjectAttemptAction,\r\n ShowProjectsAction,\r\n SHOW_PROJECTS,\r\n UPDATE_PROJECT_ATTEMPT,\r\n DeleteProjectAttemptAction,\r\n DELETE_PROJECT_ATTEMPT,\r\n CreateProjectSuccessAction,\r\n CREATE_PROJECT_SUCCESS,\r\n DeleteProjectSuccessAction,\r\n UpdateProjectSuccessAction,\r\n GetProjectsSuccessAction,\r\n UploadProjectSuccessAction,\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class ProjectsEffects extends BaseEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private dashboardService: DashboardService,\r\n private store: Store,\r\n logService: LogService,\r\n router: Router,\r\n ) {\r\n super(router, logService);\r\n }\r\n\r\n @Effect()\r\n showProjectsEffect = this.actions$.pipe(\r\n ofType(SHOW_PROJECTS),\r\n withLatestFrom(this.store.select(selectProjectsLoaded)),\r\n switchMap(([action, loaded]) => loaded ? of() : of(new GetProjectsAttemptAction( action.pagination)))\r\n );\r\n\r\n @Effect()\r\n uploadProjectAttemptEffect = this.actions$.pipe(\r\n ofType(UPLOAD_PROJECT_ATTEMPT),\r\n switchMap((action) => this.uploadProject(action.file, action.name))\r\n );\r\n\r\n @Effect()\r\n createProjectAttemptEffect = this.actions$.pipe(\r\n ofType(CREATE_PROJECT_ATTEMPT),\r\n map(action => action.payload),\r\n mergeMap(payload => this.createProject(payload))\r\n );\r\n\r\n @Effect()\r\n overrideProjectAttemptEffect = this.actions$.pipe(\r\n ofType(OVERRIDE_PROJECT_ATTEMPT),\r\n switchMap(action => this.overrideProject(action.payload.submitData.file, action.payload.name))\r\n );\r\n\r\n @Effect()\r\n updateProjectAttemptEffect = this.actions$.pipe(\r\n ofType(UPDATE_PROJECT_ATTEMPT),\r\n map(action => action.payload),\r\n mergeMap(payload => this.updateProject(payload.id, payload.form))\r\n );\r\n\r\n @Effect()\r\n deleteProjectAttemptEffect = this.actions$.pipe(\r\n ofType(DELETE_PROJECT_ATTEMPT),\r\n map(action => action),\r\n withLatestFrom(this.store.select(selectPagination)),\r\n mergeMap(([action, pagination]) => this.deleteProject(action.projectId, action.sorting, action.search, pagination))\r\n );\r\n\r\n @Effect()\r\n getProjectsAttemptEffect = this.actions$.pipe(\r\n ofType(GET_PROJECTS_ATTEMPT),\r\n switchMap(action => this.getProjectsAttempt( action.pagination, action.sorting, action.search))\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n createProjectSuccessEffect$ = this.actions$.pipe(\r\n ofType(CREATE_PROJECT_SUCCESS),\r\n tap((action) => this.router.navigate(['/projects', action.payload.id]))\r\n );\r\n\r\n private deleteProject(projectId: string, sorting: ServerSideSorting, search: SearchQuery, pagination: Pagination) {\r\n let skipCount;\r\n if (pagination.count === 1) {\r\n skipCount = 0;\r\n } else {\r\n skipCount = pagination.skipCount < (pagination.totalItems - 1) ? pagination.skipCount : pagination.skipCount - pagination.maxItems;\r\n }\r\n return this.dashboardService.deleteProject(projectId).pipe(\r\n switchMap(() => [\r\n new DeleteProjectSuccessAction(projectId),\r\n new SnackbarInfoAction('DASHBOARD.NEW_MENU.PROJECT_DELETED'),\r\n new GetProjectsAttemptAction({\r\n skipCount,\r\n maxItems: pagination.maxItems\r\n }, {\r\n key: sorting.key,\r\n direction: sorting.direction\r\n }, search)\r\n ]),\r\n catchError(e =>\r\n this.genericErrorHandler(\r\n () => of(new SnackbarErrorAction('PROJECT_EDITOR.ERROR.DELETE_PROJECT')),\r\n e\r\n )\r\n )\r\n );\r\n }\r\n\r\n private updateProject(projectId: string, form: Partial) {\r\n return this.dashboardService.updateProject(projectId, form).pipe(\r\n switchMap(project => [\r\n new UpdateProjectSuccessAction({ id: project.id, changes: project }),\r\n new SnackbarInfoAction('DASHBOARD.NEW_MENU.PROJECT_UPDATED')\r\n ]),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleProjectUpdateError.bind(this, e), e)\r\n )\r\n );\r\n }\r\n\r\n private createProject(form: Partial) {\r\n return this.dashboardService.createProject(form).pipe(\r\n switchMap(project => [\r\n new CreateProjectSuccessAction(project),\r\n new SnackbarInfoAction('DASHBOARD.NEW_MENU.PROJECT_CREATED')\r\n ]),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleProjectCreateError.bind(this, e), e)\r\n )\r\n );\r\n }\r\n\r\n private overrideProject(file: File, name?: string) {\r\n return this.dashboardService.importProject(file, name).pipe(\r\n switchMap(project => [\r\n new CreateProjectSuccessAction(project),\r\n new SnackbarInfoAction('DASHBOARD.NEW_MENU.PROJECT_CREATED')\r\n ]),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleProjectUploadError.bind(this, e, file, name), e)\r\n )\r\n );\r\n }\r\n\r\n private getProjectsAttempt(pagination: FetchQueries, sorting: ServerSideSorting, search: SearchQuery) {\r\n return this.dashboardService.fetchProjects(pagination, sorting, search).pipe(\r\n switchMap(data => [new GetProjectsSuccessAction(data.entries, data.pagination)]),\r\n catchError(e => this.genericErrorHandler(this.handleError.bind(this, 'DASHBOARD.ERROR.LOAD_PROJECTS'), e))\r\n );\r\n }\r\n\r\n private uploadProject(file: File, name?: string) {\r\n return this.dashboardService.importProject(file, name).pipe(\r\n switchMap(project => [\r\n new UploadProjectSuccessAction(project),\r\n new SnackbarInfoAction('DASHBOARD.NEW_MENU.PROJECT_UPLOADED')\r\n ]),\r\n catchError(e => this.genericErrorHandler(this.handleProjectUploadError.bind(this, e, file, name), e))\r\n );\r\n }\r\n\r\n private handleProjectCreateError(error: ErrorResponse): Observable {\r\n let errorMessage: string;\r\n\r\n if (error.status === 409) {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.CREATE_PROJECT.DUPLICATION';\r\n } else {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.CREATE_PROJECT.GENERAL';\r\n }\r\n\r\n return of(new SnackbarErrorAction(errorMessage));\r\n }\r\n\r\n private handleProjectUpdateError(error: ErrorResponse): Observable {\r\n let errorMessage: string;\r\n\r\n if (error.status === 409) {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.UPDATE_PROJECT.DUPLICATION';\r\n } else {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.UPDATE_PROJECT.GENERAL';\r\n }\r\n\r\n return of(new SnackbarErrorAction(errorMessage));\r\n }\r\n\r\n private handleProjectUploadError(error: ErrorResponse, file: File, name: string): Observable {\r\n let errorMessage: string;\r\n\r\n if (error.status === 409) {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.UPLOAD_PROJECT.DUPLICATION';\r\n this.store.dispatch(new OverrideProjectNameDialogAction(file, name));\r\n\r\n } else {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.UPLOAD_PROJECT.GENERAL';\r\n }\r\n\r\n return of(new SnackbarErrorAction(errorMessage));\r\n }\r\n\r\n private handleError(userMessage: string) {\r\n return of(new SnackbarErrorAction(userMessage));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { APP_GITHUB_COMMIT, APP_VERSION, APP_DEPS } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { repository, version, dependencies, commit } from '../../package.json';\r\nconst latestCommitUrl = repository.url.replace('.git', '/commit/') + commit;\r\n\r\n@NgModule({\r\n imports: [\r\n ],\r\n providers: [\r\n { provide: APP_GITHUB_COMMIT, useValue: latestCommitUrl },\r\n { provide: APP_VERSION, useValue: version },\r\n { provide: APP_DEPS, useValue: dependencies }\r\n ]\r\n})\r\nexport class AppExtensionsModule {}\r\n","module.exports = \"

{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.TITLE' | translate }}

\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.SUB_TITLE' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ assignment.label | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{staticAssignee}}\\r\\n cancel\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n warning\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.USER_WARNING' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{staticCandidateUser}}\\r\\n cancel\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{staticCandidateGroup}}\\r\\n cancel\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n warning\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.CANDIDATE_WARNING' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n warning\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.CANDIDATE_WARNING' | translate }}\\r\\n \\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_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.EXPRESSION.NO_PROCESS_VARIABLES' | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.CLOSE' | translate }}\\r\\n \\r\\n \\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.ASSIGN' | translate }}\\r\\n \\r\\n\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2Nlc3MtZWRpdG9yL2NvbXBvbmVudHMvYXNzaWdubWVudC9hc3NpZ25tZW50LWRpYWxvZy5jb21wb25lbnQuc2NzcyJ9 */\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, Inject, OnDestroy, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef, MatSelectChange, MatTabChangeEvent } from '@angular/material';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport {\r\n BpmnProperty,\r\n AmaState,\r\n selectProcessTaskAssignmentFor,\r\n selectSelectedProcess,\r\n selectSelectedTheme,\r\n UpdateServiceAssignmentAction,\r\n TaskAssignment,\r\n AssignmentType,\r\n AssignmentMode,\r\n getFileUri,\r\n ValidationResponse,\r\n Process,\r\n CodeValidatorService,\r\n selectProcessPropertiesArrayFor,\r\n CodeEditorComponent\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { IdentityUserModel, IdentityGroupModel } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport { filter, take, takeUntil, map } from 'rxjs/operators';\r\nimport { AbstractControl, FormGroup, FormBuilder, Validators, FormControl, ValidatorFn, ValidationErrors } from '@angular/forms';\r\n\r\nexport interface AssignmentSettings {\r\n assignee: string[];\r\n candidateUsers: string[];\r\n candidateGroups: string[];\r\n assignmentUpdate$?: Subject;\r\n shapeId?: string;\r\n processId?: string;\r\n}\r\n\r\nexport interface AssignmentParams {\r\n label: string;\r\n key: any;\r\n value?: string;\r\n}\r\nexport enum AssignmentTabs {\r\n STATIC = 0,\r\n IDENTITY = 1,\r\n EXPRESSION = 2\r\n}\r\nexport interface AssignmentModel {\r\n assignments: AssignmentParams[];\r\n}\r\n\r\nexport enum AssigneeExpressionErrorMessages {\r\n assigneePattern = 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.EXPRESSION.ASSIGNEE_INVALID_ERROR',\r\n assigneeEmpty = 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.EXPRESSION.ASSIGNEE_EMPTY',\r\n candidatePattern = 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.EXPRESSION.CANDIDATE_INVALID_ERROR',\r\n candidateEmpty = 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.EXPRESSION.CANDIDATE_EMPTY'\r\n}\r\n\r\nexport const identityCandidateValidator: ValidatorFn = (candidateFormGroup: FormGroup): ValidationErrors | null => {\r\n const isCandidateFormGroupDirtyTouched = candidateFormGroup.dirty && candidateFormGroup.touched;\r\n\r\n const candidateUserFormGroup = candidateFormGroup.get('candidateUserFormGroup');\r\n const candidateUsersChips = candidateUserFormGroup.get('candidateUsersChips');\r\n\r\n const candidateGroupsFormGroup = candidateFormGroup.get('candidateGroupFormGroup');\r\n const candidateGroupsChips = candidateGroupsFormGroup.get('candidateGroupsChips');\r\n\r\n const isCandidateUserChipsEmpty = isCandidateFormGroupDirtyTouched && candidateUsersChips ?\r\n candidateUsersChips.value === null || candidateUsersChips.value === '' : false;\r\n const isCandidateGroupChipsEmpty = isCandidateFormGroupDirtyTouched && candidateGroupsChips ?\r\n candidateGroupsChips.value === null || candidateGroupsChips.value === '' : false;\r\n\r\n const hasValidationError = isCandidateUserChipsEmpty && isCandidateGroupChipsEmpty;\r\n return hasValidationError ? { 'custom': true } : null;\r\n};\r\n\r\n@Component({\r\n selector: 'ama-assignment-dialog',\r\n templateUrl: './assignment-dialog.component.html',\r\n styleUrls: ['./assignment-dialog.component.scss']\r\n})\r\nexport class AssignmentDialogComponent implements OnInit, OnDestroy {\r\n static ASSIGNEE_CONTENT = JSON.stringify({ assignee: '${}' }, null, '\\t');\r\n static CANDIDATES_CONTENT = JSON.stringify({\r\n candidateUsers: '${}',\r\n candidateGroups: '${}'\r\n }, null, '\\t');\r\n static TABS = [\r\n AssignmentType.static,\r\n AssignmentType.identity,\r\n AssignmentType.expression\r\n ];\r\n assignmentTypes = [\r\n {\r\n key: AssignmentMode.assignee,\r\n label:\r\n 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.SINGLE_USER'\r\n },\r\n {\r\n key: AssignmentMode.candidates,\r\n label:\r\n 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.CANDIDATES'\r\n }\r\n ];\r\n\r\n @ViewChild('editor') editor: CodeEditorComponent;\r\n\r\n roles = ['ACTIVITI_USER'];\r\n languageType = 'json';\r\n selectedMode: string = AssignmentMode.assignee;\r\n selectedType: string = AssignmentType.static;\r\n currentActiveTab = AssignmentTabs.STATIC;\r\n separatorKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n staticAssignee: string;\r\n staticCandidateUsers: string[] = [];\r\n staticCandidateGroups: string[] = [];\r\n\r\n identityAssignee: IdentityUserModel[] = [];\r\n identityCandidateUsers: IdentityUserModel[] = [];\r\n identityCandidateGroups: IdentityGroupModel[] = [];\r\n\r\n loadingForm = true;\r\n expressionAssignee: string;\r\n expressionCandidateUsers: string;\r\n expressionCandidateGroups: string;\r\n\r\n expressionContent = AssignmentDialogComponent.ASSIGNEE_CONTENT;\r\n\r\n assignmentPayload: any;\r\n assignmentXML: TaskAssignment;\r\n processVariables$: Observable;\r\n process$: Observable;\r\n processFileUri$: Observable;\r\n vsTheme$: Observable;\r\n onDestroy$: Subject = new Subject();\r\n\r\n assignmentForm: FormGroup;\r\n expressionErrorMessage: string;\r\n\r\n constructor(\r\n private store: Store,\r\n private codeValidatorService: CodeValidatorService,\r\n public dialogRef: MatDialogRef,\r\n private formBuilder: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public settings: AssignmentSettings\r\n ) {\r\n this.vsTheme$ = this.getVsTheme();\r\n }\r\n\r\n ngOnInit() {\r\n this.store\r\n .select(selectProcessTaskAssignmentFor(this.settings.processId, this.settings.shapeId))\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(assignmentType => {\r\n this.assignmentXML = assignmentType;\r\n });\r\n\r\n this.process$ = this.store.select(selectSelectedProcess);\r\n this.processVariables$ = this.store.select(selectProcessPropertiesArrayFor(this.settings.processId));\r\n this.deductConfigFromXML();\r\n this.createAssignmentForm();\r\n this.processFileUri$ = this.process$.pipe(\r\n filter(process => !!process),\r\n map(process => getFileUri(this.selectedMode, this.languageType, process.id))\r\n );\r\n }\r\n\r\n private getVsTheme(): Observable {\r\n return this.store\r\n .select(selectSelectedTheme)\r\n .pipe(map(theme => (theme.className === 'dark-theme' ? 'vs-dark' : 'vs-light')));\r\n }\r\n\r\n createAssignmentForm() {\r\n this.assignmentForm = this.formBuilder.group({\r\n staticForm: this.formBuilder.group({\r\n }),\r\n identityForm: this.formBuilder.group({\r\n }),\r\n expressionForm: this.formBuilder.group({\r\n })\r\n });\r\n this.createChildrenFormControls();\r\n this.loadingForm = false;\r\n }\r\n\r\n private deductConfigFromXML() {\r\n this.selectedType = this.assignmentXML && this.assignmentXML.type ? this.assignmentXML.type : AssignmentType.static;\r\n this.selectedMode = this.assignmentXML && this.assignmentXML.assignment ? this.assignmentXML.assignment : AssignmentMode.assignee;\r\n this.selectActiveTab();\r\n }\r\n\r\n private selectActiveTab() {\r\n if (this.isXMLStaticType()) {\r\n this.currentActiveTab = AssignmentTabs.STATIC;\r\n this.setStaticAssignments();\r\n } else if (this.isXMLIdentityType()) {\r\n this.currentActiveTab = AssignmentTabs.IDENTITY;\r\n this.setIdentityAssignments();\r\n } else if (this.isXMLExpressionType()) {\r\n this.currentActiveTab = AssignmentTabs.EXPRESSION;\r\n this.setExpressionAssignments();\r\n } else {\r\n this.currentActiveTab = AssignmentTabs.STATIC;\r\n }\r\n }\r\n\r\n private createChildrenFormControls () {\r\n this.assignmentFormClean();\r\n if (this.isIdentityType()) {\r\n this.createIdentityForm();\r\n } else if (this.isStaticType()) {\r\n this.createStaticForm();\r\n } else {\r\n this.createExpressionForm();\r\n }\r\n this.assignmentForm.updateValueAndValidity();\r\n }\r\n\r\n private createStaticForm() {\r\n this.createAssigneeCandidateForm(this.staticForm, this.staticAssignee);\r\n }\r\n\r\n private createIdentityForm() {\r\n this.createAssigneeCandidateForm(this.identityForm);\r\n }\r\n\r\n private createExpressionForm(): void {\r\n if (this.isAssigneeMode()) {\r\n this.expressionForm.addControl('assignee', new FormControl({ value: '' }));\r\n } else {\r\n this.expressionForm.addControl('candidateUsers', new FormControl({ value: '' }));\r\n this.expressionForm.addControl('candidateGroups', new FormControl({ value: '' }));\r\n }\r\n this.expressionForm.updateValueAndValidity();\r\n }\r\n\r\n private createAssigneeCandidateForm(formGroup: FormGroup, assigneeValue?: string): void {\r\n if (this.isAssigneeMode()) {\r\n const assignee = new FormControl({ value: '', disabled: false });\r\n const assigneeChipsFormControl = new FormControl({ value: assigneeValue, disabled: false }, [Validators.required]);\r\n formGroup.addControl('assignee', assignee);\r\n formGroup.addControl('assigneeChips', assigneeChipsFormControl);\r\n } else {\r\n const candidatesFormGroup = this.createCandidatesFormGroup();\r\n formGroup.addControl('candidatesFormGroup', candidatesFormGroup);\r\n this.setCandidateGroupWarning();\r\n }\r\n formGroup.updateValueAndValidity();\r\n }\r\n\r\n private setCandidateGroupWarning() {\r\n if (this.isCandidateGroupAssigned || this.isCandidateUserAssigned) {\r\n this.candidateGroupsChipsStaticControl.setErrors({ 'custom': null });\r\n } else if (this.candidatesStaticFormGroup) {\r\n this.candidateGroupChipsStaticCtrlValue('');\r\n }\r\n }\r\n\r\n private createCandidatesFormGroup(): FormGroup {\r\n const candidateUserFormGroup = this.createCandidateUserFormGroup();\r\n const candidateGroupFormGroup = this.createCandidateGroupFormGroup();\r\n return this.formBuilder.group(\r\n {\r\n 'candidateUserFormGroup': candidateUserFormGroup,\r\n 'candidateGroupFormGroup': candidateGroupFormGroup\r\n }, { validator: identityCandidateValidator });\r\n }\r\n\r\n private createCandidateUserFormGroup(): FormGroup {\r\n return this.formBuilder.group(\r\n {\r\n 'candidateUsers': '',\r\n 'candidateUsersChips': ''\r\n });\r\n }\r\n\r\n private createCandidateGroupFormGroup(): FormGroup {\r\n return this.formBuilder.group(\r\n {\r\n 'candidateGroups': '',\r\n 'candidateGroupsChips': ''\r\n });\r\n }\r\n\r\n private setStaticAssignments() {\r\n if (this.isXMLSingleMode()) {\r\n if (this.settings.assignee) {\r\n this.staticAssignee = this.settings.assignee ? this.settings.assignee[0] : '';\r\n }\r\n } else {\r\n if (this.settings.candidateUsers) {\r\n this.staticCandidateUsers = this.settings.candidateUsers;\r\n }\r\n\r\n if (this.settings.candidateGroups) {\r\n this.staticCandidateGroups = this.settings.candidateGroups;\r\n }\r\n }\r\n }\r\n\r\n private setIdentityAssignments() {\r\n if (this.isXMLSingleMode()) {\r\n if (\r\n this.settings.assignee &&\r\n !this.isExpressionValid(this.settings.assignee.join())\r\n ) {\r\n this.identityAssignee = this.settings.assignee.map(user => ({\r\n username: user\r\n }));\r\n }\r\n } else {\r\n if (\r\n this.settings.candidateUsers &&\r\n !this.isExpressionValid(this.settings.candidateUsers.join())\r\n ) {\r\n this.identityCandidateUsers = this.settings.candidateUsers.map(\r\n (username: string) => ({ username: username })\r\n );\r\n }\r\n\r\n if (\r\n this.settings.candidateGroups &&\r\n !this.isExpressionValid(this.settings.candidateGroups.join())\r\n ) {\r\n this.identityCandidateGroups = this.settings.candidateGroups.map(\r\n groupName => ({ name: groupName })\r\n );\r\n }\r\n }\r\n }\r\n\r\n private setExpressionAssignments() {\r\n if (this.isXMLSingleMode()) {\r\n if (this.isExpressionValid(this.settings.assignee.join())) {\r\n this.expressionContent = JSON.stringify({\r\n assignee: this.settings.assignee[0]\r\n }, null, '\\t');\r\n } else {\r\n this.expressionContent =\r\n AssignmentDialogComponent.ASSIGNEE_CONTENT;\r\n }\r\n } else {\r\n if (\r\n this.isExpressionValid(\r\n this.settings.candidateGroups.join() ||\r\n this.settings.candidateUsers.join()\r\n )\r\n ) {\r\n this.expressionContent = JSON.stringify({\r\n candidateUsers:\r\n this.settings.candidateUsers &&\r\n this.settings.candidateUsers.length > 0\r\n ? this.settings.candidateUsers.toString()\r\n : '${}',\r\n candidateGroups:\r\n this.settings.candidateGroups &&\r\n this.settings.candidateGroups.length > 0\r\n ? this.settings.candidateGroups.toString()\r\n : '${}'\r\n }, null, '\\t');\r\n } else {\r\n this.expressionContent =\r\n AssignmentDialogComponent.CANDIDATES_CONTENT;\r\n }\r\n }\r\n }\r\n\r\n onTabChange(currentTab: MatTabChangeEvent) {\r\n this.selectedType = AssignmentDialogComponent.TABS[currentTab.index];\r\n this.resetProperties();\r\n this.assignmentPayload = undefined;\r\n if (this.isOriginalSelection()) {\r\n this.restoreFromXML();\r\n }\r\n this.createChildrenFormControls();\r\n this.currentActiveTab = currentTab.index;\r\n }\r\n\r\n onSelect(selectedType: MatSelectChange) {\r\n this.selectedMode = selectedType.value;\r\n this.resetProperties();\r\n this.processFileUri$ = this.process$.pipe(\r\n filter(process => !!process),\r\n map(process => getFileUri(this.selectedMode, this.languageType, process.id))\r\n );\r\n this.assignmentPayload = undefined;\r\n if (this.isOriginalSelection()) {\r\n this.restoreFromXML();\r\n }\r\n this.createChildrenFormControls();\r\n }\r\n\r\n isOriginalSelection() {\r\n return this.selectedMode === this.assignmentXML.assignment && this.selectedType === this.assignmentXML.type;\r\n }\r\n\r\n onStaticAssigneeRemove() {\r\n this.staticAssignee = undefined;\r\n this.updatePayloadWithStaticValues();\r\n this.assigneeChipsStaticCtrlValue('');\r\n }\r\n\r\n onStaticCandidateUsersRemove(username: string) {\r\n this.staticCandidateUsers = this.staticCandidateUsers.filter(\r\n user => user !== username\r\n );\r\n this.updatePayloadWithStaticValues();\r\n if (this.staticCandidateUsers.length === 0) {\r\n this.candidateUserChipsStaticCtrlValue('');\r\n } else {\r\n this.candidateUserChipsStaticCtrlValue(this.staticCandidateUsers[0]);\r\n }\r\n }\r\n\r\n onStaticCandidateGroupsRemove(groupName: string) {\r\n this.staticCandidateGroups = this.staticCandidateGroups.filter(\r\n group => group !== groupName\r\n );\r\n this.updatePayloadWithStaticValues();\r\n if (this.staticCandidateGroups.length === 0) {\r\n this.candidateGroupChipsStaticCtrlValue('');\r\n } else {\r\n this.candidateGroupChipsStaticCtrlValue(this.staticCandidateGroups[0]);\r\n }\r\n }\r\n\r\n onStaticAssigneeChange(event: any) {\r\n const input = event.input;\r\n if (input.value) {\r\n this.staticAssignee = input.value;\r\n input.value = '';\r\n this.updatePayloadWithStaticValues();\r\n this.assigneeChipsStaticCtrlValue(this.staticAssignee);\r\n }\r\n }\r\n\r\n onStaticCandidateUsersChange(event: any) {\r\n const input = event.input;\r\n if (input.value && !this.isStaticCandidateUserExists(input.value)) {\r\n this.staticCandidateUsers.push(input.value);\r\n this.candidateUserChipsStaticCtrlValue(input.value);\r\n input.value = '';\r\n this.updatePayloadWithStaticValues();\r\n }\r\n }\r\n\r\n onStaticCandidateGroupsChange(event: any) {\r\n const input = event.input;\r\n if (input.value && !this.isStaticCandidateGroupExists(input.value)) {\r\n this.staticCandidateGroups.push(input.value);\r\n this.candidateGroupChipsStaticCtrlValue(input.value);\r\n input.value = '';\r\n this.updatePayloadWithStaticValues();\r\n }\r\n }\r\n\r\n private isStaticCandidateUserExists(value: string): string {\r\n return this.staticCandidateUsers.find((userName: string) => userName.trim() === value.trim());\r\n }\r\n\r\n private isStaticCandidateGroupExists(value: string): string {\r\n return this.staticCandidateGroups.find((groupName: string) => groupName.trim() === value.trim());\r\n }\r\n\r\n onIdentityAssigneeChange(assignee: IdentityUserModel[]) {\r\n this.identityAssignee = [...assignee];\r\n this.updatePayloadWithIdentityValues();\r\n }\r\n\r\n onIdentityCandidateUsersChange(candidateUsers: IdentityUserModel[]) {\r\n this.identityCandidateUsers = [...candidateUsers];\r\n this.updatePayloadWithIdentityValues();\r\n }\r\n\r\n onIdentityCandidateGroupsChange(candidateGroups: IdentityGroupModel[]) {\r\n this.identityCandidateGroups = [...candidateGroups];\r\n this.updatePayloadWithIdentityValues();\r\n }\r\n\r\n private validate(contentString: string): boolean {\r\n const validateResponse: ValidationResponse = this.codeValidatorService.validateJson(contentString);\r\n return validateResponse.valid;\r\n }\r\n\r\n onExpressionChange(contentString: string) {\r\n if (this.validate(contentString)) {\r\n if (this.isAssigneeMode()) {\r\n const assignee = JSON.parse(contentString);\r\n if (this.isAssigneeValid(assignee) && this.isExpressionValid(assignee.assignee)) {\r\n this.expressionAssignee = this.isExpressionValid(assignee.assignee) ? assignee.assignee : undefined;\r\n this.assigneeExpressionCtrlValue(this.expressionAssignee);\r\n } else {\r\n if (assignee.assignee === '') {\r\n this.expressionErrorMessage = AssigneeExpressionErrorMessages.assigneeEmpty;\r\n this.expressionForm.setErrors({ pattern: 'true'});\r\n } else {\r\n this.expressionErrorMessage = AssigneeExpressionErrorMessages.assigneePattern;\r\n this.expressionForm.setErrors({ pattern: 'true' });\r\n }\r\n }\r\n } else {\r\n const candidates = JSON.parse(contentString);\r\n if (this.isCandidatesPresentAndExpressionValid(candidates)) {\r\n this.expressionCandidateUsers = this.isExpressionValid(candidates.candidateUsers) ? candidates.candidateUsers : undefined;\r\n this.expressionCandidateGroups = this.isExpressionValid(candidates.candidateGroups) ? candidates.candidateGroups : undefined;\r\n this.candidateUserExpressionCtrlValue(this.expressionCandidateUsers);\r\n this.candidateGroupExpressionCtrlValue(this.expressionCandidateGroups);\r\n } else {\r\n this.expressionForm.setErrors({ pattern: 'true' });\r\n }\r\n }\r\n\r\n if (this.expressionForm.valid) {\r\n this.updatePayloadWithExpressionValues();\r\n }\r\n } else {\r\n this.expressionForm.setErrors({ pattern: 'true' });\r\n }\r\n }\r\n\r\n onAssign() {\r\n if (this.assignmentPayload) {\r\n this.settings.assignmentUpdate$.next(this.assignmentPayload);\r\n this.settings.assignmentUpdate$.complete();\r\n this.updateAssignment();\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n isCandidatesPresentAndExpressionValid(candidates) {\r\n let isValid = false;\r\n if (this.isCandidateValid(candidates)) {\r\n if (candidates.candidateUsers !== undefined && candidates.candidateGroups !== undefined) {\r\n if (this.isExpressionValid(candidates.candidateUsers) && this.isExpressionValid(candidates.candidateGroups)) {\r\n isValid = true;\r\n } else {\r\n this.expressionForm.setErrors({ pattern: 'true' });\r\n }\r\n\r\n } else if ((candidates.candidateUsers && this.isExpressionValid(candidates.candidateUsers))\r\n || (candidates.candidateGroups && this.isExpressionValid(candidates.candidateGroups))) {\r\n isValid = true;\r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n updateAssignment(): void {\r\n this.store\r\n .select(selectSelectedProcess)\r\n .pipe(\r\n filter(model => !!model),\r\n take(1)\r\n )\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(model =>\r\n this.store.dispatch(\r\n new UpdateServiceAssignmentAction(\r\n model.id,\r\n this.settings.processId,\r\n this.settings.shapeId,\r\n {\r\n type: this.selectedType,\r\n assignment: this.selectedMode,\r\n id: this.settings.shapeId\r\n }\r\n )\r\n )\r\n );\r\n }\r\n\r\n onClose() {\r\n this.settings.assignmentUpdate$.complete();\r\n this.dialogRef.close();\r\n }\r\n\r\n private updatePayloadWithStaticValues() {\r\n this.assignmentPayload = this.buildPayloadWithStaticValues({\r\n assignee: this.staticAssignee,\r\n candidateUsers: this.staticCandidateUsers,\r\n candidateGroups: this.staticCandidateGroups\r\n });\r\n }\r\n\r\n private updatePayloadWithIdentityValues() {\r\n this.assignmentPayload = this.buildPayloadWithIdentityValues({\r\n assignee: this.identityAssignee,\r\n candidateUsers: this.identityCandidateUsers,\r\n candidateGroups: this.identityCandidateGroups\r\n });\r\n }\r\n\r\n private updatePayloadWithExpressionValues() {\r\n this.assignmentPayload = this.buildExpressionPayload({\r\n assignee: this.expressionAssignee,\r\n candidateUsers: this.expressionCandidateUsers,\r\n candidateGroups: this.expressionCandidateGroups\r\n });\r\n }\r\n\r\n private buildPayloadWithStaticValues({\r\n assignee,\r\n candidateUsers,\r\n candidateGroups\r\n }: {\r\n assignee: string;\r\n candidateUsers: string[];\r\n candidateGroups: string[];\r\n }): AssignmentModel {\r\n return {\r\n assignments: [\r\n {\r\n key: BpmnProperty.assignee,\r\n value: assignee ? assignee : undefined\r\n },\r\n {\r\n key: BpmnProperty.candidateUsers,\r\n value:\r\n candidateUsers && candidateUsers.length > 0\r\n ? candidateUsers.join()\r\n : undefined\r\n },\r\n {\r\n key: BpmnProperty.candidateGroups,\r\n value:\r\n candidateGroups && candidateGroups.length > 0\r\n ? candidateGroups.join()\r\n : undefined\r\n }\r\n ]\r\n };\r\n }\r\n\r\n private buildPayloadWithIdentityValues({\r\n assignee,\r\n candidateUsers,\r\n candidateGroups\r\n }: {\r\n assignee: any[];\r\n candidateUsers: any[];\r\n candidateGroups: any[];\r\n }): AssignmentModel {\r\n return {\r\n assignments: [\r\n {\r\n key: BpmnProperty.assignee,\r\n value:\r\n assignee && assignee.length > 0\r\n ? assignee[0].username\r\n : undefined\r\n },\r\n {\r\n key: BpmnProperty.candidateUsers,\r\n value:\r\n candidateUsers && candidateUsers.length > 0\r\n ? candidateUsers.map(user => user.username).join()\r\n : undefined\r\n },\r\n {\r\n key: BpmnProperty.candidateGroups,\r\n value:\r\n candidateGroups && candidateGroups.length > 0\r\n ? candidateGroups.map(group => group.name).join()\r\n : undefined\r\n }\r\n ]\r\n };\r\n }\r\n\r\n private buildExpressionPayload({\r\n assignee,\r\n candidateUsers,\r\n candidateGroups\r\n }: {\r\n assignee: string;\r\n candidateUsers: string;\r\n candidateGroups: string;\r\n }): AssignmentModel {\r\n return {\r\n assignments: [\r\n {\r\n key: BpmnProperty.assignee,\r\n value: assignee ? assignee : undefined\r\n },\r\n {\r\n key: BpmnProperty.candidateUsers,\r\n value: candidateUsers ? candidateUsers : undefined\r\n },\r\n {\r\n key: BpmnProperty.candidateGroups,\r\n value: candidateGroups ? candidateGroups : undefined\r\n }\r\n ]\r\n };\r\n }\r\n\r\n isExpressionValid(value: string) {\r\n return /\\${([^}]+)}/.test(value);\r\n }\r\n\r\n isCandidateValid(candidates): boolean {\r\n let result = false;\r\n if (Object.keys(candidates).length <= 2) {\r\n result = true;\r\n Object.keys(candidates).forEach((key: string) => {\r\n if (key !== 'candidateUsers' && key !== 'candidateGroups') {\r\n result = false;\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n isAssigneeValid(assignee): boolean {\r\n let result = false;\r\n if (Object.keys(assignee).length === 1) {\r\n result = true;\r\n Object.keys(assignee).forEach((key: string) => {\r\n if (key !== 'assignee') {\r\n result = false;\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n isAssigneeMode(): boolean {\r\n return this.selectedMode === AssignmentMode.assignee;\r\n }\r\n\r\n isCandidatesMode(): boolean {\r\n return this.selectedMode === AssignmentMode.candidates;\r\n }\r\n\r\n isXMLSingleMode(): boolean {\r\n return (\r\n this.assignmentXML &&\r\n this.assignmentXML.assignment === AssignmentMode.assignee\r\n );\r\n }\r\n\r\n isXMLCandidatesMode(): boolean {\r\n return (\r\n this.assignmentXML &&\r\n this.assignmentXML.assignment === AssignmentMode.candidates\r\n );\r\n }\r\n\r\n isXMLStaticType() {\r\n return (\r\n this.assignmentXML &&\r\n this.assignmentXML.type === AssignmentType.static\r\n );\r\n }\r\n\r\n isXMLIdentityType() {\r\n return (\r\n this.assignmentXML &&\r\n this.assignmentXML.type === AssignmentType.identity\r\n );\r\n }\r\n\r\n isXMLExpressionType() {\r\n return (\r\n this.assignmentXML &&\r\n this.assignmentXML.type === AssignmentType.expression\r\n );\r\n }\r\n\r\n isStaticType() {\r\n return this.selectedType === AssignmentType.static;\r\n }\r\n\r\n isIdentityType() {\r\n return this.selectedType === AssignmentType.identity;\r\n }\r\n\r\n isExpressionType() {\r\n return this.selectedType === AssignmentType.expression;\r\n }\r\n\r\n resetProperties() {\r\n this.assignmentPayload = undefined;\r\n this.removeStaticValues();\r\n this.removeIdentityValues();\r\n this.removeExpressionValues();\r\n }\r\n\r\n restoreFromXML() {\r\n if (this.isXMLStaticType()) {\r\n this.setStaticAssignments();\r\n } else if (this.isXMLIdentityType()) {\r\n this.setIdentityAssignments();\r\n } else if (this.isXMLExpressionType()) {\r\n this.setExpressionAssignments();\r\n }\r\n }\r\n\r\n isTabActive(index: number) {\r\n return this.currentActiveTab === index;\r\n }\r\n\r\n private removeStaticValues() {\r\n this.staticAssignee = undefined;\r\n this.staticCandidateUsers = [];\r\n this.staticCandidateGroups = [];\r\n }\r\n\r\n private removeIdentityValues() {\r\n this.identityAssignee = [].concat([]);\r\n this.identityCandidateUsers = [].concat([]);\r\n this.identityCandidateGroups = [].concat([]);\r\n }\r\n\r\n private removeExpressionValues() {\r\n this.expressionAssignee = undefined;\r\n this.expressionCandidateUsers = undefined;\r\n this.expressionCandidateGroups = undefined;\r\n if (this.isAssigneeMode()) {\r\n this.expressionContent = AssignmentDialogComponent.ASSIGNEE_CONTENT;\r\n } else {\r\n this.expressionContent = AssignmentDialogComponent.CANDIDATES_CONTENT;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n\r\n get staticForm(): FormGroup {\r\n return this.assignmentForm.get('staticForm');\r\n }\r\n\r\n get assigneeStaticControl(): AbstractControl {\r\n return this.staticForm.get('assignee');\r\n }\r\n\r\n get assigneeChipsStaticControl(): AbstractControl {\r\n return this.staticForm.get('assigneeChips');\r\n }\r\n\r\n private assigneeChipsStaticCtrlValue(value: string) {\r\n this.assigneeChipsStaticControl.setValue(value);\r\n this.assigneeChipsStaticControl.markAsDirty();\r\n this.assigneeChipsStaticControl.markAsTouched();\r\n this.assigneeChipsStaticControl.updateValueAndValidity();\r\n }\r\n\r\n private assigneeExpressionCtrlValue(value: string) {\r\n this.assigneeExpressionControl.setValue(value);\r\n this.assigneeExpressionControl.markAsDirty();\r\n this.assigneeExpressionControl.markAsTouched();\r\n this.assigneeExpressionControl.updateValueAndValidity();\r\n }\r\n\r\n private candidateUserExpressionCtrlValue(value: string) {\r\n this.candidateUsersExpressionControl.setValue(value);\r\n this.candidateUsersExpressionControl.markAsDirty();\r\n this.candidateUsersExpressionControl.markAsTouched();\r\n this.candidateUsersExpressionControl.updateValueAndValidity();\r\n }\r\n\r\n private candidateGroupExpressionCtrlValue(value: string) {\r\n this.candidateGroupsExpressionControl.setValue(value);\r\n this.candidateGroupsExpressionControl.markAsDirty();\r\n this.candidateGroupsExpressionControl.markAsTouched();\r\n this.candidateGroupsExpressionControl.updateValueAndValidity();\r\n }\r\n\r\n private candidateUserChipsStaticCtrlValue(value: string) {\r\n this.candidateUsersChipsStaticControl.setValue(value);\r\n this.candidateUsersChipsStaticControl.markAsDirty();\r\n this.candidateUsersChipsStaticControl.markAsTouched();\r\n this.candidateUsersChipsStaticControl.updateValueAndValidity();\r\n }\r\n\r\n private candidateGroupChipsStaticCtrlValue(value: string) {\r\n this.candidateGroupsChipsStaticControl.setValue(value);\r\n this.candidateGroupsChipsStaticControl.markAsDirty();\r\n this.candidateGroupsChipsStaticControl.markAsTouched();\r\n this.candidateGroupsChipsStaticControl.updateValueAndValidity();\r\n }\r\n\r\n get candidatesStaticFormGroup(): FormGroup {\r\n return this.staticForm.get('candidatesFormGroup');\r\n }\r\n\r\n get candidateUserStaticFormGroup(): FormGroup {\r\n return this.candidatesStaticFormGroup.get('candidateUserFormGroup');\r\n }\r\n\r\n get candidateUsersStaticControl(): AbstractControl {\r\n return this.candidateUserStaticFormGroup.get('candidateUsers');\r\n }\r\n\r\n get candidateUsersChipsStaticControl(): AbstractControl {\r\n return this.candidateUserStaticFormGroup.get('candidateUsersChips');\r\n }\r\n\r\n get candidateGroupStaticFormGroup(): FormGroup {\r\n return this.candidatesStaticFormGroup.get('candidateGroupFormGroup');\r\n }\r\n\r\n get candidateGroupsStaticControl(): AbstractControl {\r\n return this.candidateGroupStaticFormGroup.get('candidateGroups');\r\n }\r\n\r\n get candidateGroupsChipsStaticControl(): AbstractControl {\r\n return this.candidateGroupStaticFormGroup.get('candidateGroupsChips');\r\n }\r\n\r\n get identityForm(): FormGroup {\r\n return this.assignmentForm.get('identityForm');\r\n }\r\n\r\n get assigneeIdentityControl(): AbstractControl {\r\n return this.identityForm.get('assignee');\r\n }\r\n\r\n get assigneeChipsIdentityControl(): AbstractControl {\r\n return this.identityForm.get('assigneeChips');\r\n }\r\n\r\n get candidatesIdentityFormGroup(): FormGroup {\r\n return this.identityForm.get('candidatesFormGroup');\r\n }\r\n\r\n get candidateUserIdentityFormGroup(): FormGroup {\r\n return this.candidatesIdentityFormGroup.get('candidateUserFormGroup');\r\n }\r\n\r\n get candidateUsersIdentityControl(): AbstractControl {\r\n return this.candidateUserIdentityFormGroup.get('candidateUsers');\r\n }\r\n\r\n get candidateUsersChipsIdentityControl(): AbstractControl {\r\n return this.candidateUserIdentityFormGroup.get('candidateUsersChips');\r\n }\r\n\r\n get candidateGroupIdentityFormGroup(): FormGroup {\r\n return this.candidatesIdentityFormGroup.get('candidateGroupFormGroup');\r\n }\r\n\r\n get candidateGroupsChipsIdentityControl(): AbstractControl {\r\n return this.candidateGroupIdentityFormGroup.get('candidateGroupsChips');\r\n }\r\n\r\n get candidateGroupsIdentityControl(): AbstractControl {\r\n return this.candidateGroupIdentityFormGroup.get('candidateGroups');\r\n }\r\n\r\n get expressionForm(): FormGroup {\r\n return this.assignmentForm.get('expressionForm');\r\n }\r\n\r\n get assigneeExpressionControl(): AbstractControl {\r\n return this.expressionForm.get('assignee');\r\n }\r\n\r\n get candidateUsersExpressionControl(): AbstractControl {\r\n return this.expressionForm.get('candidateUsers');\r\n }\r\n\r\n get candidateGroupsExpressionControl(): AbstractControl {\r\n return this.expressionForm.get('candidateGroups');\r\n }\r\n\r\n get isCandidateUserAssigned(): boolean {\r\n return this.staticCandidateUsers && this.staticCandidateUsers.length > 0;\r\n }\r\n\r\n get isCandidateGroupAssigned(): boolean {\r\n return this.staticCandidateGroups && this.staticCandidateGroups.length > 0;\r\n }\r\n\r\n private assignmentFormClean() {\r\n this.staticForm.controls = {};\r\n this.identityForm.controls = {};\r\n this.expressionForm.controls = {};\r\n this.assignmentForm.reset();\r\n }\r\n\r\n get assignmentFormEnabled() {\r\n return !this.loadingForm && this.assignmentForm.valid && this.assignmentForm.dirty && this.assignmentForm.touched;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, ViewEncapsulation, Inject } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { Observable, combineLatest, of } from 'rxjs';\r\nimport { selectProcessCrumb, selectProcessLoading, selectSelectedProcessDiagram } from '../../store/process-editor.selectors';\r\nimport {\r\n Process,\r\n BreadcrumbItem,\r\n AmaState,\r\n selectProjectCrumb,\r\n ProcessContent,\r\n selectSelectedProcess,\r\n selectSelectedTheme,\r\n SetAppDirtyStateAction,\r\n ProcessModelerService,\r\n ProcessModelerServiceToken,\r\n CodeValidatorService,\r\n ProcessExtensions,\r\n PROCESS,\r\n getFileUri,\r\n CodeEditorPosition,\r\n ToolbarMessageAction\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { UpdateProcessExtensionsAction } from '../../store/process-editor.actions';\r\nimport { ProcessDiagramLoaderService } from '../../services/process-diagram-loader.service';\r\nimport { MatTabChangeEvent } from '@angular/material';\r\n\r\n@Component({\r\n templateUrl: './process-editor.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class ProcessEditorComponent implements OnInit {\r\n loading$: Observable;\r\n breadcrumbs$: Observable;\r\n content$: Observable;\r\n bpmnContent$: Observable;\r\n process$: Observable;\r\n extensions$: Observable;\r\n vsTheme$: Observable;\r\n disableSave: boolean;\r\n tabNames = [\r\n 'PROCESS_EDITOR.TABS.DIAGRAM_EDITOR',\r\n 'PROCESS_EDITOR.TABS.RAW_EDITOR',\r\n 'PROCESS_EDITOR.TABS.EXTENSIONS_EDITOR'\r\n ];\r\n selectedTabIndex = 0;\r\n extensionFileUri$: Observable;\r\n processFileUri$: Observable;\r\n extensionsLanguageType: string;\r\n processesLanguageType: string;\r\n\r\n constructor(\r\n private store: Store,\r\n private codeValidatorService: CodeValidatorService,\r\n @Inject(ProcessModelerServiceToken) private processModeler: ProcessModelerService,\r\n private processLoaderService: ProcessDiagramLoaderService\r\n ) {\r\n this.vsTheme$ = this.getVsTheme();\r\n this.extensionsLanguageType = 'json';\r\n this.processesLanguageType = 'xml';\r\n }\r\n\r\n ngOnInit() {\r\n this.loading$ = this.store.select(selectProcessLoading);\r\n this.process$ = this.store.select(selectSelectedProcess);\r\n this.processFileUri$ = this.process$.pipe(\r\n filter(process => !!process),\r\n map(process => getFileUri(PROCESS, this.processesLanguageType, process.id))\r\n );\r\n this.extensionFileUri$ = this.process$.pipe(\r\n filter(process => !!process),\r\n map(process => getFileUri(PROCESS, this.extensionsLanguageType, process.id))\r\n );\r\n this.content$ = this.store.select(selectSelectedProcessDiagram);\r\n this.bpmnContent$ = this.store.select(selectSelectedProcessDiagram);\r\n this.extensions$ = this.process$.pipe(\r\n filter(process => !!process && !!process.extensions),\r\n map(process => JSON.stringify(process.extensions, undefined, 4).trim())\r\n );\r\n\r\n this.breadcrumbs$ = combineLatest(\r\n of({ url: '/home', name: 'Dashboard' }),\r\n this.store.select(selectProjectCrumb).pipe(filter(value => value !== null)),\r\n this.store.select(selectProcessCrumb).pipe(filter(value => value !== null))\r\n );\r\n }\r\n\r\n private getVsTheme(): Observable {\r\n return this.store\r\n .select(selectSelectedTheme)\r\n .pipe(map(theme => (theme.className === 'dark-theme' ? 'vs-dark' : 'vs-light')));\r\n }\r\n\r\n onBpmnEditorChange(): void {\r\n this.processModeler.export().then(content => this.content$ = of(content));\r\n }\r\n\r\n onXmlChangeAttempt(processContent: ProcessContent): void {\r\n this.processLoaderService.load(processContent)\r\n .subscribe(() => {\r\n this.store.dispatch(new SetAppDirtyStateAction(true));\r\n });\r\n this.content$ = of(processContent);\r\n }\r\n\r\n onExtensionsChangeAttempt(extensionsString: string, processId: string): void {\r\n const validation = this.codeValidatorService.validateJson(extensionsString);\r\n\r\n this.disableSave = !validation.valid;\r\n\r\n if (validation.valid) {\r\n this.store.dispatch(new UpdateProcessExtensionsAction({ extensions: JSON.parse(extensionsString), processId }));\r\n this.store.dispatch(new SetAppDirtyStateAction(true));\r\n }\r\n }\r\n\r\n selectedTabChange(event: MatTabChangeEvent) {\r\n this.selectedTabIndex = event.index;\r\n this.store.dispatch(new ToolbarMessageAction(this.tabNames[this.selectedTabIndex]));\r\n }\r\n\r\n codeEditorPositionChanged(position: CodeEditorPosition) {\r\n if (this.selectedTabIndex > 0 ) {\r\n this.store.dispatch(new ToolbarMessageAction(`Ln ${position.lineNumber}, Col ${position.column}`));\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport {\r\n Process,\r\n AmaState,\r\n OpenConfirmDialogAction,\r\n ProcessContent,\r\n EntityDialogForm,\r\n ProcessModelerServiceToken,\r\n ProcessModelerService,\r\n BreadcrumbItem,\r\n SnackbarInfoAction,\r\n SnackbarErrorAction,\r\n AUTO_SAVE_PROCESS,\r\n AutoSaveProcessAction\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { DeleteProcessAttemptAction, ValidateProcessAttemptAction, DownloadProcessAction, UpdateProcessAttemptAction, DownloadProcessSVGImageAction } from '../../store/process-editor.actions';\r\nimport { documentationHandler } from '../../services/bpmn-js/property-handlers/documentation.handler';\r\nimport { modelNameHandler } from '../../services/bpmn-js/property-handlers/model-name.handler';\r\nimport { Actions, ofType } from '@ngrx/effects';\r\nimport { takeUntil, tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'ama-process-header',\r\n templateUrl: './process-header.component.html'\r\n})\r\nexport class ProcessHeaderComponent implements OnInit, OnDestroy {\r\n private destroy$ = new Subject();\r\n\r\n @Input() process: Process;\r\n @Input() content: ProcessContent;\r\n @Input() breadcrumbs$: Observable;\r\n @Input() disableSave = false;\r\n public modeler: Bpmn.Modeler;\r\n\r\n constructor(\r\n private store: Store,\r\n @Inject(ProcessModelerServiceToken) private processModeler: ProcessModelerService,\r\n private actions$: Actions\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.actions$.pipe(\r\n ofType(AUTO_SAVE_PROCESS),\r\n tap(() => this.store.dispatch(this.saveAction())),\r\n takeUntil(this.destroy$)\r\n ).subscribe(null);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n private saveAction(): UpdateProcessAttemptAction {\r\n const element = this.processModeler.getRootProcessElement();\r\n const metadata: Partial = {\r\n name: modelNameHandler.get(element),\r\n description: documentationHandler.get(element),\r\n };\r\n return new UpdateProcessAttemptAction({ processId: this.process.id, content: this.content, metadata });\r\n }\r\n\r\n onSaveClick(): void {\r\n this.store.dispatch(new ValidateProcessAttemptAction({\r\n title: 'APP.DIALOGS.CONFIRM.SAVE.PROCESS',\r\n processId: this.process.id,\r\n content: this.content,\r\n extensions: this.process.extensions,\r\n action: this.saveAction()\r\n }));\r\n }\r\n\r\n onDownload(process: Process): void {\r\n this.store.dispatch(new ValidateProcessAttemptAction({\r\n title: 'APP.DIALOGS.CONFIRM.DOWNLOAD.PROCESS',\r\n processId: process.id,\r\n content: this.content,\r\n extensions: this.process.extensions,\r\n action: new DownloadProcessAction(process)\r\n }));\r\n }\r\n\r\n deleteProcess(): void {\r\n this.store.dispatch(\r\n new OpenConfirmDialogAction({\r\n dialogData: { title: 'APP.DIALOGS.CONFIRM.DELETE.PROCESS' },\r\n action: new DeleteProcessAttemptAction(this.process.id)\r\n })\r\n );\r\n }\r\n\r\n onSaveProcessImage(process: Process): void {\r\n this.store.dispatch(new ValidateProcessAttemptAction({\r\n title: 'APP.DIALOGS.CONFIRM.DOWNLOAD.IMAGE',\r\n processId: process.id,\r\n content: this.content,\r\n extensions: this.process.extensions,\r\n action: new DownloadProcessSVGImageAction(process)\r\n }));\r\n }\r\n\r\n onValidateProcess(process: Process): void {\r\n this.store.dispatch(new ValidateProcessAttemptAction({\r\n title: 'APP.DIALOGS.ERROR.SUBTITLE',\r\n processId: process.id,\r\n content: this.content,\r\n extensions: this.process.extensions,\r\n action: new SnackbarInfoAction('PROCESS_EDITOR.PROCESS_VALID'),\r\n errorAction: new SnackbarErrorAction('PROCESS_EDITOR.PROCESS_INVALID')\r\n }));\r\n }\r\n}\r\n","module.exports = \"

\\r\\n email{{ 'SDK.MESSAGES_EDITOR.TITLE' | translate}}\\r\\n

\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'SDK.MESSAGES_EDITOR.TABLE.COLUMN_ID' | translate }}\\r\\n \\r\\n \\r\\n {{element.id}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ 'SDK.MESSAGES_EDITOR.TABLE.COLUMN_NAME' | translate }}\\r\\n \\r\\n \\r\\n {{element.name}}\\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
{{'SDK.MESSAGES_EDITOR.TABLE.COLUMN_ID' | translate}}
\\r\\n \\r\\n
\\r\\n \\r\\n
{{'SDK.MESSAGES_EDITOR.TABLE.COLUMN_NAME' | translate}}
\\r\\n \\r\\n
\\r\\n
\\r\\n {{ 'SDK.MESSAGES_EDITOR.ERRORS.EMPTY_NAME' | translate }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

{{'SDK.MESSAGES_EDITOR.TABLE.NO_MESSAGES' | translate}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatTableDataSource, MatDialogRef, MatDialogConfig, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MessagesService } from '../../../services/messages.service';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport interface MessageDialogData extends MatDialogConfig {\r\n columns: string[];\r\n propertiesUpdate$: Subject;\r\n}\r\n\r\n@Component({\r\n templateUrl: './messages-dialog.component.html',\r\n selector: 'ama-messages-dialog'\r\n})\r\n\r\nexport class MessagesDialogComponent implements OnInit {\r\n\r\n displayedColumns: string[];\r\n selectedMessage: Bpmn.BusinessObject;\r\n dataSource: MatTableDataSource;\r\n messages: Bpmn.BusinessObject[] = [];\r\n\r\n position: number;\r\n showForm: boolean;\r\n messagesChanged = false;\r\n\r\n constructor(\r\n public dialog: MatDialogRef,\r\n private messagesService: MessagesService,\r\n @Inject(MAT_DIALOG_DATA) public data: MessageDialogData) {\r\n this.displayedColumns = data.columns;\r\n }\r\n\r\n ngOnInit() {\r\n const messagesFromXML = this.messagesService.getUpdatedMessages();\r\n this.messages = [...messagesFromXML];\r\n this.updateMessages();\r\n }\r\n\r\n updateMessages() {\r\n this.dataSource = new MatTableDataSource(this.messages);\r\n }\r\n\r\n createMessage() {\r\n this.messagesChanged = true;\r\n const newMessage = this.messagesService.createMessage();\r\n this.messages.push(newMessage);\r\n this.updateMessages();\r\n }\r\n\r\n deleteMessage(element: Bpmn.DiagramElement) {\r\n this.messagesChanged = true;\r\n const deletedMessageIndex = this.messages.map((message) => message.id).indexOf(element.id);\r\n this.messages.splice(deletedMessageIndex, 1);\r\n this.updateMessages();\r\n }\r\n\r\n editMessage(element: Bpmn.BusinessObject, index: number) {\r\n this.selectedMessage = element;\r\n this.showForm = true;\r\n this.position = index;\r\n }\r\n\r\n onMessageChanged() {\r\n this.messagesChanged = true;\r\n }\r\n\r\n onSave() {\r\n this.messagesChanged = false;\r\n this.messagesService.saveMessages(this.messages);\r\n this.data.propertiesUpdate$.next();\r\n this.data.propertiesUpdate$.complete();\r\n this.dialog.close();\r\n }\r\n\r\n onClose() {\r\n this.messagesChanged = false;\r\n this.messages = [];\r\n this.data.propertiesUpdate$.complete();\r\n this.dialog.close();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Directive, ElementRef, TemplateRef, AfterViewInit, Input, HostListener, ViewContainerRef, OnDestroy } from '@angular/core';\r\nimport { OverlayRef, PositionStrategy, Overlay } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\n\r\n @Directive({\r\n selector: '[ama-palette-overlay]'\r\n })\r\n\r\n export class PaletteOverlayDirective implements AfterViewInit, OnDestroy {\r\n overlayPosition: PositionStrategy;\r\n templatePortal: TemplatePortal;\r\n @Input() templatePortalContent: TemplateRef;\r\n @Input() amaPaletteItem: any;\r\n @Input() amaPaletteOverlayRef: OverlayRef;\r\n\r\n constructor(\r\n public submenuBtnRef: ElementRef,\r\n public amaPaletteContainerRef: ViewContainerRef,\r\n private overlay: Overlay\r\n ) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.amaPaletteOverlayRef = this.overlay.create({\r\n positionStrategy: this.getOverlayPosition(),\r\n panelClass: 'palette-drawer-container'\r\n });\r\n }\r\n\r\n getOverlayPosition(): PositionStrategy {\r\n this.overlayPosition = this.overlay.position()\r\n .connectedTo(\r\n this.submenuBtnRef,\r\n {originX: 'start', originY: 'bottom'},\r\n {overlayX: 'start', overlayY: 'bottom'}\r\n );\r\n\r\n return this.overlayPosition;\r\n }\r\n\r\n @HostListener('window:click', ['$event']) onWindowClick($event: Event) {\r\n if ($event.target === this.submenuBtnRef.nativeElement) {\r\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.amaPaletteContainerRef);\r\n this.templatePortal.context = {$implicit: this.amaPaletteItem};\r\n if (!this.amaPaletteOverlayRef.hasAttached()) {\r\n this.amaPaletteOverlayRef.attach(this.templatePortal);\r\n }\r\n } else if (this.amaPaletteOverlayRef.hasAttached()) {\r\n this.amaPaletteOverlayRef.detach();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.amaPaletteOverlayRef.hasAttached()) {\r\n this.amaPaletteOverlayRef.detach();\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n more_horiz\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\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.tag | translate}}\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Inject, Optional, HostListener, ViewChild, TemplateRef, OnInit } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ProcessModelerPaletteService } from '../../../services/palette/process-modeler-palette.service';\r\nimport {\r\n PaletteElement,\r\n PaletteElementsToken,\r\n ToolTrigger,\r\n BpmnTrigger,\r\n PaletteGroupElement,\r\n PaletteSeparatorElement,\r\n PaletteElementIconsToken\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { OverlayRef } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n templateUrl: './palette.component.html',\r\n selector: 'ama-process-palette'\r\n})\r\nexport class PaletteComponent implements OnInit {\r\n\r\n public selectedTool: ToolTrigger;\r\n public paletteElements: PaletteElement[];\r\n public paletteElementIcons;\r\n public paletteIconSvg = {};\r\n public opened = true;\r\n public detach = false;\r\n overlayRef: OverlayRef;\r\n @ViewChild('drawer') templateContent: TemplateRef;\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event) {\r\n event.stopPropagation();\r\n }\r\n\r\n constructor(\r\n private processModelerPaletteService: ProcessModelerPaletteService,\r\n private sanitizer: DomSanitizer,\r\n @Optional() @Inject(PaletteElementsToken) paletteElements: PaletteElement[],\r\n @Optional() @Inject(PaletteElementIconsToken) paletteElementIcons\r\n ) {\r\n this.paletteElements = (paletteElements).flatten(1) || [];\r\n this.paletteElementIcons = paletteElementIcons || {};\r\n }\r\n\r\n ngOnInit() {\r\n this.buildPaletteIcons();\r\n }\r\n\r\n private buildPaletteIcons() {\r\n Object.keys(this.paletteElementIcons).forEach((type) => {\r\n this.paletteIconSvg[type] = this.sanitizer.bypassSecurityTrustHtml(this.paletteElementIcons[type]);\r\n });\r\n }\r\n\r\n public isSeparator(element: PaletteSeparatorElement) {\r\n return element.group === 'separator';\r\n }\r\n\r\n public hasChildren(element: PaletteGroupElement) {\r\n return element.group === 'container' && element.children && element.children.length;\r\n }\r\n\r\n public toggleOpen() {\r\n this.opened = !this.opened;\r\n }\r\n\r\n public onClick(paletteItem: BpmnTrigger, event: any) {\r\n if (!paletteItem.clickable) {\r\n return;\r\n }\r\n\r\n if (paletteItem.group === 'tool') {\r\n this.selectedTool = paletteItem;\r\n }\r\n\r\n this.delegateEvent(paletteItem, event);\r\n }\r\n\r\n public onDrag(paletteItem: BpmnTrigger, event: any) {\r\n if (!paletteItem.draggable) {\r\n return;\r\n }\r\n\r\n this.delegateEvent(paletteItem, event);\r\n }\r\n\r\n private delegateEvent(paletteItem: BpmnTrigger, event: any) {\r\n this.processModelerPaletteService.delegateEvent(paletteItem, event);\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n \\r\\n control_camera\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n undo\\r\\n \\r\\n
\\r\\n \\r\\n redo\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n add\\r\\n \\r\\n
\\r\\n \\r\\n remove\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, ViewChild, ElementRef, Input, OnDestroy, AfterViewInit, OnInit, Output, EventEmitter, Inject } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { ProcessContent, SnackbarErrorAction, ProcessModelerServiceToken, ProcessModelerService, ToolbarMessageAction } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\nimport {\r\n SelectModelerElementAction,\r\n ChangedProcessAction,\r\n RemoveDiagramElementAction,\r\n} from '../../store/process-editor.actions';\r\nimport { ProcessEntitiesState } from '../../store/process-entities.state';\r\nimport { ProcessDiagramLoaderService } from '../../services/process-diagram-loader.service';\r\nimport { createSelectedElement } from '../../store/process-editor.state';\r\n\r\n@Component({\r\n selector: 'ama-process-modeler',\r\n templateUrl: './process-modeler.component.html'\r\n})\r\nexport class ProcessModelerComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChild('canvas') canvas: ElementRef;\r\n\r\n diagramData$: BehaviorSubject = new BehaviorSubject(null);\r\n onDestroy$: Subject = new Subject();\r\n\r\n // tslint:disable-next-line\r\n @Output()\r\n onChange: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n set source(diagramData: ProcessContent) {\r\n this.diagramData$.next(diagramData);\r\n }\r\n\r\n constructor(\r\n private store: Store,\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService,\r\n private processLoaderService: ProcessDiagramLoaderService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.processModelerService.init({\r\n clickHandler: event => {\r\n this.store.dispatch(new SelectModelerElementAction(createSelectedElement(event.element)));\r\n this.store.dispatch(new ToolbarMessageAction(event.element.type));\r\n },\r\n changeHandler: event => {\r\n this.store.dispatch(new ChangedProcessAction(createSelectedElement(event.element)));\r\n this.onChange.emit(event);\r\n },\r\n removeHandler: event =>\r\n this.store.dispatch(new RemoveDiagramElementAction(createSelectedElement(event.element))),\r\n selectHandler: event => {\r\n if (event.newSelection[0]) {\r\n this.store.dispatch(\r\n new SelectModelerElementAction(\r\n createSelectedElement(event.newSelection[0])\r\n )\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.processModelerService.render(this.canvas.nativeElement);\r\n\r\n this.diagramData$\r\n .pipe(\r\n filter(diagramData => diagramData !== null),\r\n switchMap(diagramData => this.processLoaderService.load(diagramData)),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(\r\n () => {},\r\n () => this.store.dispatch(new SnackbarErrorAction('PROCESS_EDITOR.ERRORS.LOAD_DIAGRAM'))\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n this.processModelerService.destroy();\r\n }\r\n\r\n fitViewPort() {\r\n this.processModelerService.fitViewPort();\r\n }\r\n\r\n zoomIn() {\r\n this.processModelerService.zoomIn();\r\n }\r\n\r\n zoomOut() {\r\n this.processModelerService.zoomOut();\r\n }\r\n\r\n undo() {\r\n this.processModelerService.undo();\r\n }\r\n\r\n redo() {\r\n this.processModelerService.redo();\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.PROPERTIES' | translate }} \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2Nlc3MtZWRpdG9yL2NvbXBvbmVudHMvcHJvY2Vzcy1wcm9wZXJ0aWVzL3Byb2Nlc3MtcHJvcGVydGllcy5jb21wb25lbnQuc2NzcyJ9 */\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, OnDestroy, ViewChild, ElementRef, AfterViewInit, Inject, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CardViewItem, CardViewUpdateService, UpdateNotification, CardItemTypeService } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport { selectSelectedElement } from '../../store/process-editor.selectors';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { CardViewPropertiesFactory } from '../../services/cardview-properties/cardview-properties.factory';\r\nimport {\r\n PROCESS_EDITOR_CUSTOM_PROPERTY_HANDLERS,\r\n ProcessEditorCustomProperty,\r\n ProcessModelerServiceToken,\r\n ProcessModelerService\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProcessEntitiesState } from '../../store/process-entities.state';\r\nimport { SelectedProcessElement } from '../../store/process-editor.state';\r\n\r\n@Component({\r\n selector: 'ama-process-properties',\r\n templateUrl: './process-properties.component.html',\r\n styleUrls: ['./process-properties.component.scss'],\r\n providers: [CardViewUpdateService, CardItemTypeService],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ProcessPropertiesComponent implements OnInit, OnDestroy, AfterViewInit {\r\n /** @deprecated: bpmnjs-properties */\r\n @ViewChild('bpmnPropertiesPanel') bpmnPropertiesPanel: ElementRef;\r\n onDestroy$: Subject = new Subject();\r\n properties$: Observable;\r\n\r\n constructor(\r\n private store: Store,\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService,\r\n private cardViewFactory: CardViewPropertiesFactory,\r\n private cardViewUpdateService: CardViewUpdateService,\r\n private cardItemTypeService: CardItemTypeService,\r\n @Inject(PROCESS_EDITOR_CUSTOM_PROPERTY_HANDLERS) private customPropertyHandlers: ProcessEditorCustomProperty[]\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.properties$ = this.store.select(selectSelectedElement).pipe(map(this.getPropertiesForShape.bind(this)));\r\n\r\n this.cardViewUpdateService.itemUpdated$\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(this.updateElementProperty.bind(this));\r\n\r\n for (const handler of this.customPropertyHandlers) {\r\n this.cardItemTypeService.setComponentTypeResolver(handler.type, () => handler.implementationClass, true);\r\n }\r\n }\r\n\r\n /** @deprecated: bpmnjs-properties */\r\n ngAfterViewInit() {\r\n try {\r\n const propertiesPanel = (this.processModelerService).modeler.get('propertiesPanel');\r\n propertiesPanel.attachTo(this.bpmnPropertiesPanel.nativeElement);\r\n } catch {\r\n /*tslint:disable-next-line*/\r\n console.warn('Bpmnjs properties panel are not included. If not needed, remove all code marked with \"@deprecated: bpmnjs-properties\".');\r\n }\r\n }\r\n\r\n private getPropertiesForShape(shape: SelectedProcessElement): CardViewItem[] {\r\n if (shape === null) {\r\n return [];\r\n }\r\n\r\n try {\r\n const element = this.processModelerService.getElement(shape.id);\r\n return this.cardViewFactory.createCardViewPropertiesFor(element);\r\n } catch {\r\n /*tslint:disable-next-line*/\r\n console.warn(`Element with id ${shape.id} not found in process editor`);\r\n return [];\r\n }\r\n }\r\n\r\n private updateElementProperty(updateObject: UpdateNotification) {\r\n const shapeId = updateObject.target.data.id,\r\n propertyName = updateObject.target.key,\r\n value = updateObject.changed[propertyName];\r\n\r\n this.processModelerService.updateElementProperty(shapeId, propertyName, value);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { PaletteElement } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const paletteElements: PaletteElement[] = [\r\n {\r\n group: 'tool',\r\n type: 'hand-tool',\r\n icon: 'bpmn-icon-hand-tool',\r\n title: 'PROCESS_EDITOR.PALETTE.HAND_TOOL',\r\n clickable: true,\r\n draggable: false\r\n },\r\n {\r\n group: 'tool',\r\n type: 'connect-tool',\r\n icon: 'bpmn-icon-connection-multi',\r\n title: 'PROCESS_EDITOR.PALETTE.CONNECT_TOOL',\r\n clickable: true,\r\n draggable: false\r\n },\r\n {\r\n group: 'tool',\r\n type: 'space-tool',\r\n icon: 'bpmn-icon-space-tool',\r\n title: 'PROCESS_EDITOR.PALETTE.SPACE_TOOL',\r\n clickable: true,\r\n draggable: false\r\n },\r\n {\r\n group: 'tool',\r\n type: 'lasso-tool',\r\n icon: 'bpmn-icon-lasso-tool',\r\n title: 'PROCESS_EDITOR.PALETTE.LASSO_TOOL',\r\n clickable: true,\r\n draggable: false\r\n },\r\n { group: 'separator' },\r\n {\r\n group: 'element',\r\n type: 'bpmn:StartEvent',\r\n icon: 'bpmn-icon-start-event-none',\r\n title: 'PROCESS_EDITOR.PALETTE.START_EVENT',\r\n clickable: true,\r\n draggable: true\r\n },\r\n {\r\n group: 'element',\r\n type: 'bpmn:EndEvent',\r\n icon: 'bpmn-icon-end-event-none',\r\n title: 'PROCESS_EDITOR.PALETTE.END_EVENT',\r\n clickable: true,\r\n draggable: true\r\n },\r\n {\r\n group: 'element',\r\n type: 'bpmn:IntermediateThrowEvent',\r\n icon: 'bpmn-icon-intermediate-event-none',\r\n title: 'PROCESS_EDITOR.PALETTE.INTERMEDIATE_THROW_EVENT',\r\n clickable: true,\r\n draggable: true\r\n },\r\n { group: 'separator' },\r\n {\r\n group: 'element',\r\n type: 'bpmn:Gateway',\r\n icon: 'bpmn-icon-gateway-none',\r\n title: 'PROCESS_EDITOR.PALETTE.GATEWAY',\r\n clickable: true,\r\n draggable: true\r\n },\r\n { group: 'separator' },\r\n {\r\n group: 'element',\r\n type: 'bpmn:UserTask',\r\n icon: 'bpmn-icon-user-task',\r\n title: 'PROCESS_EDITOR.PALETTE.USER_TASK',\r\n clickable: true,\r\n draggable: true\r\n },\r\n {\r\n group: 'element',\r\n type: 'bpmn:ServiceTask',\r\n icon: 'bpmn-icon-service-task',\r\n title: 'PROCESS_EDITOR.PALETTE.SERVICE_TASK',\r\n clickable: true,\r\n draggable: true\r\n },\r\n {\r\n group: 'element',\r\n type: 'bpmn:CallActivity',\r\n icon: 'bpmn-icon-call-activity',\r\n title: 'PROCESS_EDITOR.PALETTE.CALL_ACTIVITY',\r\n clickable: true,\r\n draggable: true\r\n },\r\n {\r\n group: 'element',\r\n type: 'bpmn:SubProcess',\r\n icon: 'bpmn-icon-subprocess-expanded',\r\n title: 'PROCESS_EDITOR.PALETTE.SUB_PROCESS',\r\n clickable: true,\r\n draggable: true,\r\n options: {\r\n isExpanded: true\r\n }\r\n },\r\n { group: 'separator' },\r\n {\r\n group: 'element',\r\n type: 'bpmn:Participant',\r\n icon: 'bpmn-icon-participant',\r\n title: 'PROCESS_EDITOR.PALETTE.PARTICIPANT',\r\n clickable: true,\r\n draggable: true\r\n }\r\n];\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { MODEL_CREATORS, ModelCreator, PROCESS } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { PROCESS_ICON } from './processes-filter.extension';\r\nimport { CreateProcessAttemptAction } from '../store/process-editor.actions';\r\n\r\nexport function createProcessCreator(callback = () => {}): ModelCreator {\r\n return {\r\n name: 'PROJECT_EDITOR.NEW_MENU.MENU_ITEMS.CREATE_PROCESS',\r\n icon: PROCESS_ICON,\r\n type: PROCESS,\r\n order: 0,\r\n dialog: {\r\n title: 'PROJECT_EDITOR.PROCESS_DIALOG.TITLE_CREATE',\r\n nameField: 'PROJECT_EDITOR.PROCESS_DIALOG.PROCESS_NAME',\r\n descriptionField: 'PROJECT_EDITOR.PROCESS_DIALOG.PROCESS_DESC',\r\n action: CreateProcessAttemptAction,\r\n callback: callback\r\n }\r\n };\r\n}\r\n\r\nexport function createProcess() {\r\n return createProcessCreator();\r\n}\r\n\r\nexport function getProcessCreatorProvider() {\r\n return [\r\n { provide: MODEL_CREATORS, useFactory: createProcess, multi: true }\r\n ];\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ModelUploader, MODEL_UPLOADERS, PROCESS } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { UploadProcessAttemptAction } from '../store/process-editor.actions';\r\n\r\nexport function createProcessUploader(): ModelUploader {\r\n return {\r\n type: PROCESS,\r\n acceptedFileType: '.xml',\r\n action: UploadProcessAttemptAction\r\n };\r\n}\r\n\r\nexport function getProcessUploaderProvider() {\r\n return [\r\n {\r\n provide: MODEL_UPLOADERS,\r\n useFactory: createProcessUploader,\r\n multi: true\r\n }\r\n ];\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { PROCESS, FilterDataAdapter, AmaState, Filter } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { selectProcessesArray, selectProcessesLoading } from '../store/process-editor.selectors';\r\nimport { ShowProcessesAction } from '../store/process-editor.actions';\r\n\r\n@Injectable()\r\nexport class ProcessesFilterDataAdapter implements FilterDataAdapter {\r\n constructor(private store: Store) {}\r\n\r\n get expandedPredicate() {\r\n return (filters) => filters.indexOf(PROCESS) !== -1;\r\n }\r\n\r\n get contents(): Observable[]> {\r\n return this.store.select(selectProcessesArray);\r\n }\r\n\r\n get loading(): Observable {\r\n return this.store.select(selectProcessesLoading);\r\n }\r\n\r\n load(projectId: string): void {\r\n this.store.dispatch(new ShowProcessesAction(projectId));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { MODEL_FILTERS, PROCESS, ModelFilter } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProcessesFilterDataAdapter } from './processes-filter.data-adapter';\r\n\r\nexport const PROCESS_ICON = 'device_hub';\r\n\r\nexport function createProcessesFilter(processesFilterDataAdapter: ProcessesFilterDataAdapter): ModelFilter {\r\n return {\r\n type: PROCESS,\r\n name: 'PROJECT_EDITOR.TREE.PROCESSES',\r\n icon: PROCESS_ICON,\r\n adapter: processesFilterDataAdapter,\r\n order: 0\r\n };\r\n}\r\n\r\nexport function getProcessesFilterProvider() {\r\n return [\r\n ProcessesFilterDataAdapter,\r\n {\r\n provide: MODEL_FILTERS,\r\n useFactory: createProcessesFilter,\r\n deps: [ProcessesFilterDataAdapter],\r\n multi: true\r\n }\r\n ];\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\nimport { CardViewTextItemComponent, CoreModule } from '@alfresco/adf-core';\r\nimport { ProcessServicesCloudModule } from '@alfresco/adf-process-services-cloud';\r\n\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { ProcessEditorComponent } from './components/process-editor/process-editor.component';\r\nimport { ProcessModelerComponent } from './components/process-modeler/process-modeler.component';\r\nimport { ProcessHeaderComponent } from './components/process-header/process-header.component';\r\nimport { ProcessModelerServiceImplementation } from './services/process-modeler.service';\r\nimport { ProcessEditorService } from './services/process-editor.service';\r\nimport { ProcessEditorEffects } from './store/process-editor.effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { ProcessEditorRoutingModule } from './router/process-editor-routing.module';\r\nimport { CardViewPropertiesFactory } from './services/cardview-properties/cardview-properties.factory';\r\nimport { Title } from '@angular/platform-browser';\r\nimport {\r\n AmaStoreModule,\r\n AmaTitleService,\r\n BpmnFactoryToken,\r\n BpmnProperty,\r\n CodeEditorModule,\r\n InputMappingTableModule,\r\n OutputMappingTableModule,\r\n PROCESSES_ENTITY_KEY,\r\n ProcessModelerServiceToken,\r\n provideLogFilter,\r\n providePaletteElements,\r\n providePaletteHandler,\r\n providePropertyHandler,\r\n provideTranslations,\r\n SharedModule,\r\n VariablesModule,\r\n WorkbenchLayoutModule,\r\n provideLoadableModelSchema,\r\n PROCESS,\r\n MODEL_SCHEMA_TYPE,\r\n BpmnCompositeProperty\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { BpmnFactoryService } from './services/bpmn-factory.service';\r\nimport { ProcessDiagramLoaderService } from './services/process-diagram-loader.service';\r\nimport { CardViewProcessVariablesItemComponent } from './services/cardview-properties/process-variable-item/process-variable-item.component';\r\nimport { CardViewImplementationItemComponent } from './services/cardview-properties/implementation-item/implementation-item.component';\r\nimport { CardViewDecisionTaskItemComponent } from './services/cardview-properties/decision-task-item/decision-task-item.component';\r\nimport { CardViewScriptTaskItemComponent } from './services/cardview-properties/script-task-item/script-task-item.component';\r\nimport { ProcessPropertiesComponent } from './components/process-properties/process-properties.component';\r\nimport { MatChipsModule, MatTooltipModule, MatCardModule, MatDialogModule, MatSnackBarModule } from '@angular/material';\r\nimport { getProcessesFilterProvider } from './extension/processes-filter.extension';\r\nimport { getProcessCreatorProvider } from './extension/process-creator.extension';\r\nimport { getProcessUploaderProvider } from './extension/process-uploader.extension';\r\nimport { processEntitiesReducer } from './store/process-entities.reducer';\r\nimport { ProcessVariablesEffects } from './store/process-variables.effects';\r\nimport { processEditorReducer } from './store/process-editor.reducer';\r\nimport { PROCESS_EDITOR_STATE_NAME } from './store/process-editor.selectors';\r\nimport { CardViewDefaultSequenceFlowItemComponent } from './services/cardview-properties/default-sequence-flow/default-sequence-flow-item.component';\r\nimport { PaletteComponent } from './components/process-modeler/palette/palette.component';\r\nimport { ProcessModelerPaletteService } from './services/palette/process-modeler-palette.service';\r\nimport { ElementCreationHandler } from './services/palette/handlers/element-creation';\r\nimport { ToolsHandler } from './services/palette/handlers/tools';\r\nimport { PaletteOverlayDirective } from './components/process-modeler/palette/palette-overlay.directive';\r\n// Angular can't bundle json data into prod build, that is why the file is .json.ts\r\nimport { paletteElements } from './config/palette-elements.json';\r\nimport { CardViewSignalRefItemComponent } from './services/cardview-properties/signal-ref-item/signal-ref-item.component';\r\nimport { CardViewCalledItemItemComponent } from './services/cardview-properties/called-element-item/called-element-item.component';\r\nimport { CardViewTimerDefinitionItemComponent } from './services/cardview-properties/timer-definition-item/timer-definition-item.component';\r\nimport { getProcessLogInitiator } from './services/process-editor.constants';\r\nimport { CardViewErrorRefItemComponent } from './services/cardview-properties/error-ref-item/error-ref-item.component';\r\nimport { CardViewMessageItemComponent } from './services/cardview-properties/message-item/message-item.component';\r\nimport { CardViewProcessMessagesItemComponent } from './services/cardview-properties/process-messages-item/process-messages-item.component';\r\nimport { ProcessMessagesEffects } from './store/process-messages.effects';\r\nimport { CardViewMultiInstanceItemComponent } from './services/cardview-properties/multi-instance-item/multi-instance-item.component';\r\nimport { ClipboardService } from './services/clipboard/clipboard.service';\r\nimport { CardViewMessagePayloadItemComponent } from './services/cardview-properties/message-payload-item/message-payload-item.component';\r\nimport { CardViewMessageVariableMappingComponent } from './services/cardview-properties/message-variable-mapping/message-variable-mapping.component';\r\nimport { CardViewDueDateItemComponent } from './services/cardview-properties/due-date-item/due-date-item.component';\r\nimport { MessagesDialogComponent } from './components/process-modeler/messages/messages-dialog.component';\r\nimport { MessagesService } from './services/messages.service';\r\nimport { AssignmentDialogComponent } from './components/assignment/assignment-dialog.component';\r\nimport { ProcessTaskAssignmentEffects } from './store/process-task-assignment.effects';\r\nimport { CardViewTaskAssignmentItemComponent } from './services/cardview-properties/task-assignment-item/task-assignment-item.component';\r\nimport { TaskAssignmentService } from './services/cardview-properties/task-assignment-item/task-assignment.service';\r\nimport { transformJsonSchema } from './services/transformJsonSchema';\r\nimport { CardViewProcessNameItemComponent } from './services/cardview-properties/process-name-item/process-name-item.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CoreModule.forChild(),\r\n ProcessServicesCloudModule,\r\n ProcessEditorRoutingModule,\r\n EffectsModule.forFeature([ProcessEditorEffects, ProcessVariablesEffects, ProcessMessagesEffects, ProcessTaskAssignmentEffects]),\r\n AmaStoreModule.registerEntity({\r\n key: PROCESSES_ENTITY_KEY,\r\n reducer: processEntitiesReducer\r\n }),\r\n StoreModule.forFeature(PROCESS_EDITOR_STATE_NAME, processEditorReducer),\r\n SharedModule,\r\n WorkbenchLayoutModule,\r\n VariablesModule,\r\n MatTooltipModule,\r\n MatChipsModule,\r\n MatCardModule,\r\n MatDialogModule,\r\n MatSnackBarModule,\r\n CodeEditorModule,\r\n DragDropModule,\r\n InputMappingTableModule,\r\n OutputMappingTableModule\r\n ],\r\n declarations: [\r\n ProcessEditorComponent,\r\n ProcessHeaderComponent,\r\n PaletteComponent,\r\n PaletteOverlayDirective,\r\n ProcessModelerComponent,\r\n ProcessPropertiesComponent,\r\n MessagesDialogComponent,\r\n CardViewProcessVariablesItemComponent,\r\n CardViewImplementationItemComponent,\r\n CardViewDecisionTaskItemComponent,\r\n CardViewScriptTaskItemComponent,\r\n CardViewDefaultSequenceFlowItemComponent,\r\n CardViewCalledItemItemComponent,\r\n CardViewSignalRefItemComponent,\r\n CardViewErrorRefItemComponent,\r\n CardViewTimerDefinitionItemComponent,\r\n CardViewMessageItemComponent,\r\n CardViewMessageVariableMappingComponent,\r\n CardViewProcessMessagesItemComponent,\r\n CardViewMessagePayloadItemComponent,\r\n CardViewMultiInstanceItemComponent,\r\n CardViewDueDateItemComponent,\r\n AssignmentDialogComponent,\r\n CardViewTaskAssignmentItemComponent,\r\n CardViewProcessNameItemComponent\r\n ],\r\n entryComponents: [\r\n CardViewProcessVariablesItemComponent,\r\n CardViewTaskAssignmentItemComponent,\r\n CardViewImplementationItemComponent,\r\n CardViewDecisionTaskItemComponent,\r\n CardViewScriptTaskItemComponent,\r\n CardViewDefaultSequenceFlowItemComponent,\r\n CardViewSignalRefItemComponent,\r\n CardViewErrorRefItemComponent,\r\n CardViewCalledItemItemComponent,\r\n CardViewTimerDefinitionItemComponent,\r\n CardViewMessageItemComponent,\r\n CardViewMessageVariableMappingComponent,\r\n CardViewProcessMessagesItemComponent,\r\n ProcessEditorComponent,\r\n MessagesDialogComponent,\r\n CardViewMultiInstanceItemComponent,\r\n CardViewMessagePayloadItemComponent,\r\n CardViewDueDateItemComponent,\r\n AssignmentDialogComponent,\r\n CardViewProcessNameItemComponent\r\n ],\r\n exports: [ProcessEditorRoutingModule],\r\n providers: [\r\n ProcessEditorService,\r\n ProcessDiagramLoaderService,\r\n { provide: BpmnFactoryToken, useClass: BpmnFactoryService },\r\n { provide: ProcessModelerServiceToken, useClass: ProcessModelerServiceImplementation },\r\n ProcessModelerPaletteService,\r\n ClipboardService,\r\n CardViewPropertiesFactory,\r\n AmaTitleService,\r\n MessagesService,\r\n TaskAssignmentService,\r\n Title,\r\n provideTranslations('process-editor'),\r\n ...providePaletteHandler('tool', ToolsHandler),\r\n ...providePaletteHandler('element', ElementCreationHandler),\r\n providePaletteElements(paletteElements),\r\n providePropertyHandler(BpmnCompositeProperty.properties, CardViewProcessVariablesItemComponent),\r\n providePropertyHandler(BpmnCompositeProperty.assignment, CardViewTaskAssignmentItemComponent),\r\n providePropertyHandler(BpmnProperty.implementation, CardViewImplementationItemComponent),\r\n providePropertyHandler(BpmnProperty.decisionTask, CardViewDecisionTaskItemComponent),\r\n providePropertyHandler(BpmnProperty.scriptTask, CardViewScriptTaskItemComponent),\r\n providePropertyHandler(BpmnProperty.formKey, CardViewTextItemComponent),\r\n providePropertyHandler(BpmnProperty.defaultSequenceFlow, CardViewDefaultSequenceFlowItemComponent),\r\n providePropertyHandler(BpmnProperty.signalRef, CardViewSignalRefItemComponent),\r\n providePropertyHandler(BpmnProperty.errorRef, CardViewErrorRefItemComponent),\r\n providePropertyHandler(BpmnProperty.calledElement, CardViewCalledItemItemComponent),\r\n providePropertyHandler(BpmnProperty.timerEventDefinition, CardViewTimerDefinitionItemComponent),\r\n providePropertyHandler(BpmnProperty.messageRef, CardViewMessageItemComponent),\r\n providePropertyHandler(BpmnCompositeProperty.messages, CardViewProcessMessagesItemComponent),\r\n providePropertyHandler(BpmnProperty.multiInstanceType, CardViewMultiInstanceItemComponent),\r\n providePropertyHandler(BpmnProperty.messagePayload, CardViewMessagePayloadItemComponent),\r\n providePropertyHandler(BpmnProperty.dueDate, CardViewDueDateItemComponent),\r\n providePropertyHandler(BpmnProperty.processName, CardViewProcessNameItemComponent),\r\n ...getProcessesFilterProvider(),\r\n ...getProcessCreatorProvider(),\r\n ...getProcessUploaderProvider(),\r\n provideLogFilter(getProcessLogInitiator()),\r\n provideLoadableModelSchema({\r\n modelType: PROCESS,\r\n schemaKey: MODEL_SCHEMA_TYPE.PROCESS_EXTENSION,\r\n transform: transformJsonSchema\r\n })\r\n ]\r\n})\r\nexport class ProcessEditorModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { SelectModelerElementAction } from '../../store/process-editor.actions';\r\n\r\nexport interface CanComponentDeactivate {\r\n canDeactivate: () => Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class ProcessDeactivateGuard implements CanDeactivate {\r\n constructor(private store: Store) {}\r\n\r\n canDeactivate(component: CanComponentDeactivate): boolean | Observable | Promise {\r\n this.store.dispatch(new SelectModelerElementAction(null));\r\n return true;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { GetProcessAttemptAction } from '../../store/process-editor.actions';\r\nimport { ProcessEntitiesState } from '../../store/process-entities.state';\r\n\r\n@Injectable()\r\nexport class ProcessLoaderGuard implements CanActivate {\r\n\r\n constructor(private store: Store) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n const processId = route.params.processId;\r\n this.store.dispatch(new GetProcessAttemptAction(processId));\r\n return of(true);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { AmaState, OpenFilterAction, PROCESS } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ShowProcessesAction } from '../../store/process-editor.actions';\r\n\r\n@Injectable()\r\nexport class ProcessesLoaderGuard implements CanActivate {\r\n constructor(private store: Store) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n const projectId = route.params.projectId;\r\n this.store.dispatch(new ShowProcessesAction(projectId));\r\n this.store.dispatch(new OpenFilterAction(PROCESS));\r\n\r\n return of(true);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { ProcessLoaderGuard } from './guards/process-loader.guard';\r\nimport { UnsavedPageGuard } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProcessDeactivateGuard } from './guards/process-deactivate.guard';\r\nimport { processEditorRoutes } from './process-editor.routes';\r\nimport { ProcessesLoaderGuard } from './guards/processes-loader.guard';\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forChild(processEditorRoutes)\r\n ],\r\n providers: [\r\n UnsavedPageGuard,\r\n ProcessLoaderGuard,\r\n ProcessesLoaderGuard,\r\n ProcessDeactivateGuard\r\n ],\r\n exports: [ RouterModule ]\r\n})\r\nexport class ProcessEditorRoutingModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Routes } from '@angular/router';\r\nimport { ProcessEditorComponent } from '../components/process-editor/process-editor.component';\r\nimport { ProcessLoaderGuard } from './guards/process-loader.guard';\r\nimport { UnsavedPageGuard, PROCESS, MODULE_EDITOR_ROUTES } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProcessDeactivateGuard } from './guards/process-deactivate.guard';\r\nimport { ProcessesLoaderGuard } from './guards/processes-loader.guard';\r\n\r\nexport const processEditorRoutes: Routes = [\r\n {\r\n path: PROCESS,\r\n data: { injectTo: MODULE_EDITOR_ROUTES },\r\n children: [\r\n {\r\n path: ':processId',\r\n canActivate: [ ProcessLoaderGuard ],\r\n canDeactivate: [ UnsavedPageGuard, ProcessDeactivateGuard ],\r\n component: ProcessEditorComponent\r\n }\r\n ],\r\n canActivate: [ ProcessesLoaderGuard ]\r\n }\r\n];\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject, Injector, Optional } from '@angular/core';\r\nimport * as bpmnPropertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/bpmn';\r\nimport { BpmnFactory, ALFRESCO_BPMN_RENDERERS } from '@alfresco-dbp/modeling-shared/sdk';\r\n/*\r\n Angular 6 --prod mode doesn't seem to work with the normal way of importing the bpmnjs library.\r\n Modify this import with care, double-checking the process editor works in --prod mode.\r\n*/\r\nimport BpmnModeler from 'bpmn-js/dist/bpmn-modeler.production.min';\r\n\r\nimport { ClipboardService } from './clipboard/clipboard.service';\r\n\r\nimport { emptyPaletteModule } from './palette/dummy-bpmn-palette.provider';\r\nimport { DecisionTableRenderModule } from './bpmn-js/renderers/decision-table.renderer';\r\nimport { ScriptRenderModule } from './bpmn-js/renderers/script.renderer';\r\n\r\nconst activitiModdleDescriptor = require('./activiti.json');\r\nconst redefineModdleDescriptor = require('./redefine-bpmn.json');\r\n\r\n@Injectable()\r\nexport class BpmnFactoryService implements BpmnFactory {\r\n\r\n constructor(\r\n private clipboardService: ClipboardService,\r\n @Optional()\r\n @Inject(ALFRESCO_BPMN_RENDERERS) private bpmnRenderers: Diagram.BaseRenderer[],\r\n private injector: Injector) {\r\n }\r\n\r\n create(): Bpmn.Modeler {\r\n\r\n return new BpmnModeler({\r\n keyboard: { bindTo: document },\r\n additionalModules: [\r\n this.angularInjector,\r\n emptyPaletteModule,\r\n DecisionTableRenderModule,\r\n ScriptRenderModule,\r\n ...this.getBpmnRenderers(),\r\n { clipboard: ['value', this.clipboardService] },\r\n ...this.getBpmnPropertiesPanelConfig()\r\n ],\r\n moddleExtensions: { activiti: activitiModdleDescriptor, bpmn: redefineModdleDescriptor }\r\n });\r\n }\r\n\r\n private get angularInjector() {\r\n return {\r\n __init__: [ 'angularInjector' ],\r\n angularInjector: [ 'value', this.injector ]\r\n };\r\n }\r\n\r\n private getBpmnRenderers() {\r\n return this.bpmnRenderers || [];\r\n }\r\n\r\n protected getBpmnPropertiesPanelConfig() {\r\n return [\r\n bpmnPropertiesProviderModule\r\n ];\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { handlers } from './property-handlers/property.handlers';\r\nimport { BpmnProperty, BpmnCompositeProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const ElementHelper = {\r\n getType(element: Bpmn.DiagramElement): string {\r\n return element.businessObject.$type;\r\n },\r\n\r\n getProperty(element: Bpmn.DiagramElement, propertyName: BpmnProperty | BpmnCompositeProperty): any {\r\n try {\r\n const handler = getHandler(propertyName);\r\n const get = handler.get;\r\n return get(element);\r\n } catch (error) {\r\n /*tslint:disable-next-line*/\r\n console.error(`Handler::get is not defined for ${propertyName}`, error);\r\n return null;\r\n }\r\n },\r\n\r\n setProperty(modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, propertyName: BpmnProperty, value: any, moddle: Bpmn.Moddle): void {\r\n try {\r\n const handler = getHandler(propertyName);\r\n const set = handler.set;\r\n\r\n set(modeling, element, value, moddle);\r\n } catch (error) {\r\n /*tslint:disable-next-line*/\r\n console.error(`Handler::set is not defined for ${propertyName}`, error);\r\n }\r\n }\r\n};\r\n\r\nfunction getHandler(propertyName) {\r\n return handlers[propertyName];\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { updateShapeProperty } from './update-shape-property.handler';\r\n\r\nconst propertyKey = BpmnProperty.assignee;\r\n\r\nconst get = element => element.businessObject.get(propertyKey);\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n updateShapeProperty(element, propertyKey, value);\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const assigneeHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst propertyKey = BpmnProperty.calledElement;\r\n\r\nconst get = element => element.businessObject.get(propertyKey);\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, {\r\n [propertyKey]: value\r\n });\r\n};\r\n\r\nexport const calledElementHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { updateShapeProperty } from './update-shape-property.handler';\r\n\r\nconst propertyKey = BpmnProperty.candidateGroups;\r\n\r\nconst get = element => element.businessObject.get(propertyKey);\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n updateShapeProperty(element, propertyKey, value);\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const candidateGroupsHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { updateShapeProperty } from './update-shape-property.handler';\r\n\r\nconst propertyKey = BpmnProperty.candidateUsers;\r\n\r\nconst get = element => element.businessObject.get(propertyKey);\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n updateShapeProperty(element, propertyKey, value);\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const candidateUsersHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nimport { updateEventDefinitionProperty } from './update-event-definition-property.handler';\r\n\r\nconst propertyKey = BpmnProperty.correlationKey;\r\n\r\nconst get = element => element.businessObject.eventDefinitions[0][propertyKey];\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n updateEventDefinitionProperty(element, propertyKey, value);\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const correlationKeyHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst propertyKey = BpmnProperty.implementation;\r\n\r\nconst get = element => element.businessObject[propertyKey];\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, {\r\n [propertyKey]: value\r\n });\r\n};\r\n\r\nexport const decisionTaskHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst propertyKey = BpmnProperty.defaultSequenceFlow;\r\n\r\nconst get = (element: Bpmn.DiagramElement) => ({\r\n list: element.businessObject.outgoing,\r\n default: element.businessObject.default\r\n});\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, { [propertyKey]: value });\r\n};\r\n\r\nexport const defaultSequenceFlowHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { updateShapeProperty } from './update-shape-property.handler';\r\n\r\n// Bpmn-moddle transpiled this way... Good luck using typescript imports (check unit tests and working app as well!!!)\r\nconst BpmnModdle = require('bpmn-moddle');\r\nconst createBpmnModdle = BpmnModdle.default || BpmnModdle;\r\n\r\nconst moddle = createBpmnModdle();\r\n\r\nconst propertyKey = BpmnProperty.documentation;\r\n\r\nconst get = (element: Bpmn.DiagramElement) => {\r\n const businessObject = element.businessObject;\r\n const documentations = businessObject && businessObject.get(propertyKey),\r\n text = documentations && documentations.length > 0 ? documentations[0].text : '';\r\n\r\n return text;\r\n};\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n updateShapeProperty(element, propertyKey,\r\n value ? [ moddle.create('bpmn:Documentation', { text: value })] : undefined);\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const documentationHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty, MOMENT_DATETIME_FORMAT } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { updateShapeProperty } from './update-shape-property.handler';\r\nimport * as moment from 'moment';\r\n\r\nconst propertyKey = BpmnProperty.dueDate;\r\n\r\nconst get = element => {\r\n const property = element.businessObject.get(propertyKey);\r\n return property ? property : '';\r\n};\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n if (value && typeof value === 'object') {\r\n value = moment(value).format(MOMENT_DATETIME_FORMAT);\r\n }\r\n updateShapeProperty(element, propertyKey, value);\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const dueDateHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nconst get = element => element.businessObject.eventDefinitions[0].errorRef;\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n element.businessObject.eventDefinitions[0].errorRef = value;\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const errorRefHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n// Bpmn-moddle transpiled this way... Good luck using typescript imports (check unit tests and working app as well!!!)\r\nconst BpmnModdle = require('bpmn-moddle');\r\nconst createBpmnModdle = BpmnModdle.default || BpmnModdle;\r\n\r\nconst moddle = createBpmnModdle();\r\n\r\nconst propertyKey = BpmnProperty.conditionExpression;\r\n\r\nconst get = (element: Bpmn.DiagramElement) => {\r\n const businessObject = element.businessObject;\r\n const expression = businessObject && businessObject.get(propertyKey),\r\n body = expression ? expression.body : '';\r\n\r\n return body;\r\n};\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, {\r\n [propertyKey]: moddle.create('bpmn:FormalExpression', { body: value })\r\n });\r\n};\r\n\r\nexport const expressionHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst propertyKey = BpmnProperty.formKey;\r\n\r\nconst get = element => element.businessObject[propertyKey];\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, {\r\n [BpmnProperty.implementation]: undefined,\r\n [propertyKey]: value\r\n });\r\n};\r\n\r\nexport const formSelectorHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { updateShapeProperty } from './update-shape-property.handler';\r\n\r\nconst propertyKey = BpmnProperty.id;\r\n\r\nconst get = element => element.businessObject.get(propertyKey);\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n updateShapeProperty(element, propertyKey, value);\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const idHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst propertyKey = BpmnProperty.implementation;\r\n\r\nconst get = element => element.businessObject[propertyKey];\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, {\r\n [BpmnProperty.formKey]: undefined,\r\n [propertyKey]: value\r\n });\r\n};\r\n\r\nexport const implementationHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty, BpmnElement } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst propertyKey = BpmnProperty.isExecutable;\r\n\r\nconst get = (element) => {\r\n let value: boolean;\r\n if (element.type === BpmnElement.Process) {\r\n value = element.businessObject[propertyKey];\r\n } else if (element.type === BpmnElement.Participant) {\r\n value = element.businessObject.processRef[propertyKey];\r\n }\r\n\r\n return value === undefined ? true : value;\r\n};\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n\r\n if (element.type === BpmnElement.Participant) {\r\n element.businessObject.processRef[propertyKey] = value;\r\n modeling.updateProperties(element, {});\r\n } else {\r\n modeling.updateProperties(element, {\r\n [propertyKey]: value\r\n });\r\n }\r\n};\r\n\r\nexport const isExecutableHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nconst get = element => element.businessObject.eventDefinitions[0].messageRef;\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n if (value) {\r\n element.businessObject.eventDefinitions[0].messageRef = value;\r\n } else {\r\n delete element.businessObject.eventDefinitions[0].messageRef;\r\n }\r\n\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const messageHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { sanitizeString } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst get = (element) => element.businessObject.$parent.name || '';\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n value = sanitizeString(value);\r\n element.businessObject.$parent.name = value;\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const modelNameHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport enum MultiInstanceType {\r\n sequence = 'sequence',\r\n parallel = 'parallel',\r\n none = 'none'\r\n}\r\n\r\nexport enum MultiInstanceProps {\r\n loopCharacteristics = 'loopCharacteristics',\r\n loopCardinality = 'loopCardinality',\r\n isSequential = 'isSequential',\r\n completionCondition = 'completionCondition',\r\n collection = 'collection',\r\n elementVariable = 'elementVariable',\r\n outputDataItem = 'outputDataItem',\r\n loopDataOutputRef = 'loopDataOutputRef'\r\n}\r\n\r\nexport function getMultiInstanceType(element): MultiInstanceType {\r\n const { isSequential = null } = (element || {});\r\n if (isSequential === null) {\r\n return MultiInstanceType.none;\r\n }\r\n return isSequential ? MultiInstanceType.sequence : MultiInstanceType.parallel;\r\n}\r\n\r\nconst get = element => getMultiInstanceType(element.businessObject.loopCharacteristics);\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const multiInstanceHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { updateShapeProperty } from './update-shape-property.handler';\r\n\r\nconst propertyKey = BpmnProperty.name;\r\n\r\nconst get = element => element.businessObject[propertyKey];\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n updateShapeProperty(element, propertyKey, value);\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const nameHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { updateShapeProperty } from './update-shape-property.handler';\r\n\r\nconst propertyKey = BpmnProperty.priority;\r\n\r\nconst get = element => parseInt(element.businessObject.get(propertyKey), 10);\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n updateShapeProperty(element, propertyKey, value || value === 0 ? parseInt(value, 10) : undefined);\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const priorityHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnElement } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst get = (element) => {\r\n switch (element.type) {\r\n case BpmnElement.Process:\r\n return element.businessObject.id;\r\n case BpmnElement.Participant:\r\n return element.businessObject.processRef.id;\r\n case BpmnElement.UserTask:\r\n case BpmnElement.ServiceTask:\r\n case BpmnElement.StartEvent:\r\n case BpmnElement.EndEvent:\r\n case BpmnElement.BoundaryEvent:\r\n case BpmnElement.IntermediateCatchEvent:\r\n case BpmnElement.IntermediateThrowEvent:\r\n case BpmnElement.CallActivity:\r\n if (element.businessObject.$parent.$type === BpmnElement.SubProcess) {\r\n return element.businessObject.$parent.$parent.id;\r\n } else {\r\n return element.businessObject.$parent.id;\r\n }\r\n default:\r\n throw new Error(`Process id not found for element type ${element.type}`);\r\n }\r\n};\r\n\r\nexport const processIdHandler = { get };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const processMessagesHandler = { set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty, BpmnElement, sanitizeString } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst propertyKey = BpmnProperty.name;\r\n\r\nconst get = (element) => {\r\n let processName: string;\r\n if (element.type === BpmnElement.Process) {\r\n processName = element.businessObject[propertyKey];\r\n } else if (element.type === BpmnElement.Participant) {\r\n processName = element.businessObject.processRef.name;\r\n }\r\n\r\n return processName || '';\r\n};\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n value = sanitizeString(value);\r\n\r\n if (element.type === BpmnElement.Participant) {\r\n element.businessObject.processRef.name = value;\r\n element.businessObject.name = value;\r\n modeling.updateProperties(element, {});\r\n } else {\r\n modeling.updateProperties(element, {\r\n [propertyKey]: value\r\n });\r\n }\r\n\r\n};\r\n\r\nexport const processNameHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const processPropertyHandler = { set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty, BpmnCompositeProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { idHandler } from './id.handler';\r\nimport { nameHandler } from './name.handler';\r\nimport { documentationHandler } from './documentation.handler';\r\nimport { implementationHandler } from './implementation.handler';\r\nimport { decisionTaskHandler } from './decisionTask.handler';\r\nimport { scriptTaskHandler } from './scriptTask.handler';\r\nimport { assigneeHandler } from './assignee.handler';\r\nimport { candidateGroupsHandler } from './candidateGroups.handler';\r\nimport { candidateUsersHandler } from './candidateUsers.handler';\r\nimport { dueDateHandler } from './dueDate.handler';\r\nimport { priorityHandler } from './priority.handler';\r\nimport { calledElementHandler } from './calledElement.handler';\r\nimport { expressionHandler } from './expression.handler';\r\nimport { formSelectorHandler } from './formSelector.handler';\r\nimport { processPropertyHandler } from './process-variables.handler';\r\nimport { processNameHandler } from './process-name.handler';\r\nimport { defaultSequenceFlowHandler } from './default-sequence-flow.handler';\r\nimport { signalRefHandler } from './signalRef.handler';\r\nimport { signalScopeHandler } from './signalScope.handler';\r\nimport { timerDefinitionHandler } from './timer-definition.handler';\r\nimport { errorRefHandler } from './errorRef.handler';\r\nimport { messageHandler } from './message.handler';\r\nimport { correlationKeyHandler } from './correlation-key.handler';\r\nimport { processMessagesHandler } from './process-messages.handler';\r\nimport { multiInstanceHandler } from './multi-instance.handler';\r\nimport { textAnnotationHandler } from './textAnnotation.handler';\r\nimport { modelNameHandler } from './model-name.handler';\r\nimport { isExecutableHandler } from './isExecutable.handler';\r\nimport { processIdHandler } from './process-id.handler';\r\n\r\nexport const handlers = {\r\n [BpmnProperty.id]: idHandler,\r\n [BpmnProperty.processName]: processNameHandler,\r\n [BpmnProperty.processId]: processIdHandler,\r\n [BpmnProperty.modelName]: modelNameHandler,\r\n [BpmnProperty.name]: nameHandler,\r\n [BpmnProperty.documentation]: documentationHandler,\r\n [BpmnProperty.implementation]: implementationHandler,\r\n [BpmnProperty.decisionTask]: decisionTaskHandler,\r\n [BpmnProperty.scriptTask]: scriptTaskHandler,\r\n [BpmnProperty.assignee]: assigneeHandler,\r\n [BpmnProperty.candidateGroups]: candidateGroupsHandler,\r\n [BpmnProperty.candidateUsers]: candidateUsersHandler,\r\n [BpmnProperty.dueDate]: dueDateHandler,\r\n [BpmnProperty.priority]: priorityHandler,\r\n [BpmnProperty.calledElement]: calledElementHandler,\r\n [BpmnProperty.conditionExpression]: expressionHandler,\r\n [BpmnProperty.formKey]: formSelectorHandler,\r\n [BpmnCompositeProperty.properties]: processPropertyHandler,\r\n [BpmnProperty.defaultSequenceFlow]: defaultSequenceFlowHandler,\r\n [BpmnProperty.signalRef]: signalRefHandler,\r\n [BpmnProperty.signalScope]: signalScopeHandler,\r\n [BpmnProperty.timerEventDefinition]: timerDefinitionHandler,\r\n [BpmnProperty.errorRef]: errorRefHandler,\r\n [BpmnProperty.messageRef]: messageHandler,\r\n [BpmnProperty.correlationKey]: correlationKeyHandler,\r\n [BpmnCompositeProperty.messages]: processMessagesHandler,\r\n [BpmnProperty.multiInstanceType]: multiInstanceHandler,\r\n [BpmnProperty.textAnnotation]: textAnnotationHandler,\r\n [BpmnProperty.isExecutable]: isExecutableHandler\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst propertyKey = BpmnProperty.implementation;\r\n\r\nconst get = element => element.businessObject[propertyKey];\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n modeling.updateProperties(element, {\r\n [propertyKey]: value\r\n });\r\n};\r\n\r\nexport const scriptTaskHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nconst get = element => element.businessObject.eventDefinitions[0].signalRef;\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n element.businessObject.eventDefinitions[0].signalRef = value;\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const signalRefHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nconst get = element => element.businessObject.eventDefinitions[0].signalRef.scope || 'global';\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n const signalRef = element.businessObject.eventDefinitions[0].signalRef;\r\n element.businessObject.eventDefinitions[0].signalRef.scope = value;\r\n if (value === 'global') {\r\n delete signalRef.scope;\r\n }\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const signalScopeHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nconst get = (element: Bpmn.DiagramElement): string => {\r\n return element.businessObject.text || '';\r\n};\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: any) => {\r\n element.businessObject.text = value;\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const textAnnotationHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nconst get = element => {\r\n return element.businessObject.eventDefinitions[0].timeCycle ||\r\n element.businessObject.eventDefinitions[0].timeDuration ||\r\n element.businessObject.eventDefinitions[0].timeDate;\r\n};\r\n\r\nconst set = (modeling: Bpmn.Modeling, element: Bpmn.DiagramElement, value: { type: string, definition: string }, bpmnFactory: Bpmn.Moddle) => {\r\n\r\n delete element.businessObject.eventDefinitions[0].timeCycle;\r\n delete element.businessObject.eventDefinitions[0].timeDuration;\r\n delete element.businessObject.eventDefinitions[0].timeDate;\r\n\r\n let timer = undefined;\r\n timer = bpmnFactory.create('bpmn:FormalExpression', { body: value.definition });\r\n timer.$parent = element.businessObject.eventDefinitions[0];\r\n element.businessObject.eventDefinitions[0][value.type] = timer;\r\n\r\n modeling.updateProperties(element, {});\r\n};\r\n\r\nexport const timerDefinitionHandler = { get, set };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport const updateEventDefinitionProperty = (element: Bpmn.DiagramElement, propertyKey: string, value: any) => {\r\n if (!!value) {\r\n element.businessObject.eventDefinitions[0][propertyKey] = value;\r\n } else {\r\n delete element.businessObject.eventDefinitions[0][propertyKey];\r\n }\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nconst isValid = (value: any) => {\r\n return value || value === 0;\r\n};\r\n\r\nexport const updateShapeProperty = (element: Bpmn.DiagramElement, propertyKey: string, value: any) => {\r\n if (isValid(value)) {\r\n element.businessObject[propertyKey] = value;\r\n } else {\r\n delete element.businessObject[propertyKey];\r\n }\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport inherits from 'inherits';\r\nimport BaseRenderer from 'diagram-js/lib/draw/BaseRenderer';\r\nimport { is } from 'bpmn-js/lib/util/ModelUtil';\r\nimport { DECISION_TASK_IMPLEMENTATION } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport function DecisionTableRender(eventBus, bpmnRenderer) {\r\n BaseRenderer.call(this, eventBus, 1500);\r\n\r\n this.canRender = function(element) {\r\n return is(element, 'bpmn:ServiceTask') && element.businessObject.get('implementation') === DECISION_TASK_IMPLEMENTATION;\r\n };\r\n\r\n this.drawShape = function(parentGfx, element) {\r\n return bpmnRenderer.handlers['bpmn:BusinessRuleTask'](parentGfx, element);\r\n };\r\n}\r\n\r\ninherits(DecisionTableRender, BaseRenderer);\r\n\r\nDecisionTableRender.$inject = [ 'eventBus', 'bpmnRenderer' ];\r\n\r\nexport const DecisionTableRenderModule = {\r\n __init__: [ 'decisionTableRenderer' ],\r\n decisionTableRenderer: [ 'type', DecisionTableRender ]\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport inherits from 'inherits';\r\nimport BaseRenderer from 'diagram-js/lib/draw/BaseRenderer';\r\nimport { is } from 'bpmn-js/lib/util/ModelUtil';\r\nimport { SCRIPT_TASK_IMPLEMENTATION } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport function ScriptRender(eventBus, bpmnRenderer) {\r\n BaseRenderer.call(this, eventBus, 1500);\r\n\r\n this.canRender = function(element) {\r\n return is(element, 'bpmn:ServiceTask') && element.businessObject.get('implementation') === SCRIPT_TASK_IMPLEMENTATION;\r\n };\r\n\r\n this.drawShape = function(parentGfx, element) {\r\n return bpmnRenderer.handlers['bpmn:ScriptTask'](parentGfx, element);\r\n };\r\n}\r\n\r\ninherits(ScriptRender, BaseRenderer);\r\n\r\nScriptRender.$inject = [ 'eventBus', 'bpmnRenderer' ];\r\n\r\nexport const ScriptRenderModule = {\r\n __init__: [ 'scriptRenderer' ],\r\n scriptRenderer: [ 'type', ScriptRender ]\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty, BpmnElement, DECISION_TASK_IMPLEMENTATION, SCRIPT_TASK_IMPLEMENTATION, BpmnCompositeProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst isSignalEvent = (element: Bpmn.DiagramElement) => {\r\n return !!element.businessObject.eventDefinitions && element.businessObject.eventDefinitions[0].$type === BpmnElement.SignalEventDefinition;\r\n};\r\nconst isTimerEvent = (element: Bpmn.DiagramElement) => {\r\n return !!element.businessObject.eventDefinitions && element.businessObject.eventDefinitions[0].$type === BpmnElement.TimerEventDefinition;\r\n};\r\nconst isErrorEvent = (element: Bpmn.DiagramElement) => {\r\n return !!element.businessObject.eventDefinitions && element.businessObject.eventDefinitions[0].$type === BpmnElement.ErrorEventDefinition;\r\n};\r\nconst isMessageEvent = (element: Bpmn.DiagramElement) => {\r\n return !!element.businessObject.eventDefinitions && element.businessObject.eventDefinitions[0].$type === BpmnElement.MessageEventDefinition;\r\n};\r\nconst isInsideSubProcess = (element: Bpmn.DiagramElement) => {\r\n return element.businessObject.$parent.$type === BpmnElement.SubProcess;\r\n};\r\nconst haveSignalRef = (element: Bpmn.DiagramElement) => !!element.businessObject.eventDefinitions[0].signalRef;\r\nconst haveConditionExpression = (element: Bpmn.DiagramElement) => !!element.businessObject.conditionExpression;\r\nconst isDecisionTask = (element: Bpmn.DiagramElement) => element.businessObject.implementation === DECISION_TASK_IMPLEMENTATION;\r\nconst isScriptTask = (element: Bpmn.DiagramElement) => element.businessObject.implementation === SCRIPT_TASK_IMPLEMENTATION;\r\nconst isExclusiveGateway = (element: Bpmn.DiagramElement) => element.businessObject.sourceRef.$type === BpmnElement.ExclusiveGateway;\r\nconst isInclusiveGateway = (element: Bpmn.DiagramElement) => element.businessObject.sourceRef.$type === BpmnElement.InclusiveGateway;\r\nconst isConditionalFlow = (element: Bpmn.DiagramElement) => element.businessObject.$type === BpmnElement.SequenceFlow && haveConditionExpression(element);\r\nconst hasProcessInside = (element: Bpmn.DiagramElement) => !!element.businessObject.processRef;\r\n\r\nexport const elementsProperties = {\r\n [BpmnElement.Process]: [\r\n BpmnProperty.processId,\r\n BpmnProperty.modelName,\r\n BpmnProperty.processName,\r\n BpmnProperty.isExecutable,\r\n BpmnProperty.documentation,\r\n BpmnCompositeProperty.properties,\r\n BpmnCompositeProperty.messages\r\n ],\r\n [BpmnElement.Collaboration]: [\r\n BpmnProperty.modelName,\r\n BpmnProperty.id,\r\n BpmnProperty.documentation,\r\n BpmnCompositeProperty.messages\r\n ],\r\n [BpmnElement.IntermediateCatchEvent]: (element: Bpmn.DiagramElement) => [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n ...(isSignalEvent(element) ? [ BpmnProperty.signalRef ] : []),\r\n ...(isTimerEvent(element) ? [ BpmnProperty.timerEventDefinition ] : []),\r\n ...(isMessageEvent(element) ? [ BpmnProperty.messageRef, BpmnProperty.correlationKey ] : [])\r\n ],\r\n [BpmnElement.IntermediateThrowEvent]: (element: Bpmn.DiagramElement) => [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n ...(isSignalEvent(element) ? [ BpmnProperty.signalRef ] : []),\r\n ...(isSignalEvent(element) && haveSignalRef(element) ? [ BpmnProperty.signalScope ] : []),\r\n ...(isMessageEvent(element) ? [\r\n BpmnProperty.messageRef,\r\n BpmnProperty.correlationKey,\r\n BpmnProperty.messagePayload\r\n ] : [])\r\n ],\r\n [BpmnElement.StartEvent]: (element: Bpmn.DiagramElement) => [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n ...(isSignalEvent(element) ? [ BpmnProperty.signalRef ] : [BpmnProperty.formKey]),\r\n ...(isTimerEvent(element) ? [ BpmnProperty.timerEventDefinition ] : []),\r\n ...(isErrorEvent(element) ? [ BpmnProperty.errorRef ] : []),\r\n ...(isMessageEvent(element) ? [ BpmnProperty.messageRef ] : []),\r\n ...(isInsideSubProcess(element) && isMessageEvent(element) ? [ BpmnProperty.correlationKey ] : []),\r\n\r\n ],\r\n [BpmnElement.BoundaryEvent]: (element: Bpmn.DiagramElement) => [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n ...(isSignalEvent(element) ? [ BpmnProperty.signalRef ] : []),\r\n ...(isTimerEvent(element) ? [ BpmnProperty.timerEventDefinition ] : []),\r\n ...(isErrorEvent(element) ? [ BpmnProperty.errorRef ] : []),\r\n ...(isMessageEvent(element) ? [ BpmnProperty.messageRef, BpmnProperty.correlationKey ] : [])\r\n ],\r\n [BpmnElement.EndEvent]: (element: Bpmn.DiagramElement) => [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n ...(isSignalEvent(element) ? [ BpmnProperty.signalRef ] : []),\r\n ...(isErrorEvent(element) ? [ BpmnProperty.errorRef ] : []),\r\n ...(isMessageEvent(element) ? [\r\n BpmnProperty.messageRef,\r\n BpmnProperty.correlationKey,\r\n BpmnProperty.messagePayload\r\n ] : [])\r\n ],\r\n [BpmnElement.SequenceFlow]: (element: Bpmn.DiagramElement) => [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n ...(isExclusiveGateway(element) || isConditionalFlow(element) || isInclusiveGateway(element) ? [ BpmnProperty.conditionExpression ] : []),\r\n ],\r\n [BpmnElement.ExclusiveGateway]: [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n BpmnProperty.defaultSequenceFlow\r\n ],\r\n [BpmnElement.ParallelGateway]: [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation\r\n ],\r\n [BpmnElement.InclusiveGateway]: [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n BpmnProperty.defaultSequenceFlow\r\n ],\r\n [BpmnElement.ServiceTask]: (element: Bpmn.DiagramElement) => [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n BpmnProperty.multiInstanceType,\r\n ...(isDecisionTask(element) ? [ BpmnProperty.decisionTask ] : [isScriptTask(element) ? [ BpmnProperty.scriptTask ] : [BpmnProperty.implementation]])\r\n ],\r\n [BpmnElement.CallActivity]: [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n BpmnProperty.multiInstanceType,\r\n BpmnProperty.calledElement\r\n ],\r\n [BpmnElement.UserTask]: [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnCompositeProperty.assignment,\r\n BpmnProperty.documentation,\r\n BpmnProperty.dueDate,\r\n BpmnProperty.multiInstanceType,\r\n BpmnProperty.priority,\r\n BpmnProperty.formKey\r\n ],\r\n [BpmnElement.SubProcess]: [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n BpmnProperty.multiInstanceType\r\n ],\r\n [BpmnElement.Participant]: (element: Bpmn.DiagramElement) => [\r\n ...(hasProcessInside(element) ? [\r\n BpmnProperty.processId,\r\n BpmnProperty.processName,\r\n BpmnProperty.isExecutable,\r\n BpmnCompositeProperty.properties,\r\n BpmnCompositeProperty.messages\r\n ] : []),\r\n BpmnProperty.id,\r\n BpmnProperty.documentation\r\n ],\r\n [BpmnElement.Task]: [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n BpmnProperty.multiInstanceType\r\n ],\r\n [BpmnElement.TextAnnotation]: [\r\n BpmnProperty.id,\r\n BpmnProperty.documentation,\r\n BpmnProperty.textAnnotation\r\n ],\r\n [BpmnElement.Lane]: [\r\n BpmnProperty.id,\r\n BpmnProperty.name,\r\n BpmnProperty.documentation,\r\n ]\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.assignee;\r\n\r\nexport function createAssigneeProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ASSIGNEE',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: false,\r\n editable: true,\r\n data: { id: element.id }\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { BpmnCompositeProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { CardViewTaskAssignmentItemModel } from './task-assignment-item/task-assignment-item.model';\r\n\r\nconst propertyName = BpmnCompositeProperty.assignment;\r\n\r\nexport function createAssignmentProperty({ element }: FactoryProps) {\r\n return new CardViewTaskAssignmentItemModel({\r\n label: '',\r\n value: '',\r\n key: propertyName,\r\n default: '',\r\n editable: false\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty, BpmnCompositeProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { createIdProperty } from './id-cardview-property';\r\nimport { createNameProperty } from './name-cardview-property';\r\nimport { createImplementationProperty } from './implementation-cardview-property';\r\nimport { createDecisionTaskProperty } from './decisionTask-cardview-property';\r\nimport { createScriptTaskProperty } from './scriptTask-cardview-property';\r\nimport { createDocumentationProperty } from './documentation-cardview-property';\r\nimport { createVariablesProperty } from './variables-cardview-property';\r\nimport { createAssigneeProperty } from './assignee-cardview-property';\r\nimport { createCandidateGroupsProperty } from './candidateGroups-cardview-property';\r\nimport { createCandidateUsersProperty } from './candidateUsers-cardview-property';\r\nimport { createDueDateProperty } from './dueDate-cardview-property';\r\nimport { createPriorityProperty } from './priority-cardview-property';\r\nimport { createCalledElementProperty } from './calledElement-cardview-property';\r\nimport { createProcessVariablesProperty } from './process-variable-item-property';\r\nimport { createExpressionProperty } from './expression-cardview-property';\r\nimport { createFormKeyProperty } from './formSelector-cardview-property';\r\nimport { createProcessNameProperty } from './process-name-cardview-property';\r\nimport { createDefaultSequenceFlowProperty } from './default-sequence-flow-cardview-property';\r\nimport { createSignalRefProperty } from './signalRef-cardview-property';\r\nimport { createSignalScopeProperty } from './signalScope-cardview-property';\r\nimport { createTimerDefinitionProperty } from './timerDefinition-cardview-property';\r\nimport { createErrorRefProperty } from './errorRef-cardview-property';\r\nimport { createMessageProperty } from './message-cardview-property';\r\nimport { createCorrelationKeyProperty } from './correlationKey-cardview-property';\r\nimport { createProcessMessagesProperty } from './process-messages-item-property';\r\nimport { createMultiInstanceProperty } from './multi-instance-cardview-property';\r\nimport { createMessagePayloadProperty } from './messagePayload-cardview-property';\r\nimport { createTextAnnotationProperty } from './text-annotation-cardview-property';\r\nimport { createModelNameProperty } from './model-name-cardview-property';\r\nimport { createIsExecutableProperty } from './isExecutable-cardview-property';\r\nimport { createAssignmentProperty } from './assignment-cardview-property';\r\nimport { createProcessIdProperty } from './process-id-cardview-property';\r\n\r\nexport const bpmn2cardView = {\r\n [BpmnProperty.id]: createIdProperty,\r\n [BpmnProperty.name]: createNameProperty,\r\n [BpmnProperty.documentation]: createDocumentationProperty,\r\n [BpmnProperty.implementation]: createImplementationProperty,\r\n [BpmnProperty.decisionTask]: createDecisionTaskProperty,\r\n [BpmnProperty.scriptTask]: createScriptTaskProperty,\r\n [BpmnProperty.variables]: createVariablesProperty,\r\n [BpmnProperty.assignee]: createAssigneeProperty,\r\n [BpmnCompositeProperty.assignment]: createAssignmentProperty,\r\n [BpmnProperty.candidateGroups]: createCandidateGroupsProperty,\r\n [BpmnProperty.candidateUsers]: createCandidateUsersProperty,\r\n [BpmnProperty.dueDate]: createDueDateProperty,\r\n [BpmnProperty.priority]: createPriorityProperty,\r\n [BpmnProperty.calledElement]: createCalledElementProperty,\r\n [BpmnCompositeProperty.properties]: createProcessVariablesProperty,\r\n [BpmnProperty.conditionExpression]: createExpressionProperty,\r\n [BpmnProperty.formKey]: createFormKeyProperty,\r\n [BpmnProperty.processName]: createProcessNameProperty,\r\n [BpmnProperty.processId]: createProcessIdProperty,\r\n [BpmnProperty.modelName]: createModelNameProperty,\r\n [BpmnProperty.defaultSequenceFlow]: createDefaultSequenceFlowProperty,\r\n [BpmnProperty.signalRef]: createSignalRefProperty,\r\n [BpmnProperty.errorRef]: createErrorRefProperty,\r\n [BpmnProperty.signalScope]: createSignalScopeProperty,\r\n [BpmnProperty.timerEventDefinition]: createTimerDefinitionProperty,\r\n [BpmnProperty.messageRef]: createMessageProperty,\r\n [BpmnCompositeProperty.messages]: createProcessMessagesProperty,\r\n [BpmnProperty.correlationKey]: createCorrelationKeyProperty,\r\n [BpmnProperty.multiInstanceType]: createMultiInstanceProperty,\r\n [BpmnProperty.messagePayload]: createMessagePayloadProperty,\r\n [BpmnProperty.textAnnotation]: createTextAnnotationProperty,\r\n [BpmnProperty.isExecutable]: createIsExecutableProperty\r\n};\r\n","module.exports = \"
\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ACTIVITY_NAME' | translate }}
\\r\\n \\r\\n \\r\\n {{ processDefinition.name }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.PROCESS' | translate }}
\\r\\n \\r\\n \\r\\n {{ process }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MAPPING_TYPE' | translate }}
\\r\\n \\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MAP_VARIABLES' | translate }}\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.SEND_ALL_VARIABLES' | translate }}\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.SEND_NO_VARIABLES' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INPUT_MAPPING' | translate }}:
\\r\\n \\r\\n \\r\\n\\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.OUTPUT_MAPPING' | translate }}:
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
{{ 'PROCESS_EDITOR.ERRORS.NO_PROCESS_VARIABLES' | translate }}
\\r\\n
\\r\\n\\r\\n\\r\\n
{{ 'PROCESS_EDITOR.ERRORS.NO_SUB_PROCESS_VARIABLES' | translate }}
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { CardItemTypeService, CardViewUpdateService } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport { CalledElementItemModel } from './called-element-item.model';\r\nimport { selectProcessesArray } from '../../../store/process-editor.selectors';\r\nimport { Subject, of, zip } from 'rxjs';\r\nimport { filter, take, takeUntil, switchMap, map } from 'rxjs/operators';\r\nimport {\r\n AmaState,\r\n Process,\r\n selectProcessPropertiesArrayFor,\r\n selectProcessMappingsFor,\r\n UpdateServiceParametersAction,\r\n selectSelectedProcess,\r\n ServiceParameterMapping,\r\n ProcessExtensionsModel,\r\n EntityProperty\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { MatSelectChange } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'ama-process-called-element',\r\n templateUrl: './called-element-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewCalledItemItemComponent implements OnInit, OnDestroy {\r\n @Input() property: CalledElementItemModel;\r\n\r\n onDestroy$: Subject = new Subject();\r\n processDefinitions: Process[];\r\n processes: string[];\r\n processDefinition: Process;\r\n processId: string;\r\n sendNoVariables: boolean;\r\n processVariables$;\r\n subProcessVariables: EntityProperty[] = [];\r\n mapping = {};\r\n\r\n constructor(\r\n private cardViewUpdateService: CardViewUpdateService,\r\n private store: Store) { }\r\n\r\n ngOnInit() {\r\n this.processId = this.property.value;\r\n\r\n this.store.select(selectProcessesArray).pipe(\r\n switchMap(processes => zip(of(processes), this.store.select(selectSelectedProcess))),\r\n map(([processes, selectedProcess]) => processes.filter(process => process.id !== selectedProcess.id)),\r\n takeUntil(this.onDestroy$)\r\n ).subscribe((processDefinitions) => {\r\n this.processDefinitions = processDefinitions;\r\n this.loadCallActivity();\r\n });\r\n\r\n this.store.select(selectProcessMappingsFor(this.property.data.processId, this.property.data.id))\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe((mapping) => {\r\n this.mapping = mapping;\r\n this.sendNoVariables = !!mapping.inputs && !!mapping.outputs\r\n && !Object.values(mapping.inputs).length\r\n && !Object.values(mapping.outputs).length;\r\n });\r\n }\r\n\r\n changeMappingType(event: MatSelectChange): void {\r\n this.sendNoVariables = event.value;\r\n this.mapping = this.sendNoVariables ? { inputs: {}, outputs: {} } : {};\r\n this.updateMapping();\r\n }\r\n\r\n loadVariables() {\r\n this.processVariables$ = this.store.select(selectProcessPropertiesArrayFor(this.property.data.processId));\r\n\r\n if (this.processId) {\r\n this.subProcessVariables = Object.values(new ProcessExtensionsModel(this.processDefinition.extensions).getProperties(this.processId));\r\n }\r\n }\r\n\r\n loadCallActivity() {\r\n this.processDefinition = this.processDefinitions.find((processDefinition) => !!processDefinition.extensions[this.processId]);\r\n if (this.processDefinition) {\r\n this.onProcessDefinitionSelected();\r\n this.loadVariables();\r\n }\r\n }\r\n\r\n onProcessDefinitionSelected() {\r\n this.processes = Object.keys(this.processDefinition.extensions);\r\n if (!this.processes.includes(this.processId)) {\r\n this.processId = undefined;\r\n }\r\n }\r\n\r\n onProcessSelected() {\r\n this.cardViewUpdateService.update(this.property, this.processId);\r\n this.loadVariables();\r\n }\r\n\r\n changeMapping(mapping: ServiceParameterMapping, type: string): void {\r\n this.mapping = { ...this.mapping, [type]: mapping };\r\n this.updateMapping();\r\n }\r\n\r\n updateMapping(): void {\r\n this.store.select(selectSelectedProcess).pipe(\r\n filter(process => !!process),\r\n take(1)\r\n ).subscribe(process => this.store.dispatch(\r\n new UpdateServiceParametersAction(process.id, this.property.data.processId, this.property.data.id, this.mapping)\r\n ));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.complete();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class CalledElementItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.calledElement;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { CalledElementItemModel } from './called-element-item/called-element-item.model';\r\n\r\nconst propertyName = BpmnProperty.calledElement;\r\n\r\nexport function createCalledElementProperty({ element, store }: FactoryProps) {\r\n return new CalledElementItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ACTIVITY_NAME',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id, processId: ElementHelper.getProperty(element, BpmnProperty.processId) },\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.candidateGroups;\r\n\r\nexport function createCandidateGroupsProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.CANDIDATE_GROUPS',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: false,\r\n editable: true,\r\n data: { id: element.id }\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.candidateUsers;\r\n\r\nexport function createCandidateUsersProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.CANDIDATE_USERS',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: false,\r\n editable: true,\r\n data: { id: element.id }\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { LogService, CardViewItem, AppConfigService } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { elementsProperties } from '../bpmn/elements-properties';\r\nimport { BpmnProperty, AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { bpmn2cardView } from './bpmn2CardView';\r\nimport { Store } from '@ngrx/store';\r\n\r\nexport interface FactoryProps {\r\n element: Bpmn.DiagramElement;\r\n appConfigService?: AppConfigService;\r\n store?: Store;\r\n}\r\n\r\n@Injectable()\r\nexport class CardViewPropertiesFactory {\r\n constructor(\r\n private logService: LogService,\r\n private appConfigService: AppConfigService,\r\n private store: Store\r\n ) {}\r\n\r\n createCardViewPropertiesFor(element: Bpmn.DiagramElement): CardViewItem[] {\r\n const type = ElementHelper.getType(element);\r\n const bpmnPropertiesForElement = elementsProperties[type];\r\n\r\n if (!bpmnPropertiesForElement) {\r\n this.logService.debug(element);\r\n return [];\r\n }\r\n\r\n const properties = Array.isArray(bpmnPropertiesForElement) ? bpmnPropertiesForElement : bpmnPropertiesForElement(element);\r\n return properties.map(this.createCardViewPropertyFor.bind(this, element));\r\n }\r\n\r\n private createCardViewPropertyFor(element: Bpmn.DiagramElement, bpmnProperty: BpmnProperty): CardViewItem {\r\n const factoryFunction = bpmn2cardView[bpmnProperty];\r\n\r\n if (!factoryFunction) {\r\n return null;\r\n }\r\n\r\n return factoryFunction({ element, store: this.store, appConfigService: this.appConfigService });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { CardViewExpressionValidator } from './validators/card-view-expression.validator';\r\n\r\nconst propertyName = BpmnProperty.correlationKey;\r\n\r\nexport function createCorrelationKeyProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.CORRELATION_KEY',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: false,\r\n editable: true,\r\n data: { id: element.id },\r\n validators: [new CardViewExpressionValidator()]\r\n });\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.DECISION_TABLE_NAME' | translate }}
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { CardItemTypeService, LogService } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n selectProcessMappingsFor,\r\n UpdateServiceParametersAction,\r\n ImplementationItemModel,\r\n selectOpenedModel,\r\n AmaState,\r\n DECISION_TABLE_INPUT_PARAM_NAME,\r\n ServiceParameterMapping,\r\n MappingType\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n selector: 'ama-process-decision-task',\r\n templateUrl: './decision-task-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewDecisionTaskItemComponent implements OnInit, OnDestroy {\r\n @Input() property: ImplementationItemModel;\r\n\r\n decisionTable: string;\r\n onDestroy$: Subject = new Subject();\r\n\r\n constructor(private store: Store, private logService: LogService) {}\r\n\r\n ngOnInit() {\r\n this.store\r\n .select(selectProcessMappingsFor(this.property.data.processId, this.elementId))\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(mappings => {\r\n try {\r\n this.decisionTable = mappings.inputs[DECISION_TABLE_INPUT_PARAM_NAME].value;\r\n } catch {\r\n this.decisionTable = '';\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n\r\n changeDecisionTable(): void {\r\n try {\r\n const inputs: ServiceParameterMapping = {\r\n [DECISION_TABLE_INPUT_PARAM_NAME]: {\r\n type: MappingType.static,\r\n value: this.decisionTable\r\n }\r\n };\r\n\r\n this.store\r\n .select(selectOpenedModel)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(openedModel => {\r\n this.store.dispatch(\r\n new UpdateServiceParametersAction(openedModel.id, this.property.data.processId, this.elementId, { inputs })\r\n );\r\n });\r\n } catch (error) {\r\n this.logService.error(error);\r\n }\r\n }\r\n\r\n private get elementId() {\r\n return this.property.data.id;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty, DecisionTaskItemModel } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst property = BpmnProperty.implementation;\r\n\r\nexport function createDecisionTaskProperty({ element }: FactoryProps) {\r\n return new DecisionTaskItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.DECISION_TASK',\r\n value: ElementHelper.getProperty(element, property),\r\n key: property,\r\n default: '',\r\n editable: true,\r\n data: { id: element.id, processId: ElementHelper.getProperty(element, BpmnProperty.processId) },\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty, DefaultSequenceFlowItemModel } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst property = BpmnProperty.defaultSequenceFlow;\r\n\r\nexport function createDefaultSequenceFlowProperty({ element }: FactoryProps) {\r\n return new DefaultSequenceFlowItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.DEFAULT_SEQUENCE_FLOW',\r\n value: ElementHelper.getProperty(element, property),\r\n key: property,\r\n default: '',\r\n editable: true,\r\n data: { id: element.id }\r\n });\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.DEFAULT_SEQUENCE_FLOW' | translate }}
\\r\\n \\r\\n None\\r\\n \\r\\n {{ item.name || '<' + item.id + '>' }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { CardItemTypeService, CardViewUpdateService } from '@alfresco/adf-core';\r\nimport { DefaultSequenceFlowItemModel } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n selector: 'ama-process-default-sequence-flow',\r\n templateUrl: './default-sequence-flow-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewDefaultSequenceFlowItemComponent implements OnInit {\r\n @Input() property: DefaultSequenceFlowItemModel;\r\n\r\n list: Bpmn.DiagramElement[];\r\n default: Bpmn.DiagramElement;\r\n\r\n constructor(private cardViewUpdateService: CardViewUpdateService) {}\r\n\r\n ngOnInit() {\r\n this.list = this.property.value.list || [];\r\n this.default = this.property.value.default;\r\n }\r\n\r\n onChange(): void {\r\n this.cardViewUpdateService.update(this.property, this.default);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.documentation;\r\n\r\nexport function createDocumentationProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.DOCUMENTATION',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: true,\r\n editable: true,\r\n data: { id: element.id }\r\n });\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.DUE_DATE' | translate}}
\\r\\n \\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.USE_PROCESS_VARIABLE' | translate}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{processVariable.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 * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { CardItemTypeService, CardViewUpdateService, MomentDateAdapter, CardViewDatetimeItemModel, CardViewItem } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport { AmaState, selectSelectedProcess, AMA_DATETIME_FORMATS, MOMENT_DATETIME_FORMAT,\r\n EntityProperty, ANGULAR_DATETIME_DISPLAY_FORMAT, ProcessExtensionsModel } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { filter, take, debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { FormBuilder, FormGroup, FormControl, AbstractControl } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport moment from 'moment-es6';\r\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { DatetimeAdapter, MAT_DATETIME_FORMATS } from '@mat-datetimepicker/core';\r\nimport { MomentDatetimeAdapter } from '@mat-datetimepicker/moment';\r\nimport { DueDateItemModel } from './due-date-item.model';\r\n\r\n@Component({\r\n selector: 'ama-process-due-date',\r\n templateUrl: './due-date-item.component.html',\r\n providers: [\r\n CardItemTypeService,\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: DatetimeAdapter, useClass: MomentDatetimeAdapter },\r\n { provide: MAT_DATETIME_FORMATS, useValue: AMA_DATETIME_FORMATS }\r\n ]\r\n})\r\nexport class CardViewDueDateItemComponent implements OnInit, OnDestroy {\r\n\r\n @Input() property: DueDateItemModel;\r\n\r\n processVariables: EntityProperty[] = [];\r\n dueDateForm: FormGroup;\r\n today = new Date();\r\n properties: CardViewItem[] = [];\r\n\r\n onDestroy$: Subject = new Subject();\r\n\r\n constructor(private cardViewUpdateService: CardViewUpdateService,\r\n private store: Store,\r\n private formBuilder: FormBuilder) {\r\n }\r\n\r\n ngOnInit() {\r\n this.initProcessVariables();\r\n this.buildForm();\r\n this.extractDate(this.property.value);\r\n }\r\n\r\n initProcessVariables() {\r\n this.store.select(selectSelectedProcess).pipe(\r\n filter((process) => !!process),\r\n take(1)\r\n ).subscribe((process) => {\r\n this.processVariables = Object.values(new ProcessExtensionsModel(process.extensions).getProperties(this.property.data.processId))\r\n .filter((processVariable: EntityProperty) => processVariable.type === 'datetime');\r\n });\r\n }\r\n\r\n buildForm() {\r\n this.dueDateForm = this.formBuilder.group({\r\n processVariable: new FormControl(undefined, []),\r\n useProcessVariable: new FormControl(false, []),\r\n });\r\n\r\n this.dueDateForm.valueChanges\r\n .pipe(\r\n debounceTime(500),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe(() => {\r\n this.updateDueDate();\r\n });\r\n }\r\n\r\n updateDueDate() {\r\n let dueDateValue: string;\r\n\r\n if (this.useProcessVariable.value) {\r\n dueDateValue = this.processVariable.value ? '${' + this.processVariable.value + '}' : undefined;\r\n }\r\n\r\n this.cardViewUpdateService.update(this.property, dueDateValue);\r\n }\r\n\r\n extractDate(dateDefinitionValue: string) {\r\n this.properties = [\r\n new CardViewDatetimeItemModel({\r\n label: '',\r\n value: '',\r\n key: this.property.key,\r\n format: ANGULAR_DATETIME_DISPLAY_FORMAT,\r\n editable: true,\r\n default: '',\r\n data: this.property.data\r\n })\r\n ];\r\n if (dateDefinitionValue) {\r\n if (dateDefinitionValue.includes('$')) {\r\n this.extractProcessVariable(dateDefinitionValue);\r\n } else {\r\n this.properties[0].value = moment(dateDefinitionValue, MOMENT_DATETIME_FORMAT).toDate();\r\n }\r\n }\r\n }\r\n\r\n extractProcessVariable(processVariableDefinition: string) {\r\n const processVariable = processVariableDefinition.substr(2, processVariableDefinition.length - 3);\r\n this.processVariable.setValue(processVariable);\r\n this.useProcessVariable.setValue(true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n\r\n get processVariable(): AbstractControl {\r\n return this.dueDateForm.get('processVariable');\r\n }\r\n\r\n get useProcessVariable(): AbstractControl {\r\n return this.dueDateForm.get('useProcessVariable');\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class DueDateItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.dueDate;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { DueDateItemModel } from './due-date-item/due-date-item.model';\r\n\r\nconst propertyName = BpmnProperty.dueDate;\r\n\r\nexport function createDueDateProperty({ element }: FactoryProps) {\r\n return new DueDateItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.DUE_DATE',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id, processId: ElementHelper.getProperty(element, BpmnProperty.processId) },\r\n });\r\n\r\n}\r\n","module.exports = \"
\\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ERROR' | translate }}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ error.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ERROR_NAME' | translate }}
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ERROR_CODE' | translate }}
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, Inject } from '@angular/core';\r\nimport { CardItemTypeService, CardViewUpdateService } from '@alfresco/adf-core';\r\nimport { ProcessModelerServiceToken, ProcessModelerService, AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ErrorRefItemModel } from './error-ref-item.model';\r\nimport { Store } from '@ngrx/store';\r\nimport { SelectModelerElementAction } from '../../../store/process-editor.actions';\r\n\r\n@Component({\r\n selector: 'ama-process-error-ref',\r\n templateUrl: './error-ref-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewErrorRefItemComponent implements OnInit {\r\n @Input() property: ErrorRefItemModel;\r\n\r\n errors: Bpmn.DiagramElement[] = [];\r\n selectedError: Bpmn.DiagramElement;\r\n\r\n constructor(\r\n private cardViewUpdateService: CardViewUpdateService,\r\n private store: Store,\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService\r\n ) {}\r\n\r\n get rootElements() {\r\n return this.processModelerService.getRootProcessElement().businessObject.$parent.rootElements;\r\n }\r\n\r\n private get bpmnFactory() {\r\n return this.processModelerService.getFromModeler('bpmnFactory');\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedError = this.property.data.element.businessObject.eventDefinitions[0].errorRef;\r\n this.errors = this.rootElements.filter(element => element.$type === 'bpmn:Error');\r\n }\r\n\r\n createNewError() {\r\n const errorElement = this.bpmnFactory.create('bpmn:Error');\r\n errorElement.name = errorElement.id;\r\n errorElement.errorCode = errorElement.id;\r\n this.rootElements.push(errorElement);\r\n\r\n this.errors.push(errorElement);\r\n this.selectedError = errorElement;\r\n this.changeErrorRef();\r\n }\r\n\r\n changeErrorRef() {\r\n this.cardViewUpdateService.update(this.property, this.selectedError);\r\n const { id, type, name } = this.property.data.element;\r\n this.store.dispatch(new SelectModelerElementAction({ id, type, name }));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class ErrorRefItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.errorRef;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { ErrorRefItemModel } from './error-ref-item/error-ref-item.model';\r\n\r\nconst propertyName = BpmnProperty.errorRef;\r\n\r\nexport function createErrorRefProperty({ element }: FactoryProps) {\r\n return new ErrorRefItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ERROR',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id, element }\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { CardViewExpressionValidator } from './validators/card-view-expression.validator';\r\n\r\nconst propertyName = BpmnProperty.conditionExpression;\r\n\r\nexport function createExpressionProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.EXPRESSION',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: true,\r\n editable: true,\r\n data: { id: element.id },\r\n validators: [new CardViewExpressionValidator()]\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty, CardViewFormKeyModel } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst property = BpmnProperty.formKey;\r\n\r\nexport function createFormKeyProperty({ element }: FactoryProps) {\r\n return new CardViewFormKeyModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.FORM_SELECTOR',\r\n value: ElementHelper.getProperty(element, property),\r\n key: property,\r\n default: '',\r\n editable: true,\r\n data: { id: element.id, processId: ElementHelper.getProperty(element, BpmnProperty.processId) },\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.id;\r\n\r\nexport function createIdProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ID',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: false,\r\n editable: false\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty, ImplementationItemModel } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst property = BpmnProperty.implementation;\r\n\r\nexport function createImplementationProperty({ element }: FactoryProps) {\r\n return new ImplementationItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.IMPLEMENTATION',\r\n value: ElementHelper.getProperty(element, property),\r\n key: property,\r\n default: '',\r\n editable: true,\r\n data: { id: element.id, processId: ElementHelper.getProperty(element, BpmnProperty.processId) },\r\n });\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.IMPLEMENTATION' | translate }}
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INPUTS' | translate }}
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.OUTPUTS' | translate }}
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { CardItemTypeService, CardViewUpdateService, LogService } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { selectProcessMappingsFor, UpdateServiceParametersAction, ImplementationItemModel, selectOpenedModel, AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n selector: 'ama-process-implementation',\r\n templateUrl: './implementation-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewImplementationItemComponent implements OnInit, OnDestroy {\r\n @Input() property: ImplementationItemModel;\r\n\r\n implementation: string;\r\n inputs: string;\r\n outputs: string;\r\n onDestroy$: Subject = new Subject();\r\n\r\n constructor(\r\n private cardViewUpdateService: CardViewUpdateService,\r\n private store: Store,\r\n private logService: LogService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.implementation = this.property.value;\r\n this.store.select(selectProcessMappingsFor(this.property.data.processId, this.elementId)).pipe(\r\n takeUntil(this.onDestroy$)\r\n ).subscribe(mappings => {\r\n this.inputs = JSON.stringify(mappings.inputs);\r\n this.outputs = JSON.stringify(mappings.outputs);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n\r\n changeImplementation(): void {\r\n this.cardViewUpdateService.update(this.property, this.implementation);\r\n }\r\n\r\n changeVariablesMapping(): void {\r\n try {\r\n let inputs, outputs;\r\n\r\n try {\r\n inputs = JSON.parse(this.inputs);\r\n } catch {\r\n inputs = {};\r\n }\r\n\r\n try {\r\n outputs = JSON.parse(this.outputs);\r\n } catch {\r\n outputs = {};\r\n }\r\n\r\n this.store.select(selectOpenedModel).pipe(takeUntil(this.onDestroy$)).subscribe(openedModel => {\r\n this.store.dispatch(\r\n new UpdateServiceParametersAction(openedModel.id, this.property.data.processId, this.elementId, { inputs, outputs })\r\n );\r\n });\r\n } catch (error) {\r\n this.logService.error(error);\r\n }\r\n }\r\n\r\n private get elementId() {\r\n return this.property.data.id;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { CardViewBoolItemModel } from '@alfresco/adf-core';\r\n\r\nconst propertyName = BpmnProperty.isExecutable;\r\n\r\nexport function createIsExecutableProperty({ element }: FactoryProps) {\r\n return new CardViewBoolItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.EXECUTABLE',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: true,\r\n editable: true,\r\n data: { id: element.id }\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { MessageItemModel } from './message-item/message-item.model';\r\n\r\nconst propertyName = BpmnProperty.messageRef;\r\n\r\nexport function createMessageProperty({ element }: FactoryProps) {\r\n return new MessageItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id, element, processId: ElementHelper.getProperty(element, BpmnProperty.processId) },\r\n });\r\n}\r\n","module.exports = \"
\\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE' | translate }}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ message.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_NAME' | translate }}
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, Inject } from '@angular/core';\r\nimport { CardItemTypeService, CardViewUpdateService } from '@alfresco/adf-core';\r\nimport { ProcessModelerServiceToken, ProcessModelerService, AmaState, BpmnElement } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\nimport { SelectModelerElementAction } from '../../../store/process-editor.actions';\r\nimport { MessageItemModel } from './message-item.model';\r\n\r\n@Component({\r\n selector: 'ama-message-item',\r\n templateUrl: './message-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewMessageItemComponent implements OnInit {\r\n\r\n @Input() property: MessageItemModel;\r\n\r\n messages: Bpmn.DiagramElement[] = [];\r\n selectedMessage: Bpmn.DiagramElement;\r\n\r\n constructor(\r\n private cardViewUpdateService: CardViewUpdateService,\r\n private store: Store,\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService\r\n ) {}\r\n\r\n private get rootElements() {\r\n return this.processModelerService.getRootProcessElement().businessObject.$parent.rootElements;\r\n }\r\n\r\n private get bpmnFactory() {\r\n return this.processModelerService.getFromModeler('bpmnFactory');\r\n }\r\n\r\n get eventDefinition(): any {\r\n return this.property.data.element.businessObject.eventDefinitions[0];\r\n }\r\n\r\n get eventType(): string {\r\n return this.property.data.element.type;\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedMessage = this.eventDefinition.messageRef;\r\n this.messages = this.rootElements.filter(element => {\r\n return element.$type === 'bpmn:Message';\r\n });\r\n }\r\n\r\n createNewMessage() {\r\n const messageElement = this.bpmnFactory.create('bpmn:Message');\r\n messageElement.name = messageElement.id;\r\n this.rootElements.push(messageElement);\r\n\r\n this.messages.push(messageElement);\r\n this.selectedMessage = messageElement;\r\n this.onMessageChange();\r\n }\r\n\r\n onMessageChange() {\r\n if (this.selectedMessage) {\r\n this.cardViewUpdateService.update(this.property, this.selectedMessage);\r\n const { id, type, name } = this.property.data.element;\r\n this.store.dispatch(new SelectModelerElementAction({ id, type, name }));\r\n }\r\n }\r\n\r\n isCatchEvent(): boolean {\r\n return this.eventType === BpmnElement.IntermediateCatchEvent ||\r\n this.eventType === BpmnElement.BoundaryEvent ||\r\n this.eventType === BpmnElement.StartEvent;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class MessageItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.messageRef;\r\n\r\n get displayValue(): string {\r\n return this.default;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.TITLE' | translate }}
\\r\\n \\r\\n \\r\\n
\\r\\n {{property.name}} \\r\\n
\\r\\n \\r\\n {{property.type}}: {{ property.value}}\\r\\n
\\r\\n
\\r\\n remove_circle\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.FORM.NAME' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.INVALID_PAYLOAD_NAME' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.FORM.TYPE' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{type}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.FORM.VALUE' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.FORM.VALUE' | translate }}\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.FORM.VALUE' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.FORM.VALUE' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{booleanOption}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.FORM.PROCESS_VARIABLE' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{processVariable.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

{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD.NO_PROPERTIES' | translate}}

\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { CardItemTypeService, MomentDateAdapter, LocalizedDatePipe } from '@alfresco/adf-core';\r\nimport { MatSelectChange, DateAdapter, MAT_DATE_FORMATS, MatDatepickerInputEvent } from '@angular/material';\r\nimport { Moment } from 'moment';\r\nimport { AmaState, selectSelectedProcess, MessagePayload, EntityProperty, ProcessExtensionsModel, ServiceParameterMappings } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { MessageVariableMappingService } from '../message-variable-mapping/message-variable-mapping.service';\r\nimport { MessageItemModel } from '../message-item/message-item.model';\r\n\r\nexport const TYPE_OPTIONS = ['string', 'integer', 'boolean', 'date', 'variable'];\r\nexport const BOOLEAN_OPTIONS = [true, false];\r\nexport const MOMENT_DATE_FORMATS = {\r\n parse: {\r\n dateInput: 'YYYY-MM-DD',\r\n },\r\n display: {\r\n dateInput: 'YYYY-MM-DD',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'ama-process-message-payload',\r\n templateUrl: './message-payload-item.component.html',\r\n providers: [\r\n CardItemTypeService,\r\n { provide: DateAdapter, useClass: MomentDateAdapter },\r\n { provide: MAT_DATE_FORMATS, useValue: MOMENT_DATE_FORMATS },\r\n ]\r\n})\r\nexport class CardViewMessagePayloadItemComponent implements OnInit {\r\n\r\n @Input() property: MessageItemModel;\r\n\r\n payloadProperties: MessagePayload[] = [];\r\n processVariables: EntityProperty[] = [];\r\n\r\n typeOptions = TYPE_OPTIONS;\r\n booleanOptions = BOOLEAN_OPTIONS;\r\n\r\n showPropertyForm: boolean;\r\n propertyName: string;\r\n propertyValue: any;\r\n selectedType: string;\r\n selectedProcessVariable: string;\r\n\r\n constructor(\r\n private localizedDatePipe: LocalizedDatePipe,\r\n private store: Store,\r\n private messageVariableMappingService: MessageVariableMappingService) { }\r\n\r\n private get elementId(): string {\r\n return this.property.data.id;\r\n }\r\n\r\n ngOnInit() {\r\n this.store.select(selectSelectedProcess).pipe(\r\n filter((process) => !!process),\r\n take(1)\r\n ).subscribe((process) => {\r\n const processExtensionsModel = new ProcessExtensionsModel(process.extensions);\r\n this.processVariables = Object.values(processExtensionsModel.getProperties(this.property.data.processId));\r\n this.payloadProperties = this.parseMessagePayload(processExtensionsModel.getMappings(this.property.data.processId));\r\n });\r\n this.resetForm();\r\n }\r\n\r\n addNewProperty() {\r\n this.showPropertyForm = true;\r\n }\r\n\r\n onTypeChanged(typeValue: MatSelectChange) {\r\n this.selectedType = typeValue.value;\r\n }\r\n\r\n onDateChanged(newDate: MatDatepickerInputEvent) {\r\n this.propertyValue = this.localizedDatePipe.transform(newDate.value.toDate(), 'yyyy-MM-dd');\r\n }\r\n\r\n saveProperty() {\r\n const newProperty = {\r\n name: this.propertyName.replace(/ /g, ''),\r\n value: this.propertyValue || this.selectedProcessVariable,\r\n type: this.selectedType === 'variable' ? 'variable' : 'value'\r\n };\r\n const propertyIndex = this.payloadProperties.findIndex((property) => this.propertyName === property.name);\r\n\r\n if (propertyIndex > -1) {\r\n this.payloadProperties[propertyIndex] = newProperty;\r\n } else {\r\n this.payloadProperties.push(newProperty);\r\n }\r\n\r\n this.resetForm();\r\n this.updateMessagePayloadMapping();\r\n }\r\n\r\n isSaveButtonEnabled(): boolean {\r\n return !!this.propertyName && !!this.selectedType && (!!this.propertyValue || this.propertyValue === false || !!this.selectedProcessVariable);\r\n }\r\n\r\n deleteProperty(propertyIndex: number) {\r\n this.payloadProperties.splice(propertyIndex, 1);\r\n this.updateMessagePayloadMapping();\r\n }\r\n\r\n resetForm() {\r\n this.showPropertyForm = false;\r\n this.propertyName = '';\r\n this.propertyValue = '';\r\n this.selectedType = '';\r\n }\r\n\r\n updateMessagePayloadMapping() {\r\n this.messageVariableMappingService.updateMessagePayloadMapping(\r\n this.property.data.processId,\r\n this.elementId,\r\n { inputs: this.getMessagePayload() }\r\n );\r\n }\r\n\r\n getMessagePayload(): Object {\r\n const messagePayload = {};\r\n this.payloadProperties.forEach((payloadProperty) => {\r\n messagePayload[payloadProperty.name] = {\r\n type: payloadProperty.type,\r\n value: payloadProperty.value\r\n };\r\n });\r\n return messagePayload;\r\n }\r\n\r\n parseMessagePayload(messageMappings): MessagePayload[] {\r\n const messagePayload = [];\r\n const messagePayloadMappings = messageMappings[this.elementId] && messageMappings[this.elementId].inputs\r\n ? messageMappings[this.elementId].inputs : {};\r\n\r\n Object.keys(messagePayloadMappings).forEach((property) => {\r\n messagePayload.push({ ...messagePayloadMappings[property], name: property });\r\n });\r\n\r\n return messagePayload;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class MessagePayloadItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.messagePayload;\r\n\r\n get displayValue(): string {\r\n return this.default;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n {{ 'SDK.VARIABLE_MAPPING.PARAMETER' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n {{ payloadProperty.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ 'SDK.VARIABLE_MAPPING.PROCESS_VARIABLE' | translate }}\\r\\n \\r\\n \\r\\n \\r\\n {{ 'SDK.VARIABLE_MAPPING.NONE' | translate }}\\r\\n \\r\\n {{ processVariable.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 {{ 'SDK.VARIABLE_MAPPING.NO_PAYLOAD' | translate }}\\r\\n\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { CardItemTypeService } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport {\r\n AmaState, EntityProperty, MessagePayload, selectSelectedProcess, ConnectorParameter,\r\n ParametersSelectOptions, MappingType, Process, ServiceParameterMapping, ProcessExtensionsModel,\r\n BpmnElement, ServiceParameterMappings\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { MatTableDataSource } from '@angular/material';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { MessageVariableMappingService } from './message-variable-mapping.service';\r\nimport { MessageItemModel } from '../message-item/message-item.model';\r\n\r\n@Component({\r\n selector: 'ama-message-variable-mapping',\r\n templateUrl: './message-variable-mapping.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewMessageVariableMappingComponent implements OnInit {\r\n\r\n @Input() message: Bpmn.DiagramElement;\r\n\r\n @Input() property: MessageItemModel;\r\n\r\n displayedColumns: string[] = ['name', 'process-variable'];\r\n dataSource: MatTableDataSource;\r\n\r\n processVariables: EntityProperty[];\r\n payloadProperties: MessagePayload[] = [];\r\n mapping: ServiceParameterMapping = {};\r\n optionsForParams: ParametersSelectOptions = {};\r\n paramName2VariableName: { [paramName: string]: string } = {};\r\n\r\n private get modelEvents(): Bpmn.BusinessObject[] {\r\n if (this.property.data.element.parent.type === BpmnElement.Process) {\r\n return this.property.data.element.parent.businessObject.flowElements;\r\n } else {\r\n const process = this.property.data.element.parent.businessObject.$parent.$parent.rootElements.filter((element) => element.$type === BpmnElement.Process);\r\n return process.reduce((allElements, currentElement) => {\r\n const flows = currentElement.flowElements.filter(childElement => childElement.flowElements).map(element => element.flowElements);\r\n return [ ...allElements, ...currentElement.flowElements, ...flows ];\r\n } , []);\r\n }\r\n }\r\n\r\n private get elementId(): string {\r\n return this.property.data.id;\r\n }\r\n\r\n constructor(private store: Store,\r\n private messageVariableMappingService: MessageVariableMappingService) { }\r\n\r\n ngOnInit() {\r\n this.store.select(selectSelectedProcess)\r\n .pipe(\r\n filter((process: Process) => !!process),\r\n take(1))\r\n .subscribe((process: Process) => {\r\n const processExtensionsModel = new ProcessExtensionsModel(process.extensions);\r\n this.mapping = this.getMappingFromProcess(processExtensionsModel.getMappings(this.property.data.processId));\r\n this.processVariables = Object.values(processExtensionsModel.getProperties(this.property.data.processId));\r\n this.payloadProperties = this.parseMessagePayload(processExtensionsModel.getAllMappings());\r\n this.dataSource = new MatTableDataSource(this.payloadProperties);\r\n this.initMapping();\r\n });\r\n }\r\n\r\n initMapping() {\r\n this.payloadProperties.forEach((payloadProperty) => {\r\n if (this.mapping) {\r\n Object.keys(this.mapping).map((outputProperty) => {\r\n if (this.mapping[outputProperty].value === payloadProperty.name) {\r\n this.paramName2VariableName[payloadProperty.name] = outputProperty;\r\n }\r\n });\r\n }\r\n\r\n this.optionsForParams[payloadProperty.name] = this.processVariables.filter((prop) => prop.type === payloadProperty.type);\r\n });\r\n }\r\n\r\n parseMessagePayload(messageMappings: ServiceParameterMappings): MessagePayload[] {\r\n const payloadMessageEvent = this.messageVariableMappingService.getPayloadMessageEventByMessageId(this.modelEvents, this.message.id, this.elementId);\r\n return this.messageVariableMappingService.parseMessagePayload(payloadMessageEvent, messageMappings);\r\n }\r\n\r\n getMappingFromProcess(mappings: ServiceParameterMappings): ServiceParameterMapping {\r\n return mappings[this.elementId] && mappings[this.elementId].outputs\r\n ? { ...mappings[this.elementId].outputs } : {};\r\n }\r\n\r\n selectVariable(selection: string, param: ConnectorParameter) {\r\n this.mapping = { ...this.mapping };\r\n\r\n if (!selection) {\r\n Object.keys(this.mapping).forEach((property) => {\r\n if (this.mapping[property].value === param.name) {\r\n delete this.mapping[property];\r\n }\r\n });\r\n } else {\r\n this.mapping[selection] = {\r\n type: MappingType.variable,\r\n value: param.name\r\n };\r\n }\r\n\r\n this.messageVariableMappingService.updateMessagePayloadMapping(this.property.data.processId, this.elementId, { outputs: this.mapping });\r\n }\r\n\r\n hasPayload(): boolean {\r\n return this.payloadProperties.length > 0;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { AmaState, ServiceParameterMappings, UpdateServiceParametersAction, selectSelectedProcess, MessagePayload, BpmnElement } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport moment from 'moment-es6';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MessageVariableMappingService {\r\n\r\n constructor(private store: Store) { }\r\n\r\n updateMessagePayloadMapping(processId: string, elementId: string, mapping: ServiceParameterMappings) {\r\n const parameterMapping = mapping;\r\n this.store.select(selectSelectedProcess).pipe(\r\n filter((model) => !!model),\r\n take(1)\r\n ).subscribe((model) => this.store.dispatch(new UpdateServiceParametersAction(model.id, processId, elementId, parameterMapping)));\r\n }\r\n\r\n getPropertyType(property: any): string {\r\n let type: string;\r\n\r\n if (typeof property.value === 'number') {\r\n type = 'integer';\r\n } else if (typeof property.value === 'object') {\r\n type = 'json';\r\n } else if (typeof property.value === 'boolean') {\r\n type = 'boolean';\r\n } else if (moment(property.value, 'YYYY-MM-DD', true).isValid()) {\r\n type = 'date';\r\n } else {\r\n type = 'string';\r\n }\r\n\r\n return type;\r\n }\r\n\r\n parseMessagePayload(payloadMessageEvent: Bpmn.BusinessObject, messageMappings: ServiceParameterMappings): MessagePayload[] {\r\n const messagePayload = [];\r\n if (!!payloadMessageEvent) {\r\n const messagePayloadMappings = messageMappings[payloadMessageEvent.id] && messageMappings[payloadMessageEvent.id].inputs\r\n ? messageMappings[payloadMessageEvent.id].inputs : {};\r\n\r\n Object.keys(messagePayloadMappings).forEach((property) => {\r\n messagePayload.push({\r\n ...messagePayloadMappings[property],\r\n name: property,\r\n type: this.getPropertyType(messagePayloadMappings[property])\r\n });\r\n });\r\n }\r\n\r\n return messagePayload;\r\n }\r\n\r\n getPayloadMessageEventByMessageId(modelEvents: Bpmn.BusinessObject[], messageId: string, messageEventId: string): Bpmn.BusinessObject {\r\n return modelEvents.find((processEvent) => {\r\n return processEvent\r\n && processEvent.id !== messageEventId\r\n && processEvent.eventDefinitions\r\n && processEvent.eventDefinitions[0].$type === BpmnElement.MessageEventDefinition\r\n && processEvent.eventDefinitions[0].messageRef\r\n && processEvent.eventDefinitions[0].messageRef.id === messageId;\r\n });\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { MessagePayloadItemModel } from './message-payload-item/message-payload-item.model';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\n\r\nconst propertyName = BpmnProperty.messagePayload;\r\n\r\nexport function createMessagePayloadProperty({ element }: FactoryProps) {\r\n return new MessagePayloadItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MESSAGE_PAYLOAD',\r\n value: '',\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id, element, processId: ElementHelper.getProperty(element, BpmnProperty.processId) }\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty, sanitizeString, CardViewModelNameValidator } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.modelName;\r\n\r\nexport function createModelNameProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MODEL_NAME',\r\n value: sanitizeString(ElementHelper.getProperty(element, propertyName)),\r\n key: propertyName,\r\n default: '',\r\n multiline: false,\r\n editable: true,\r\n data: { id: element.id },\r\n validators: [new CardViewModelNameValidator('PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_PROCESS_NAME')]\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { MultiInstanceItemModel } from './multi-instance-item/multi-instance.item.model';\r\n\r\nconst propertyName = BpmnProperty.multiInstanceType;\r\n\r\nexport function createMultiInstanceProperty({ element }: FactoryProps) {\r\n return new MultiInstanceItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MULTI_INSTANCE_TYPE_NAME',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id, element }\r\n });\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MULTI_INSTANCE.MULTI_INSTANCE_TYPE_NAME' | translate }}
\\r\\n \\r\\n \\r\\n {{ type.label | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MULTI_INSTANCE.CARDINALITY_NAME' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n {{ cardinality.getError('message') | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MULTI_INSTANCE.COLLECTION' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_EXPRESSION' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ELEMENT_VARIABLE' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n {{ elementVariable.getError('message') | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MULTI_INSTANCE.COMPLETION_CONDITION' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_EXPRESSION' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MULTI_INSTANCE.RESULT_COLLECTION' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_EXPRESSION' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.MULTI_INSTANCE.RESULT_ELEMENT_VARIABLE' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_EXPRESSION' | translate }}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \".multi-instance-block {\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n}\\n.multi-instance-block .mat-form-field {\\n width: 100%;\\n}\\n.multi-instance-block .mat-form-field-infix {\\n border-top: 0;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcHJvY2Vzcy1lZGl0b3Ivc2VydmljZXMvY2FyZHZpZXctcHJvcGVydGllcy9tdWx0aS1pbnN0YW5jZS1pdGVtL0M6XFxVc2Vyc1xcVHJvbmcgVGhvYWlcXERlc2t0b3BcXE9uZUdhdGVcXHdlYi5icG0vc3JjXFxhcHBcXHByb2Nlc3MtZWRpdG9yXFxzZXJ2aWNlc1xcY2FyZHZpZXctcHJvcGVydGllc1xcbXVsdGktaW5zdGFuY2UtaXRlbVxcbXVsdGktaW5zdGFuY2UtaXRlbS5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcHJvY2Vzcy1lZGl0b3Ivc2VydmljZXMvY2FyZHZpZXctcHJvcGVydGllcy9tdWx0aS1pbnN0YW5jZS1pdGVtL211bHRpLWluc3RhbmNlLWl0ZW0uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDSSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxzQkFBQTtBQ0FKO0FERUk7RUFDSSxXQUFBO0FDQVI7QURHSTtFQUNJLGFBQUE7QUNEUiIsImZpbGUiOiJzcmMvYXBwL3Byb2Nlc3MtZWRpdG9yL3NlcnZpY2VzL2NhcmR2aWV3LXByb3BlcnRpZXMvbXVsdGktaW5zdGFuY2UtaXRlbS9tdWx0aS1pbnN0YW5jZS1pdGVtLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5tdWx0aS1pbnN0YW5jZS1ibG9jayB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAubWF0LWZvcm0tZmllbGQge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbiIsIi5tdWx0aS1pbnN0YW5jZS1ibG9jayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5tdWx0aS1pbnN0YW5jZS1ibG9jayAubWF0LWZvcm0tZmllbGQge1xuICB3aWR0aDogMTAwJTtcbn1cbi5tdWx0aS1pbnN0YW5jZS1ibG9jayAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBib3JkZXItdG9wOiAwO1xufSJdfQ== */\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { AppConfigService, CardViewSelectItemOption } from '@alfresco/adf-core';\r\nimport { MultiInstanceItemModel } from './multi-instance.item.model';\r\nimport { getMultiInstanceType, MultiInstanceProps, MultiInstanceType } from '../../bpmn-js/property-handlers/multi-instance.handler';\r\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { _isNumberValue } from '@angular/cdk/coercion';\r\nimport { CardViewMultiInstanceItemService } from './multi-instance-item.service';\r\n\r\n@Component({\r\n selector: 'ama-multi-instance-item',\r\n templateUrl: './multi-instance-item.component.html',\r\n styleUrls: ['./multi-instance-item.component.scss'],\r\n providers: [ CardViewMultiInstanceItemService ]\r\n})\r\nexport class CardViewMultiInstanceItemComponent implements OnInit {\r\n @Input() property: MultiInstanceItemModel;\r\n\r\n options$: Observable[]>;\r\n selectedType: MultiInstanceType;\r\n form: FormGroup;\r\n\r\n constructor(\r\n private appConfigService: AppConfigService,\r\n private multiInstanceItemService: CardViewMultiInstanceItemService,\r\n private formBuilder: FormBuilder) {\r\n this.options$ = of(this.appConfigService.get('process-modeler.multi-instance-types'));\r\n }\r\n\r\n get element(): Bpmn.BusinessObject {\r\n return this.property.data.element.businessObject;\r\n }\r\n\r\n get cardinality(): AbstractControl {\r\n return this.form.get('cardinality');\r\n }\r\n\r\n get completionCondition(): AbstractControl {\r\n return this.form.get('completionCondition');\r\n }\r\n\r\n get collectionExpression(): AbstractControl {\r\n return this.form.get('collectionExpression');\r\n }\r\n\r\n get elementVariable(): AbstractControl {\r\n return this.form.get('elementVariable');\r\n }\r\n\r\n get loopDataOutputRef(): AbstractControl {\r\n return this.form.get('loopDataOutputRef');\r\n }\r\n\r\n get outputDataItem(): AbstractControl {\r\n return this.form.get('outputDataItem');\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedType = getMultiInstanceType(this.element[MultiInstanceProps.loopCharacteristics]);\r\n this.form = this.formBuilder.group({\r\n cardinality: [ this.parseMultiInstanceProperty(MultiInstanceProps.loopCardinality) ],\r\n collectionExpression: [ this.parseMultiInstance(MultiInstanceProps.collection), [ Validators.pattern(/{([^}]+)}/) ] ],\r\n elementVariable: [ this.parseMultiInstance(MultiInstanceProps.elementVariable) ],\r\n completionCondition: [ this.parseMultiInstanceProperty(MultiInstanceProps.completionCondition), [ Validators.pattern(/{([^}]+)}/) ] ],\r\n loopDataOutputRef: [ this.parseMultiInstanceLoopDataOutputRef() ],\r\n outputDataItem: [ this.parseMultiInstanceOutputDataItem() ],\r\n }, { validators: this.validateExpression });\r\n this.multiInstanceItemService.element = this.element;\r\n }\r\n\r\n onTypeChange(selection: MultiInstanceType) {\r\n switch (selection) {\r\n case MultiInstanceType.parallel:\r\n case MultiInstanceType.sequence:\r\n this.multiInstanceItemService.createOrUpdateMultiInstanceElement(selection);\r\n break;\r\n case MultiInstanceType.none:\r\n delete this.element[MultiInstanceProps.loopCharacteristics];\r\n this.form.reset();\r\n break;\r\n }\r\n this.multiInstanceItemService.updateEditor();\r\n }\r\n\r\n onCardinalityChange(expression: string) {\r\n this.multiInstanceItemService.createOrUpdateExpression(MultiInstanceProps.loopCardinality, expression);\r\n }\r\n\r\n onCompletionConditionChange(expression: string) {\r\n this.multiInstanceItemService.createOrUpdateExpression(MultiInstanceProps.completionCondition, expression);\r\n }\r\n\r\n onCollectionExpressionChange(expression: string) {\r\n this.multiInstanceItemService.createOrUpdateCollectionExpression(expression);\r\n }\r\n\r\n onElementVariableChange(iterationVariable: string) {\r\n this.multiInstanceItemService.createOrUpdateElementVariable(iterationVariable);\r\n }\r\n\r\n onLoopDataOutputRefChange(loopDataOutputRef: string) {\r\n this.multiInstanceItemService.createOrUpdateLoopDataOutputRef(loopDataOutputRef);\r\n }\r\n\r\n onOutputDataItemChange(iterationVariable: string) {\r\n this.multiInstanceItemService.createOrUpdateOutputDataItem(iterationVariable);\r\n }\r\n\r\n private parseMultiInstance(props: MultiInstanceProps) {\r\n return (\r\n this.element[MultiInstanceProps.loopCharacteristics] &&\r\n this.element[MultiInstanceProps.loopCharacteristics][props]\r\n );\r\n }\r\n\r\n private parseMultiInstanceProperty(props: MultiInstanceProps) {\r\n return (\r\n this.element[MultiInstanceProps.loopCharacteristics] &&\r\n this.element[MultiInstanceProps.loopCharacteristics][props] &&\r\n this.element[MultiInstanceProps.loopCharacteristics][props]['body']\r\n );\r\n }\r\n\r\n private parseMultiInstanceLoopDataOutputRef() {\r\n return (\r\n this.element[MultiInstanceProps.loopCharacteristics] &&\r\n this.element[MultiInstanceProps.loopCharacteristics][MultiInstanceProps.loopDataOutputRef] &&\r\n this.element[MultiInstanceProps.loopCharacteristics][MultiInstanceProps.loopDataOutputRef]\r\n );\r\n }\r\n\r\n private parseMultiInstanceOutputDataItem() {\r\n return (\r\n this.element[MultiInstanceProps.loopCharacteristics] &&\r\n this.element[MultiInstanceProps.loopCharacteristics][MultiInstanceProps.outputDataItem] &&\r\n this.element[MultiInstanceProps.loopCharacteristics][MultiInstanceProps.outputDataItem]['name']\r\n );\r\n }\r\n\r\n validateExpression(formGroup: FormGroup) {\r\n const cardinalityControl = formGroup.controls['cardinality'], elementControl = formGroup.controls['elementVariable'];\r\n const expression: RegExp = /{([^}]+)}/;\r\n if (cardinalityControl.value) {\r\n const isValidCardinality: boolean = expression.test(cardinalityControl.value) || _isNumberValue(cardinalityControl.value);\r\n cardinalityControl.setErrors(isValidCardinality ? null : {\r\n message: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_CARDINALITY'\r\n });\r\n }\r\n const isValidElementVariable: boolean = !_isNumberValue(elementControl.value);\r\n elementControl.setErrors(isValidElementVariable ? null : {\r\n message: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_ELEMENT_VARIABLE'\r\n });\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { ProcessModelerService, ProcessModelerServiceToken, BpmnProperty, BpmnElement } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { MultiInstanceProps, MultiInstanceType } from '../../bpmn-js/property-handlers/multi-instance.handler';\r\n\r\n@Injectable()\r\nexport class CardViewMultiInstanceItemService {\r\n\r\n constructor(@Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService) {\r\n }\r\n\r\n private _element: Bpmn.BusinessObject;\r\n\r\n get element(): Bpmn.BusinessObject {\r\n return this._element;\r\n }\r\n\r\n set element(value: Bpmn.BusinessObject) {\r\n this._element = value;\r\n }\r\n\r\n get bpmnFactory(): any {\r\n return this.processModelerService.getFromModeler('bpmnFactory');\r\n }\r\n\r\n createOrUpdateExpression(prop: MultiInstanceProps, expression: string) {\r\n const characterElement = this.bpmnFactory.create(BpmnElement.Expression);\r\n this.element.loopCharacteristics.set(prop, characterElement);\r\n this.element.loopCharacteristics[prop].set('body', expression);\r\n this.updateEditor();\r\n }\r\n\r\n createOrUpdateLoopDataOutputRef(expression: string) {\r\n this.element.loopCharacteristics.set(MultiInstanceProps.loopDataOutputRef, expression);\r\n this.updateEditor();\r\n }\r\n\r\n createOrUpdateOutputDataItem(expression: string) {\r\n const characterElement = this.bpmnFactory.create(BpmnElement.DataOutput, { name: expression });\r\n this.element.loopCharacteristics.set(MultiInstanceProps.outputDataItem, characterElement);\r\n this.updateEditor();\r\n }\r\n\r\n createOrUpdateMultiInstanceElement(selectedType: MultiInstanceType) {\r\n const isSequence = selectedType === MultiInstanceType.sequence;\r\n if (!this.element[MultiInstanceProps.loopCharacteristics]) {\r\n const multiInstanceElement = this.bpmnFactory.create(BpmnElement.MultiInstanceLoopCharacteristics);\r\n this.element.set(MultiInstanceProps.loopCharacteristics, multiInstanceElement);\r\n }\r\n this.element[MultiInstanceProps.loopCharacteristics].set(MultiInstanceProps.isSequential, isSequence);\r\n }\r\n\r\n createOrUpdateCollectionExpression(collection: string) {\r\n this.element[MultiInstanceProps.loopCharacteristics].set(MultiInstanceProps.collection, collection);\r\n this.updateEditor();\r\n }\r\n\r\n createOrUpdateElementVariable(elementVariable: string) {\r\n this.element[MultiInstanceProps.loopCharacteristics].set(MultiInstanceProps.elementVariable, elementVariable);\r\n this.updateEditor();\r\n }\r\n\r\n updateEditor() {\r\n this.processModelerService.updateElementProperty(this.element.id, BpmnProperty.multiInstanceType, this.element);\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n import { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class MultiInstanceItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.multiInstanceType;\r\n\r\n get displayValue(): string {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { NamePropertyValidator } from './validators/name-property.validator';\r\n\r\nconst propertyName = BpmnProperty.name;\r\n\r\nexport function createNameProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.NAME',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: false,\r\n editable: true,\r\n data: { id: element.id },\r\n validators: [new NamePropertyValidator()]\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewSelectItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { of } from 'rxjs';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.priority;\r\n\r\nexport function createPriorityProperty({ element, appConfigService }: FactoryProps) {\r\n return new CardViewSelectItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.PRIORITY',\r\n options$: of(appConfigService.get('process-modeler.priorities')),\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id }\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.processId;\r\n\r\nexport function createProcessIdProperty({ element }: FactoryProps) {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.PROCESS_ID',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: false,\r\n editable: false\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { BpmnCompositeProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { CardViewProcessMessagesItemModel } from './process-messages-item/process-messages-item.model';\r\n\r\nconst propertyName = BpmnCompositeProperty.messages;\r\n\r\nexport function createProcessMessagesProperty({ element }: FactoryProps) {\r\n return new CardViewProcessMessagesItemModel({\r\n label: '',\r\n value: '',\r\n key: propertyName,\r\n default: '',\r\n editable: false\r\n });\r\n}\r\n","module.exports = \"\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component } from '@angular/core';\r\nimport { OpenProcessMessagesDialogAction } from '../../../store/process-messages.actions';\r\nimport { Store } from '@ngrx/store';\r\nimport { CardItemTypeService } from '@alfresco/adf-core';\r\nimport { ProcessEntitiesState } from '../../../store/process-entities.state';\r\n\r\n@Component({\r\n selector: 'ama-process-messages',\r\n templateUrl: './process-messages-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\n\r\nexport class CardViewProcessMessagesItemComponent {\r\n constructor(private store: Store) {\r\n }\r\n\r\n openProcessMessagesDialog(): void {\r\n this.store.dispatch(new OpenProcessMessagesDialogAction());\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnCompositeProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class CardViewProcessMessagesItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnCompositeProperty.messages;\r\n\r\n get displayValue(): string {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty, CardViewModelNameValidator, sanitizeString } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { CardViewProcessNameItemModel } from './process-name-item/process-name-item.model';\r\n\r\nconst propertyName = BpmnProperty.processName;\r\n\r\nexport function createProcessNameProperty({ element }: FactoryProps) {\r\n return new CardViewProcessNameItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.PROCESS_NAME',\r\n value: sanitizeString(ElementHelper.getProperty(element, propertyName)),\r\n key: propertyName,\r\n data: { id: element.id, element },\r\n validators: [new CardViewModelNameValidator('PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_PROCESS_NAME')]\r\n });\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.PROCESS_NAME' | translate}}
\\r\\n \\r\\n \\r\\n \\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_PROCESS_NAME' | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, Inject } from '@angular/core';\r\nimport { ProcessModelerServiceToken, ProcessModelerService, BpmnProperty, MODELER_NAME_REGEX, BpmnElement } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { CardViewProcessNameItemModel } from './process-name-item.model';\r\nimport { FormControl, ValidatorFn, AbstractControl, FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ama-process-name',\r\n templateUrl: './process-name-item.component.html'\r\n})\r\nexport class CardViewProcessNameItemComponent implements OnInit {\r\n\r\n @Input() property: CardViewProcessNameItemModel;\r\n\r\n processNameForm: FormGroup;\r\n onDestroy$: Subject = new Subject();\r\n\r\n constructor(@Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService) { }\r\n\r\n ngOnInit() {\r\n this.updatePoolName();\r\n this.processNameForm = new FormGroup({\r\n 'processName': new FormControl(this.property.value, this.validateProcessName(MODELER_NAME_REGEX))\r\n });\r\n }\r\n\r\n updateProcessName() {\r\n if (this.processNameForm.valid) {\r\n this.updateProcessNameProperty(this.processName.value);\r\n }\r\n }\r\n\r\n updateProcessNameProperty(processName: string) {\r\n this.processModelerService.updateElementProperty(this.property.data.element.id, BpmnProperty.processName, processName);\r\n }\r\n\r\n updatePoolName() {\r\n if (this.isPoolNameEmpty()) {\r\n if (!this.property.value) {\r\n this.property.value = this.generatePoolName();\r\n }\r\n this.updateProcessNameProperty(this.property.value);\r\n }\r\n }\r\n\r\n isPoolNameEmpty() {\r\n return this.property.data.element.type === BpmnElement.Participant && !this.property.data.element.businessObject.name;\r\n }\r\n\r\n generatePoolName() {\r\n const modelName = this.property.data.element.businessObject.$parent.$parent.name;\r\n const poolNumber = this.property.data.element.businessObject.$parent.participants.length;\r\n return `${modelName}-${poolNumber}`;\r\n }\r\n\r\n private validateProcessName(processNameRegEx: RegExp): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n const isProcessNameValid = processNameRegEx.test(control.value) && control.value.length > 0;\r\n return !isProcessNameValid ? { 'invalidProcessName': { value: control.value } } : null;\r\n };\r\n }\r\n\r\n get processName() { return this.processNameForm.get('processName'); }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class CardViewProcessNameItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.processName;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { CardViewProcessVariableItemModel } from './process-variable-item/process-variable-item.model';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst propertyName = BpmnProperty.processId;\r\n\r\nexport function createProcessVariablesProperty({ element }: FactoryProps) {\r\n return new CardViewProcessVariableItemModel({\r\n label: '',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n editable: false\r\n });\r\n}\r\n","module.exports = \"\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input } from '@angular/core';\r\nimport { OpenProcessVariablesDialogAction } from './../../../store/process-variables.actions';\r\nimport { Store } from '@ngrx/store';\r\nimport { CardItemTypeService } from '@alfresco/adf-core';\r\nimport { ProcessEntitiesState } from '../../../store/process-entities.state';\r\n\r\n@Component({\r\n /* cspell: disable-next-line */\r\n selector: 'ama-processvariables',\r\n templateUrl: './process-variable-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\n\r\nexport class CardViewProcessVariablesItemComponent {\r\n\r\n @Input() property;\r\n\r\n constructor(private store: Store) { }\r\n\r\n openProcessVariablesDialog(): void {\r\n this.store.dispatch(new OpenProcessVariablesDialogAction(this.property.value));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnCompositeProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class CardViewProcessVariableItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnCompositeProperty.properties;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
{{ 'ADV_SCRIPT_EDITOR.PROCESS_EDITOR.SCRIPT_NAME' | translate }}
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { CardItemTypeService, LogService } from '@alfresco/adf-core';\r\nimport { Store } from '@ngrx/store';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n selectProcessMappingsFor,\r\n UpdateServiceParametersAction,\r\n ImplementationItemModel,\r\n selectOpenedModel,\r\n AmaState,\r\n SCRIPT_INPUT_PARAM_NAME,\r\n ServiceParameterMapping,\r\n MappingType\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n selector: 'ama-process-script-task',\r\n templateUrl: './script-task-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewScriptTaskItemComponent implements OnInit, OnDestroy {\r\n @Input() property: ImplementationItemModel;\r\n\r\n script: string;\r\n onDestroy$: Subject = new Subject();\r\n\r\n constructor(private store: Store, private logService: LogService) {}\r\n\r\n ngOnInit() {\r\n this.store\r\n .select(selectProcessMappingsFor(this.property.data.processId, this.elementId))\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(mappings => {\r\n try {\r\n this.script = mappings.inputs[SCRIPT_INPUT_PARAM_NAME].value;\r\n } catch {\r\n this.script = '';\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n\r\n changeScript(): void {\r\n try {\r\n const inputs: ServiceParameterMapping = {\r\n [SCRIPT_INPUT_PARAM_NAME]: {\r\n type: MappingType.static,\r\n value: this.script\r\n }\r\n };\r\n\r\n this.store\r\n .select(selectOpenedModel)\r\n .pipe(takeUntil(this.onDestroy$))\r\n .subscribe(openedModel => {\r\n this.store.dispatch(\r\n new UpdateServiceParametersAction(openedModel.id, this.property.data.processId, this.elementId, { inputs })\r\n );\r\n });\r\n } catch (error) {\r\n this.logService.error(error);\r\n }\r\n }\r\n\r\n private get elementId() {\r\n return this.property.data.id;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty, ScriptTaskItemModel } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst property = BpmnProperty.implementation;\r\n\r\nexport function createScriptTaskProperty({ element }: FactoryProps) {\r\n return new ScriptTaskItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.SCRIPT_TASK',\r\n value: ElementHelper.getProperty(element, property),\r\n key: property,\r\n default: '',\r\n editable: true,\r\n data: { id: element.id, processId: ElementHelper.getProperty(element, BpmnProperty.processId) },\r\n });\r\n}\r\n","module.exports = \"
\\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.SIGNAL' | translate }}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ signal.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
{{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.SIGNAL_NAME' | translate }}
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, Inject } from '@angular/core';\r\nimport { CardItemTypeService, CardViewUpdateService } from '@alfresco/adf-core';\r\nimport { ProcessModelerServiceToken, ProcessModelerService, AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { SignalRefItemModel } from './signal-ref-item.model';\r\nimport { Store } from '@ngrx/store';\r\nimport { SelectModelerElementAction } from '../../../store/process-editor.actions';\r\n\r\n@Component({\r\n selector: 'ama-process-signal-ref',\r\n templateUrl: './signal-ref-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewSignalRefItemComponent implements OnInit {\r\n @Input() property: SignalRefItemModel;\r\n\r\n signals: Bpmn.DiagramElement[] = [];\r\n selectedSignal: Bpmn.DiagramElement;\r\n\r\n constructor(\r\n private cardViewUpdateService: CardViewUpdateService,\r\n private store: Store,\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService\r\n ) {}\r\n\r\n get rootElements() {\r\n return this.processModelerService.getRootProcessElement().businessObject.$parent.rootElements;\r\n }\r\n\r\n private get bpmnFactory() {\r\n return this.processModelerService.getFromModeler('bpmnFactory');\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedSignal = this.property.data.element.businessObject.eventDefinitions[0].signalRef;\r\n this.signals = this.rootElements.filter(element => element.$type === 'bpmn:Signal');\r\n }\r\n\r\n createNewSignal() {\r\n const signalElement = this.bpmnFactory.create('bpmn:Signal');\r\n signalElement.name = signalElement.id;\r\n this.rootElements.push(signalElement);\r\n\r\n this.signals.push(signalElement);\r\n this.selectedSignal = signalElement;\r\n this.changeSignalRef();\r\n }\r\n\r\n changeSignalRef() {\r\n this.cardViewUpdateService.update(this.property, this.selectedSignal);\r\n const { id, type, name } = this.property.data.element;\r\n this.store.dispatch(new SelectModelerElementAction({ id, type, name }));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class SignalRefItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.signalRef;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { SignalRefItemModel } from './signal-ref-item/signal-ref-item.model';\r\n\r\nconst propertyName = BpmnProperty.signalRef;\r\n\r\nexport function createSignalRefProperty({ element }: FactoryProps) {\r\n return new SignalRefItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.SIGNAL',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id, element }\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewSelectItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { of } from 'rxjs';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.signalScope;\r\n\r\nexport function createSignalScopeProperty({ element }: FactoryProps) {\r\n return new CardViewSelectItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.SCOPE',\r\n options$: of([\r\n { key: 'global', label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.SCOPE_VALUES.GLOBAL' },\r\n { key: 'processInstance', label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.SCOPE_VALUES.PROCESS_INSTANCE' }\r\n ]),\r\n value: ElementHelper.getProperty(element, propertyName) || 'global',\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id }\r\n });\r\n}\r\n","module.exports = \"\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport {\r\n CardItemTypeService,\r\n CardViewArrayItemModel,\r\n CardViewUpdateService\r\n} from '@alfresco/adf-core';\r\nimport { OpenTaskAssignmentDialogAction } from '../../../store/process-task-assignment.actions';\r\nimport { of, Subject } from 'rxjs';\r\nimport {\r\n AmaState,\r\n ProcessModelerServiceToken,\r\n ProcessModelerService\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { selectSelectedElement } from '../../../store/process-editor.selectors';\r\nimport { take, distinctUntilChanged, takeUntil } from 'rxjs/operators';\r\nimport { TaskAssignmentService } from './task-assignment.service';\r\nimport { AssignmentModel } from '../../../components/assignment/assignment-dialog.component';\r\n\r\n@Component({\r\n selector: 'ama-task-assignment-item',\r\n templateUrl: './task-assignment-item.component.html',\r\n providers: [CardItemTypeService]\r\n})\r\nexport class CardViewTaskAssignmentItemComponent implements OnInit, OnDestroy {\r\n\r\n cardViewArrayItem: CardViewArrayItemModel;\r\n\r\n private onDestroy$: Subject = new Subject();\r\n\r\n constructor(\r\n private cardViewUpdateService: CardViewUpdateService,\r\n private taskAssignmentService: TaskAssignmentService,\r\n @Inject(ProcessModelerServiceToken)\r\n private processModelerService: ProcessModelerService,\r\n private store: Store\r\n ) {\r\n this.store\r\n .select(selectSelectedElement)\r\n .pipe(take(1))\r\n .subscribe(selectedElement => {\r\n const element = this.processModelerService.getElement(selectedElement.id);\r\n this.createCardViewArrayItem(this.taskAssignmentService.getDisplayValue(element));\r\n });\r\n\r\n this.taskAssignmentService.assignmentSubject\r\n .pipe(distinctUntilChanged(), takeUntil(this.onDestroy$))\r\n .subscribe((updatedAssignments: AssignmentModel) => {\r\n this.createCardViewArrayItem(this.taskAssignmentService.updateDisplayValue(updatedAssignments));\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.cardViewUpdateService.itemClicked$\r\n .pipe(distinctUntilChanged(), takeUntil(this.onDestroy$))\r\n .subscribe(this.openTaskAssignmentDialog.bind(this));\r\n }\r\n\r\n openTaskAssignmentDialog(): void {\r\n this.store.dispatch(new OpenTaskAssignmentDialogAction());\r\n }\r\n\r\n createCardViewArrayItem(assignments: any) {\r\n this.cardViewArrayItem = new CardViewArrayItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.ASSIGNMENT',\r\n value: of(assignments),\r\n key: 'assignment',\r\n icon: 'edit',\r\n default: '',\r\n clickable: true,\r\n noOfItemsToDisplay: 2\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnCompositeProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class CardViewTaskAssignmentItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnCompositeProperty.assignment;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslationService, CardViewArrayItem } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Subject } from 'rxjs';\r\nimport { AssignmentModel, AssignmentSettings } from '../../../components/assignment/assignment-dialog.component';\r\n\r\n@Injectable()\r\nexport class TaskAssignmentService {\r\n\r\n assignmentSubject = new Subject();\r\n\r\n constructor(private translationService: TranslationService) {\r\n }\r\n\r\n getDisplayValue(element: Bpmn.DiagramElement): CardViewArrayItem[] {\r\n const { assignee, candidateUsers, candidateGroups } = this.getAssignments(element);\r\n return this.prepareDisplayValue(assignee, candidateUsers, candidateGroups).filter((res) => res.value);\r\n }\r\n\r\n updateDisplayValue(data: AssignmentModel): CardViewArrayItem[] {\r\n const [ assignee, candidateUsers, candidateGroups ] = data.assignments.map((assignment) => assignment.value);\r\n return this.prepareDisplayValue(\r\n this.convertStringToArray(assignee),\r\n this.convertStringToArray(candidateUsers),\r\n this.convertStringToArray(candidateGroups)).filter((res) => res.value);\r\n }\r\n\r\n getAssignments(element: Bpmn.DiagramElement): AssignmentSettings {\r\n return {\r\n assignee: this.convertStringToArray(ElementHelper.getProperty(element, BpmnProperty.assignee)),\r\n candidateUsers: this.convertStringToArray(ElementHelper.getProperty(element, BpmnProperty.candidateUsers)),\r\n candidateGroups: this.convertStringToArray(ElementHelper.getProperty(element, BpmnProperty.candidateGroups))\r\n };\r\n }\r\n\r\n private prepareDisplayValue(assignee: string[], candidateUsers: string[], candidateGroups: string[]): CardViewArrayItem[] {\r\n const values: CardViewArrayItem[] = [];\r\n\r\n values.push(this.isExpressionType(assignee.join()) ? this.addExpressionValue() : this.addAssigneeValue(assignee));\r\n if (this.isExpressionType(candidateUsers.join()) || this.isExpressionType(candidateGroups.join())) {\r\n values.push(this.addExpressionValue());\r\n } else {\r\n values.push(this.addCandidateUsersValue(candidateUsers));\r\n values.push(this.addCandidateGroupsValue(candidateGroups));\r\n }\r\n return values;\r\n }\r\n\r\n private addAssigneeValue(assignee: string[]): CardViewArrayItem {\r\n return {\r\n icon: 'person',\r\n value: assignee && assignee.length > 0 ? this.translationService.instant('PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.USER', { count: 1 }) : undefined\r\n };\r\n }\r\n\r\n private addCandidateUsersValue(candidateUsers: string[]): CardViewArrayItem {\r\n return {\r\n icon: 'person',\r\n value: candidateUsers && candidateUsers.length > 0 ? candidateUsers.length === 1 ?\r\n this.translationService.instant('PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.USER', { count: 1 }) :\r\n this.translationService.instant('PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.USERS', { count: candidateUsers.length }) : undefined\r\n };\r\n\r\n }\r\n\r\n private addCandidateGroupsValue(candidateGroups: string[]): CardViewArrayItem {\r\n return {\r\n icon: 'group',\r\n value: candidateGroups && candidateGroups.length > 0 ? candidateGroups.length === 1 ?\r\n this.translationService.instant('PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.GROUP', { count: 1 }) :\r\n this.translationService.instant('PROCESS_EDITOR.ELEMENT_PROPERTIES.TASK_ASSIGNMENT.GROUPS', { count: candidateGroups.length }) : undefined\r\n };\r\n }\r\n\r\n private addExpressionValue(): CardViewArrayItem {\r\n return { icon: 'code', value: 'Expression' };\r\n }\r\n\r\n private isExpressionType(value: string): boolean {\r\n return /\\${([^}]+)}/.test(value);\r\n }\r\n\r\n private convertStringToArray(value: string): string[] {\r\n return value ? value.split(',') : [];\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewTextItemModel, CardViewBaseItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.textAnnotation;\r\n\r\nexport function createTextAnnotationProperty({ element }: FactoryProps): CardViewBaseItemModel {\r\n return new CardViewTextItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TEXT_ANNOTATION',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n default: '',\r\n multiline: true,\r\n editable: true,\r\n data: { id: element.id }\r\n });\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.TIMER_TYPE' | translate }}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ timer.label | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.USE_PROCESS_VARIABLE' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.PROCESS_VARIABLE' | translate}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{processVariable.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.USE_CRON_EXPRESSION' | translate}}\\r\\n \\r\\n \\r\\n
\\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.CRON_EXPRESSION' | translate}}\\r\\n
\\r\\n \\r\\n \\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.INVALID_CRON_EXPRESSION' | translate}}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.REPETITIONS' | translate}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.DATE' | translate}}
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.YEARS' | translate}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.MONTHS' | translate}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.WEEKS' | translate}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.DAYS' | translate}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.HOURS' | translate}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.MINUTES' | translate}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
{{'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMERS.SECONDS' | translate}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { CardItemTypeService, CardViewUpdateService, AppConfigService, MomentDateAdapter } from '@alfresco/adf-core';\r\nimport { FormBuilder, Validators, FormControl, FormGroup, AbstractControl } from '@angular/forms';\r\nimport { debounceTime, takeUntil, filter, take } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport moment from 'moment-es6';\r\nimport { AmaState, EntityProperty, selectSelectedProcess, ProcessExtensionsModel, AMA_DATETIME_FORMATS } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\nimport { TimerDefinitionItemModel } from './timer-definition-item.model';\r\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material';\r\nimport { DatetimeAdapter, MAT_DATETIME_FORMATS } from '@mat-datetimepicker/core';\r\nimport { MomentDatetimeAdapter } from '@mat-datetimepicker/moment';\r\n\r\n@Component({\r\n selector: 'ama-process-timer-definition',\r\n templateUrl: './timer-definition-item.component.html',\r\n providers: [\r\n CardItemTypeService,\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: DatetimeAdapter, useClass: MomentDatetimeAdapter },\r\n { provide: MAT_DATETIME_FORMATS, useValue: AMA_DATETIME_FORMATS }\r\n ]\r\n})\r\nexport class CardViewTimerDefinitionItemComponent implements OnInit, OnDestroy {\r\n\r\n CRON_REGEX = '((\\\\*|\\\\?|\\\\d+((\\\\/|\\\\-){0,1}(\\\\d+))*)\\\\s*){6}';\r\n MIN_TIME_VALUE = 0;\r\n\r\n @Input() property: TimerDefinitionItemModel;\r\n\r\n timers = [];\r\n selectedTimer: Bpmn.DiagramElement;\r\n defaultTimerDefinition = '';\r\n defaultTimerType = '';\r\n timerDefinitionForm: FormGroup;\r\n today = moment();\r\n eventType: string;\r\n optionsForParams: {\r\n [paramName: string]: { id: string; name: string }[];\r\n } = {};\r\n\r\n onDestroy$: Subject = new Subject();\r\n\r\n constructor(\r\n private cardViewUpdateService: CardViewUpdateService,\r\n private appConfigService: AppConfigService,\r\n private formBuilder: FormBuilder,\r\n private store: Store) {\r\n }\r\n\r\n ngOnInit() {\r\n this.timers = this.appConfigService.get('process-modeler.timer-types');\r\n\r\n this.initProcessVariables();\r\n this.buildForm();\r\n this.setTimerFromXML();\r\n }\r\n\r\n initProcessVariables() {\r\n this.store.select(selectSelectedProcess).pipe(\r\n filter((process) => !!process),\r\n take(1)\r\n ).subscribe((process) => {\r\n const processVariables = Object.values(new ProcessExtensionsModel(process.extensions).getProperties(this.property.data.processId));\r\n this.setOptionForAParam(processVariables);\r\n });\r\n }\r\n\r\n private setOptionForAParam(processVariables: EntityProperty[]) {\r\n this.optionsForParams['timeDuration'] = this.extractProcessVariablesByType(processVariables, 'string');\r\n this.optionsForParams['timeCycle'] = this.extractProcessVariablesByType(processVariables, 'string');\r\n this.optionsForParams['timeDate'] = this.extractProcessVariablesByType(processVariables, 'datetime');\r\n }\r\n\r\n private extractProcessVariablesByType(processVariables: EntityProperty[], type: string): EntityProperty[] {\r\n return [...processVariables.filter(variable => variable.type === type)];\r\n }\r\n\r\n buildForm() {\r\n this.timerDefinitionForm = this.formBuilder.group({\r\n timerType: new FormControl(undefined, [Validators.required]),\r\n date: new FormControl(undefined, []),\r\n years: new FormControl(undefined, [Validators.min(this.MIN_TIME_VALUE)]),\r\n months: new FormControl(undefined, [Validators.min(this.MIN_TIME_VALUE)]),\r\n weeks: new FormControl(undefined, [Validators.min(this.MIN_TIME_VALUE)]),\r\n days: new FormControl(undefined, [Validators.min(this.MIN_TIME_VALUE)]),\r\n hours: new FormControl(undefined, [Validators.min(this.MIN_TIME_VALUE)]),\r\n minutes: new FormControl(undefined, [Validators.min(this.MIN_TIME_VALUE)]),\r\n seconds: new FormControl(undefined, [Validators.min(this.MIN_TIME_VALUE)]),\r\n repetitions: new FormControl(undefined, [Validators.min(this.MIN_TIME_VALUE)]),\r\n cronExpression: new FormControl(undefined, [Validators.pattern(this.CRON_REGEX)]),\r\n useCronExpression: new FormControl(false, []),\r\n processVariable: new FormControl(undefined, []),\r\n useProcessVariable: new FormControl(false, []),\r\n });\r\n\r\n this.timerDefinitionForm.valueChanges\r\n .pipe(\r\n debounceTime(500),\r\n takeUntil(this.onDestroy$)\r\n )\r\n .subscribe((formChanges: any) => {\r\n this.updateForm(formChanges);\r\n });\r\n }\r\n\r\n updateForm(formChanges) {\r\n if ((formChanges.timerType === 'timeDuration' || formChanges.timerType === 'timeDate') && this.useCronExpression.value) {\r\n this.useCronExpression.setValue(false);\r\n }\r\n\r\n if (this.isFormValid()) {\r\n this.updateTimerDefinition();\r\n }\r\n }\r\n\r\n updateTimerDefinition() {\r\n const timerDefinition = this.getTimerDefinitionFromForm();\r\n\r\n this.cardViewUpdateService.update(this.property, {\r\n type: this.timerType.value,\r\n definition: timerDefinition\r\n });\r\n }\r\n\r\n getTimerDefinitionFromForm(): string {\r\n let definition = '';\r\n\r\n if (this.useProcessVariable.value) {\r\n return this.processVariable.value ? '${' + this.processVariable.value + '}' : undefined;\r\n }\r\n\r\n if (this.useCronExpression.value) {\r\n return this.cronExpression.value;\r\n }\r\n\r\n if (this.isCycleTimer()) {\r\n definition += 'R';\r\n definition += this.repetitions.value ? this.repetitions.value : '';\r\n definition += '/';\r\n }\r\n\r\n if (this.isDateTimer()) {\r\n definition += this.date.value ? this.date.value.toISOString() : '';\r\n definition += this.isCycleTimer() && this.date.value ? '/' : '';\r\n }\r\n\r\n if (this.isDurationTimer()) {\r\n definition += moment.duration({\r\n seconds: this.seconds.value,\r\n minutes: this.minutes.value,\r\n hours: this.hours.value,\r\n days: this.days.value,\r\n weeks: this.weeks.value,\r\n months: this.months.value,\r\n years: this.years.value\r\n }).toISOString();\r\n }\r\n\r\n return definition;\r\n }\r\n\r\n setTimerFromXML() {\r\n const timerEventDefinition = this.property.data.element.businessObject.eventDefinitions[0];\r\n this.eventType = this.property.data.element.businessObject.$type;\r\n\r\n if (timerEventDefinition.timeCycle) {\r\n this.timerType.setValue('timeCycle');\r\n this.extractCycleFromXML(timerEventDefinition.timeCycle.body);\r\n } else if (timerEventDefinition.timeDuration) {\r\n this.timerType.setValue('timeDuration');\r\n this.extractDurationFromXML(timerEventDefinition.timeDuration.body);\r\n } else if (timerEventDefinition.timeDate) {\r\n this.timerType.setValue('timeDate');\r\n this.extractDateFromXML(timerEventDefinition.timeDate.body);\r\n }\r\n }\r\n\r\n extractCycleFromXML(cycleDefinitionValue: string) {\r\n if (cycleDefinitionValue) {\r\n if (cycleDefinitionValue.includes('$')) {\r\n this.extractProcessVariableFromXML(cycleDefinitionValue);\r\n } else if (this.isCronExpression(cycleDefinitionValue)) {\r\n this.cronExpression.setValue(cycleDefinitionValue);\r\n this.useCronExpression.setValue(true);\r\n } else {\r\n const timerDefinitions = cycleDefinitionValue.split('/');\r\n this.repetitions.setValue(timerDefinitions[0].substring(1));\r\n\r\n if (timerDefinitions.length === 2) {\r\n this.extractDurationFromXML(timerDefinitions[1]);\r\n } else {\r\n this.extractDateFromXML(timerDefinitions[1]);\r\n this.extractDurationFromXML(timerDefinitions[2]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n isCronExpression(cycleDefinitionValue: string): boolean {\r\n const cronRegex = RegExp(this.CRON_REGEX);\r\n return cronRegex.test(cycleDefinitionValue);\r\n }\r\n\r\n extractDateFromXML(dateDefinitionValue: string) {\r\n if (dateDefinitionValue) {\r\n if (dateDefinitionValue.includes('$')) {\r\n this.extractProcessVariableFromXML(dateDefinitionValue);\r\n } else {\r\n this.date.setValue(moment(dateDefinitionValue));\r\n }\r\n }\r\n }\r\n\r\n extractDurationFromXML(durationDefinition: string) {\r\n if (durationDefinition) {\r\n if (durationDefinition.includes('$')) {\r\n this.extractProcessVariableFromXML(durationDefinition);\r\n } else {\r\n const parsedDuration = moment.duration(durationDefinition);\r\n\r\n this.years.setValue(parsedDuration._data.years);\r\n this.months.setValue(parsedDuration._data.months);\r\n this.weeks.setValue(Math.floor(parsedDuration._data.days / 7));\r\n this.days.setValue(parsedDuration._data.days % 7);\r\n this.hours.setValue(parsedDuration._data.hours);\r\n this.minutes.setValue(parsedDuration._data.minutes);\r\n this.seconds.setValue(parsedDuration._data.seconds);\r\n }\r\n }\r\n }\r\n\r\n extractProcessVariableFromXML(processVariableDefinition: string) {\r\n const processVariable = processVariableDefinition.substr(2, processVariableDefinition.length - 3);\r\n this.processVariable.setValue(processVariable);\r\n this.useProcessVariable.setValue(true);\r\n }\r\n\r\n isFormValid(): boolean {\r\n return this.timerDefinitionForm && this.timerDefinitionForm.dirty && this.timerDefinitionForm.valid;\r\n }\r\n\r\n isDateTimer(): boolean {\r\n return (this.timerType.value === 'timeDate' || this.isCycleTimer())\r\n && !this.useProcessVariable.value\r\n && !this.useCronExpression.value;\r\n }\r\n\r\n isDurationTimer(): boolean {\r\n return (this.timerType.value === 'timeDuration' || this.isCycleTimer())\r\n && !this.useProcessVariable.value\r\n && !this.useCronExpression.value;\r\n }\r\n\r\n isCycleTimer(): boolean {\r\n return this.timerType.value === 'timeCycle'\r\n && !this.useProcessVariable.value;\r\n }\r\n\r\n isTimerTypeDefined(): boolean {\r\n return !!this.timerType.value;\r\n }\r\n\r\n isProcessVariableAvailable(): boolean {\r\n return this.eventType !== 'bpmn:StartEvent' && this.isTimerTypeDefined();\r\n }\r\n\r\n get timerType(): AbstractControl {\r\n return this.timerDefinitionForm.get('timerType');\r\n }\r\n\r\n get date(): AbstractControl {\r\n return this.timerDefinitionForm.get('date');\r\n }\r\n\r\n get years(): AbstractControl {\r\n return this.timerDefinitionForm.get('years');\r\n }\r\n\r\n get months(): AbstractControl {\r\n return this.timerDefinitionForm.get('months');\r\n }\r\n\r\n get weeks(): AbstractControl {\r\n return this.timerDefinitionForm.get('weeks');\r\n }\r\n\r\n get days(): AbstractControl {\r\n return this.timerDefinitionForm.get('days');\r\n }\r\n\r\n get hours(): AbstractControl {\r\n return this.timerDefinitionForm.get('hours');\r\n }\r\n\r\n get minutes(): AbstractControl {\r\n return this.timerDefinitionForm.get('minutes');\r\n }\r\n\r\n get seconds(): AbstractControl {\r\n return this.timerDefinitionForm.get('seconds');\r\n }\r\n\r\n get repetitions(): AbstractControl {\r\n return this.timerDefinitionForm.get('repetitions');\r\n }\r\n\r\n get processVariable(): AbstractControl {\r\n return this.timerDefinitionForm.get('processVariable');\r\n }\r\n\r\n get useProcessVariable(): AbstractControl {\r\n return this.timerDefinitionForm.get('useProcessVariable');\r\n }\r\n\r\n get cronExpression(): AbstractControl {\r\n return this.timerDefinitionForm.get('cronExpression');\r\n }\r\n\r\n get useCronExpression(): AbstractControl {\r\n return this.timerDefinitionForm.get('useCronExpression');\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewBaseItemModel, CardViewItem, DynamicComponentModel } from '@alfresco/adf-core';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport class TimerDefinitionItemModel extends CardViewBaseItemModel implements CardViewItem, DynamicComponentModel {\r\n type = BpmnProperty.timerEventDefinition;\r\n\r\n get displayValue() {\r\n return this.default;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\nimport { TimerDefinitionItemModel } from './timer-definition-item/timer-definition-item.model';\r\n\r\nconst propertyName = BpmnProperty.timerEventDefinition;\r\n\r\nexport function createTimerDefinitionProperty({ element }: FactoryProps) {\r\n return new TimerDefinitionItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.TIMER_TYPE',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n editable: true,\r\n data: { id: element.id, element, processId: ElementHelper.getProperty(element, BpmnProperty.processId) }\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewItemValidator } from '@alfresco/adf-core';\r\nexport class CardViewExpressionValidator implements CardViewItemValidator {\r\n\r\n message = 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_EXPRESSION';\r\n\r\n isValid(value: string): boolean {\r\n const expressions = /\\{([^}]+)\\}/g.exec(value);\r\n return !!expressions || !value;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewItemValidator } from '@alfresco/adf-core';\r\n\r\nexport class NamePropertyValidator implements CardViewItemValidator {\r\n\r\n message = 'PROCESS_EDITOR.ELEMENT_PROPERTIES.INVALID_NAME_LENGTH';\r\n maxNameLength = 40;\r\n\r\n isValid(value: string): boolean {\r\n return value.length <= this.maxNameLength;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { CardViewKeyValuePairsItemModel } from '@alfresco/adf-core';\r\nimport { ElementHelper } from '../bpmn-js/element.helper';\r\nimport { BpmnProperty } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { FactoryProps } from './cardview-properties.factory';\r\n\r\nconst propertyName = BpmnProperty.variables;\r\n\r\nexport function createVariablesProperty({ element }: FactoryProps) {\r\n return new CardViewKeyValuePairsItemModel({\r\n label: 'PROCESS_EDITOR.ELEMENT_PROPERTIES.VARIABLES',\r\n value: ElementHelper.getProperty(element, propertyName),\r\n key: propertyName,\r\n data: { id: element.id },\r\n editable: true\r\n });\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ClipboardService {\r\n\r\n data: any;\r\n\r\n get(): any {\r\n return this.data;\r\n }\r\n\r\n set(data) {\r\n this.data = data;\r\n }\r\n\r\n clear(): any {\r\n this.data = undefined;\r\n return this.data;\r\n }\r\n\r\n isEmpty(): boolean {\r\n return !this.data;\r\n }\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport {\r\n ProcessModelerServiceToken,\r\n ProcessModelerService,\r\n BpmnElement,\r\n BpmnCompositeProperty\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MessagesService {\r\n constructor(\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService) {\r\n }\r\n\r\n private get rootElements(): Bpmn.BusinessObject[] {\r\n return this.rootProcessElement.businessObject.$parent.rootElements;\r\n }\r\n\r\n private set rootElements(messages: Bpmn.BusinessObject[]) {\r\n this.rootProcessElement.businessObject.$parent.rootElements = messages;\r\n }\r\n\r\n private get bpmnFactory(): any {\r\n return this.processModelerService.getFromModeler('bpmnFactory');\r\n }\r\n\r\n private get rootProcessElement(): Bpmn.DiagramElement {\r\n return this.processModelerService.getRootProcessElement();\r\n }\r\n\r\n createMessage(): Bpmn.BusinessObject {\r\n const newMessage = this.bpmnFactory.create(BpmnElement.Message);\r\n newMessage.name = newMessage.id;\r\n return newMessage;\r\n }\r\n\r\n getUpdatedMessages(): Bpmn.BusinessObject[] {\r\n return this.rootElements.filter((element) => element.$type === BpmnElement.Message);\r\n }\r\n\r\n saveMessages(messages: Bpmn.BusinessObject[]) {\r\n this.rootElements = this.rootElements.filter((element) => element.$type !== BpmnElement.Message);\r\n messages.forEach((message) => this.rootElements.push(message));\r\n this.processModelerService.updateElementProperty(this.rootProcessElement.id, BpmnCompositeProperty.messages, messages);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport function DummyPaletteProvider(palette) {\r\n palette.registerProvider(this);\r\n this.getPaletteEntries = () => ({\r\n 'hand-tool': {\r\n group: 'tools',\r\n className: 'bpmn-icon-hand-tool',\r\n title: 'Dummy tool, otherwise diagramjs palette crashes',\r\n action: {}\r\n }\r\n });\r\n}\r\nDummyPaletteProvider['$inject'] = ['palette'];\r\n\r\nexport const emptyPaletteModule = {\r\n paletteProvider: ['type', DummyPaletteProvider]\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { BpmnElementTrigger, TriggerHandler, ProcessModelerServiceToken, ProcessModelerService } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class ElementCreationHandler implements TriggerHandler {\r\n\r\n constructor(\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService\r\n ) {}\r\n\r\n private get create() {\r\n return this.processModelerService.getFromModeler('create');\r\n }\r\n\r\n private get elementFactory() {\r\n return this.processModelerService.getFromModeler('elementFactory');\r\n }\r\n\r\n processEvent(event: any, element: BpmnElementTrigger) {\r\n const shape = this.elementFactory.createShape({\r\n ...{ type: element.type }, ...element.options\r\n });\r\n\r\n if (element.options) {\r\n shape.businessObject.di.isExpanded = element.options.isExpanded;\r\n }\r\n\r\n this.create.start(event, shape);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { TriggerHandler, ToolTrigger, ProcessModelerServiceToken, ProcessModelerService } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class ToolsHandler implements TriggerHandler {\r\n\r\n constructor(@Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService) {}\r\n\r\n private get handTool() {\r\n return this.processModelerService.getFromModeler('handTool');\r\n }\r\n\r\n private get globalConnect() {\r\n return this.processModelerService.getFromModeler('globalConnect');\r\n }\r\n\r\n private get lassoTool() {\r\n return this.processModelerService.getFromModeler('lassoTool');\r\n }\r\n\r\n private get spaceTool() {\r\n return this.processModelerService.getFromModeler('spaceTool');\r\n }\r\n\r\n processEvent(event: any, tool: ToolTrigger) {\r\n switch (tool.type) {\r\n case 'hand-tool':\r\n this.handTool.activateHand(event);\r\n break;\r\n\r\n case 'connect-tool':\r\n this.globalConnect.toggle(event);\r\n break;\r\n\r\n case 'space-tool':\r\n this.spaceTool.activateSelection(event);\r\n break;\r\n\r\n case 'lasso-tool':\r\n this.lassoTool.activateSelection(event);\r\n break;\r\n }\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Injector, Inject } from '@angular/core';\r\nimport { BpmnTrigger, PaletteElementHandler, PaletteElementsHandlersToken } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { LogService } from '@alfresco/adf-core';\r\n\r\n@Injectable()\r\nexport class ProcessModelerPaletteService {\r\n\r\n constructor(\r\n @Inject(PaletteElementsHandlersToken) private paletteHandlers: PaletteElementHandler[],\r\n private logger: LogService,\r\n private injector: Injector\r\n ) {}\r\n\r\n delegateEvent(element: BpmnTrigger, event) {\r\n try {\r\n const chosenHandler = this.paletteHandlers.find(paletteHandler => paletteHandler.key === element.group);\r\n const handler = this.injector.get(chosenHandler.handler);\r\n handler.processEvent(event.originalEvent || event, element);\r\n } catch (error) {\r\n this.logger.error(error);\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { Store, Action } from '@ngrx/store';\r\nimport {\r\n ProcessModelerServiceToken,\r\n ProcessModelerService,\r\n SnackbarErrorAction,\r\n SnackbarWarningAction,\r\n XmlParsingProblem,\r\n MESSAGE,\r\n LogFactoryService\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProcessEntitiesState } from '../store/process-entities.state';\r\nimport { getProcessLogInitiator } from './process-editor.constants';\r\nimport { of, Observable } from 'rxjs';\r\nimport { createSelectedElement } from '../store/process-editor.state';\r\nimport { SelectModelerElementAction } from '../store/process-editor.actions';\r\nimport { processXmlUpdater } from './process-xml-updater';\r\n\r\n@Injectable()\r\nexport class ProcessDiagramLoaderService {\r\n constructor(\r\n private store: Store,\r\n private logFactory: LogFactoryService,\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService\r\n ) {}\r\n\r\n load(xmlContent: string): Observable {\r\n return this.processModelerService.loadXml(xmlContent).pipe(\r\n tap(() => {\r\n /** @deprecated: Remove ProcessParserService before stable release */\r\n processXmlUpdater.updateProcessXML(this.store, this.processModelerService);\r\n const element = createSelectedElement(this.processModelerService.getRootProcessElement());\r\n this.store.dispatch(new SelectModelerElementAction(element));\r\n }),\r\n catchError(this.catchError.bind(this))\r\n );\r\n }\r\n\r\n private catchError(problem: XmlParsingProblem): Observable {\r\n let actions: Action[] = [];\r\n\r\n if (problem.type === MESSAGE.ERROR) {\r\n actions = [\r\n this.logFactory.logError(getProcessLogInitiator(), problem.messages),\r\n new SnackbarErrorAction('PROCESS_EDITOR.ERRORS.PARSE_BPMN')\r\n ];\r\n } else if (problem.type === MESSAGE.WARN) {\r\n actions = [\r\n this.logFactory.logWarning(getProcessLogInitiator(), problem.messages),\r\n new SnackbarWarningAction('PROCESS_EDITOR.ERRORS.PARSE_BPMN')\r\n ];\r\n }\r\n\r\n actions.forEach(action => this.store.dispatch(action));\r\n return of();\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { LogMessageInitiator } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const PROCESS_EDITOR_LOGS = 'Process Editor';\r\nexport const PROCESS_SVG_IMAGE = 'SVG';\r\n\r\nexport function getProcessLogInitiator(extra?: any): LogMessageInitiator {\r\n return {\r\n key: PROCESS_EDITOR_LOGS,\r\n displayName: 'PROCESS_EDITOR.NAME',\r\n extra\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n PROCESS_FILE_FORMAT,\r\n PROCESS_SVG_FILE_FORMAT,\r\n DownloadResourceService,\r\n Process,\r\n ProcessContent,\r\n EntityDialogForm,\r\n UploadFileAttemptPayload,\r\n PROCESS_API_TOKEN,\r\n ModelApiInterface,\r\n formatUuid,\r\n ContentType,\r\n ModelExtensions\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class ProcessEditorService {\r\n constructor(\r\n @Inject(PROCESS_API_TOKEN) private processApi: ModelApiInterface,\r\n private downloadService: DownloadResourceService) {}\r\n\r\n getAll(projectId: string): Observable {\r\n return this.processApi.getList(projectId);\r\n }\r\n\r\n create(form: Partial, projectId: string): Observable {\r\n return this.processApi.create(form, projectId);\r\n }\r\n\r\n delete(processId: string): Observable {\r\n return this.processApi.delete(processId);\r\n }\r\n\r\n upload(payload: UploadFileAttemptPayload): Observable {\r\n return this.processApi.import(payload.file, payload.projectId);\r\n }\r\n\r\n update(processId: string, process: Process, processData: ProcessContent, projectId: string): Observable> {\r\n return this.processApi.update(processId, process, processData, projectId);\r\n }\r\n\r\n validate(processId: string, diagramData: ProcessContent, extensionsContent: ModelExtensions): Observable> {\r\n const extensions = {\r\n id: formatUuid(ContentType.Process, processId),\r\n extensions: extensionsContent\r\n };\r\n\r\n return this.processApi.validate(processId, diagramData, extensions);\r\n }\r\n\r\n getDetails(processId: string, projectId: string) {\r\n return this.processApi.retrieve(processId, projectId);\r\n }\r\n\r\n getDiagram(processId: string) {\r\n return this.processApi.export(processId);\r\n }\r\n\r\n downloadDiagram(processName: string, processData: string) {\r\n const blob = new Blob([processData], { type: 'octet/stream' });\r\n this.downloadService.downloadResource(processName, blob, PROCESS_FILE_FORMAT);\r\n }\r\n\r\n downloadSVGImage(processName: string, processData: string) {\r\n const blob = new Blob([processData], { type: 'octet/stream' });\r\n this.downloadService.downloadResource(processName, blob, PROCESS_SVG_FILE_FORMAT);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { ElementHelper } from './bpmn-js/element.helper';\r\nimport { PROCESS_SVG_IMAGE } from './process-editor.constants';\r\nimport {\r\n BpmnFactoryToken,\r\n BpmnFactory,\r\n ModelerInitOptions,\r\n ProcessModelerService,\r\n BpmnProperty,\r\n MESSAGE\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ProcessModelerServiceImplementation implements ProcessModelerService {\r\n public modeler: Bpmn.Modeler;\r\n private modelerInitOptions: ModelerInitOptions;\r\n\r\n constructor(@Inject(BpmnFactoryToken) private bpmnFactoryService: BpmnFactory) {}\r\n\r\n init(modelerInitOptions: ModelerInitOptions): void {\r\n this.modeler = this.bpmnFactoryService.create();\r\n this.modelerInitOptions = modelerInitOptions;\r\n this.listenToEventHandlers();\r\n\r\n document.addEventListener('keypress', this.limitModelerEditableElementLength, false);\r\n }\r\n\r\n limitModelerEditableElementLength(event: Event): void {\r\n const { classList, innerHTML } = event.target;\r\n const isModelerEditableElement = Array.from(classList).includes('djs-direct-editing-content');\r\n const isElementNameValid = innerHTML.length <= 40;\r\n\r\n if (isModelerEditableElement && !isElementNameValid) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n render(container): void {\r\n this.modeler.attachTo(container);\r\n }\r\n\r\n getFromModeler(token: Bpmn.NamedDiagramService) {\r\n return this.modeler.get(token);\r\n }\r\n\r\n getElement(shapeId: string): Bpmn.DiagramElement {\r\n return this.modeler.get('elementRegistry').get(shapeId);\r\n }\r\n\r\n getRootProcessElement(): Bpmn.DiagramElement {\r\n return this.modeler.get('canvas').getRootElement();\r\n }\r\n\r\n updateElementProperty(shapeId: string, propertyName: BpmnProperty, value: any): void {\r\n const modeling: Bpmn.Modeling = this.modeler.get('modeling'),\r\n element = this.getElement(shapeId),\r\n moddle: Bpmn.Moddle = this.modeler.get('moddle');\r\n\r\n ElementHelper.setProperty(modeling, element, propertyName, value, moddle);\r\n }\r\n\r\n loadXml(xml: string): Observable {\r\n return new Observable(subscriber => {\r\n this.muteEventHandlers();\r\n\r\n this.modeler.importXML(xml, (error, warnings) => {\r\n this.listenToEventHandlers();\r\n\r\n if (error) {\r\n subscriber.error({\r\n type: MESSAGE.ERROR,\r\n messages: [`Error: ${error.message}`]\r\n });\r\n } else if (warnings.length) {\r\n subscriber.error({\r\n type: MESSAGE.WARN,\r\n messages: warnings.map(entry => entry.message)\r\n });\r\n } else {\r\n subscriber.next();\r\n subscriber.complete();\r\n }\r\n });\r\n });\r\n }\r\n\r\n export(type = null): Promise {\r\n return new Promise((resolve, reject) => {\r\n const options = { format: true };\r\n const exportCallBack = (err, diagramData) => {\r\n if (err) {\r\n return reject(err);\r\n }\r\n resolve(diagramData);\r\n };\r\n if (type === PROCESS_SVG_IMAGE) {\r\n this.modeler.saveSVG(options, exportCallBack);\r\n } else {\r\n this.modeler.saveXML(options, exportCallBack);\r\n }\r\n });\r\n }\r\n\r\n zoomIn(): void {\r\n this.modeler.get('editorActions').trigger('stepZoom', { value: 1 });\r\n }\r\n\r\n zoomOut(): void {\r\n this.modeler.get('editorActions').trigger('stepZoom', { value: -1 });\r\n }\r\n\r\n fitViewPort(): void {\r\n this.modeler.get('canvas').zoom('fit-viewport', true);\r\n }\r\n\r\n undo(): void {\r\n this.modeler.get('editorActions').trigger('undo');\r\n }\r\n\r\n redo(): void {\r\n this.modeler.get('editorActions').trigger('redo');\r\n }\r\n\r\n destroy() {\r\n this.modeler.destroy();\r\n document.removeEventListener('keypress', this.limitModelerEditableElementLength, false);\r\n }\r\n\r\n private listenToEventHandlers() {\r\n this.modeler.on('element.click', this.modelerInitOptions.clickHandler);\r\n this.modeler.on('element.changed', this.modelerInitOptions.changeHandler);\r\n this.modeler.on('shape.remove', this.modelerInitOptions.removeHandler);\r\n this.modeler.on('selection.changed', this.modelerInitOptions.selectHandler);\r\n }\r\n\r\n private muteEventHandlers() {\r\n this.modeler.off('element.click', this.modelerInitOptions.clickHandler);\r\n this.modeler.off('element.changed', this.modelerInitOptions.changeHandler);\r\n this.modeler.off('shape.remove', this.modelerInitOptions.removeHandler);\r\n this.modeler.off('selection.changed', this.modelerInitOptions.selectHandler);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Store } from '@ngrx/store';\r\nimport { ProcessModelerService, BpmnProperty, SnackbarInfoAction } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProcessEntitiesState } from '../store/process-entities.state';\r\nimport { modelNameHandler } from './bpmn-js/property-handlers/model-name.handler';\r\nimport { processNameHandler } from './bpmn-js/property-handlers/process-name.handler';\r\n\r\nconst updateProcessXML = (store: Store, processModelerService: ProcessModelerService) => {\r\n const element = processModelerService.getRootProcessElement();\r\n let name = modelNameHandler.get(element);\r\n\r\n if (!name) {\r\n name = processNameHandler.get(element);\r\n processModelerService.updateElementProperty(element.id, BpmnProperty.modelName, name);\r\n store.dispatch(new SnackbarInfoAction('PROCESS_EDITOR.PROCESS_UPDATED'));\r\n }\r\n};\r\n\r\nexport const processXmlUpdater = { updateProcessXML };\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport function transformJsonSchema(schema) {\r\n return {\r\n ...schema,\r\n patternProperties: undefined,\r\n $ref: '#/definitions/extensions'\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { Process, ProcessContent, UpdateServiceParametersAction, ModelExtensions, EntityDialogForm, UploadFileAttemptPayload } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { SelectedProcessElement } from './process-editor.state';\r\nimport { Update } from '@ngrx/entity';\r\n\r\nexport interface UpdateProcessExtensionsPayload {\r\n extensions: ModelExtensions;\r\n processId: string;\r\n}\r\n\r\nexport const UPDATE_PROCESS_EXTENSIONS = '[Process] Update extensions';\r\nexport class UpdateProcessExtensionsAction implements Action {\r\n readonly type = UPDATE_PROCESS_EXTENSIONS;\r\n constructor(public payload: UpdateProcessExtensionsPayload) {}\r\n}\r\n\r\nexport const DELETE_PROCESS_EXTENSION = '[Process] Delete extension';\r\nexport class DeleteProcessExtensionAction implements Action {\r\n readonly type = DELETE_PROCESS_EXTENSION;\r\n constructor(public processId: string, public bpmnProcessId: string) {}\r\n}\r\n\r\nexport const SHOW_PROCESSES = '[App Tree] Show Processes';\r\nexport class ShowProcessesAction implements Action {\r\n readonly type = SHOW_PROCESSES;\r\n constructor(public projectId: string) {}\r\n}\r\n\r\nexport const GET_PROCESSES_ATTEMPT = 'GET_PROCESSES_ATTEMPT';\r\nexport class GetProcessesAttemptAction implements Action {\r\n readonly type = GET_PROCESSES_ATTEMPT;\r\n constructor(public projectId: string) {}\r\n}\r\n\r\nexport const GET_PROCESSES_SUCCESS = 'GET_PROCESSES_SUCCESS';\r\nexport class GetProcessesSuccessAction implements Action {\r\n readonly type = GET_PROCESSES_SUCCESS;\r\n constructor(public processes: Process[]) {}\r\n}\r\n\r\nexport const UPLOAD_PROCESS_ATTEMPT = 'UPLOAD_PROCESS_ATTEMPT';\r\nexport class UploadProcessAttemptAction implements Action {\r\n readonly type = UPLOAD_PROCESS_ATTEMPT;\r\n constructor(public payload: UploadFileAttemptPayload) {}\r\n}\r\n\r\nexport const CREATE_PROCESS_ATTEMPT = 'CREATE_PROCESS_ATTEMPT';\r\nexport class CreateProcessAttemptAction implements Action {\r\n readonly type = CREATE_PROCESS_ATTEMPT;\r\n constructor(public payload: Partial, public navigateTo = false) {}\r\n}\r\n\r\nexport const CREATE_PROCESS_SUCCESS = 'CREATE_PROCESS_SUCCESS';\r\nexport class CreateProcessSuccessAction implements Action {\r\n readonly type = CREATE_PROCESS_SUCCESS;\r\n constructor(public process: Process, public navigateTo = false) {}\r\n}\r\n\r\nexport const DELETE_PROCESS_ATTEMPT = 'DELETE_PROCESS_ATTEMPT';\r\nexport class DeleteProcessAttemptAction implements Action {\r\n readonly type = DELETE_PROCESS_ATTEMPT;\r\n constructor(public processId: string) {}\r\n}\r\n\r\nexport const DELETE_PROCESS_SUCCESS = 'DELETE_PROCESS_SUCCESS';\r\nexport class DeleteProcessSuccessAction implements Action {\r\n readonly type = DELETE_PROCESS_SUCCESS;\r\n constructor(public processId: string) {}\r\n}\r\n\r\nexport const GET_PROCESS_ATTEMPT = '[Process] Get attempt';\r\nexport class GetProcessAttemptAction implements Action {\r\n readonly type = GET_PROCESS_ATTEMPT;\r\n constructor(public payload: string) {}\r\n}\r\n\r\ninterface GotProcessSuccessActionPayload {\r\n process: Process;\r\n diagram: ProcessContent;\r\n}\r\nexport const GET_PROCESS_SUCCESS = '[Process] Get success';\r\nexport class GetProcessSuccessAction implements Action {\r\n readonly type = GET_PROCESS_SUCCESS;\r\n constructor(public payload: GotProcessSuccessActionPayload) {}\r\n}\r\n\r\nexport const SELECT_MODELER_ELEMENT = 'SELECT_SHAPE';\r\nexport class SelectModelerElementAction implements Action {\r\n readonly type = SELECT_MODELER_ELEMENT;\r\n constructor(public element: SelectedProcessElement) {}\r\n}\r\n\r\nexport interface UpdateProcessPayload {\r\n processId: string;\r\n content: ProcessContent;\r\n metadata: Partial;\r\n}\r\n\r\nexport interface ValidateProcessPayload {\r\n title: string;\r\n processId: string;\r\n content: ProcessContent;\r\n extensions: ModelExtensions;\r\n action: Action;\r\n errorAction?: Action;\r\n}\r\n\r\nexport const VALIDATE_PROCESS_ATTEMPT = '[Process] Validate attempt';\r\nexport class ValidateProcessAttemptAction implements Action {\r\n readonly type = VALIDATE_PROCESS_ATTEMPT;\r\n constructor(public payload: ValidateProcessPayload) {}\r\n}\r\n\r\nexport const UPDATE_PROCESS_ATTEMPT = '[Process] Update attempt';\r\nexport class UpdateProcessAttemptAction implements Action {\r\n readonly type = UPDATE_PROCESS_ATTEMPT;\r\n constructor(public payload: UpdateProcessPayload) {}\r\n}\r\n\r\nexport const UPDATE_PROCESS_SUCCESS = '[Process] Update success';\r\nexport class UpdateProcessSuccessAction implements Action {\r\n readonly type = UPDATE_PROCESS_SUCCESS;\r\n constructor(public payload: Update>, public content: string) {}\r\n}\r\n\r\nexport const UPDATE_PROCESS_FAILED = '[Process] Update failed';\r\nexport class UpdateProcessFailedAction implements Action {\r\n readonly type = UPDATE_PROCESS_FAILED;\r\n constructor() {}\r\n}\r\n\r\nexport interface DownloadProcessPayload {\r\n id: string;\r\n name: string;\r\n}\r\nexport const DOWNLOAD_PROCESS_DIAGRAM = 'DOWNLOAD_PROCESS_DIAGRAM';\r\nexport class DownloadProcessAction implements Action {\r\n readonly type = DOWNLOAD_PROCESS_DIAGRAM;\r\n constructor(public process: DownloadProcessPayload) {}\r\n}\r\n\r\nexport const DOWNLOAD_PROCESS_SVG_IMAGE = 'DOWNLOAD_PROCESS_SVG_IMAGE';\r\nexport class DownloadProcessSVGImageAction implements Action {\r\n readonly type = DOWNLOAD_PROCESS_SVG_IMAGE;\r\n constructor(public process: DownloadProcessPayload) {}\r\n}\r\n\r\nexport const CHANGED_PROCESS_DIAGRAM = 'CHANGED_PROCESS_DIAGRAM';\r\nexport class ChangedProcessAction implements Action {\r\n readonly type = CHANGED_PROCESS_DIAGRAM;\r\n constructor(public element?: SelectedProcessElement) {}\r\n}\r\n\r\nexport const REMOVE_DIAGRAM_ELEMENT = 'REMOVE_DIAGRAM_ELEMENT';\r\nexport class RemoveDiagramElementAction implements Action {\r\n readonly type = REMOVE_DIAGRAM_ELEMENT;\r\n constructor(public element?: SelectedProcessElement) {}\r\n}\r\n\r\nexport const REMOVE_ELEMENT_MAPPING = '[Process] Remove element mapping';\r\nexport class RemoveElementMappingAction implements Action {\r\n readonly type = REMOVE_ELEMENT_MAPPING;\r\n constructor(public elementId: string, public processModelId: string, public bpmnProcessElementId: string) {}\r\n}\r\n\r\nexport type ProcessActions =\r\n | ShowProcessesAction\r\n | UploadProcessAttemptAction\r\n | GetProcessesAttemptAction\r\n | GetProcessesSuccessAction\r\n | GetProcessAttemptAction\r\n | GetProcessSuccessAction\r\n | CreateProcessAttemptAction\r\n | CreateProcessSuccessAction\r\n | UpdateProcessAttemptAction\r\n | UpdateProcessSuccessAction\r\n | DeleteProcessAttemptAction\r\n | DeleteProcessExtensionAction\r\n | DeleteProcessSuccessAction\r\n | RemoveElementMappingAction\r\n | UpdateServiceParametersAction;\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Actions, Effect, ofType } from '@ngrx/effects';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { catchError, filter, map, mergeMap, switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\nimport { forkJoin, Observable, of, zip } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { LogService } from '@alfresco/adf-core';\r\n\r\nimport {\r\n CHANGED_PROCESS_DIAGRAM,\r\n ChangedProcessAction,\r\n CREATE_PROCESS_ATTEMPT,\r\n CREATE_PROCESS_SUCCESS,\r\n CreateProcessAttemptAction,\r\n CreateProcessSuccessAction,\r\n DELETE_PROCESS_ATTEMPT,\r\n DELETE_PROCESS_SUCCESS,\r\n DeleteProcessAttemptAction,\r\n DeleteProcessSuccessAction,\r\n DOWNLOAD_PROCESS_DIAGRAM,\r\n DownloadProcessAction,\r\n DOWNLOAD_PROCESS_SVG_IMAGE,\r\n DownloadProcessSVGImageAction,\r\n GET_PROCESS_ATTEMPT,\r\n GET_PROCESSES_ATTEMPT,\r\n GetProcessAttemptAction,\r\n GetProcessesAttemptAction,\r\n GetProcessesSuccessAction,\r\n GetProcessSuccessAction,\r\n REMOVE_DIAGRAM_ELEMENT,\r\n RemoveDiagramElementAction,\r\n RemoveElementMappingAction,\r\n SelectModelerElementAction,\r\n SHOW_PROCESSES,\r\n ShowProcessesAction,\r\n UPDATE_PROCESS_ATTEMPT,\r\n UPDATE_PROCESS_FAILED,\r\n UPDATE_PROCESS_SUCCESS,\r\n UpdateProcessAttemptAction,\r\n UpdateProcessFailedAction,\r\n UpdateProcessPayload,\r\n UpdateProcessSuccessAction,\r\n UPLOAD_PROCESS_ATTEMPT,\r\n UploadProcessAttemptAction,\r\n VALIDATE_PROCESS_ATTEMPT,\r\n ValidateProcessAttemptAction,\r\n ValidateProcessPayload,\r\n DeleteProcessExtensionAction\r\n} from './process-editor.actions';\r\nimport {\r\n AmaState,\r\n BaseEffects,\r\n BpmnElement,\r\n createModelName,\r\n EntityDialogForm,\r\n GeneralError,\r\n SetApplicationLoadingStateAction,\r\n LogFactoryService,\r\n ModelClosedAction,\r\n ModelOpenedAction,\r\n OpenConfirmDialogAction,\r\n PROCESS,\r\n Process,\r\n ProcessModelerService,\r\n ProcessModelerServiceToken,\r\n selectOpenedModel,\r\n selectSelectedProcess,\r\n selectSelectedProjectId,\r\n SetAppDirtyStateAction,\r\n SnackbarErrorAction,\r\n SnackbarInfoAction,\r\n UPDATE_SERVICE_PARAMETERS,\r\n UploadFileAttemptPayload\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProcessEditorService } from '../services/process-editor.service';\r\nimport { selectProcessesLoaded, selectSelectedElement } from './process-editor.selectors';\r\nimport { Store } from '@ngrx/store';\r\nimport { getProcessLogInitiator, PROCESS_SVG_IMAGE } from '../services/process-editor.constants';\r\nimport { ProcessValidationResponse } from './process-editor.state';\r\n\r\n@Injectable()\r\nexport class ProcessEditorEffects extends BaseEffects {\r\n constructor(\r\n private store: Store,\r\n private actions$: Actions,\r\n private processEditorService: ProcessEditorService,\r\n private logFactory: LogFactoryService,\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService,\r\n logService: LogService,\r\n router: Router\r\n ) {\r\n super(router, logService);\r\n }\r\n\r\n @Effect()\r\n showProcessesEffect = this.actions$.pipe(\r\n ofType(SHOW_PROCESSES),\r\n map(action => action.projectId),\r\n switchMap(projectId => zip(of(projectId), this.store.select(selectProcessesLoaded))),\r\n switchMap(([projectId, loaded]) => loaded ? of() : of(new GetProcessesAttemptAction(projectId)))\r\n );\r\n\r\n @Effect()\r\n getProcessesEffect = this.actions$.pipe(\r\n ofType(GET_PROCESSES_ATTEMPT),\r\n switchMap(action => this.getProcesses(action.projectId))\r\n );\r\n\r\n @Effect()\r\n removeDiagramElementEffect = this.actions$.pipe(\r\n ofType(REMOVE_DIAGRAM_ELEMENT),\r\n filter(action => [BpmnElement.ServiceTask, BpmnElement.UserTask, BpmnElement.CallActivity, BpmnElement.Participant].includes(action.element.type)),\r\n mergeMap(action => zip(of(action), this.store.select(selectOpenedModel))),\r\n mergeMap(([action, process]) => action.element.type === BpmnElement.Participant ?\r\n of(new DeleteProcessExtensionAction(process.id, action.element.processId)) :\r\n of(new RemoveElementMappingAction(action.element.id, process.id, action.element.processId))\r\n )\r\n );\r\n\r\n @Effect()\r\n createProcessEffect = this.actions$.pipe(\r\n ofType(CREATE_PROCESS_ATTEMPT),\r\n mergeMap(action => zip(of(action), this.store.select(selectSelectedProjectId))),\r\n mergeMap(([action, projectId]) => this.createProcess(action.payload, action.navigateTo, projectId))\r\n );\r\n\r\n @Effect()\r\n uploadProcessEffect = this.actions$.pipe(\r\n ofType(UPLOAD_PROCESS_ATTEMPT),\r\n switchMap(action => this.uploadProcess(action.payload))\r\n );\r\n\r\n @Effect()\r\n deleteProcessEffect = this.actions$.pipe(\r\n ofType(DELETE_PROCESS_ATTEMPT),\r\n map(action => action.processId),\r\n mergeMap(processId => this.deleteProcess(processId))\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n deleteProcessSuccessEffect = this.actions$.pipe(\r\n ofType(DELETE_PROCESS_SUCCESS),\r\n withLatestFrom(this.store.select(selectSelectedProjectId)),\r\n map(([action, projectId]) => {\r\n this.router.navigate(['/projects', projectId]);\r\n })\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n createProcessSuccessEffect = this.actions$.pipe(\r\n ofType(CREATE_PROCESS_SUCCESS),\r\n withLatestFrom(this.store.select(selectSelectedProjectId)),\r\n tap(([action, projectId]) => {\r\n if (action.navigateTo) {\r\n this.router.navigate(['/projects', projectId, 'process', action.process.id]);\r\n }\r\n })\r\n );\r\n\r\n @Effect()\r\n updateProcessEffect = this.actions$.pipe(\r\n ofType(UPDATE_PROCESS_ATTEMPT),\r\n map(action => action.payload),\r\n mergeMap(payload => zip(of(payload), this.store.select(selectSelectedProcess), this.store.select(selectSelectedProjectId))),\r\n mergeMap(([payload, process, projectId]) => this.updateProcess(payload, process, projectId))\r\n );\r\n\r\n @Effect()\r\n updateProcessSuccessEffect = this.actions$.pipe(\r\n ofType(UPDATE_PROCESS_SUCCESS),\r\n mergeMap(() => of(new SetApplicationLoadingStateAction(false)))\r\n );\r\n\r\n @Effect()\r\n updateProcessFailedEffect = this.actions$.pipe(\r\n ofType(UPDATE_PROCESS_FAILED),\r\n mergeMap(() => of(new SetApplicationLoadingStateAction(false)))\r\n );\r\n\r\n @Effect()\r\n validateProcessEffect = this.actions$.pipe(\r\n ofType(VALIDATE_PROCESS_ATTEMPT),\r\n mergeMap(action => this.validateProcess(action.payload))\r\n );\r\n\r\n @Effect()\r\n getProcessEffect = this.actions$.pipe(\r\n ofType(GET_PROCESS_ATTEMPT),\r\n mergeMap(action => zip(of(action.payload), this.store.select(selectSelectedProjectId))),\r\n mergeMap(([processId, projectId]) => this.getProcess(processId, projectId))\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n downloadProcessEffect = this.actions$.pipe(\r\n ofType(DOWNLOAD_PROCESS_DIAGRAM),\r\n map(({ process }) => this.downloadProcessDiagram(process.id, process.name))\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n downloadProcessSVGImageEffect = this.actions$.pipe(\r\n ofType(DOWNLOAD_PROCESS_SVG_IMAGE),\r\n map(({ process }) => this.downloadProcessSVGImage(process.name))\r\n );\r\n\r\n @Effect()\r\n changedProcessDiagramEffect = this.actions$.pipe(\r\n ofType(CHANGED_PROCESS_DIAGRAM),\r\n mergeMap(() => of(new SetAppDirtyStateAction(true)))\r\n );\r\n\r\n @Effect()\r\n updateServiceParameterSEffect = this.actions$.pipe(\r\n ofType(UPDATE_SERVICE_PARAMETERS),\r\n mergeMap(() => of(new SetAppDirtyStateAction(true)))\r\n );\r\n\r\n @Effect()\r\n changedElementEffect = this.actions$.pipe(\r\n ofType(CHANGED_PROCESS_DIAGRAM),\r\n map(action => action.element),\r\n mergeMap(element => zip(of(element), this.store.select(selectSelectedElement))),\r\n filter(([element, selected]) => {\r\n return (\r\n selected !== null &&\r\n selected.id === element.id &&\r\n (selected.name !== element.name || selected.type !== element.type)\r\n );\r\n }),\r\n mergeMap(([element, selected]) => of(new SelectModelerElementAction(element)))\r\n );\r\n\r\n private validateProcess(payload: ValidateProcessPayload) {\r\n return this.processEditorService.validate(payload.processId, payload.content, payload.extensions).pipe(\r\n switchMap(() => [new SetApplicationLoadingStateAction(true), payload.action, new SetApplicationLoadingStateAction(false)]),\r\n catchError(response => {\r\n const errors = this.handleProcessValidationError(JSON.parse(response.message));\r\n if (payload.errorAction) {\r\n return [\r\n payload.errorAction,\r\n this.logFactory.logError(getProcessLogInitiator(), errors)\r\n ];\r\n }\r\n return [\r\n new OpenConfirmDialogAction({\r\n dialogData: {\r\n title: payload.title || 'APP.DIALOGS.CONFIRM.TITLE',\r\n subtitle: 'APP.DIALOGS.ERROR.SUBTITLE',\r\n errors\r\n },\r\n action: payload.action\r\n }),\r\n this.logFactory.logError(getProcessLogInitiator(), errors)\r\n ];\r\n })\r\n );\r\n }\r\n\r\n private updateProcess(payload: UpdateProcessPayload, process: Process, projectId: string): Observable {\r\n return this.processEditorService.update(\r\n payload.processId,\r\n { ...process, ...payload.metadata },\r\n payload.content,\r\n projectId\r\n ).pipe(\r\n switchMap(() => [\r\n new SetApplicationLoadingStateAction(true),\r\n new UpdateProcessSuccessAction({ id: payload.processId, changes: payload.metadata }, payload.content),\r\n new SetAppDirtyStateAction(false),\r\n this.logFactory.logInfo(getProcessLogInitiator(), 'PROCESS_EDITOR.PROCESS_SAVED'),\r\n new SnackbarInfoAction('PROCESS_EDITOR.PROCESS_SAVED')\r\n ]),\r\n catchError(e => this.genericErrorHandler(this.handleProcessUpdatingError.bind(this), e))\r\n );\r\n }\r\n\r\n private downloadProcessDiagram(processId: string, processName: string) {\r\n const name = createModelName(processName);\r\n return this.processModelerService\r\n .export()\r\n .then(data => this.processEditorService.downloadDiagram(name, data))\r\n .catch(err => {\r\n this.genericErrorHandler(this.handleError.bind(this, 'APP.PROCESSES.ERRORS.DOWNLOAD_DIAGRAM'), err);\r\n });\r\n }\r\n\r\n private downloadProcessSVGImage(processName: string) {\r\n const name = createModelName(processName);\r\n return this.processModelerService\r\n .export(PROCESS_SVG_IMAGE)\r\n .then(data => this.processEditorService.downloadSVGImage(name, data))\r\n .catch(err => {\r\n this.genericErrorHandler(this.handleError.bind(this, 'APP.PROCESSES.ERRORS.DOWNLOAD_SVG_IMAGE'), err);\r\n });\r\n }\r\n\r\n private getProcess(processId: string, projectId: string) {\r\n const processDetails$ = this.processEditorService.getDetails(processId, projectId),\r\n processDiagram$ = this.processEditorService.getDiagram(processId);\r\n\r\n return forkJoin(processDetails$, processDiagram$).pipe(\r\n switchMap(([process, diagram]) => [\r\n new GetProcessSuccessAction({ process, diagram }),\r\n new ModelOpenedAction({ id: process.id, type: process.type }),\r\n new SetAppDirtyStateAction(false)\r\n ]),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleError.bind(this, 'PROCESS_EDITOR.ERRORS.LOAD_DIAGRAM'), e)\r\n )\r\n );\r\n }\r\n\r\n private uploadProcess(payload: UploadFileAttemptPayload): Observable {\r\n return this.processEditorService.upload(payload).pipe(\r\n switchMap(process => [\r\n new CreateProcessSuccessAction(process, true),\r\n new SnackbarInfoAction('PROCESS_EDITOR.UPLOAD_SUCCESS')\r\n ]),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleError.bind(this, 'PROJECT_EDITOR.ERROR.UPLOAD_FILE'), e)\r\n )\r\n );\r\n }\r\n\r\n private getProcesses(projectId: string): Observable<{} | GetProcessesSuccessAction> {\r\n return this.processEditorService.getAll(projectId).pipe(\r\n switchMap(processes => of(new GetProcessesSuccessAction(processes))),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleError.bind(this, 'PROJECT_EDITOR.ERROR.LOAD_MODELS'), e)\r\n )\r\n );\r\n }\r\n\r\n private deleteProcess(processId: string): Observable<{} | SnackbarInfoAction | DeleteProcessSuccessAction> {\r\n return this.processEditorService.delete(processId).pipe(\r\n switchMap(() => [\r\n new DeleteProcessSuccessAction(processId),\r\n new SetAppDirtyStateAction(false),\r\n new ModelClosedAction({ id: processId, type: PROCESS }),\r\n new SnackbarInfoAction('PROJECT_EDITOR.PROCESS_DIALOG.PROCESS_DELETED')\r\n ]),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleError.bind(this, 'PROJECT_EDITOR.ERROR.DELETE_PROCESS'), e)\r\n )\r\n );\r\n }\r\n\r\n private createProcess(form: Partial, navigateTo: boolean, projectId: string): Observable<{} | SnackbarInfoAction | CreateProcessSuccessAction> {\r\n return this.processEditorService.create(form, projectId).pipe(\r\n switchMap((process) => [\r\n new CreateProcessSuccessAction(process, navigateTo),\r\n new SnackbarInfoAction('PROJECT_EDITOR.PROCESS_DIALOG.PROCESS_CREATED')\r\n ]),\r\n catchError(e => this.genericErrorHandler(this.handleProcessCreationError.bind(this), e))\r\n );\r\n }\r\n\r\n private handleError(userMessage): Observable {\r\n return of(new SnackbarErrorAction(userMessage));\r\n }\r\n\r\n private handleProcessUpdatingError(error): Observable {\r\n let errorMessage;\r\n const message = error.message ? JSON.parse(error.message) : {};\r\n\r\n if (error.status === 409) {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.UPDATE_PROCESS.DUPLICATION';\r\n } else if (message.errors && (message.errors[0].code === 'model.invalid.name.empty')) {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.UPDATE_PROCESS.EMPTY_NAME';\r\n } else {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.UPDATE_PROCESS.GENERAL';\r\n }\r\n return of(new SnackbarErrorAction(errorMessage), new UpdateProcessFailedAction());\r\n }\r\n\r\n private handleProcessCreationError(error): Observable {\r\n let errorMessage;\r\n\r\n if (error.status === 409) {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.CREATE_PROCESS.DUPLICATION';\r\n } else {\r\n errorMessage = 'PROJECT_EDITOR.ERROR.CREATE_PROCESS.GENERAL';\r\n }\r\n\r\n return of(new SnackbarErrorAction(errorMessage));\r\n }\r\n\r\n private handleProcessValidationError(response: ProcessValidationResponse): string[] {\r\n if (response.errors) {\r\n return response.errors.map( (error: GeneralError) => error.description);\r\n }\r\n return [response.message];\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { ProcessEditorState, getInitialProcessEditorState } from './process-editor.state';\r\nimport {\r\n SELECT_MODELER_ELEMENT,\r\n SelectModelerElementAction,\r\n RemoveDiagramElementAction,\r\n REMOVE_DIAGRAM_ELEMENT,\r\n GET_PROCESS_ATTEMPT,\r\n GET_PROCESS_SUCCESS\r\n} from './process-editor.actions';\r\n\r\nexport function processEditorReducer(\r\n state: ProcessEditorState = getInitialProcessEditorState(),\r\n action: Action\r\n): ProcessEditorState {\r\n let newState: ProcessEditorState;\r\n\r\n switch (action.type) {\r\n case GET_PROCESS_ATTEMPT:\r\n newState = { ...state, loading: true };\r\n break;\r\n\r\n case GET_PROCESS_SUCCESS:\r\n newState = getInitialProcessEditorState();\r\n break;\r\n\r\n case SELECT_MODELER_ELEMENT:\r\n newState = setSelectedElement(state, action);\r\n break;\r\n\r\n case REMOVE_DIAGRAM_ELEMENT:\r\n return removeElement(state, action);\r\n\r\n default:\r\n newState = Object.assign({}, state);\r\n }\r\n\r\n return newState;\r\n}\r\n\r\nfunction setSelectedElement(state: ProcessEditorState, action: SelectModelerElementAction): ProcessEditorState {\r\n return {\r\n ...state,\r\n selectedElement: action.element\r\n };\r\n}\r\n\r\nfunction removeElement(state: ProcessEditorState, action: RemoveDiagramElementAction): ProcessEditorState {\r\n if (state.selectedElement && state.selectedElement.id === action.element.id) {\r\n return {\r\n ...state,\r\n selectedElement: null,\r\n toolbar: {\r\n ...state.toolbar,\r\n userMessage: ''\r\n }\r\n };\r\n }\r\n\r\n return { ...state };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createSelector, createFeatureSelector } from '@ngrx/store';\r\nimport {\r\n createModelName,\r\n PROCESS,\r\n selectSelectedModelIdFor,\r\n formatUuid,\r\n ContentType,\r\n selectProcessEntityContainer,\r\n selectSelectedProcess,\r\n Process,\r\n selectSelectedProjectId\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProcessEditorState } from './process-editor.state';\r\nimport { ProcessEntitiesState } from './process-entities.state';\r\n\r\nexport const PROCESS_EDITOR_STATE_NAME = 'process-editor';\r\nexport const getProcessEditorFeatureState = createFeatureSelector(PROCESS_EDITOR_STATE_NAME);\r\n\r\nexport const selectProcessIds = createSelector(selectProcessEntityContainer, state => state.ids);\r\nexport const selectProcessEntities = createSelector(selectProcessEntityContainer, state => state.entities);\r\nexport const selectProcessesLoading = createSelector(selectProcessEntityContainer, state => state.loading);\r\nexport const selectProcessesLoaded = createSelector(selectProcessEntityContainer, state => state.loaded);\r\nexport const selectEntityContents = createSelector(selectProcessEntityContainer, (state: ProcessEntitiesState) => state.entityContents);\r\nexport const selectSelectedProcessId = selectSelectedModelIdFor(PROCESS);\r\nexport const selectProcesses = createSelector(selectProcessEntityContainer, state => state.entities);\r\nexport const selectSelectedElement = createSelector(getProcessEditorFeatureState, (state: ProcessEditorState) => state.selectedElement);\r\nexport const selectProcessLoading = createSelector(getProcessEditorFeatureState, (state: ProcessEditorState) => state.loading);\r\n\r\nexport const selectProcessesArray = createSelector(\r\n selectProcessEntities,\r\n selectSelectedProjectId,\r\n (processes, selectedProjectId) => Object.values(processes).filter((process: Process) => process.projectId === selectedProjectId)\r\n);\r\n\r\nexport const selectSelectedProcessDiagram = createSelector(\r\n selectSelectedProcessId,\r\n selectProcessEntityContainer,\r\n (processId: string, state: ProcessEntitiesState) => state.entityContents[processId]\r\n);\r\n\r\nexport const selectProcessesKeyLabelArray = createSelector(\r\n selectProcesses,\r\n processes => Object.values(processes).map((process: Process) => ({\r\n key: formatUuid(ContentType.Process, process.id),\r\n label: createModelName(process.name)\r\n }))\r\n);\r\n\r\nexport const selectProcessCrumb = createSelector(\r\n selectSelectedProcess,\r\n process => process ? { name: `${createModelName(process.name)} (${process.version})` } : null\r\n);\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createEntityAdapter } from '@ngrx/entity';\r\nimport { Process, LogMessage, GeneralError, BpmnElement } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport function createSelectedElement(element): SelectedProcessElement {\r\n return {\r\n id: element.id,\r\n type: element.type,\r\n name: element.businessObject && element.businessObject.name || '',\r\n get processId() {\r\n if (element.businessObject && element.businessObject.$parent) {\r\n if (element.businessObject.$parent.$type === BpmnElement.SubProcess) {\r\n return element.businessObject.$parent.$parent.id;\r\n } else if (element.type === BpmnElement.Participant) {\r\n return getProcessRefId(element);\r\n }\r\n return element.businessObject.$parent.id;\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport function getProcessRefId(element: any) {\r\n return element.businessObject.processRef ? element.businessObject.processRef.id : null;\r\n}\r\n\r\nexport interface SelectedProcessElement {\r\n id: string;\r\n type: string;\r\n name?: string;\r\n processId?: string;\r\n}\r\n\r\nexport interface ToolbarState {\r\n inProgress: boolean;\r\n userMessage: string;\r\n logHistoryVisible: boolean;\r\n logs: LogMessage[];\r\n}\r\n\r\nexport interface ProcessEditorState {\r\n loading: boolean;\r\n selectedElement: SelectedProcessElement;\r\n toolbar: ToolbarState;\r\n}\r\n\r\nexport interface ProcessValidationResponse {\r\n error: string;\r\n errors: GeneralError[];\r\n message: string;\r\n path: string;\r\n status: number;\r\n timestamp: string;\r\n}\r\n\r\nexport const processAdapter = createEntityAdapter();\r\n\r\nexport function getInitialProcessEditorState(): ProcessEditorState {\r\n return {\r\n loading: false,\r\n selectedElement: null,\r\n toolbar: {\r\n inProgress: false,\r\n userMessage: '',\r\n logHistoryVisible: false,\r\n logs: []\r\n }\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport {\r\n GET_PROCESSES_ATTEMPT,\r\n GET_PROCESSES_SUCCESS,\r\n CREATE_PROCESS_SUCCESS,\r\n DELETE_PROCESS_SUCCESS,\r\n CreateProcessSuccessAction,\r\n GetProcessesSuccessAction,\r\n DeleteProcessSuccessAction,\r\n UPDATE_PROCESS_SUCCESS,\r\n GET_PROCESS_SUCCESS,\r\n GetProcessSuccessAction,\r\n UpdateProcessSuccessAction,\r\n UPDATE_PROCESS_EXTENSIONS,\r\n UpdateProcessExtensionsAction,\r\n REMOVE_ELEMENT_MAPPING,\r\n RemoveElementMappingAction,\r\n DELETE_PROCESS_EXTENSION,\r\n DeleteProcessExtensionAction\r\n} from './process-editor.actions';\r\nimport { UPDATE_PROCESS_VARIABLES, UpdateProcessVariablesAction } from './process-variables.actions';\r\nimport { ProcessEntitiesState, initialProcessEntitiesState, processAdapter } from './process-entities.state';\r\nimport {\r\n UPDATE_SERVICE_PARAMETERS,\r\n UpdateServiceParametersAction,\r\n LEAVE_PROJECT,\r\n ProcessExtensionsModel,\r\n UPDATE_TASK_ASSIGNMENTS,\r\n UpdateServiceAssignmentAction,\r\n EntityProperty,\r\n EntityProperties,\r\n ProcessExtensionsContent,\r\n createExtensionsObject\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nconst cloneDeep = require('lodash/cloneDeep');\r\n\r\nexport function processEntitiesReducer(\r\n state: ProcessEntitiesState = initialProcessEntitiesState,\r\n action: Action\r\n): ProcessEntitiesState {\r\n switch (action.type) {\r\n case CREATE_PROCESS_SUCCESS:\r\n return createProcess(state, action);\r\n\r\n case GET_PROCESSES_ATTEMPT:\r\n return { ...state, loading: true };\r\n\r\n case GET_PROCESSES_SUCCESS:\r\n return getProcessesSuccess(state, action);\r\n\r\n case DELETE_PROCESS_SUCCESS:\r\n return removeProcess(state, action);\r\n\r\n case UPDATE_PROCESS_SUCCESS:\r\n return updateProcess(state, action);\r\n\r\n case GET_PROCESS_SUCCESS:\r\n return getProcessSuccess(state, action);\r\n\r\n case UPDATE_PROCESS_VARIABLES:\r\n return updateProcessVariables(state, action);\r\n\r\n case UPDATE_SERVICE_PARAMETERS:\r\n return updateProcessVariablesMapping(state, action);\r\n\r\n case UPDATE_TASK_ASSIGNMENTS:\r\n return updateProcessTaskAssignments(state, action);\r\n\r\n case UPDATE_PROCESS_EXTENSIONS:\r\n return updateExtensions(state, action);\r\n\r\n case DELETE_PROCESS_EXTENSION:\r\n return deleteExtensions(state, action);\r\n\r\n case REMOVE_ELEMENT_MAPPING:\r\n return removeElementMapping(state, action);\r\n\r\n case LEAVE_PROJECT:\r\n return {\r\n ...state,\r\n loaded: false\r\n };\r\n\r\n default:\r\n return { ...state };\r\n }\r\n}\r\n\r\nfunction removeElementMapping(state: ProcessEntitiesState, action: RemoveElementMappingAction): ProcessEntitiesState {\r\n const newState = cloneDeep(state);\r\n const mappings = newState.entities[action.processModelId].extensions[action.bpmnProcessElementId].mappings;\r\n const constants = newState.entities[action.processModelId].extensions[action.bpmnProcessElementId].constants;\r\n const assignments = newState.entities[action.processModelId].extensions[action.bpmnProcessElementId].assignments;\r\n\r\n if (mappings && mappings[action.elementId]) {\r\n delete newState.entities[action.processModelId].extensions[action.bpmnProcessElementId].mappings[action.elementId];\r\n }\r\n\r\n if (constants && constants[action.elementId]) {\r\n delete newState.entities[action.processModelId].extensions[action.bpmnProcessElementId].constants[action.elementId];\r\n }\r\n\r\n if (assignments && assignments[action.elementId]) {\r\n delete newState.entities[action.processModelId].extensions[action.bpmnProcessElementId].assignments[action.elementId];\r\n }\r\n\r\n return newState;\r\n}\r\n\r\nfunction updateExtensions(state: ProcessEntitiesState, action: UpdateProcessExtensionsAction): ProcessEntitiesState {\r\n return {\r\n ...state,\r\n entities: {\r\n ...state.entities, [action.payload.processId]: {\r\n ...state.entities[action.payload.processId],\r\n extensions: action.payload.extensions\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction deleteExtensions(state: ProcessEntitiesState, action: DeleteProcessExtensionAction): ProcessEntitiesState {\r\n const entity = cloneDeep(state.entities[action.processId]);\r\n delete entity.extensions[action.bpmnProcessId];\r\n return {\r\n ...state,\r\n entities: {\r\n ...state.entities,\r\n [action.processId]: {\r\n ...entity\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction updateProcessVariables(state: ProcessEntitiesState, action: UpdateProcessVariablesAction): ProcessEntitiesState {\r\n const oldExtensions = cloneDeep(state.entities[action.payload.modelId].extensions);\r\n const oldProcessModel = new ProcessExtensionsModel(oldExtensions);\r\n if (!oldExtensions[action.payload.processId]) {\r\n oldExtensions[action.payload.processId] = createExtensionsObject();\r\n }\r\n const oldProperties = oldExtensions[action.payload.processId].properties;\r\n const newExtensions = oldProcessModel.setProperties(action.payload.processId, action.payload.properties);\r\n const newProcessExtensions = newExtensions[action.payload.processId];\r\n\r\n removeUpdatedPropertyMappings(newProcessExtensions, oldProperties);\r\n removeDeletedPropertyMapping(newProcessExtensions, oldProperties);\r\n\r\n return {\r\n ...state,\r\n entities: {\r\n ...state.entities,\r\n [action.payload.modelId]: {\r\n ...state.entities[action.payload.modelId],\r\n extensions: newExtensions\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction removeUpdatedPropertyMappings(newProcessExtensions: ProcessExtensionsContent, oldProperties: EntityProperties) {\r\n Object.values(newProcessExtensions.properties).forEach((property: EntityProperty) => {\r\n if (oldProperties[property.id] && (oldProperties[property.id].name !== property.name || oldProperties[property.id].type !== property.type)) {\r\n Object.keys(newProcessExtensions.mappings).forEach((elementId) => {\r\n removeParamMappings(newProcessExtensions.mappings, elementId, oldProperties[property.id].name);\r\n removeEmptyMapping(newProcessExtensions.mappings, elementId);\r\n });\r\n }\r\n });\r\n}\r\n\r\nfunction removeDeletedPropertyMapping(newProcessExtensions: ProcessExtensionsContent, oldProperties: EntityProperties) {\r\n const deletedProperties = Object.keys(oldProperties).filter((oldProperty) => {\r\n return Object.keys(newProcessExtensions.properties).findIndex(newProperty => newProperty === oldProperty) === -1;\r\n });\r\n Object.values(deletedProperties).forEach((oldPropertyId) => {\r\n Object.keys(newProcessExtensions.mappings).forEach((elementId) => {\r\n removeParamMappings(newProcessExtensions.mappings, elementId, oldProperties[oldPropertyId].name);\r\n removeEmptyMapping(newProcessExtensions.mappings, elementId);\r\n });\r\n });\r\n}\r\n\r\nfunction removeParamMappings(mappings, elementId, propertyName) {\r\n removeOutputMappings(mappings[elementId], propertyName);\r\n removeInputMappings(mappings[elementId], propertyName);\r\n\r\n removeEmptyElementMapping(mappings[elementId], 'inputs');\r\n removeEmptyElementMapping(mappings[elementId], 'outputs');\r\n}\r\n\r\nfunction removeOutputMappings(elementMappings, propertyName) {\r\n if (elementMappings.outputs && elementMappings.outputs[propertyName]) {\r\n delete elementMappings.outputs[propertyName];\r\n }\r\n}\r\n\r\nfunction removeInputMappings(elementMappings, propertyName) {\r\n if (elementMappings.inputs) {\r\n Object.keys(elementMappings.inputs).forEach((fieldId) => {\r\n if (elementMappings.inputs[fieldId].type === 'variable' && elementMappings.inputs[fieldId].value === propertyName) {\r\n delete elementMappings.inputs[fieldId];\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction removeEmptyElementMapping(elementMappings, key) {\r\n if (!!elementMappings[key] && !Object.keys(elementMappings[key]).length) {\r\n delete elementMappings[key];\r\n }\r\n}\r\n\r\nfunction removeEmptyMapping(mappings, elementId) {\r\n if (!Object.keys(mappings[elementId]).length) {\r\n delete mappings[elementId];\r\n }\r\n}\r\n\r\nfunction updateProcessVariablesMapping(state: ProcessEntitiesState, action: UpdateServiceParametersAction): ProcessEntitiesState {\r\n const oldExtensions = cloneDeep(state.entities[action.modelId].extensions);\r\n const processExtensionsModel = new ProcessExtensionsModel(oldExtensions);\r\n let newExtensions = processExtensionsModel.setMappings(action.processId, action.serviceId, action.serviceParameterMappings);\r\n\r\n const newProcessExtensions = newExtensions[action.processId];\r\n\r\n if (newProcessExtensions.mappings[action.serviceId]) {\r\n if (Object.keys(newProcessExtensions.mappings[action.serviceId]).length) {\r\n removeEmptyElementMapping(newProcessExtensions.mappings[action.serviceId], 'inputs');\r\n removeEmptyElementMapping(newProcessExtensions.mappings[action.serviceId], 'outputs');\r\n }\r\n removeEmptyMapping(newProcessExtensions.mappings, action.serviceId);\r\n }\r\n\r\n if (action.constants) {\r\n newExtensions = processExtensionsModel.setConstants(action.processId, action.serviceId, action.constants);\r\n }\r\n\r\n return {\r\n ...state,\r\n entities: {\r\n ...state.entities, [action.modelId]: {\r\n ...state.entities[action.modelId],\r\n extensions: newExtensions\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction updateProcessTaskAssignments(state: ProcessEntitiesState, action: UpdateServiceAssignmentAction): ProcessEntitiesState {\r\n const oldExtensions = cloneDeep(state.entities[action.modelId].extensions);\r\n const newExtensions = new ProcessExtensionsModel(oldExtensions).setAssignments(action.processId, action.serviceId, action.taskAssignment);\r\n\r\n return {\r\n ...state,\r\n entities: {\r\n ...state.entities, [action.modelId]: {\r\n ...state.entities[action.modelId],\r\n extensions: newExtensions\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction createProcess(state: ProcessEntitiesState, action: CreateProcessSuccessAction): ProcessEntitiesState {\r\n return processAdapter.addOne(action.process, state);\r\n}\r\n\r\nfunction removeProcess(state: ProcessEntitiesState, action: DeleteProcessSuccessAction): ProcessEntitiesState {\r\n const newState = cloneDeep(state);\r\n\r\n newState.entityContents[action.processId] = null;\r\n\r\n return processAdapter.removeOne(action.processId, newState);\r\n}\r\n\r\nfunction getProcessSuccess(state: ProcessEntitiesState, action: GetProcessSuccessAction): ProcessEntitiesState {\r\n const newState = cloneDeep(state);\r\n\r\n newState.entityContents[action.payload.process.id] = action.payload.diagram;\r\n\r\n return processAdapter.upsertOne(action.payload.process, newState);\r\n}\r\n\r\nfunction getProcessesSuccess(state: ProcessEntitiesState, action: GetProcessesSuccessAction): ProcessEntitiesState {\r\n return processAdapter.addMany(action.processes, {\r\n ...state,\r\n loading: false,\r\n loaded: true\r\n });\r\n}\r\n\r\nfunction updateProcess(state: ProcessEntitiesState, action: UpdateProcessSuccessAction): ProcessEntitiesState {\r\n const newState = {\r\n ...state,\r\n entityContents: {\r\n ...state.entityContents,\r\n [action.payload.id]: action.content\r\n }\r\n };\r\n\r\n return processAdapter.updateOne({ ...action.payload, changes: action.payload.changes }, newState);\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { EntityState, createEntityAdapter } from '@ngrx/entity';\r\nimport { Process, ProcessContent } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport interface ProcessEntitiesState extends EntityState {\r\n loading: boolean;\r\n loaded: boolean;\r\n entityContents: {[key: string]: ProcessContent};\r\n}\r\n\r\nexport const processAdapter = createEntityAdapter();\r\n\r\nexport const initialProcessEntitiesState = processAdapter.getInitialState({\r\n ...processAdapter.getInitialState(),\r\n loading: false,\r\n loaded: false,\r\n entityContents: {}\r\n});\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\n\r\nexport const OPEN_PROCESS_MESSAGES_DIALOG = 'Open process messages dialog';\r\n\r\nexport class OpenProcessMessagesDialogAction implements Action {\r\n readonly type = OPEN_PROCESS_MESSAGES_DIALOG;\r\n constructor() {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { ofType, Actions, Effect } from '@ngrx/effects';\r\nimport { switchMap, tap, take } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { LogService } from '@alfresco/adf-core';\r\nimport { Router } from '@angular/router';\r\nimport {\r\n AmaState,\r\n DialogService,\r\n BaseEffects,\r\n SetAppDirtyStateAction,\r\n selectSelectedProcess\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subject } from 'rxjs';\r\nimport { OpenProcessMessagesDialogAction, OPEN_PROCESS_MESSAGES_DIALOG } from './process-messages.actions';\r\nimport { MessagesDialogComponent } from '../components/process-modeler/messages/messages-dialog.component';\r\n\r\n@Injectable()\r\nexport class ProcessMessagesEffects extends BaseEffects {\r\n\r\n constructor(\r\n private actions$: Actions,\r\n protected logService: LogService,\r\n protected router: Router,\r\n private dialogService: DialogService,\r\n private store: Store) {\r\n super(router, logService);\r\n }\r\n\r\n @Effect({ dispatch: false })\r\n openProcessMessagesDialogEffect = this.actions$.pipe(\r\n ofType(OPEN_PROCESS_MESSAGES_DIALOG),\r\n switchMap(() => this.store.select(selectSelectedProcess).pipe(take(1))),\r\n tap(() => this.openMessagesDialog()\r\n ));\r\n\r\n private openMessagesDialog() {\r\n const propertiesUpdate$ = new Subject();\r\n const columns = ['id', 'name', 'delete'];\r\n\r\n this.dialogService.openDialog(MessagesDialogComponent, {\r\n disableClose: true,\r\n height: '530px',\r\n width: '1000px',\r\n data: { columns, propertiesUpdate$ },\r\n });\r\n\r\n propertiesUpdate$.subscribe(() => {\r\n this.store.dispatch(new SetAppDirtyStateAction(true));\r\n });\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { AssignmentModel } from '../components/assignment/assignment-dialog.component';\r\n\r\nexport const OPEN_TASK_ASSIGNMENT_DIALOG = 'Open task assignment dialog';\r\n\r\nexport class OpenTaskAssignmentDialogAction implements Action {\r\n readonly type = OPEN_TASK_ASSIGNMENT_DIALOG;\r\n constructor() {}\r\n}\r\n\r\nexport interface UpdateTaskAssignmentPayload {\r\n id: string;\r\n data: AssignmentModel;\r\n}\r\n\r\nexport const UPDATE_TASK_ASSIGNMENT_VARIABLES = 'UPDATE_TASK_ASSIGNMENT';\r\nexport class UpdateTaskAssignmentAction implements Action {\r\n readonly type = UPDATE_TASK_ASSIGNMENT_VARIABLES;\r\n constructor(public payload: UpdateTaskAssignmentPayload) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport {\r\n BaseEffects,\r\n DialogService,\r\n ProcessModelerServiceToken,\r\n ProcessModelerService,\r\n AmaState,\r\n SetAppDirtyStateAction\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { LogService } from '@alfresco/adf-core';\r\nimport { Router } from '@angular/router';\r\nimport { Effect, ofType, Actions } from '@ngrx/effects';\r\nimport { OpenTaskAssignmentDialogAction, OPEN_TASK_ASSIGNMENT_DIALOG, UpdateTaskAssignmentAction, UPDATE_TASK_ASSIGNMENT_VARIABLES } from './process-task-assignment.actions';\r\nimport { switchMap, take, map, tap, mergeMap } from 'rxjs/operators';\r\nimport { Store } from '@ngrx/store';\r\nimport { AssignmentDialogComponent, AssignmentParams, AssignmentSettings, AssignmentModel } from '../components/assignment/assignment-dialog.component';\r\nimport { Subject, of } from 'rxjs';\r\nimport { selectSelectedElement } from './process-editor.selectors';\r\nimport { TaskAssignmentService } from '../services/cardview-properties/task-assignment-item/task-assignment.service';\r\n\r\n@Injectable()\r\nexport class ProcessTaskAssignmentEffects extends BaseEffects {\r\n\r\n constructor(\r\n protected logService: LogService,\r\n protected router: Router,\r\n private actions$: Actions,\r\n private dialogService: DialogService,\r\n private taskAssignmentService: TaskAssignmentService,\r\n @Inject(ProcessModelerServiceToken) private processModelerService: ProcessModelerService,\r\n private store: Store\r\n ) {\r\n super(router, logService);\r\n }\r\n\r\n @Effect({ dispatch: false })\r\n openTaskAssignmentDialogEffect = this.actions$.pipe(\r\n ofType(OPEN_TASK_ASSIGNMENT_DIALOG),\r\n switchMap(() => this.store.select(selectSelectedElement).pipe(take(1))),\r\n tap((element) => this.openTaskAssignmentDialog(this.processModelerService.getElement(element.id))\r\n ));\r\n\r\n @Effect()\r\n updateTaskAssignmentEffect = this.actions$.pipe(\r\n ofType(UPDATE_TASK_ASSIGNMENT_VARIABLES),\r\n map((action: UpdateTaskAssignmentAction) => {\r\n const shapeId = action.payload.id;\r\n action.payload.data.assignments.forEach((assignment: AssignmentParams) => {\r\n this.processModelerService.updateElementProperty(shapeId, assignment.key, assignment.value);\r\n });\r\n }),\r\n mergeMap(() => of(new SetAppDirtyStateAction(true)))\r\n );\r\n\r\n private openTaskAssignmentDialog(element: Bpmn.DiagramElement) {\r\n const processId = element.businessObject.$parent.$type === 'bpmn:SubProcess' ? this.findParentProcess(element.businessObject.$parent).id :\r\n element.businessObject.$parent.id;\r\n const assignmentUpdate$ = new Subject ();\r\n const shapeId = element.id;\r\n this.dialogService.openDialog(AssignmentDialogComponent, {\r\n disableClose: true,\r\n height: '500px',\r\n width: '900px',\r\n data: { shapeId: shapeId, ...this.taskAssignmentService.getAssignments(element), assignmentUpdate$, processId: processId },\r\n });\r\n\r\n assignmentUpdate$.subscribe((assignments: AssignmentModel) => {\r\n this.store.dispatch(new UpdateTaskAssignmentAction({ id: shapeId, data: assignments }));\r\n this.taskAssignmentService.assignmentSubject.next(assignments);\r\n });\r\n }\r\n\r\n private findParentProcess(element) {\r\n if (element.$type === 'bpmn:Process') { return element; }\r\n for (const i in element) {\r\n if (element.hasOwnProperty(i)) {\r\n const parentProcess = this.findParentProcess(element.$parent);\r\n if (parentProcess) { return parentProcess; }\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { EntityProperties } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const OPEN_PROCESS_VARIABLES_DIALOG = 'Open process variables dialog';\r\n\r\nexport class OpenProcessVariablesDialogAction implements Action {\r\n readonly type = OPEN_PROCESS_VARIABLES_DIALOG;\r\n constructor(public processId: string) {}\r\n}\r\n\r\nexport interface UpdateProcessVariablesPayload {\r\n modelId: string;\r\n processId: string;\r\n properties: EntityProperties;\r\n}\r\n\r\nexport const UPDATE_PROCESS_VARIABLES = 'UPDATE_PROCESS_VARIABLES';\r\nexport class UpdateProcessVariablesAction implements Action {\r\n readonly type = UPDATE_PROCESS_VARIABLES;\r\n constructor(public payload: UpdateProcessVariablesPayload) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { OpenProcessVariablesDialogAction, OPEN_PROCESS_VARIABLES_DIALOG, UpdateProcessVariablesAction, UPDATE_PROCESS_VARIABLES } from './process-variables.actions';\r\nimport { ofType, Actions, Effect } from '@ngrx/effects';\r\nimport { switchMap, tap, take, map, mergeMap } from 'rxjs/operators';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { LogService } from '@alfresco/adf-core';\r\nimport { Router } from '@angular/router';\r\nimport {\r\n AmaState,\r\n DialogService,\r\n BaseEffects,\r\n SetAppDirtyStateAction,\r\n EntityProperties,\r\n selectSelectedTheme,\r\n ProcessModelerServiceToken,\r\n ProcessModelerService,\r\n VariablesComponent,\r\n selectSelectedProcess,\r\n BpmnCompositeProperty\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subject, of, zip } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ProcessVariablesEffects extends BaseEffects {\r\n\r\n constructor(\r\n private actions$: Actions,\r\n protected logService: LogService,\r\n protected router: Router,\r\n private dialogService: DialogService,\r\n @Inject(ProcessModelerServiceToken) private modelerService: ProcessModelerService,\r\n private store: Store\r\n ) {\r\n super(router, logService);\r\n }\r\n\r\n @Effect({ dispatch: false })\r\n openProcessVariablesDialogEffect = this.actions$.pipe(\r\n ofType(OPEN_PROCESS_VARIABLES_DIALOG),\r\n switchMap((action) => zip(of(action), this.store.select(selectSelectedProcess).pipe(take(1)))),\r\n tap(([action, model]) => {\r\n const processExtension = model.extensions[action.processId];\r\n return this.openVariablesDialog(model.id, action.processId, processExtension ? processExtension.properties : {});\r\n })\r\n );\r\n\r\n @Effect()\r\n updateProcessVariablesEffect = this.actions$.pipe(\r\n ofType(UPDATE_PROCESS_VARIABLES),\r\n map(action => {\r\n const shapeId = this.modelerService.getRootProcessElement().id;\r\n this.modelerService.updateElementProperty(shapeId, BpmnCompositeProperty.properties, action.payload.properties);\r\n }),\r\n mergeMap(() => of(new SetAppDirtyStateAction(true)))\r\n );\r\n\r\n private openVariablesDialog(modelId: string, processId: string, properties: EntityProperties) {\r\n const propertiesUpdate$ = new Subject();\r\n const title = 'PROCESS_EDITOR.ELEMENT_PROPERTIES.PROCESS_VARIABLES';\r\n const required = true;\r\n const columns = [ 'name', 'type', 'required', 'value', 'delete' ];\r\n\r\n const theme$ = this.store.select(selectSelectedTheme).pipe(\r\n map(theme => (theme.className === 'dark-theme' ? 'vs-dark' : 'vs-light'))\r\n );\r\n\r\n this.dialogService.openDialog(VariablesComponent, {\r\n disableClose: true,\r\n height: '530px',\r\n width: '1000px',\r\n data: { properties, title, columns, required, propertiesUpdate$, theme$ },\r\n });\r\n\r\n propertiesUpdate$.subscribe(data => {\r\n this.store.dispatch(new UpdateProcessVariablesAction({ modelId, processId, properties: data }));\r\n });\r\n }\r\n}\r\n","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n home\\r\\n \\r\\n {{ project.name }} ({{ project.version }})\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n done\\r\\n \\r\\n\\r\\n \\r\\n file_download\\r\\n \\r\\n\\r\\n \\r\\n more_vert\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

{{ 'PROJECT_EDITOR.NO_SELECTION' | translate}}

\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit, Inject, Optional } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport {\r\n ProjectEditorState,\r\n Project,\r\n selectProject,\r\n PROJECT_CONTEXT_MENU_OPTIONS,\r\n ProjectContextMenuOption,\r\n ProjectContextMenuActionClass\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { ExportProjectAction, ValidateProjectAttemptAction, ExportProjectAttemptAction, ExportProjectAttemptPayload } from '../../store/project-editor.actions';\r\n\r\n@Component({\r\n templateUrl: './project-content.component.html'\r\n})\r\nexport class ProjectContentComponent implements OnInit {\r\n project$: Observable>;\r\n openedFilters$: Subscription;\r\n\r\n constructor(\r\n @Inject(PROJECT_CONTEXT_MENU_OPTIONS)\r\n @Optional() public buttons: ProjectContextMenuOption[],\r\n private store: Store) {}\r\n\r\n ngOnInit() {\r\n this.project$ = this.store.select(selectProject);\r\n }\r\n\r\n downloadApp(project: Project) {\r\n const payload: ExportProjectAttemptPayload = {\r\n projectId: project.id,\r\n projectName: project.name,\r\n action: new ExportProjectAction({ projectId: project.id, projectName: project.name})\r\n };\r\n this.store.dispatch(new ExportProjectAttemptAction(payload));\r\n }\r\n\r\n validateApp(projectId: string): void {\r\n this.store.dispatch(new ValidateProjectAttemptAction(projectId));\r\n }\r\n\r\n handleClick(actionClass: ProjectContextMenuActionClass, projectId: string) {\r\n this.store.dispatch(new actionClass(projectId));\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n add_box\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ creator.icon }}\\r\\n {{ creator.name | translate }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Inject, AfterContentInit } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { selectMenuOpened } from '../../../store/selectors/app.selectors';\r\nimport { AmaState, selectSelectedProjectId, ModelCreatorDialogParams, MODEL_CREATORS, ModelCreator, OpenEntityDialogAction } from '@alfresco-dbp/modeling-shared/sdk';\r\nconst orderBy = require('lodash/orderBy');\r\n\r\n@Component({\r\n templateUrl: './project-navigation.component.html'\r\n})\r\nexport class ProjectNavigationComponent implements AfterContentInit {\r\n expanded$: Observable;\r\n selectedProjectId$: Observable;\r\n public creators: ModelCreator[];\r\n\r\n constructor(\r\n private store: Store,\r\n @Inject(MODEL_CREATORS) modelCreators: ModelCreator[]\r\n ) {\r\n this.creators = orderBy(modelCreators, ['order'], ['asc']);\r\n }\r\n\r\n openModelCreationDialog(dialogParams: ModelCreatorDialogParams): void {\r\n this.store.dispatch(new OpenEntityDialogAction(dialogParams));\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.expanded$ = this.store.select(selectMenuOpened);\r\n this.selectedProjectId$ = this.store.select(selectSelectedProjectId);\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n {{ filter.icon }}\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Byb2plY3QtZWRpdG9yL2NvbXBvbmVudHMvcHJvamVjdC10cmVlL3Byb2plY3QtdHJlZS1pY29ucy9wcm9qZWN0LXRyZWUtaWNvbnMuY29tcG9uZW50LnNjc3MifQ== */\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { SetMenuAction } from '../../../../store/actions';\r\nimport { ProjectTreeHelper } from '../project-tree.helper';\r\nimport { MODEL_TYPE, ModelFilter, OpenFilterAction, AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n selector: 'ama-project-tree-icons',\r\n templateUrl: './project-tree-icons.component.html',\r\n styleUrls: ['./project-tree-icons.component.scss']\r\n})\r\nexport class ProjectTreeIconsComponent {\r\n filters: ModelFilter[];\r\n\r\n @Input() projectId: string;\r\n\r\n constructor(private store: Store, private projectTreeHelper: ProjectTreeHelper) {\r\n this.filters = this.projectTreeHelper.getFilters();\r\n }\r\n\r\n onFilterIconClicked(filterType: MODEL_TYPE): void {\r\n this.store.dispatch(new SetMenuAction(true));\r\n this.store.dispatch(new OpenFilterAction(filterType));\r\n this.projectTreeHelper.getDataAdapter(filterType).load(this.projectId);\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n {{ filter.icon }}\\r\\n \\r\\n {{ filter.name | translate }}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ filter.icon }}\\r\\n\\r\\n {{ item.name }}\\r\\n \\r\\n
\\r\\n {{ 'PROJECT_EDITOR.NO_CONTENT' | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, OnInit, Inject } from '@angular/core';\r\nimport { MODEL_TYPE, ModelFilter, ModelCreator, AmaState, MODEL_CREATORS, OpenEntityDialogAction } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Store } from '@ngrx/store';\r\n\r\n@Component({\r\n selector: 'ama-project-tree-filter',\r\n templateUrl: './project-tree-filter.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ProjectTreeFilterComponent implements OnInit {\r\n @Input() projectId: string;\r\n @Input() filter: ModelFilter;\r\n @Input() contents: any[];\r\n @Input() loading: boolean;\r\n @Input() expanded: boolean;\r\n @Output() opened = new EventEmitter<{ projectId: string; type: string, loadData: boolean }>();\r\n @Output() closed = new EventEmitter<{ type: string }>();\r\n\r\n public ignoreOpenEmit: boolean;\r\n public creators: ModelCreator[];\r\n\r\n constructor(\r\n private store: Store,\r\n @Inject(MODEL_CREATORS) modelCreators: ModelCreator[]\r\n ) {\r\n this.creators = modelCreators;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.expanded) {\r\n this.ignoreOpenEmit = true;\r\n }\r\n }\r\n\r\n contentHasBeenLoaded() {\r\n return !this.loading;\r\n }\r\n\r\n contentsAreEmpty() {\r\n return !(this.contents && this.contents.length);\r\n }\r\n\r\n filterClosed(type: MODEL_TYPE): void {\r\n this.closed.emit({ type });\r\n }\r\n\r\n filterOpened(type: MODEL_TYPE): void {\r\n this.opened.emit({ projectId: this.projectId, type, loadData: !this.ignoreOpenEmit });\r\n if (!this.ignoreOpenEmit) {\r\n this.ignoreOpenEmit = false;\r\n }\r\n }\r\n\r\n openModelCreationModal(event: MouseEvent): void {\r\n event.stopPropagation();\r\n const modelCreator = this.creators.find(creator => creator.type === this.filter.type);\r\n this.store.dispatch(new OpenEntityDialogAction(modelCreator.dialog));\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { selectMenuOpened } from '../../../store/selectors/app.selectors';\r\nimport { selectSelectedProjectId, MODEL_TYPE, ModelFilter, OpenFilterAction, Filter, AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProjectTreeHelper } from './project-tree.helper';\r\nimport { CloseFilterAction } from '../../store/project-editor.actions';\r\nimport { selectOpenedFilters } from '../../store/selectors/project-tree.selectors';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'ama-project-tree',\r\n templateUrl: './project-tree.component.html'\r\n})\r\nexport class ProjectTreeComponent implements OnInit {\r\n expanded$: Observable;\r\n selectedProjectId$: Observable;\r\n openedFilters$: Observable;\r\n\r\n filters: ModelFilter[];\r\n\r\n constructor(private store: Store, private projectTreeHelper: ProjectTreeHelper) {\r\n this.filters = this.projectTreeHelper.getFilters();\r\n }\r\n\r\n ngOnInit() {\r\n this.expanded$ = this.store.select(selectMenuOpened);\r\n this.selectedProjectId$ = this.store.select(selectSelectedProjectId);\r\n this.openedFilters$ = this.store.select(selectOpenedFilters);\r\n }\r\n\r\n getFilteredContentExpandedState(filterType: string): Observable {\r\n const expandedPredicate = this.projectTreeHelper.getDataAdapter(filterType).expandedPredicate;\r\n return this.openedFilters$.pipe(map(expandedPredicate));\r\n }\r\n\r\n getFilteredContents(filterType: string): Observable[]> {\r\n return this.projectTreeHelper.getDataAdapter(filterType).contents;\r\n }\r\n\r\n getFilteredContentLoading(filterType: string): Observable {\r\n return this.projectTreeHelper.getDataAdapter(filterType).loading;\r\n }\r\n\r\n closeFilter({ type }) {\r\n this.store.dispatch(new CloseFilterAction(type));\r\n }\r\n\r\n openFilter({ projectId, type, loadData }): void {\r\n if (loadData) {\r\n this.projectTreeHelper.getDataAdapter(type).load(projectId);\r\n }\r\n this.store.dispatch(new OpenFilterAction(type));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { FilterDataAdapter, MODEL_FILTERS, ModelFilter } from '@alfresco-dbp/modeling-shared/sdk';\r\nconst orderBy = require('lodash/orderBy');\r\n\r\n@Injectable()\r\nexport class ProjectTreeHelper {\r\n constructor(@Inject(MODEL_FILTERS) private filters: ModelFilter[]) {}\r\n\r\n getFilters(): ModelFilter[] {\r\n return orderBy(this.filters, ['order'], ['asc']);\r\n }\r\n\r\n getDataAdapter(filterType: string): FilterDataAdapter {\r\n const selectedFilter = this.filters.filter((filter => filter.type === filterType))[0];\r\n return selectedFilter.adapter;\r\n }\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\"","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Input, ElementRef, ViewChild, Inject } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { LogService } from '@alfresco/adf-core';\r\nimport { ModelUploader, AmaState, MODEL_UPLOADERS } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Component({\r\n selector: 'ama-upload-file-button',\r\n templateUrl: './upload-file-button.component.html'\r\n})\r\nexport class UploadFileButtonComponent {\r\n @Input() type: string;\r\n @Input() projectId: string;\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n\r\n get acceptedFileTypes(): string {\r\n if (this.uploader) {\r\n return this.uploader.acceptedFileType;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n private get uploader() {\r\n return this.uploaders.filter(uploader => uploader.type === this.type)[0];\r\n }\r\n\r\n constructor(\r\n private store: Store,\r\n private logger: LogService,\r\n @Inject(MODEL_UPLOADERS) private uploaders: ModelUploader[]) {}\r\n\r\n onClick(event): void {\r\n event.stopPropagation();\r\n this.fileInput.nativeElement.click();\r\n }\r\n\r\n onUpload(files: File[]): void {\r\n try {\r\n const ActionClass = this.uploader.action;\r\n\r\n this.store.dispatch(new ActionClass({ file: files[0], projectId: this.projectId }));\r\n this.fileInput.nativeElement.value = null;\r\n } catch (error) {\r\n this.logger.error('Problem occurred while trying to upload model.');\r\n this.logger.error(error);\r\n }\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { CoreModule } from '@alfresco/adf-core';\r\nimport { SharedModule, getProjectEditorLogInitiator, PROJECT_EDITOR_STATE_NAME, provideLogFilter, provideTranslations } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProjectEditorRoutingModule } from './router/project-editor-routing.module';\r\nimport { ProjectEffects } from './store/effects/project.effects';\r\nimport { projectTreeReducer as tree } from './store/reducers/project-tree.reducer';\r\nimport { ProjectContentComponent } from './components/project-content/project-content.component';\r\nimport { ProjectNavigationComponent } from './components/project-navigation/project-navigation.component';\r\nimport { ProjectTreeComponent } from './components/project-tree/project-tree.component';\r\nimport { UploadFileButtonComponent } from './components/upload-file-button/upload-file-button.component';\r\nimport { ProjectTreeFilterComponent } from './components/project-tree/project-tree-module-filter/project-tree-filter.component';\r\nimport { ProjectEditorService } from './services/project-editor.service';\r\nimport { ProjectTreeHelper } from './components/project-tree/project-tree.helper';\r\nimport { ProjectTreeIconsComponent } from './components/project-tree/project-tree-icons/project-tree-icons.component';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { ExtensionsModule } from '@alfresco/adf-extensions';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ProjectEditorRoutingModule,\r\n CoreModule.forChild(),\r\n SharedModule,\r\n OverlayModule,\r\n StoreModule.forFeature(PROJECT_EDITOR_STATE_NAME, { tree }),\r\n EffectsModule.forFeature([ProjectEffects]),\r\n ExtensionsModule\r\n ],\r\n declarations: [\r\n ProjectContentComponent,\r\n ProjectNavigationComponent,\r\n ProjectTreeComponent,\r\n ProjectTreeFilterComponent,\r\n UploadFileButtonComponent,\r\n ProjectTreeIconsComponent,\r\n ],\r\n exports: [ProjectEditorRoutingModule],\r\n providers: [\r\n ProjectEditorService,\r\n ProjectTreeHelper,\r\n provideTranslations('project-editor'),\r\n provideLogFilter(getProjectEditorLogInitiator())\r\n ]\r\n})\r\nexport class ProjectEditorModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { Store } from '@ngrx/store';\r\nimport { ProjectEditorState, GetProjectAttemptAction } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ShowProcessesAction } from '../../../process-editor/store/process-editor.actions';\r\nimport { ShowConnectorsAction } from '../../../connector-editor/store/connector-editor.actions';\r\n\r\n@Injectable()\r\nexport class ProjectLoaderGuard implements CanActivate {\r\n constructor(private store: Store) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n const projectId = route.params.projectId;\r\n this.store.dispatch(new GetProjectAttemptAction(projectId));\r\n this.store.dispatch(new ShowProcessesAction(projectId));\r\n this.store.dispatch(new ShowConnectorsAction(projectId));\r\n return of(true);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, of } from 'rxjs';\r\nimport { SelectProjectAction } from '../../store/project-editor.actions';\r\nimport { AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\n@Injectable()\r\nexport class SelectedProjectSetterGuard implements CanActivate {\r\n\r\n constructor(private store: Store) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n const projectId = route.params.projectId;\r\n this.store.dispatch(new SelectProjectAction(projectId));\r\n return of(true);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { ProjectLoaderGuard } from './guards/project-loader.guard';\r\nimport { SelectedProjectSetterGuard } from './guards/selected-project-setter.guard';\r\n\r\n@NgModule({\r\n imports: [\r\n // Impossible to lazily load ADF modules, that is why the hack\r\n RouterModule.forChild([])\r\n // RouterModule.forChild(projectEditorRoutes)\r\n ],\r\n providers: [\r\n ProjectLoaderGuard,\r\n SelectedProjectSetterGuard,\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class ProjectEditorRoutingModule {}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Routes } from '@angular/router';\r\nimport { ProjectLoaderGuard } from './guards/project-loader.guard';\r\nimport { SelectedProjectSetterGuard } from './guards/selected-project-setter.guard';\r\nimport { ProjectContentComponent } from '../components/project-content/project-content.component';\r\nimport { ProjectNavigationComponent } from '../components/project-navigation/project-navigation.component';\r\nimport { MODULE_EDITOR_ROUTES } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const projectEditorRoutes: Routes = [\r\n {\r\n path: ':projectId',\r\n data: { hostFor: MODULE_EDITOR_ROUTES },\r\n canActivate: [ SelectedProjectSetterGuard, ProjectLoaderGuard ],\r\n children: [\r\n { path: '', component: ProjectContentComponent },\r\n { path: '', component: ProjectNavigationComponent, outlet: 'navigation' }\r\n ]\r\n }\r\n];\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Project, AmaApi, ValidationErrors } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ProjectEditorService {\r\n constructor(private amaApi: AmaApi) {}\r\n\r\n fetchProject(projectId: string): Observable> {\r\n return this.amaApi.Project.get(projectId);\r\n }\r\n\r\n exportProject(projectId: string): Observable {\r\n return this.amaApi.Project.export(projectId);\r\n }\r\n\r\n validateProject(projectId: string): Observable {\r\n return this.amaApi.Project.validate(projectId);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nimport { Effect, Actions, ofType } from '@ngrx/effects';\r\nimport { Injectable } from '@angular/core';\r\nimport { map, switchMap, catchError, filter, mergeMap } from 'rxjs/operators';\r\nimport { of, Observable } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { LogService } from '@alfresco/adf-core';\r\nimport { BaseEffects, OpenConfirmDialogAction, BlobService, SnackbarErrorAction, DownloadResourceService, LogFactoryService, LogAction,\r\n LeaveProjectAction,\r\n SnackbarInfoAction,\r\n ConfirmDialogData,\r\n getProjectEditorLogInitiator,\r\n GetProjectAttemptAction,\r\n GET_PROJECT_ATTEMPT,\r\n GetProjectSuccessAction} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { ProjectEditorService } from '../../services/project-editor.service';\r\nimport {\r\n ExportProjectAction,\r\n EXPORT_PROJECT,\r\n ValidateProjectAttemptAction,\r\n VALIDATE_PROJECT_ATTEMPT,\r\n ExportProjectAttemptAction,\r\n EXPORT_PROJECT_ATTEMPT,\r\n ExportProjectAttemptPayload\r\n} from '../project-editor.actions';\r\n import { ROUTER_NAVIGATED, RouterNavigatedAction } from '@ngrx/router-store';\r\nimport { Action } from '@ngrx/store';\r\n\r\n@Injectable()\r\nexport class ProjectEffects extends BaseEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private projectEditorService: ProjectEditorService,\r\n protected logService: LogService,\r\n protected router: Router,\r\n protected downloadService: DownloadResourceService,\r\n private logFactory: LogFactoryService,\r\n protected blobService: BlobService\r\n ) {\r\n super(router, logService);\r\n }\r\n\r\n @Effect()\r\n getProjectEffect = this.actions$.pipe(\r\n ofType(GET_PROJECT_ATTEMPT),\r\n map((action: GetProjectAttemptAction) => action.payload),\r\n switchMap(projectId => this.getProject(projectId))\r\n );\r\n\r\n @Effect()\r\n validateProjectAttemptEffect$ = this.actions$.pipe(\r\n ofType(VALIDATE_PROJECT_ATTEMPT),\r\n switchMap(action => this.validateProject(action.projectId))\r\n );\r\n\r\n @Effect()\r\n exportApplicationAttemptEffect = this.actions$.pipe(\r\n ofType(EXPORT_PROJECT_ATTEMPT),\r\n map((action: ExportProjectAttemptAction) => action.payload),\r\n switchMap(payload => this.exportProjectAttempt(payload))\r\n );\r\n\r\n @Effect()\r\n exportApplicationEffect = this.actions$.pipe(\r\n ofType(EXPORT_PROJECT),\r\n map((action: ExportProjectAction) => action.payload),\r\n switchMap(payload => this.exportProject(payload.projectId, payload.projectName))\r\n );\r\n\r\n @Effect()\r\n leaveProjectEffect = this.actions$.pipe(\r\n ofType(ROUTER_NAVIGATED),\r\n filter(() => !this.router.url.startsWith('/projects')),\r\n mergeMap(() => of(new LeaveProjectAction()))\r\n );\r\n\r\n private getProject(projectId: string) {\r\n return this.projectEditorService.fetchProject(projectId).pipe(\r\n switchMap(project => of(new GetProjectSuccessAction(project))),\r\n catchError(e =>\r\n this.genericErrorHandler(this.handleError.bind(this, 'PROJECT_EDITOR.ERROR.GET_PROJECT'), e)\r\n )\r\n );\r\n }\r\n\r\n private exportProject(projectId: string, name: string) {\r\n return this.projectEditorService.exportProject(projectId).pipe(\r\n switchMap(response => {\r\n this.downloadService.downloadResource(name, response, '.zip');\r\n return [\r\n this.logFactory.logInfo(getProjectEditorLogInitiator(), 'PROJECT_EDITOR.EXPORT_SUCCESS')\r\n ];\r\n }),\r\n catchError(e => this.genericErrorHandler(this.handleError.bind(this, 'PROJECT_EDITOR.ERROR.EXPORT_PROJECT'), e)));\r\n }\r\n\r\n private exportProjectAttempt(payload: ExportProjectAttemptPayload) {\r\n return this.projectEditorService.validateProject(payload.projectId).pipe(\r\n switchMap(() => this.exportProject(payload.projectId, payload.projectName)),\r\n catchError(response => this.genericErrorHandler(this.handleValidationError\r\n .bind(this, response, payload.action), response)));\r\n }\r\n\r\n private validateProject(projectId: string) {\r\n return this.projectEditorService.validateProject(projectId).pipe(\r\n switchMap(() => [\r\n new SnackbarInfoAction('PROJECT_EDITOR.PROJECT_VALID'),\r\n this.logFactory.logInfo(getProjectEditorLogInitiator(), 'PROJECT_EDITOR.PROJECT_VALID')\r\n ]),\r\n catchError(response => this.genericErrorHandler(this.handleValidationError.bind(this, response, null), response)));\r\n }\r\n\r\n private openConfirmDialog(data: ConfirmDialogData, action: Action) {\r\n return [\r\n new OpenConfirmDialogAction({\r\n dialogData: data,\r\n action: action || null\r\n }),\r\n this.logFactory.logError(getProjectEditorLogInitiator(), data.errors)\r\n ];\r\n }\r\n\r\n private handleValidationError(response: any, action: Action | null): Observable {\r\n return this.blobService.convert2Json(response.error.response.body).pipe(\r\n switchMap(body => {\r\n const errors = body.errors.map(error => error.description);\r\n this.logFactory.logError(getProjectEditorLogInitiator(), errors);\r\n return this.openConfirmDialog({\r\n title: body.message,\r\n subtitle: 'APP.DIALOGS.ERROR.SUBTITLE',\r\n errors: errors\r\n }, action );\r\n }\r\n ));\r\n }\r\n\r\n private handleError(userMessage: string) {\r\n return of(new SnackbarErrorAction(userMessage));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { MODEL_TYPE } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const SELECT_PROJECT = 'SELECT_PROJECT';\r\nexport class SelectProjectAction implements Action {\r\n readonly type = SELECT_PROJECT;\r\n constructor(public payload: string) {}\r\n}\r\n\r\nexport const CLOSE_FILTER = '[App Tree] Close filter';\r\nexport class CloseFilterAction implements Action {\r\n readonly type = CLOSE_FILTER;\r\n constructor(public filterType: MODEL_TYPE) {}\r\n}\r\n\r\nexport interface ExportProjectAttemptPayload {\r\n projectId: string;\r\n projectName: string;\r\n action?: Action;\r\n}\r\n\r\nexport interface ExportProjectPayload {\r\n projectId: string;\r\n projectName: string;\r\n}\r\n\r\nexport const EXPORT_PROJECT_ATTEMPT = 'EXPORT_PROJECT_ATTEMPT';\r\nexport class ExportProjectAttemptAction implements Action {\r\n readonly type = EXPORT_PROJECT_ATTEMPT;\r\n constructor(public payload: ExportProjectAttemptPayload) {}\r\n}\r\n\r\nexport const EXPORT_PROJECT = 'EXPORT_PROJECT';\r\nexport class ExportProjectAction implements Action {\r\n readonly type = EXPORT_PROJECT;\r\n constructor(public payload: ExportProjectPayload) {}\r\n}\r\n\r\nexport const VALIDATE_PROJECT_ATTEMPT = 'VALIDATE_PROJECT_ATTEMPT';\r\nexport class ValidateProjectAttemptAction implements Action {\r\n readonly type = VALIDATE_PROJECT_ATTEMPT;\r\n constructor(public projectId: string) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { ProjectTreeState, INITIAL_PROJECT_TREE_STATE as init, OPEN_FILTER, OpenFilterAction } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { SELECT_PROJECT, CLOSE_FILTER, CloseFilterAction } from '../project-editor.actions';\r\n\r\nexport function projectTreeReducer(state: ProjectTreeState = init, action: Action): ProjectTreeState {\r\n let newState: ProjectTreeState;\r\n\r\n switch (action.type) {\r\n case SELECT_PROJECT:\r\n newState = { ...init };\r\n break;\r\n\r\n case OPEN_FILTER:\r\n newState = openFilter(state, action);\r\n break;\r\n\r\n case CLOSE_FILTER:\r\n newState = closeFilter(state, action);\r\n break;\r\n\r\n default:\r\n newState = Object.assign({}, state);\r\n }\r\n\r\n return newState;\r\n}\r\n\r\nfunction openFilter(state: ProjectTreeState, action: OpenFilterAction): ProjectTreeState {\r\n const newState = { ...state, openedFilters: [ ...state.openedFilters ] };\r\n\r\n if (newState.openedFilters.indexOf(action.filterType) < 0) {\r\n newState.openedFilters.push(action.filterType);\r\n }\r\n\r\n return newState;\r\n}\r\n\r\nfunction closeFilter(state: ProjectTreeState, action: CloseFilterAction): ProjectTreeState {\r\n const newState = {\r\n ...state,\r\n openedFilters: state.openedFilters.filter(filter => filter !== action.filterType)\r\n };\r\n\r\n return newState;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createSelector } from '@ngrx/store';\r\nimport { selectProjectTree, ProjectTreeState, PROCESS } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const selectOpenedFilters = createSelector(selectProjectTree,\r\n (state: ProjectTreeState) => {\r\n const openedFilters = state.openedFilters;\r\n return openedFilters.length ? openedFilters : [PROCESS];\r\n }\r\n);\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport * from './actions/ui';\r\nexport * from './actions/settings';\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { AppTheme } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport enum AppActionTypes {\r\n AsyncInit = '[App] AsyncInit',\r\n LoggedIn = '[App] LoggedIn',\r\n Logout = '[App] Logout'\r\n}\r\n\r\nexport class AsyncInitAction implements Action {\r\n readonly type = AppActionTypes.AsyncInit;\r\n constructor(public config: { selectedTheme: AppTheme; menuOpened: boolean, showConnectorsWithTemplate: boolean }) {}\r\n}\r\n\r\nexport class LogoutAction implements Action {\r\n readonly type = AppActionTypes.Logout;\r\n constructor() {}\r\n}\r\n\r\nexport class LoggedInAction implements Action {\r\n readonly type = AppActionTypes.LoggedIn;\r\n constructor() {}\r\n}\r\n\r\nexport const CLEAR_LOG_HISTORY = '[App] CLEAR_LOG_HISTORY';\r\nexport class ClearLogHistoryAction implements Action {\r\n readonly type = CLEAR_LOG_HISTORY;\r\n constructor() {}\r\n}\r\n\r\nexport type AppActions = AsyncInitAction | LogoutAction | LoggedInAction;\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\n\r\nexport interface UpdateSettingsPayload {\r\n theme: string;\r\n}\r\n\r\nexport const UPDATE_SETTINGS = 'UPDATE_SETTINGS';\r\nexport class UpdateSettingsAction implements Action {\r\n readonly type = UPDATE_SETTINGS;\r\n constructor(public payload: UpdateSettingsPayload) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\n\r\nexport const SET_MENU = 'SET_MENU';\r\nexport class SetMenuAction implements Action {\r\n readonly type = SET_MENU;\r\n constructor(public payload: boolean) {}\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Effect, Actions, ofType } from '@ngrx/effects';\r\nimport { tap, switchMap } from 'rxjs/operators';\r\nimport { LogoutAction, AppActionTypes, AsyncInitAction, LoggedInAction } from '../actions/app.actions';\r\nimport { AmaAuthenticationService } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { StorageService } from '@alfresco/adf-core';\r\nimport { appThemes } from '../../app/themes';\r\nimport { of } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AuthEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private storageService: StorageService,\r\n private amaAuthenticationService: AmaAuthenticationService\r\n ) {}\r\n\r\n @Effect({ dispatch: false })\r\n logoutEffect$ = this.actions$.pipe(\r\n ofType(AppActionTypes.Logout),\r\n tap(() => {\r\n this.amaAuthenticationService.logout();\r\n })\r\n );\r\n\r\n @Effect()\r\n loggedInEffect$ = this.actions$.pipe(\r\n ofType(AppActionTypes.LoggedIn),\r\n switchMap(this.setupFromStorage.bind(this))\r\n );\r\n\r\n private setupFromStorage() {\r\n const menuOpened = JSON.parse(this.storageService.getItem('menuOpened')),\r\n preservedTheme = this.storageService.getItem('selectedTheme') || 'light-theme',\r\n selectedTheme = appThemes.find(appTheme => appTheme.className === preservedTheme),\r\n showConnectorsWithTemplate = JSON.parse(this.storageService.getItem('showConnectorsWithTemplate')) || false;\r\n\r\n return of(new AsyncInitAction({ selectedTheme, menuOpened, showConnectorsWithTemplate }));\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Effect, Actions, ofType } from '@ngrx/effects';\r\nimport { Injectable, RendererFactory2 } from '@angular/core';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport {\r\n OPEN_CONFIRM_DIALOG,\r\n OpenConfirmDialogAction,\r\n DialogService,\r\n ConfirmDialogData,\r\n EntityDialogComponent,\r\n SetApplicationLoadingStateAction,\r\n MODELER_NAME_REGEX,\r\n CreateProjectAttemptAction,\r\n OPEN_DIALOG,\r\n OpenDialogAction,\r\n CLOSE_ALL_DIALOGS,\r\n CloseAllDialogsAction,\r\n OpenEntityDialogAction,\r\n OPEN_ENTITY_DIALOG,\r\n CreateProjectDialogAction,\r\n CREATE_PROJECT_DIALOG,\r\n IMPORT_PROJECT_DIALOG,\r\n ImportProjectDialogAction,\r\n OVERRIDE_PROJECT_NAME_DIALOG,\r\n OverrideProjectNameDialogAction,\r\n OverrideProjectAttemptAction,\r\n UploadProjectAttemptAction\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { Action, Store } from '@ngrx/store';\r\n\r\n@Injectable()\r\nexport class DialogEffects {\r\n private projectFileInput: HTMLInputElement;\r\n\r\n constructor(\r\n private store: Store,\r\n private actions$: Actions,\r\n private dialogService: DialogService,\r\n rendererFactory: RendererFactory2\r\n ) {\r\n const renderer = rendererFactory.createRenderer(null, null);\r\n\r\n this.projectFileInput = renderer.createElement(\r\n 'input'\r\n ) as HTMLInputElement;\r\n this.projectFileInput.classList.add('app-import-project');\r\n this.projectFileInput.type = 'file';\r\n this.projectFileInput.style.display = 'none';\r\n this.projectFileInput.setAttribute('multiple', '');\r\n this.projectFileInput.accept =\r\n 'application/zip,application/x-zip,application/x-zip-compressed';\r\n this.projectFileInput.addEventListener('change', event =>\r\n this.importProject(event)\r\n );\r\n renderer.appendChild(document.body, this.projectFileInput);\r\n }\r\n\r\n @Effect({ dispatch: false })\r\n openDialog = this.actions$.pipe(\r\n ofType>(OPEN_DIALOG),\r\n map(action =>\r\n this.dialogService.openDialog(\r\n action.dialogContent,\r\n action.dialogConfig\r\n )\r\n )\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n closeDialog = this.actions$.pipe(\r\n ofType(CLOSE_ALL_DIALOGS),\r\n map(() => this.dialogService.closeAll())\r\n );\r\n\r\n @Effect()\r\n confirmDialogEffect = this.actions$.pipe(\r\n ofType(OPEN_CONFIRM_DIALOG),\r\n switchMap(action =>\r\n this.openConfirmDialog(\r\n action.payload.action,\r\n action.payload.dialogData\r\n )\r\n )\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n openEntityDialogEffect = this.actions$.pipe(\r\n ofType(OPEN_ENTITY_DIALOG),\r\n map(action => action.payload),\r\n map(data =>\r\n this.dialogService.openDialog(EntityDialogComponent, { data })\r\n )\r\n );\r\n\r\n @Effect()\r\n createProject$ = this.actions$.pipe(\r\n ofType(CREATE_PROJECT_DIALOG),\r\n map(\r\n () =>\r\n new OpenEntityDialogAction({\r\n title: 'DASHBOARD.NEW_MENU.CREATE_PROJECT_TITLE',\r\n nameField: 'DASHBOARD.DIALOGS.PROJECT_NAME',\r\n descriptionField: 'DASHBOARD.DIALOGS.PROJECT_DESC',\r\n action: CreateProjectAttemptAction,\r\n allowedCharacters: {\r\n regex: MODELER_NAME_REGEX,\r\n error: 'APP.DIALOGS.ERROR.GENERAL_NAME_VALIDATION'\r\n }\r\n })\r\n )\r\n );\r\n\r\n @Effect()\r\n overrideNameProject$ = this.actions$.pipe(\r\n ofType(OVERRIDE_PROJECT_NAME_DIALOG),\r\n map(\r\n (action) =>\r\n new OpenEntityDialogAction({\r\n title: 'DASHBOARD.NEW_MENU.OVERRIDE_PROJECT_TITLE',\r\n nameField: 'DASHBOARD.DIALOGS.PROJECT_NAME',\r\n descriptionField: 'DASHBOARD.DIALOGS.PROJECT_DESC',\r\n submitData: {\r\n file: action.file\r\n },\r\n action: OverrideProjectAttemptAction,\r\n allowedCharacters: {\r\n regex: MODELER_NAME_REGEX,\r\n error: 'APP.DIALOGS.ERROR.GENERAL_NAME_VALIDATION'\r\n }\r\n })\r\n )\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n importProject$ = this.actions$.pipe(\r\n ofType(IMPORT_PROJECT_DIALOG),\r\n map(() => this.projectFileInput.click())\r\n );\r\n\r\n private openConfirmDialog(action: Action, dialogData: ConfirmDialogData) {\r\n return this.dialogService\r\n .confirm(dialogData, action)\r\n .pipe(\r\n switchMap(confirmation =>\r\n confirmation\r\n ? [new SetApplicationLoadingStateAction(false), action]\r\n : [new SetApplicationLoadingStateAction(false)]\r\n )\r\n );\r\n }\r\n\r\n private importProject(event: any): void {\r\n const input = event.currentTarget;\r\n\r\n if (input && input.files && input.files.length > 0) {\r\n this.store.dispatch(new UploadProjectAttemptAction(input.files[0]));\r\n event.target.value = '';\r\n }\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Effect, Actions, ofType } from '@ngrx/effects';\r\nimport { Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { StorageService } from '@alfresco/adf-core';\r\nimport { UPDATE_SETTINGS, UpdateSettingsAction, UpdateSettingsPayload } from '../actions/settings';\r\n\r\n@Injectable()\r\nexport class SettingsEffects {\r\n constructor(private actions$: Actions, private storageService: StorageService) {}\r\n\r\n @Effect({ dispatch: false })\r\n updateSettingsEffect = this.actions$.pipe(\r\n ofType(UPDATE_SETTINGS),\r\n map(action => this.saveToLocalStorage(action.payload))\r\n );\r\n\r\n private saveToLocalStorage(payload: UpdateSettingsPayload): void {\r\n this.storageService.setItem('selectedTheme', payload.theme);\r\n }\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Effect, Actions, ofType } from '@ngrx/effects';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n SnackbarErrorAction,\r\n SNACKBAR_ERROR,\r\n SNACKBAR_INFO,\r\n SnackbarInfoAction,\r\n SnackbarWarningAction,\r\n SNACKBAR_WARNING\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { NotificationService } from '@alfresco/adf-core';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class SnackbarEffects {\r\n\r\n constructor(private actions$: Actions, private notificationService: NotificationService) {\r\n }\r\n\r\n @Effect({ dispatch: false }) infoEffect = this.actions$.pipe(\r\n ofType(SNACKBAR_INFO),\r\n map(({ message, params }) => {\r\n this.notificationService.showInfo(message, null, params);\r\n })\r\n );\r\n\r\n @Effect({ dispatch: false }) warningEffect = this.actions$.pipe(\r\n ofType(SNACKBAR_WARNING),\r\n map(({ message, params }) => {\r\n this.notificationService.showWarning(message, null, params);\r\n })\r\n );\r\n\r\n @Effect({ dispatch: false }) errorEffect = this.actions$.pipe(\r\n ofType(SNACKBAR_ERROR),\r\n map(({ message, params }) => {\r\n this.notificationService.showError(message, null, params);\r\n })\r\n );\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Effect, Actions, ofType } from '@ngrx/effects';\r\nimport { StorageService } from '@alfresco/adf-core';\r\nimport { SetMenuAction, SET_MENU } from '../actions/ui';\r\nimport { SetAppDirtyStateAction, SET_APP_DIRTY_STATE, AmaTitleService } from '@alfresco-dbp/modeling-shared/sdk';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class UiEffects {\r\n constructor(\r\n private actions$: Actions,\r\n private storageService: StorageService,\r\n private titleService: AmaTitleService\r\n ) {}\r\n\r\n @Effect({ dispatch: false })\r\n setMenu = this.actions$.pipe(\r\n ofType(SET_MENU),\r\n tap(action => {\r\n this.storageService.setItem('menuOpened', action.payload.toString());\r\n })\r\n );\r\n\r\n @Effect({ dispatch: false })\r\n SetAppDirtyStateEffect = this.actions$.pipe(\r\n ofType(SET_APP_DIRTY_STATE),\r\n tap(action => {\r\n if (action.payload) {\r\n this.titleService.setUnsavedTitle();\r\n } else {\r\n this.titleService.setSavedTitle();\r\n }\r\n })\r\n );\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { UPDATE_SETTINGS, UpdateSettingsAction, SET_MENU, SetMenuAction } from '../actions';\r\nimport { INITIAL_APP_STATE } from '../states/app.state';\r\nimport { SELECT_PROJECT, SelectProjectAction } from '../../project-editor/store/project-editor.actions';\r\nimport { appThemes } from '../../app/themes';\r\nimport {\r\n AppActionTypes,\r\n AsyncInitAction,\r\n CLEAR_LOG_HISTORY\r\n} from '../actions/app.actions';\r\nimport {\r\n AppState,\r\n SET_APP_DIRTY_STATE,\r\n SetAppDirtyStateAction,\r\n MODEL_OPENED,\r\n ModelOpenedAction,\r\n MODEL_CLOSED,\r\n ModelClosedAction,\r\n TOOLBAR_MESSAGE,\r\n ToolbarMessageAction,\r\n LOADED_APPLICATION,\r\n SetApplicationLoadingStateAction,\r\n LogAction,\r\n LOG_ACTION,\r\n SET_LOG_HISTORY_VISIBILITY,\r\n SetLogHistoryVisibilityAction,\r\n} from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport function appReducer(state: AppState = INITIAL_APP_STATE, action: Action): AppState {\r\n let newState: AppState;\r\n\r\n switch (action.type) {\r\n case AppActionTypes.AsyncInit:\r\n newState = asyncInit(state, action);\r\n break;\r\n case UPDATE_SETTINGS:\r\n newState = updateSettings(state, action);\r\n break;\r\n\r\n case SET_MENU:\r\n newState = setMenuState(state, action);\r\n break;\r\n\r\n case SELECT_PROJECT:\r\n newState = selectProject(state, action);\r\n break;\r\n\r\n case MODEL_OPENED:\r\n newState = selectOpenedModel(state, action);\r\n break;\r\n\r\n case MODEL_CLOSED:\r\n newState = deselectOpenedModel(state, action);\r\n break;\r\n\r\n case SET_APP_DIRTY_STATE:\r\n newState = setDirtyState(state, action);\r\n break;\r\n\r\n case TOOLBAR_MESSAGE:\r\n return {\r\n ...state,\r\n toolbar: {\r\n ...state.toolbar,\r\n userMessage: (action).message\r\n }\r\n };\r\n\r\n case LOADED_APPLICATION:\r\n return setLoadedAppState(state, action);\r\n break;\r\n\r\n case LOG_ACTION:\r\n return storeLog(state, action);\r\n\r\n case CLEAR_LOG_HISTORY:\r\n return {\r\n ...state,\r\n logs: []\r\n };\r\n\r\n case SET_LOG_HISTORY_VISIBILITY:\r\n return {\r\n ...state,\r\n toolbar: {\r\n ...state.toolbar,\r\n logHistoryVisible: (action).visible\r\n }\r\n };\r\n\r\n default:\r\n newState = Object.assign({}, state);\r\n }\r\n\r\n return newState;\r\n}\r\n\r\nfunction setDirtyState(state: AppState, action: SetAppDirtyStateAction): AppState {\r\n return { ...state, dirtyState: action.payload };\r\n}\r\n\r\nfunction asyncInit(state: AppState, action: AsyncInitAction): AppState {\r\n const menuOpened = action.config.menuOpened;\r\n\r\n return {\r\n ...state,\r\n selectedTheme: action.config.selectedTheme,\r\n ...(menuOpened !== null ? { menuOpened } : {})\r\n };\r\n}\r\n\r\nfunction updateSettings(state: AppState, action: UpdateSettingsAction): AppState {\r\n const newState = Object.assign({}, state);\r\n newState.selectedTheme = appThemes.find(appTheme => appTheme.className === action.payload.theme);\r\n return newState;\r\n}\r\n\r\nfunction setMenuState(state: AppState, action: SetMenuAction): AppState {\r\n const newState = Object.assign({}, state);\r\n newState.menuOpened = action.payload;\r\n return newState;\r\n}\r\n\r\nfunction selectProject(state: AppState, action: SelectProjectAction): AppState {\r\n const newState = Object.assign({}, state);\r\n newState.selectedProjectId = action.payload;\r\n newState.openedModel = null;\r\n return newState;\r\n}\r\n\r\nfunction selectOpenedModel(state: AppState, action: ModelOpenedAction): AppState {\r\n const newState = Object.assign({}, state);\r\n newState.openedModel = action.model;\r\n return newState;\r\n}\r\n\r\nfunction deselectOpenedModel(state: AppState, action: ModelClosedAction): AppState {\r\n const newState = Object.assign({}, state);\r\n newState.openedModel = null;\r\n return newState;\r\n}\r\n\r\nfunction storeLog(state: AppState, action: LogAction): AppState {\r\n return {\r\n ...state,\r\n toolbar: {\r\n ...state.toolbar,\r\n },\r\n logs: [\r\n action.log,\r\n ...state.logs\r\n ]\r\n };\r\n}\r\n\r\nfunction setLoadedAppState(state: AppState, action: SetApplicationLoadingStateAction): AppState {\r\n return {\r\n ...state,\r\n toolbar: {\r\n ...state.toolbar,\r\n inProgress: action.loading\r\n }\r\n };\r\n\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { AppActionTypes } from '../actions/app.actions';\r\nimport { INITIAL_APP_STATE } from '../states/app.state';\r\n\r\nexport function logoutMetaReducer(reducer) {\r\n return function logoutReducer(state, action) {\r\n if (action.type === AppActionTypes.Logout) {\r\n return reducer({ ...INITIAL_APP_STATE }, action);\r\n }\r\n return reducer(state, action);\r\n };\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { MetaReducer } from '@ngrx/store';\r\nimport { environment } from '../../../environments/environment';\r\nimport { logoutMetaReducer } from './logout.meta.reducer';\r\nimport { storeFreeze } from 'ngrx-store-freeze';\r\n\r\nexport const metaReducers: MetaReducer[] = [\r\n ...(!environment.production ? [storeFreeze] : []),\r\n logoutMetaReducer\r\n];\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { routerReducer } from '@ngrx/router-store';\r\nimport { appReducer } from './app.reducer';\r\nimport { settingsReducer } from './settings.reducer';\r\n\r\nexport const rootReducers = {\r\n app: appReducer,\r\n router: routerReducer,\r\n settings: settingsReducer\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Action } from '@ngrx/store';\r\nimport { INITIAL_SETTINGS_STATE, AmaSettingsState } from './../states/settings.state';\r\nimport { CHANGE_CONNECTOR_SETTINGS, ChangedConnectorSettingsAction } from './../../connector-editor/store/connector-editor.actions';\r\nimport { AppActionTypes, AsyncInitAction } from '../actions/app.actions';\r\n\r\nexport function settingsReducer(\r\n state: AmaSettingsState = INITIAL_SETTINGS_STATE,\r\n action: Action\r\n): AmaSettingsState {\r\n switch (action.type) {\r\n case CHANGE_CONNECTOR_SETTINGS:\r\n return changedConnectorSettings(state, action);\r\n case AppActionTypes.AsyncInit:\r\n return loadFromLocalStorage(state, action);\r\n default:\r\n return { ...state };\r\n }\r\n}\r\n\r\nfunction changedConnectorSettings(state: AmaSettingsState, action: ChangedConnectorSettingsAction): AmaSettingsState {\r\n const newState = {...state, connectors: {showWithTemplate: action.isChecked}};\r\n return newState;\r\n}\r\n\r\nfunction loadFromLocalStorage(state: AmaSettingsState, action: AsyncInitAction) {\r\n const newState = {...state, connectors: {showWithTemplate: action.config.showConnectorsWithTemplate}};\r\n return newState;\r\n}\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { createSelector } from '@ngrx/store';\r\nimport { AppState, selectApp, allLogFilter } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const selectMenuOpened = createSelector(selectApp, (state: AppState) => state.menuOpened);\r\n\r\nexport const selectToolbarState = createSelector(selectApp, (state: AppState) => state.toolbar);\r\nexport const selectToolbarUserMessage = createSelector(selectToolbarState, (state) => state.userMessage);\r\nexport const selectToolbarInProgress = createSelector(selectToolbarState, (state) => state.inProgress);\r\nexport const selectToolbarLogs = createSelector(selectApp, (state: AppState) => state.logs);\r\nexport const selectToolbarLogsVisibility = createSelector(selectToolbarState, (state) => state.logHistoryVisible);\r\nexport const selectLogsByInitiator = initiator => createSelector(\r\n selectToolbarLogs,\r\n (logs) => {\r\n if (initiator.key === allLogFilter.key) {\r\n return logs;\r\n }\r\n return logs.filter(log => log.initiator.key === initiator.key);\r\n }\r\n);\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { appThemes } from '../../app/themes';\r\nimport { AppState, AmaState } from '@alfresco-dbp/modeling-shared/sdk';\r\n\r\nexport const INITIAL_APP_STATE: AppState = {\r\n selectedProjectId: null,\r\n openedModel: null,\r\n menuOpened: true,\r\n selectedTheme: appThemes[0],\r\n dirtyState: false,\r\n toolbar: {\r\n inProgress: false,\r\n userMessage: '',\r\n logHistoryVisible: false,\r\n },\r\n logs: []\r\n\r\n};\r\n\r\nexport const INITIAL_STATE: AmaState = {\r\n app: INITIAL_APP_STATE\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nexport interface AmaSettingsState {\r\n connectors: AmaConnectorSettings;\r\n}\r\n\r\nexport interface AmaConnectorSettings {\r\n showWithTemplate: boolean;\r\n}\r\n\r\nexport const INITIAL_SETTINGS_STATE: AmaSettingsState = {\r\n connectors: {\r\n showWithTemplate: false\r\n }\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n","/*!\r\n * @license\r\n * Copyright 2019 Alfresco, Inc. and/or its affiliates.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\nimport 'hammerjs';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n"],"sourceRoot":""}