@netgrif/components-core 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +132 -0
- package/README.md +105 -0
- package/bundles/netgrif-components-core.umd.js +32298 -0
- package/bundles/netgrif-components-core.umd.js.map +1 -0
- package/bundles/netgrif-components-core.umd.min.js +17 -0
- package/bundles/netgrif-components-core.umd.min.js.map +1 -0
- package/commons/angular-cli-devkit-core-strings.d.ts +93 -0
- package/commons/import-to-add.d.ts +5 -0
- package/commons/schema.d.ts +277 -0
- package/commons/view-class-info.d.ts +22 -0
- package/esm2015/assets/i18n/de.json +419 -0
- package/esm2015/assets/i18n/en.json +419 -0
- package/esm2015/assets/i18n/sk.json +419 -0
- package/esm2015/commons/angular-cli-devkit-core-strings.js +157 -0
- package/esm2015/commons/import-to-add.js +7 -0
- package/esm2015/commons/schema.js +7 -0
- package/esm2015/commons/view-class-info.js +52 -0
- package/esm2015/lib/admin/public-api.js +9 -0
- package/esm2015/lib/admin/role-assignment/abstract-role-assignment.js +77 -0
- package/esm2015/lib/admin/role-assignment/services/ProcessList.js +155 -0
- package/esm2015/lib/admin/role-assignment/services/role-assignment.service.js +40 -0
- package/esm2015/lib/admin/user-invite/abstract-user-invite.component.js +77 -0
- package/esm2015/lib/admin/user-invite/services/organization-list.service.js +63 -0
- package/esm2015/lib/admin/user-invite/services/user-invite.service.js +31 -0
- package/esm2015/lib/allowed-nets/public-api.js +4 -0
- package/esm2015/lib/allowed-nets/services/allowed-nets.service.js +74 -0
- package/esm2015/lib/allowed-nets/services/base-allowed-nets.service.js +54 -0
- package/esm2015/lib/allowed-nets/services/factory/allowed-nets-service-factory.js +129 -0
- package/esm2015/lib/authentication/anonymous/anonymous.service.js +63 -0
- package/esm2015/lib/authentication/authentication.factory.js +16 -0
- package/esm2015/lib/authentication/authentication.module.js +32 -0
- package/esm2015/lib/authentication/components/abstract-authentication-overlay.js +50 -0
- package/esm2015/lib/authentication/models/credentials.js +2 -0
- package/esm2015/lib/authentication/models/public-api.js +5 -0
- package/esm2015/lib/authentication/models/transformer.js +2 -0
- package/esm2015/lib/authentication/models/user.transformer.js +19 -0
- package/esm2015/lib/authentication/public-api.js +14 -0
- package/esm2015/lib/authentication/services/anonymous-authentication-interceptor.js +44 -0
- package/esm2015/lib/authentication/services/authentication/authentication.service.js +71 -0
- package/esm2015/lib/authentication/services/authentication-interceptor.js +52 -0
- package/esm2015/lib/authentication/services/authentication-method.service.js +5 -0
- package/esm2015/lib/authentication/services/guard/authentication-guard.service.js +39 -0
- package/esm2015/lib/authentication/services/methods/basic-authentication/basic-authentication.service.js +48 -0
- package/esm2015/lib/authentication/services/methods/null-authentication/null-authentication.service.js +19 -0
- package/esm2015/lib/authentication/services/public-api.js +7 -0
- package/esm2015/lib/authentication/session/null-storage.js +15 -0
- package/esm2015/lib/authentication/session/public-api.js +3 -0
- package/esm2015/lib/authentication/session/services/session.service.js +156 -0
- package/esm2015/lib/authentication/sign-up/models/user-invitation-request.js +2 -0
- package/esm2015/lib/authentication/sign-up/models/user-registration-request.js +2 -0
- package/esm2015/lib/authentication/sign-up/public-api.js +8 -0
- package/esm2015/lib/authentication/sign-up/services/sign-up.service.js +105 -0
- package/esm2015/lib/authentication/sign-up/sign-up.module.js +13 -0
- package/esm2015/lib/authorization/authority/authority-guard.service.js +50 -0
- package/esm2015/lib/authorization/group/group-guard.service.js +67 -0
- package/esm2015/lib/authorization/permission/permission.service.js +116 -0
- package/esm2015/lib/authorization/public-api.js +10 -0
- package/esm2015/lib/authorization/role/role-guard.service.js +105 -0
- package/esm2015/lib/changed-fields/public-api.js +2 -0
- package/esm2015/lib/changed-fields/services/changed-fields.service.js +32 -0
- package/esm2015/lib/configuration/configuration.service.js +190 -0
- package/esm2015/lib/configuration/public-api.js +3 -0
- package/esm2015/lib/covalent/covalent.module.js +22 -0
- package/esm2015/lib/currency/currency.module.js +23 -0
- package/esm2015/lib/dashboard/cards/count-card/abstract-count-card.js +39 -0
- package/esm2015/lib/dashboard/cards/custom-card/abstract-custom-card.js +47 -0
- package/esm2015/lib/dashboard/cards/iframe-card/abstract-iframe-card.js +14 -0
- package/esm2015/lib/dashboard/cards/model/card-grid-element.js +2 -0
- package/esm2015/lib/dashboard/cards/model/count-card.js +2 -0
- package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/aggregation-query.js +2 -0
- package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/aggregation-result.js +2 -0
- package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/custom-card.js +2 -0
- package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/dashboard-event-content.js +2 -0
- package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/dashboard-multi-data.js +7 -0
- package/esm2015/lib/dashboard/cards/model/custom-dashboard-model/dashboard-single-data.js +7 -0
- package/esm2015/lib/dashboard/cards/model/dashboard-card-types.js +13 -0
- package/esm2015/lib/dashboard/cards/model/dashboard-card.js +2 -0
- package/esm2015/lib/dashboard/cards/model/graph-card.js +2 -0
- package/esm2015/lib/dashboard/cards/model/iframe-card.js +2 -0
- package/esm2015/lib/dashboard/dashboard-content/abstract-dashboard-content.js +19 -0
- package/esm2015/lib/dashboard/dashboard-content/dashboard-params.js +2 -0
- package/esm2015/lib/dashboard/public-api.js +20 -0
- package/esm2015/lib/data-fields/boolean-field/abstract-boolean-field.component.js +40 -0
- package/esm2015/lib/data-fields/boolean-field/models/boolean-field.js +24 -0
- package/esm2015/lib/data-fields/button-field/abstract-button-field.component.js +62 -0
- package/esm2015/lib/data-fields/button-field/models/button-field.js +27 -0
- package/esm2015/lib/data-fields/data-field-template/abstract-data-field-template.component.js +101 -0
- package/esm2015/lib/data-fields/data-field-template/models/wrapped-boolean.js +6 -0
- package/esm2015/lib/data-fields/data-fields.module.js +35 -0
- package/esm2015/lib/data-fields/date-field/abstract-date-field.component.js +21 -0
- package/esm2015/lib/data-fields/date-field/models/custom-date-adapter.js +11 -0
- package/esm2015/lib/data-fields/date-field/models/date-field.js +10 -0
- package/esm2015/lib/data-fields/date-time-field/abstract-date-time-field.component.js +21 -0
- package/esm2015/lib/data-fields/date-time-field/models/date-time-field.js +10 -0
- package/esm2015/lib/data-fields/enumeration-field/abstract-enumeration-field.component.js +17 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.js +43 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.js +53 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.js +37 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.js +11 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.js +11 -0
- package/esm2015/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.js +40 -0
- package/esm2015/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.js +44 -0
- package/esm2015/lib/data-fields/enumeration-field/models/enumeration-field.js +59 -0
- package/esm2015/lib/data-fields/file-field/abstract-file-field.component.js +390 -0
- package/esm2015/lib/data-fields/file-field/abstract-preview-dialog/preview-dialog-data.js +2 -0
- package/esm2015/lib/data-fields/file-field/models/file-field-value.js +2 -0
- package/esm2015/lib/data-fields/file-field/models/file-field.js +106 -0
- package/esm2015/lib/data-fields/file-list-field/abstract-file-list-field.component.js +261 -0
- package/esm2015/lib/data-fields/file-list-field/models/file-list-field-value.js +2 -0
- package/esm2015/lib/data-fields/file-list-field/models/file-list-field.js +83 -0
- package/esm2015/lib/data-fields/filter-field/abstract-filter-field-content.component.js +29 -0
- package/esm2015/lib/data-fields/filter-field/abstract-filter-field.component.js +28 -0
- package/esm2015/lib/data-fields/filter-field/models/filter-field-injection-token.js +7 -0
- package/esm2015/lib/data-fields/filter-field/models/filter-field.js +15 -0
- package/esm2015/lib/data-fields/i18n-field/abstract-i18n-field.component.js +19 -0
- package/esm2015/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.js +26 -0
- package/esm2015/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.js +40 -0
- package/esm2015/lib/data-fields/i18n-field/models/i18n-field-value.js +2 -0
- package/esm2015/lib/data-fields/i18n-field/models/i18n-field.js +10 -0
- package/esm2015/lib/data-fields/models/abstract-data-field-component.js +39 -0
- package/esm2015/lib/data-fields/models/abstract-data-field.js +391 -0
- package/esm2015/lib/data-fields/models/behavior.js +2 -0
- package/esm2015/lib/data-fields/models/boolean-label-enabled-token.js +3 -0
- package/esm2015/lib/data-fields/models/changed-fields.js +2 -0
- package/esm2015/lib/data-fields/models/component.js +2 -0
- package/esm2015/lib/data-fields/models/format-filter.js +2 -0
- package/esm2015/lib/data-fields/models/icon.js +6 -0
- package/esm2015/lib/data-fields/models/invalid-data-policy-token.js +11 -0
- package/esm2015/lib/data-fields/models/layout.js +2 -0
- package/esm2015/lib/data-fields/models/material-appearance.js +14 -0
- package/esm2015/lib/data-fields/models/properties.js +2 -0
- package/esm2015/lib/data-fields/models/template-appearance.js +15 -0
- package/esm2015/lib/data-fields/models/validation.js +2 -0
- package/esm2015/lib/data-fields/multichoice-field/abstract-multichoice-field.component.js +17 -0
- package/esm2015/lib/data-fields/multichoice-field/models/multichoice-field.js +41 -0
- package/esm2015/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.js +9 -0
- package/esm2015/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.js +9 -0
- package/esm2015/lib/data-fields/number-field/abstract-number-errors.component.js +45 -0
- package/esm2015/lib/data-fields/number-field/abstract-number-field.component.js +18 -0
- package/esm2015/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.js +48 -0
- package/esm2015/lib/data-fields/number-field/models/number-field.js +131 -0
- package/esm2015/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.js +7 -0
- package/esm2015/lib/data-fields/public-api.js +73 -0
- package/esm2015/lib/data-fields/task-ref-field/model/task-ref-field.js +7 -0
- package/esm2015/lib/data-fields/text-field/abstract-text-errors.component.js +35 -0
- package/esm2015/lib/data-fields/text-field/abstract-text-field.component.js +15 -0
- package/esm2015/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.js +39 -0
- package/esm2015/lib/data-fields/text-field/models/text-area-field.js +13 -0
- package/esm2015/lib/data-fields/text-field/models/text-field.js +85 -0
- package/esm2015/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.js +17 -0
- package/esm2015/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.js +30 -0
- package/esm2015/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.js +17 -0
- package/esm2015/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.js +40 -0
- package/esm2015/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.js +45 -0
- package/esm2015/lib/data-fields/time-instance-abstract-field/models/abstract-time-instance-field.js +105 -0
- package/esm2015/lib/data-fields/user-field/abstract-user-field.component.js +59 -0
- package/esm2015/lib/data-fields/user-field/models/user-field.js +14 -0
- package/esm2015/lib/data-fields/user-field/models/user-value.js +36 -0
- package/esm2015/lib/dialog/components/alert-dialog/alert-dialog.component.js +38 -0
- package/esm2015/lib/dialog/components/alert-dialog/alert-dialog.module.js +28 -0
- package/esm2015/lib/dialog/components/confirm-dialog/confirm-dialog.component.js +52 -0
- package/esm2015/lib/dialog/components/confirm-dialog/confirm-dialog.module.js +28 -0
- package/esm2015/lib/dialog/components/prompt-dialog/prompt-dialog.component.js +42 -0
- package/esm2015/lib/dialog/components/prompt-dialog/prompt-dialog.module.js +30 -0
- package/esm2015/lib/dialog/dialog.module.js +29 -0
- package/esm2015/lib/dialog/models/DialogData.js +2 -0
- package/esm2015/lib/dialog/models/DialogResult.js +2 -0
- package/esm2015/lib/dialog/models/abstract-dialog.js +21 -0
- package/esm2015/lib/dialog/public-api.js +9 -0
- package/esm2015/lib/dialog/services/dialog.service.js +82 -0
- package/esm2015/lib/event/model/event-constants.js +8 -0
- package/esm2015/lib/event/model/event-outcomes/case-outcomes/case-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/case-outcomes/create-case-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/case-outcomes/delete-case-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/data-outcomes/get-data-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/data-outcomes/get-data-groups-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/data-outcomes/get-data-localised-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/data-outcomes/set-data-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/petrinet-outcomes/petri-net-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/task-outcomes/assign-task-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/task-outcomes/cancel-task-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/task-outcomes/delegate-task-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/task-outcomes/finish-task-event-outcome.js +2 -0
- package/esm2015/lib/event/model/event-outcomes/task-outcomes/task-event-outcome.js +2 -0
- package/esm2015/lib/event/public-api.js +19 -0
- package/esm2015/lib/event/services/event.service.js +57 -0
- package/esm2015/lib/event/services/interfaces/changed-fields-map.js +2 -0
- package/esm2015/lib/event-queue/model/queued-event.js +31 -0
- package/esm2015/lib/event-queue/public-api.js +5 -0
- package/esm2015/lib/event-queue/services/event-queue.service.js +63 -0
- package/esm2015/lib/filter/filter.repository.js +141 -0
- package/esm2015/lib/filter/models/case-search-request-body.js +2 -0
- package/esm2015/lib/filter/models/filter-type.js +11 -0
- package/esm2015/lib/filter/models/filter.js +56 -0
- package/esm2015/lib/filter/models/filters-filter-injection-token.js +9 -0
- package/esm2015/lib/filter/models/merge-operator.js +11 -0
- package/esm2015/lib/filter/models/merged-filter-params.js +2 -0
- package/esm2015/lib/filter/models/merged-filter.js +111 -0
- package/esm2015/lib/filter/models/simple-filter.js +91 -0
- package/esm2015/lib/filter/models/task-search-request-body.js +2 -0
- package/esm2015/lib/filter/models/user-filter-constants.js +39 -0
- package/esm2015/lib/filter/public-api.js +18 -0
- package/esm2015/lib/filter/user-filters.service.js +337 -0
- package/esm2015/lib/forms/email-submission/abstract-email-submission-form.component.js +31 -0
- package/esm2015/lib/forms/forgotten-password/abstract-forgotten-password.component.js +32 -0
- package/esm2015/lib/forms/has-form.js +2 -0
- package/esm2015/lib/forms/login/abstract-login-form.component.js +58 -0
- package/esm2015/lib/forms/models/abstract-registration.component.js +94 -0
- package/esm2015/lib/forms/models/password.validator.js +21 -0
- package/esm2015/lib/forms/public-api.js +7 -0
- package/esm2015/lib/forms/registration/abstract-registration-form.component.js +37 -0
- package/esm2015/lib/groups/public-api.js +3 -0
- package/esm2015/lib/groups/services/active-group.service.js +88 -0
- package/esm2015/lib/groups/services/next-group.service.js +104 -0
- package/esm2015/lib/header/abstract-header-service.js +394 -0
- package/esm2015/lib/header/abstract-header.component.js +159 -0
- package/esm2015/lib/header/case-header/case-header.service.js +81 -0
- package/esm2015/lib/header/case-header/case-menta-enum.js +9 -0
- package/esm2015/lib/header/header-modes/abstract-header-mode.component.js +12 -0
- package/esm2015/lib/header/header-modes/edit-mode/abstract-edit-mode.component.js +73 -0
- package/esm2015/lib/header/header-modes/loading-mode/abstract-loading-mode.component.js +13 -0
- package/esm2015/lib/header/header-modes/search-mode/abstract-search-mode.component.js +86 -0
- package/esm2015/lib/header/header-modes/sort-mode/abstract-sort-mode.component.js +15 -0
- package/esm2015/lib/header/header-state.js +43 -0
- package/esm2015/lib/header/models/default-headers-token.js +3 -0
- package/esm2015/lib/header/models/fields-group.js +2 -0
- package/esm2015/lib/header/models/header-column.js +22 -0
- package/esm2015/lib/header/models/header-mode.js +7 -0
- package/esm2015/lib/header/models/header-type.js +7 -0
- package/esm2015/lib/header/models/public-api.js +12 -0
- package/esm2015/lib/header/models/user-changes/column-header-change.js +2 -0
- package/esm2015/lib/header/models/user-changes/edit-change-description.js +2 -0
- package/esm2015/lib/header/models/user-changes/header-change-description.js +2 -0
- package/esm2015/lib/header/models/user-changes/header-change-type.js +20 -0
- package/esm2015/lib/header/models/user-changes/header-change.js +2 -0
- package/esm2015/lib/header/models/user-changes/mode-change-description.js +2 -0
- package/esm2015/lib/header/models/user-changes/search-change-description.js +2 -0
- package/esm2015/lib/header/models/user-changes/sort-change-description.js +2 -0
- package/esm2015/lib/header/public-api.js +21 -0
- package/esm2015/lib/header/services/overflow.service.js +94 -0
- package/esm2015/lib/header/task-header/task-header.service.js +66 -0
- package/esm2015/lib/header/task-header/task-meta-enum.js +11 -0
- package/esm2015/lib/header/workflow-header/workflow-header.service.js +48 -0
- package/esm2015/lib/header/workflow-header/workflow-meta-enum.js +10 -0
- package/esm2015/lib/legal/legal-notice/abstract-legal-notice.component.js +16 -0
- package/esm2015/lib/legal/public-api.js +2 -0
- package/esm2015/lib/logger/models/log-entry.js +61 -0
- package/esm2015/lib/logger/public-api.js +10 -0
- package/esm2015/lib/logger/publishers/console-log-publisher.js +32 -0
- package/esm2015/lib/logger/publishers/local-storage-log-publisher.js +40 -0
- package/esm2015/lib/logger/publishers/log-publisher.js +12 -0
- package/esm2015/lib/logger/services/log-level.js +10 -0
- package/esm2015/lib/logger/services/log-publisher.service.js +59 -0
- package/esm2015/lib/logger/services/logger.service.js +77 -0
- package/esm2015/lib/material/material.module.js +108 -0
- package/esm2015/lib/moment/public-api.js +2 -0
- package/esm2015/lib/moment/time-formats.js +26 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/abstract-group-navigation-component-resolver.component.js +36 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.js +34 -0
- package/esm2015/lib/navigation/group-navigation-component-resolver/group-navigation-view-id-segment-factory.js +5 -0
- package/esm2015/lib/navigation/model/filter-case-injection-token.js +6 -0
- package/esm2015/lib/navigation/model/group-navigation-component-resolver-component-injection-token.js +6 -0
- package/esm2015/lib/navigation/model/group-navigation-constants.js +59 -0
- package/esm2015/lib/navigation/model/group-navigation-item-label.js +2 -0
- package/esm2015/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.js +131 -0
- package/esm2015/lib/navigation/navigation-drawer/abstract-navigation-resizable-drawer.component.js +14 -0
- package/esm2015/lib/navigation/navigation-rail/abstract-navigation-rail.component.js +32 -0
- package/esm2015/lib/navigation/navigation-tree/abstract-navigation-tree.component.js +371 -0
- package/esm2015/lib/navigation/public-api.js +19 -0
- package/esm2015/lib/navigation/quick-panel/components/abstract-quick-panel.component.js +25 -0
- package/esm2015/lib/navigation/quick-panel/components/internal-link/abstract-internal-link.component.js +12 -0
- package/esm2015/lib/navigation/quick-panel/components/language-selector/abstract-language-selector.component.js +52 -0
- package/esm2015/lib/navigation/quick-panel/components/logout-shortcut/abstract-logout-shortcut.component.js +21 -0
- package/esm2015/lib/navigation/quick-panel/components/paper-view.service.js +38 -0
- package/esm2015/lib/navigation/quick-panel/public-api.js +8 -0
- package/esm2015/lib/navigation/utility/filter-extraction.service.js +87 -0
- package/esm2015/lib/navigation/utility/navigation-item-task-utility-methods.js +78 -0
- package/esm2015/lib/panel/abstract/featured-value.js +2 -0
- package/esm2015/lib/panel/abstract/panel-with-header-binding.js +47 -0
- package/esm2015/lib/panel/abstract/panel-with-immediate-data.js +62 -0
- package/esm2015/lib/panel/abstract/tabbed-virtual-scroll.component.js +28 -0
- package/esm2015/lib/panel/abstract-panel.component.js +44 -0
- package/esm2015/lib/panel/case-panel/abstract-case-panel.component.js +88 -0
- package/esm2015/lib/panel/immediate/abstract-immediate-filter-text-content.component.js +38 -0
- package/esm2015/lib/panel/immediate/abstract-immediate-filter-text.component.js +21 -0
- package/esm2015/lib/panel/immediate/model/filter-text-injection-token.js +6 -0
- package/esm2015/lib/panel/public-api.js +15 -0
- package/esm2015/lib/panel/task-panel/abstract-task-panel.component.js +281 -0
- package/esm2015/lib/panel/task-panel/models/disable-functions.js +3 -0
- package/esm2015/lib/panel/task-panel-list/abstract-task-list.component.js +89 -0
- package/esm2015/lib/panel/task-panel-list/task-panel-data/task-panel-data.js +2 -0
- package/esm2015/lib/panel/workflow-panel/abstract-workflow-panel.component.js +103 -0
- package/esm2015/lib/process/net.js +101 -0
- package/esm2015/lib/process/netRole.js +2 -0
- package/esm2015/lib/process/permissions.js +12 -0
- package/esm2015/lib/process/petri-net-reference-with-permissions.js +2 -0
- package/esm2015/lib/process/process.service.js +301 -0
- package/esm2015/lib/process/public-api.js +8 -0
- package/esm2015/lib/process/public-process.service.js +29 -0
- package/esm2015/lib/process/rolesAndPermissions.js +2 -0
- package/esm2015/lib/process/transaction.js +2 -0
- package/esm2015/lib/process/transition.js +2 -0
- package/esm2015/lib/public/factories/get-net-and-create-case.js +22 -0
- package/esm2015/lib/public/factories/public-factory-resolver.js +13 -0
- package/esm2015/lib/public/factories/public-search-factory.js +17 -0
- package/esm2015/lib/public/public-api.js +5 -0
- package/esm2015/lib/public/services/public-url-resolver.service.js +20 -0
- package/esm2015/lib/resources/abstract-endpoint/abstract-resource.service.js +79 -0
- package/esm2015/lib/resources/abstract-endpoint/count-service.js +2 -0
- package/esm2015/lib/resources/engine-endpoint/case-resource.service.js +133 -0
- package/esm2015/lib/resources/engine-endpoint/dashboard-resource.service.js +33 -0
- package/esm2015/lib/resources/engine-endpoint/petri-net-resource.service.js +161 -0
- package/esm2015/lib/resources/engine-endpoint/public/public-case-resource.service.js +46 -0
- package/esm2015/lib/resources/engine-endpoint/public/public-petri-net-resource.service.js +108 -0
- package/esm2015/lib/resources/engine-endpoint/public/public-task-resource.service.js +224 -0
- package/esm2015/lib/resources/engine-endpoint/task-resource.service.js +306 -0
- package/esm2015/lib/resources/engine-endpoint/user-resource.service.js +191 -0
- package/esm2015/lib/resources/interface/assigned-user-policy.js +2 -0
- package/esm2015/lib/resources/interface/author.js +2 -0
- package/esm2015/lib/resources/interface/authority.js +2 -0
- package/esm2015/lib/resources/interface/case-get-request-body.js +2 -0
- package/esm2015/lib/resources/interface/case.js +2 -0
- package/esm2015/lib/resources/interface/changed-field-container.js +2 -0
- package/esm2015/lib/resources/interface/count.js +2 -0
- package/esm2015/lib/resources/interface/create-case-request-body.js +2 -0
- package/esm2015/lib/resources/interface/data-group-layout.js +59 -0
- package/esm2015/lib/resources/interface/data-groups.js +19 -0
- package/esm2015/lib/resources/interface/event-outcome.js +2 -0
- package/esm2015/lib/resources/interface/field-alignment.js +10 -0
- package/esm2015/lib/resources/interface/fields.js +2 -0
- package/esm2015/lib/resources/interface/file-resource.js +2 -0
- package/esm2015/lib/resources/interface/group.js +2 -0
- package/esm2015/lib/resources/interface/immediate-data.js +2 -0
- package/esm2015/lib/resources/interface/link.js +2 -0
- package/esm2015/lib/resources/interface/message-resource.js +2 -0
- package/esm2015/lib/resources/interface/page.js +2 -0
- package/esm2015/lib/resources/interface/pagination.js +2 -0
- package/esm2015/lib/resources/interface/petri-net-object-id.js +2 -0
- package/esm2015/lib/resources/interface/petri-net-reference.js +2 -0
- package/esm2015/lib/resources/interface/petri-net-request-body.js +2 -0
- package/esm2015/lib/resources/interface/petri-net.js +2 -0
- package/esm2015/lib/resources/interface/preferences.js +2 -0
- package/esm2015/lib/resources/interface/process-role.js +2 -0
- package/esm2015/lib/resources/interface/response-data.js +2 -0
- package/esm2015/lib/resources/interface/task-layout.js +2 -0
- package/esm2015/lib/resources/interface/task-reference.js +2 -0
- package/esm2015/lib/resources/interface/task-set-data-request-body.js +2 -0
- package/esm2015/lib/resources/interface/task.js +2 -0
- package/esm2015/lib/resources/interface/user-process-role.js +2 -0
- package/esm2015/lib/resources/interface/user-resource-small.js +2 -0
- package/esm2015/lib/resources/interface/user-resource.js +2 -0
- package/esm2015/lib/resources/public-api.js +46 -0
- package/esm2015/lib/resources/resource-provider.service.js +168 -0
- package/esm2015/lib/resources/types/nae-date-type.js +5 -0
- package/esm2015/lib/routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service.js +36 -0
- package/esm2015/lib/routing/public-api.js +7 -0
- package/esm2015/lib/routing/redirect-service/redirect.service.js +103 -0
- package/esm2015/lib/routing/routing-builder/routing-builder.service.js +190 -0
- package/esm2015/lib/routing/view-service/model/view-entry.js +2 -0
- package/esm2015/lib/routing/view-service/view.service.js +35 -0
- package/esm2015/lib/search/advanced-search-component/abstract-advanced-search.component.js +49 -0
- package/esm2015/lib/search/advanced-search-component-initialization-service/advanced-search-component-initialization.service.js +34 -0
- package/esm2015/lib/search/category-factory/category-factory.js +94 -0
- package/esm2015/lib/search/category-factory/category-resolver.service.js +149 -0
- package/esm2015/lib/search/category-factory/category-serialisation-pair.js +2 -0
- package/esm2015/lib/search/category-factory/default-categories-factories.js +67 -0
- package/esm2015/lib/search/category-factory/default-search-categories.module.js +50 -0
- package/esm2015/lib/search/category-factory/optional-dependencies.js +2 -0
- package/esm2015/lib/search/category-factory/search-categories-injection-token.js +24 -0
- package/esm2015/lib/search/fulltext-search-component/abstract-fulltext-search.component.js +17 -0
- package/esm2015/lib/search/header-search-service/header-search.service.js +226 -0
- package/esm2015/lib/search/models/base-filter-injection-token.js +6 -0
- package/esm2015/lib/search/models/base-filter.js +2 -0
- package/esm2015/lib/search/models/boolean-operator.js +10 -0
- package/esm2015/lib/search/models/category/autocomplete-category.js +129 -0
- package/esm2015/lib/search/models/category/autocomplete-options.js +2 -0
- package/esm2015/lib/search/models/category/case/case-author.js +21 -0
- package/esm2015/lib/search/models/category/case/case-creation-date-time.js +43 -0
- package/esm2015/lib/search/models/category/case/case-creation-date.js +43 -0
- package/esm2015/lib/search/models/category/case/case-dataset.js +397 -0
- package/esm2015/lib/search/models/category/case/case-net-attribute-autocomplete-category.js +23 -0
- package/esm2015/lib/search/models/category/case/case-process.js +73 -0
- package/esm2015/lib/search/models/category/case/case-role.js +24 -0
- package/esm2015/lib/search/models/category/case/case-search.enum.js +15 -0
- package/esm2015/lib/search/models/category/case/case-simple-dataset.js +135 -0
- package/esm2015/lib/search/models/category/case/case-string-id.js +27 -0
- package/esm2015/lib/search/models/category/case/case-task.js +24 -0
- package/esm2015/lib/search/models/category/case/case-title.js +29 -0
- package/esm2015/lib/search/models/category/case/case-visual-id.js +23 -0
- package/esm2015/lib/search/models/category/categories.js +24 -0
- package/esm2015/lib/search/models/category/category.js +524 -0
- package/esm2015/lib/search/models/category/name-id-pair.js +2 -0
- package/esm2015/lib/search/models/category/net-attribute-autocomplete-category.js +59 -0
- package/esm2015/lib/search/models/category/net-attribute-pair.js +2 -0
- package/esm2015/lib/search/models/category/no-configuration-autocomplete-category.js +36 -0
- package/esm2015/lib/search/models/category/no-configuration-category.js +39 -0
- package/esm2015/lib/search/models/category/no-configuration-user-autocomplete-category.js +28 -0
- package/esm2015/lib/search/models/category/search-autocomplete-option.js +2 -0
- package/esm2015/lib/search/models/category/search-input-type.js +14 -0
- package/esm2015/lib/search/models/category/task/task-assignee.js +21 -0
- package/esm2015/lib/search/models/category/task/task-net-attribute-autocomplete-category.js +23 -0
- package/esm2015/lib/search/models/category/task/task-process.js +50 -0
- package/esm2015/lib/search/models/category/task/task-role.js +23 -0
- package/esm2015/lib/search/models/category/task/task-task.js +23 -0
- package/esm2015/lib/search/models/category/user-autocomplete.js +59 -0
- package/esm2015/lib/search/models/component-configuration/search-component-configuration-injection-token.js +8 -0
- package/esm2015/lib/search/models/component-configuration/search-component-configuration.js +2 -0
- package/esm2015/lib/search/models/component-configuration/search-mode.js +9 -0
- package/esm2015/lib/search/models/configuration-input.js +52 -0
- package/esm2015/lib/search/models/datafield-map-key.js +69 -0
- package/esm2015/lib/search/models/escape-result.js +2 -0
- package/esm2015/lib/search/models/operator/equals-date-time.js +26 -0
- package/esm2015/lib/search/models/operator/equals-date.js +26 -0
- package/esm2015/lib/search/models/operator/equals.js +21 -0
- package/esm2015/lib/search/models/operator/in-range-date-time.js +43 -0
- package/esm2015/lib/search/models/operator/in-range-date.js +42 -0
- package/esm2015/lib/search/models/operator/in-range.js +22 -0
- package/esm2015/lib/search/models/operator/is-null.js +69 -0
- package/esm2015/lib/search/models/operator/less-than-date-time.js +27 -0
- package/esm2015/lib/search/models/operator/less-than-date.js +27 -0
- package/esm2015/lib/search/models/operator/less-than-equal-date-time.js +27 -0
- package/esm2015/lib/search/models/operator/less-than-equal-date.js +26 -0
- package/esm2015/lib/search/models/operator/less-than-equal.js +17 -0
- package/esm2015/lib/search/models/operator/less-than.js +17 -0
- package/esm2015/lib/search/models/operator/like.js +29 -0
- package/esm2015/lib/search/models/operator/more-than-date-time.js +29 -0
- package/esm2015/lib/search/models/operator/more-than-date.js +29 -0
- package/esm2015/lib/search/models/operator/more-than-equal-date-time.js +27 -0
- package/esm2015/lib/search/models/operator/more-than-equal-date.js +27 -0
- package/esm2015/lib/search/models/operator/more-than-equal.js +17 -0
- package/esm2015/lib/search/models/operator/more-than.js +17 -0
- package/esm2015/lib/search/models/operator/not-equals-date-time.js +24 -0
- package/esm2015/lib/search/models/operator/not-equals-date.js +27 -0
- package/esm2015/lib/search/models/operator/not-equals.js +30 -0
- package/esm2015/lib/search/models/operator/operator.js +124 -0
- package/esm2015/lib/search/models/operator/operators.js +31 -0
- package/esm2015/lib/search/models/operator/substring.js +27 -0
- package/esm2015/lib/search/models/operator-template-part-type.js +15 -0
- package/esm2015/lib/search/models/operator-template-part.js +31 -0
- package/esm2015/lib/search/models/persistance/filter-metadata-allowed-nets.js +2 -0
- package/esm2015/lib/search/models/persistance/filter-metadata.js +2 -0
- package/esm2015/lib/search/models/persistance/filter-text-segment.js +2 -0
- package/esm2015/lib/search/models/persistance/generator-metadata.js +2 -0
- package/esm2015/lib/search/models/persistance/saved-filter-metadata.js +2 -0
- package/esm2015/lib/search/models/predicate/clause-predicate.js +78 -0
- package/esm2015/lib/search/models/predicate/editable-clause-predicate-with-generators.js +47 -0
- package/esm2015/lib/search/models/predicate/editable-clause-predicate.js +116 -0
- package/esm2015/lib/search/models/predicate/editable-elementary-predicate.js +20 -0
- package/esm2015/lib/search/models/predicate/editable-predicate-with-generator.js +37 -0
- package/esm2015/lib/search/models/predicate/editable-predicate.js +22 -0
- package/esm2015/lib/search/models/predicate/elementary-predicate.js +14 -0
- package/esm2015/lib/search/models/predicate/predicate-with-generator.js +95 -0
- package/esm2015/lib/search/models/predicate/predicate.js +90 -0
- package/esm2015/lib/search/models/predicate-removal-event.js +2 -0
- package/esm2015/lib/search/models/query/query.js +72 -0
- package/esm2015/lib/search/models/search-index.js +76 -0
- package/esm2015/lib/search/models/wrap-result.js +2 -0
- package/esm2015/lib/search/operator-service/operator-resolver.service.js +109 -0
- package/esm2015/lib/search/operator-service/operator.service.js +39 -0
- package/esm2015/lib/search/public-api.js +107 -0
- package/esm2015/lib/search/search-clause-component/abstract-search-clause.component.js +52 -0
- package/esm2015/lib/search/search-component/abstract-search.component.js +171 -0
- package/esm2015/lib/search/search-configuration-input-component/abstract-search-configuration-input.component.js +75 -0
- package/esm2015/lib/search/search-keyword-resolver-service/search-index-resolver.service.js +36 -0
- package/esm2015/lib/search/search-operand-input-component/abstract-search-operand-input.component.js +97 -0
- package/esm2015/lib/search/search-predicate-component/abstract-search-predicate.component.js +144 -0
- package/esm2015/lib/search/search-service/search.service.js +306 -0
- package/esm2015/lib/side-menu/content-components/filter-selector/abstract-filter-selector.component.js +163 -0
- package/esm2015/lib/side-menu/content-components/filter-selector/filter-selector-list-item/abstract-filter-selector-list-item.component.js +22 -0
- package/esm2015/lib/side-menu/content-components/filter-selector/model/filter-selector-injection-data.js +2 -0
- package/esm2015/lib/side-menu/content-components/filter-selector/model/filtered-array.js +32 -0
- package/esm2015/lib/side-menu/content-components/import-net/abstract-import-net.component.js +123 -0
- package/esm2015/lib/side-menu/content-components/injection-tokens.js +8 -0
- package/esm2015/lib/side-menu/content-components/load-filter/abstract-load-filter.component.js +42 -0
- package/esm2015/lib/side-menu/content-components/load-filter/model/load-filter-injection-data.js +2 -0
- package/esm2015/lib/side-menu/content-components/new-case/abstract-new-case.component.js +230 -0
- package/esm2015/lib/side-menu/content-components/new-case/model/new-case-injection-data.js +2 -0
- package/esm2015/lib/side-menu/content-components/option-selector/abstract-option-selector.component.js +28 -0
- package/esm2015/lib/side-menu/content-components/option-selector/model/option-selector-injection-data.js +2 -0
- package/esm2015/lib/side-menu/content-components/public-api.js +20 -0
- package/esm2015/lib/side-menu/content-components/save-filter/abstract-save-filter.component.js +38 -0
- package/esm2015/lib/side-menu/content-components/save-filter/model/save-filter-injection-data.js +2 -0
- package/esm2015/lib/side-menu/content-components/user-assign/abstract-user-assign.component.js +60 -0
- package/esm2015/lib/side-menu/content-components/user-assign/model/user-list-injected-data.js +2 -0
- package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/abstract-user-assign-list.component.js +102 -0
- package/esm2015/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/abstract-user-assign-item.component.js +13 -0
- package/esm2015/lib/side-menu/models/portal-wrapper.js +13 -0
- package/esm2015/lib/side-menu/models/side-menu-control.js +36 -0
- package/esm2015/lib/side-menu/models/side-menu-event.js +2 -0
- package/esm2015/lib/side-menu/models/side-menu-injection-data.js +2 -0
- package/esm2015/lib/side-menu/models/side-menu-ref.js +16 -0
- package/esm2015/lib/side-menu/models/side-menu-size.js +7 -0
- package/esm2015/lib/side-menu/net-version-visible-injection-token.js +4 -0
- package/esm2015/lib/side-menu/public-api.js +15 -0
- package/esm2015/lib/side-menu/services/side-menu.service.js +86 -0
- package/esm2015/lib/side-menu/side-menu-container/abstract-side-menu-container.component.js +34 -0
- package/esm2015/lib/side-menu/side-menu-injection-token.js +3 -0
- package/esm2015/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.js +26 -0
- package/esm2015/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.js +26 -0
- package/esm2015/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.js +26 -0
- package/esm2015/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.js +26 -0
- package/esm2015/lib/snack-bar/models/abstract-snack-bar.js +18 -0
- package/esm2015/lib/snack-bar/models/injection-token-snackbar.js +4 -0
- package/esm2015/lib/snack-bar/models/snack-bar-enums.js +12 -0
- package/esm2015/lib/snack-bar/models/snack-bar-injection-data.js +2 -0
- package/esm2015/lib/snack-bar/public-api.js +15 -0
- package/esm2015/lib/snack-bar/services/snack-bar.service.js +92 -0
- package/esm2015/lib/snack-bar/snack-bar.module.js +33 -0
- package/esm2015/lib/tabs/classes/opened-tab.js +48 -0
- package/esm2015/lib/tabs/classes/tab-view.js +262 -0
- package/esm2015/lib/tabs/interfaces.js +2 -0
- package/esm2015/lib/tabs/public-api.js +6 -0
- package/esm2015/lib/tabs/tab-creation-detector/abstract-tab-creation-detector.component.js +17 -0
- package/esm2015/lib/tabs/tab-data-injection-token/tab-data-injection-token.js +8 -0
- package/esm2015/lib/tabs/tab-view/abstract-tab-view.component.js +67 -0
- package/esm2015/lib/task/interfaces/task-operations.js +2 -0
- package/esm2015/lib/task/models/null-task-operations.js +26 -0
- package/esm2015/lib/task/models/subject-task-operations.js +58 -0
- package/esm2015/lib/task/models/task-operations-injection-token.js +3 -0
- package/esm2015/lib/task/models/task-set-data-request-context.js +2 -0
- package/esm2015/lib/task/public-api.js +19 -0
- package/esm2015/lib/task/services/assign-policy.service.js +175 -0
- package/esm2015/lib/task/services/assign-task.service.js +191 -0
- package/esm2015/lib/task/services/cancel-task.service.js +189 -0
- package/esm2015/lib/task/services/data-focus-policy.service.js +36 -0
- package/esm2015/lib/task/services/delegate-task.service.js +185 -0
- package/esm2015/lib/task/services/finish-policy.service.js +79 -0
- package/esm2015/lib/task/services/finish-task.service.js +207 -0
- package/esm2015/lib/task/services/selected-case.service.js +38 -0
- package/esm2015/lib/task/services/task-data.service.js +538 -0
- package/esm2015/lib/task/services/task-handling-service.js +57 -0
- package/esm2015/lib/task/services/task-request-state.service.js +113 -0
- package/esm2015/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.js +39 -0
- package/esm2015/lib/task-content/model/async-rendering-configuration-injection-token.js +8 -0
- package/esm2015/lib/task-content/model/async-rendering-configuration.js +2 -0
- package/esm2015/lib/task-content/model/datafield-grid-layout-element.js +2 -0
- package/esm2015/lib/task-content/model/field-type-resource.js +23 -0
- package/esm2015/lib/task-content/model/policy.js +31 -0
- package/esm2015/lib/task-content/model/resource-interface.js +2 -0
- package/esm2015/lib/task-content/model/split-data-group.js +2 -0
- package/esm2015/lib/task-content/model/subgrid.js +235 -0
- package/esm2015/lib/task-content/model/task-content-element-type.js +19 -0
- package/esm2015/lib/task-content/model/task-event-notification.js +15 -0
- package/esm2015/lib/task-content/model/task-event.js +10 -0
- package/esm2015/lib/task-content/public-api.js +21 -0
- package/esm2015/lib/task-content/services/field-converter.service.js +348 -0
- package/esm2015/lib/task-content/services/single-task-content.service.js +72 -0
- package/esm2015/lib/task-content/services/task-content.service.js +266 -0
- package/esm2015/lib/task-content/services/task-event.service.js +45 -0
- package/esm2015/lib/task-content/services/unlimited-task-content.service.js +64 -0
- package/esm2015/lib/task-content/task-content/abstract-task-content.component.js +656 -0
- package/esm2015/lib/toolbar/abstract-toolbar.component.js +22 -0
- package/esm2015/lib/toolbar/public-api.js +2 -0
- package/esm2015/lib/translate/language.service.js +85 -0
- package/esm2015/lib/translate/public-api.js +3 -0
- package/esm2015/lib/translate/translate-interceptor.js +23 -0
- package/esm2015/lib/translate/translate-lib.module.js +38 -0
- package/esm2015/lib/user/components/user-card/abstract-user-card.component.js +44 -0
- package/esm2015/lib/user/models/iuser.js +2 -0
- package/esm2015/lib/user/models/public-api.js +6 -0
- package/esm2015/lib/user/models/user.js +37 -0
- package/esm2015/lib/user/models/view-id-injection-tokens.js +4 -0
- package/esm2015/lib/user/profile/abstract-profile.component.js +29 -0
- package/esm2015/lib/user/public-api.js +12 -0
- package/esm2015/lib/user/services/user-comparator.service.js +26 -0
- package/esm2015/lib/user/services/user-list.service.js +186 -0
- package/esm2015/lib/user/services/user-preference.service.js +152 -0
- package/esm2015/lib/user/services/user.service.js +203 -0
- package/esm2015/lib/user/services/view-id.service.js +30 -0
- package/esm2015/lib/utility/array-to-observable.js +10 -0
- package/esm2015/lib/utility/call-chain/after-action.js +12 -0
- package/esm2015/lib/utility/call-chain/call-chain.service.js +34 -0
- package/esm2015/lib/utility/clear-time-information.js +11 -0
- package/esm2015/lib/utility/destroy-subscription.js +10 -0
- package/esm2015/lib/utility/get-field.js +48 -0
- package/esm2015/lib/utility/get-immediate-data.js +9 -0
- package/esm2015/lib/utility/grid-layout/grid-layout-helper.js +76 -0
- package/esm2015/lib/utility/grid-layout/model/grid-element-with-item.js +2 -0
- package/esm2015/lib/utility/grid-layout/model/grid-element.js +2 -0
- package/esm2015/lib/utility/grid-layout/model/grid-filler.js +50 -0
- package/esm2015/lib/utility/incrementing-counter.js +21 -0
- package/esm2015/lib/utility/loading-emitter.js +19 -0
- package/esm2015/lib/utility/loading-with-filter-emitter.js +30 -0
- package/esm2015/lib/utility/navigation-item-task-filter-factory.js +11 -0
- package/esm2015/lib/utility/navigation-item-task-search-categories-factory.js +35 -0
- package/esm2015/lib/utility/of-void.js +12 -0
- package/esm2015/lib/utility/pagination/load-all-pages.js +46 -0
- package/esm2015/lib/utility/pagination/page-has-content.js +8 -0
- package/esm2015/lib/utility/process-message-response.js +17 -0
- package/esm2015/lib/utility/public-api.js +47 -0
- package/esm2015/lib/utility/refresh-tree.js +9 -0
- package/esm2015/lib/utility/result-with-after-actions.js +27 -0
- package/esm2015/lib/utility/service/case-list-font-color.service.js +45 -0
- package/esm2015/lib/utility/service/spinner-overlay.service.js +48 -0
- package/esm2015/lib/utility/stop-propagation.js +5 -0
- package/esm2015/lib/utility/tests/mocks/mock-authentication-method-service.js +12 -0
- package/esm2015/lib/utility/tests/mocks/mock-authentication.service.js +18 -0
- package/esm2015/lib/utility/tests/mocks/mock-endpoint.js +44 -0
- package/esm2015/lib/utility/tests/mocks/mock-sign-up.service.js +29 -0
- package/esm2015/lib/utility/tests/mocks/mock-user-autocomplete-value.js +14 -0
- package/esm2015/lib/utility/tests/mocks/mock-user-preference.service.js +42 -0
- package/esm2015/lib/utility/tests/mocks/mock-user-resource.service.js +48 -0
- package/esm2015/lib/utility/tests/search-category-mock-dependencies.js +19 -0
- package/esm2015/lib/utility/tests/test-config.js +424 -0
- package/esm2015/lib/utility/tests/test-factory-methods.js +21 -0
- package/esm2015/lib/utility/tests/test-mock-dependencies.module.js +31 -0
- package/esm2015/lib/utility/tests/test-view-service.js +24 -0
- package/esm2015/lib/utility/tests/utility/configure-category.js +14 -0
- package/esm2015/lib/utility/tests/utility/create-mock-case-outcome.js +16 -0
- package/esm2015/lib/utility/tests/utility/create-mock-case.js +36 -0
- package/esm2015/lib/utility/tests/utility/create-mock-datagroup.js +35 -0
- package/esm2015/lib/utility/tests/utility/create-mock-field.js +41 -0
- package/esm2015/lib/utility/tests/utility/create-mock-get-data-outcome.js +15 -0
- package/esm2015/lib/utility/tests/utility/create-mock-immediate-data.js +15 -0
- package/esm2015/lib/utility/tests/utility/create-mock-net.js +27 -0
- package/esm2015/lib/utility/tests/utility/create-mock-page.js +23 -0
- package/esm2015/lib/utility/tests/utility/create-mock-petri-net-outcome.js +14 -0
- package/esm2015/lib/utility/tests/utility/create-mock-set-data-outcome.js +19 -0
- package/esm2015/lib/utility/tests/utility/create-mock-task-outcome.js +18 -0
- package/esm2015/lib/utility/tests/utility/create-mock-task.js +34 -0
- package/esm2015/lib/view/abstract/page-load-request-context.js +25 -0
- package/esm2015/lib/view/abstract/sortable-view.js +62 -0
- package/esm2015/lib/view/abstract/view-with-headers.js +20 -0
- package/esm2015/lib/view/case-view/abstract-case-view.js +40 -0
- package/esm2015/lib/view/case-view/components/case-list/abstract-case-list.component.js +82 -0
- package/esm2015/lib/view/case-view/models/case-page-load-request-result.js +2 -0
- package/esm2015/lib/view/case-view/models/case-view-params.js +2 -0
- package/esm2015/lib/view/case-view/models/new-case-configuration-injection-token.js +7 -0
- package/esm2015/lib/view/case-view/models/new-case-configuration.js +2 -0
- package/esm2015/lib/view/case-view/service/case-view-service.js +273 -0
- package/esm2015/lib/view/case-view/tabbed-case-view.js +66 -0
- package/esm2015/lib/view/public-api.js +42 -0
- package/esm2015/lib/view/task-view/abstract-task-view.js +13 -0
- package/esm2015/lib/view/task-view/models/injected-tabbed-task-view-data.js +2 -0
- package/esm2015/lib/view/task-view/models/injection-token-task-endpoint.js +6 -0
- package/esm2015/lib/view/task-view/models/task-endpoint.js +9 -0
- package/esm2015/lib/view/task-view/models/task-page-load-request-result.js +2 -0
- package/esm2015/lib/view/task-view/models/task-view-configuration-injection-token.js +20 -0
- package/esm2015/lib/view/task-view/models/task-view-configuration.js +2 -0
- package/esm2015/lib/view/task-view/models/task-view-params.js +2 -0
- package/esm2015/lib/view/task-view/service/task-view.service.js +292 -0
- package/esm2015/lib/view/task-view/tabbed-task-view.js +22 -0
- package/esm2015/lib/view/tree-case-view/model/tree-petriflow-identifiers.js +43 -0
- package/esm2015/lib/view/tree-case-view/tree-case-view.service.js +17 -0
- package/esm2015/lib/view/tree-case-view/tree-component/abstract-tree.component.js +141 -0
- package/esm2015/lib/view/tree-case-view/tree-component/add-child-node/abstract-add-child-node.component.js +14 -0
- package/esm2015/lib/view/tree-case-view/tree-component/case-tree.service.js +843 -0
- package/esm2015/lib/view/tree-case-view/tree-component/model/case-tree-node.js +104 -0
- package/esm2015/lib/view/tree-case-view/tree-component/model/case-tree-path.js +2 -0
- package/esm2015/lib/view/tree-case-view/tree-component/model/expansion-tree.js +2 -0
- package/esm2015/lib/view/tree-case-view/tree-component/remove-node/abstract-remove-node.component.js +14 -0
- package/esm2015/lib/view/tree-case-view/tree-task-content/abstract-tree-task-content.component.js +55 -0
- package/esm2015/lib/view/tree-case-view/tree-task-content/tree-task-content.service.js +288 -0
- package/esm2015/lib/view/workflow-view/abstract-workflow-view.component.js +68 -0
- package/esm2015/lib/view/workflow-view/models/injection-token-workflow-service.js +10 -0
- package/esm2015/lib/view/workflow-view/workflow-view.service.js +211 -0
- package/esm2015/netgrif-components-core.js +20 -0
- package/esm2015/public-api.js +45 -0
- package/esm5/assets/i18n/de.json +419 -0
- package/esm5/assets/i18n/en.json +419 -0
- package/esm5/assets/i18n/sk.json +419 -0
- package/esm5/commons/angular-cli-devkit-core-strings.js +157 -0
- package/esm5/commons/import-to-add.js +9 -0
- package/esm5/commons/schema.js +7 -0
- package/esm5/commons/view-class-info.js +57 -0
- package/esm5/lib/admin/public-api.js +9 -0
- package/esm5/lib/admin/role-assignment/abstract-role-assignment.js +84 -0
- package/esm5/lib/admin/role-assignment/services/ProcessList.js +179 -0
- package/esm5/lib/admin/role-assignment/services/role-assignment.service.js +50 -0
- package/esm5/lib/admin/user-invite/abstract-user-invite.component.js +84 -0
- package/esm5/lib/admin/user-invite/services/organization-list.service.js +82 -0
- package/esm5/lib/admin/user-invite/services/user-invite.service.js +37 -0
- package/esm5/lib/allowed-nets/public-api.js +4 -0
- package/esm5/lib/allowed-nets/services/allowed-nets.service.js +94 -0
- package/esm5/lib/allowed-nets/services/base-allowed-nets.service.js +65 -0
- package/esm5/lib/allowed-nets/services/factory/allowed-nets-service-factory.js +132 -0
- package/esm5/lib/authentication/anonymous/anonymous.service.js +73 -0
- package/esm5/lib/authentication/authentication.factory.js +16 -0
- package/esm5/lib/authentication/authentication.module.js +36 -0
- package/esm5/lib/authentication/components/abstract-authentication-overlay.js +53 -0
- package/esm5/lib/authentication/models/credentials.js +2 -0
- package/esm5/lib/authentication/models/public-api.js +5 -0
- package/esm5/lib/authentication/models/transformer.js +2 -0
- package/esm5/lib/authentication/models/user.transformer.js +23 -0
- package/esm5/lib/authentication/public-api.js +14 -0
- package/esm5/lib/authentication/services/anonymous-authentication-interceptor.js +47 -0
- package/esm5/lib/authentication/services/authentication/authentication.service.js +84 -0
- package/esm5/lib/authentication/services/authentication-interceptor.js +55 -0
- package/esm5/lib/authentication/services/authentication-method.service.js +7 -0
- package/esm5/lib/authentication/services/guard/authentication-guard.service.js +41 -0
- package/esm5/lib/authentication/services/methods/basic-authentication/basic-authentication.service.js +54 -0
- package/esm5/lib/authentication/services/methods/null-authentication/null-authentication.service.js +23 -0
- package/esm5/lib/authentication/services/public-api.js +7 -0
- package/esm5/lib/authentication/session/null-storage.js +19 -0
- package/esm5/lib/authentication/session/public-api.js +3 -0
- package/esm5/lib/authentication/session/services/session.service.js +193 -0
- package/esm5/lib/authentication/sign-up/models/user-invitation-request.js +2 -0
- package/esm5/lib/authentication/sign-up/models/user-registration-request.js +2 -0
- package/esm5/lib/authentication/sign-up/public-api.js +8 -0
- package/esm5/lib/authentication/sign-up/services/sign-up.service.js +107 -0
- package/esm5/lib/authentication/sign-up/sign-up.module.js +17 -0
- package/esm5/lib/authorization/authority/authority-guard.service.js +52 -0
- package/esm5/lib/authorization/group/group-guard.service.js +69 -0
- package/esm5/lib/authorization/permission/permission.service.js +126 -0
- package/esm5/lib/authorization/public-api.js +10 -0
- package/esm5/lib/authorization/role/role-guard.service.js +108 -0
- package/esm5/lib/changed-fields/public-api.js +2 -0
- package/esm5/lib/changed-fields/services/changed-fields.service.js +38 -0
- package/esm5/lib/configuration/configuration.service.js +208 -0
- package/esm5/lib/configuration/public-api.js +3 -0
- package/esm5/lib/covalent/covalent.module.js +26 -0
- package/esm5/lib/currency/currency.module.js +25 -0
- package/esm5/lib/dashboard/cards/count-card/abstract-count-card.js +42 -0
- package/esm5/lib/dashboard/cards/custom-card/abstract-custom-card.js +50 -0
- package/esm5/lib/dashboard/cards/iframe-card/abstract-iframe-card.js +16 -0
- package/esm5/lib/dashboard/cards/model/card-grid-element.js +2 -0
- package/esm5/lib/dashboard/cards/model/count-card.js +2 -0
- package/esm5/lib/dashboard/cards/model/custom-dashboard-model/aggregation-query.js +2 -0
- package/esm5/lib/dashboard/cards/model/custom-dashboard-model/aggregation-result.js +2 -0
- package/esm5/lib/dashboard/cards/model/custom-dashboard-model/custom-card.js +2 -0
- package/esm5/lib/dashboard/cards/model/custom-dashboard-model/dashboard-event-content.js +2 -0
- package/esm5/lib/dashboard/cards/model/custom-dashboard-model/dashboard-multi-data.js +9 -0
- package/esm5/lib/dashboard/cards/model/custom-dashboard-model/dashboard-single-data.js +9 -0
- package/esm5/lib/dashboard/cards/model/dashboard-card-types.js +13 -0
- package/esm5/lib/dashboard/cards/model/dashboard-card.js +2 -0
- package/esm5/lib/dashboard/cards/model/graph-card.js +2 -0
- package/esm5/lib/dashboard/cards/model/iframe-card.js +2 -0
- package/esm5/lib/dashboard/dashboard-content/abstract-dashboard-content.js +21 -0
- package/esm5/lib/dashboard/dashboard-content/dashboard-params.js +2 -0
- package/esm5/lib/dashboard/public-api.js +20 -0
- package/esm5/lib/data-fields/boolean-field/abstract-boolean-field.component.js +45 -0
- package/esm5/lib/data-fields/boolean-field/models/boolean-field.js +29 -0
- package/esm5/lib/data-fields/button-field/abstract-button-field.component.js +68 -0
- package/esm5/lib/data-fields/button-field/models/button-field.js +37 -0
- package/esm5/lib/data-fields/data-field-template/abstract-data-field-template.component.js +111 -0
- package/esm5/lib/data-fields/data-field-template/models/wrapped-boolean.js +10 -0
- package/esm5/lib/data-fields/data-fields.module.js +39 -0
- package/esm5/lib/data-fields/date-field/abstract-date-field.component.js +26 -0
- package/esm5/lib/data-fields/date-field/models/custom-date-adapter.js +18 -0
- package/esm5/lib/data-fields/date-field/models/date-field.js +14 -0
- package/esm5/lib/data-fields/date-time-field/abstract-date-time-field.component.js +26 -0
- package/esm5/lib/data-fields/date-time-field/models/date-time-field.js +14 -0
- package/esm5/lib/data-fields/enumeration-field/abstract-enumeration-field.component.js +22 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.js +47 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.js +57 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.js +39 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.js +15 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.js +15 -0
- package/esm5/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.js +43 -0
- package/esm5/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.js +63 -0
- package/esm5/lib/data-fields/enumeration-field/models/enumeration-field.js +79 -0
- package/esm5/lib/data-fields/file-field/abstract-file-field.component.js +405 -0
- package/esm5/lib/data-fields/file-field/abstract-preview-dialog/preview-dialog-data.js +2 -0
- package/esm5/lib/data-fields/file-field/models/file-field-value.js +2 -0
- package/esm5/lib/data-fields/file-field/models/file-field.js +128 -0
- package/esm5/lib/data-fields/file-list-field/abstract-file-list-field.component.js +278 -0
- package/esm5/lib/data-fields/file-list-field/models/file-list-field-value.js +2 -0
- package/esm5/lib/data-fields/file-list-field/models/file-list-field.js +105 -0
- package/esm5/lib/data-fields/filter-field/abstract-filter-field-content.component.js +36 -0
- package/esm5/lib/data-fields/filter-field/abstract-filter-field.component.js +33 -0
- package/esm5/lib/data-fields/filter-field/models/filter-field-injection-token.js +7 -0
- package/esm5/lib/data-fields/filter-field/models/filter-field.js +28 -0
- package/esm5/lib/data-fields/i18n-field/abstract-i18n-field.component.js +23 -0
- package/esm5/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.js +30 -0
- package/esm5/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.js +42 -0
- package/esm5/lib/data-fields/i18n-field/models/i18n-field-value.js +2 -0
- package/esm5/lib/data-fields/i18n-field/models/i18n-field.js +16 -0
- package/esm5/lib/data-fields/models/abstract-data-field-component.js +45 -0
- package/esm5/lib/data-fields/models/abstract-data-field.js +501 -0
- package/esm5/lib/data-fields/models/behavior.js +2 -0
- package/esm5/lib/data-fields/models/boolean-label-enabled-token.js +3 -0
- package/esm5/lib/data-fields/models/changed-fields.js +2 -0
- package/esm5/lib/data-fields/models/component.js +2 -0
- package/esm5/lib/data-fields/models/format-filter.js +2 -0
- package/esm5/lib/data-fields/models/icon.js +6 -0
- package/esm5/lib/data-fields/models/invalid-data-policy-token.js +11 -0
- package/esm5/lib/data-fields/models/layout.js +2 -0
- package/esm5/lib/data-fields/models/material-appearance.js +14 -0
- package/esm5/lib/data-fields/models/properties.js +2 -0
- package/esm5/lib/data-fields/models/template-appearance.js +15 -0
- package/esm5/lib/data-fields/models/validation.js +2 -0
- package/esm5/lib/data-fields/multichoice-field/abstract-multichoice-field.component.js +22 -0
- package/esm5/lib/data-fields/multichoice-field/models/multichoice-field.js +60 -0
- package/esm5/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.js +13 -0
- package/esm5/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.js +13 -0
- package/esm5/lib/data-fields/number-field/abstract-number-errors.component.js +49 -0
- package/esm5/lib/data-fields/number-field/abstract-number-field.component.js +23 -0
- package/esm5/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.js +54 -0
- package/esm5/lib/data-fields/number-field/models/number-field.js +137 -0
- package/esm5/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.js +11 -0
- package/esm5/lib/data-fields/public-api.js +73 -0
- package/esm5/lib/data-fields/task-ref-field/model/task-ref-field.js +11 -0
- package/esm5/lib/data-fields/text-field/abstract-text-errors.component.js +37 -0
- package/esm5/lib/data-fields/text-field/abstract-text-field.component.js +19 -0
- package/esm5/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.js +45 -0
- package/esm5/lib/data-fields/text-field/models/text-area-field.js +19 -0
- package/esm5/lib/data-fields/text-field/models/text-field.js +96 -0
- package/esm5/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.js +22 -0
- package/esm5/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.js +35 -0
- package/esm5/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.js +22 -0
- package/esm5/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.js +46 -0
- package/esm5/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.js +52 -0
- package/esm5/lib/data-fields/time-instance-abstract-field/models/abstract-time-instance-field.js +110 -0
- package/esm5/lib/data-fields/user-field/abstract-user-field.component.js +65 -0
- package/esm5/lib/data-fields/user-field/models/user-field.js +23 -0
- package/esm5/lib/data-fields/user-field/models/user-value.js +58 -0
- package/esm5/lib/dialog/components/alert-dialog/alert-dialog.component.js +43 -0
- package/esm5/lib/dialog/components/alert-dialog/alert-dialog.module.js +32 -0
- package/esm5/lib/dialog/components/confirm-dialog/confirm-dialog.component.js +57 -0
- package/esm5/lib/dialog/components/confirm-dialog/confirm-dialog.module.js +32 -0
- package/esm5/lib/dialog/components/prompt-dialog/prompt-dialog.component.js +47 -0
- package/esm5/lib/dialog/components/prompt-dialog/prompt-dialog.module.js +34 -0
- package/esm5/lib/dialog/dialog.module.js +33 -0
- package/esm5/lib/dialog/models/DialogData.js +2 -0
- package/esm5/lib/dialog/models/DialogResult.js +2 -0
- package/esm5/lib/dialog/models/abstract-dialog.js +23 -0
- package/esm5/lib/dialog/public-api.js +9 -0
- package/esm5/lib/dialog/services/dialog.service.js +84 -0
- package/esm5/lib/event/model/event-constants.js +8 -0
- package/esm5/lib/event/model/event-outcomes/case-outcomes/case-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/case-outcomes/create-case-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/case-outcomes/delete-case-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/data-outcomes/get-data-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/data-outcomes/get-data-groups-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/data-outcomes/get-data-localised-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/data-outcomes/set-data-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/petrinet-outcomes/petri-net-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/task-outcomes/assign-task-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/task-outcomes/cancel-task-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/task-outcomes/delegate-task-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/task-outcomes/finish-task-event-outcome.js +2 -0
- package/esm5/lib/event/model/event-outcomes/task-outcomes/task-event-outcome.js +2 -0
- package/esm5/lib/event/public-api.js +19 -0
- package/esm5/lib/event/services/event.service.js +60 -0
- package/esm5/lib/event/services/interfaces/changed-fields-map.js +2 -0
- package/esm5/lib/event-queue/model/queued-event.js +34 -0
- package/esm5/lib/event-queue/public-api.js +5 -0
- package/esm5/lib/event-queue/services/event-queue.service.js +66 -0
- package/esm5/lib/filter/filter.repository.js +145 -0
- package/esm5/lib/filter/models/case-search-request-body.js +2 -0
- package/esm5/lib/filter/models/filter-type.js +11 -0
- package/esm5/lib/filter/models/filter.js +71 -0
- package/esm5/lib/filter/models/filters-filter-injection-token.js +9 -0
- package/esm5/lib/filter/models/merge-operator.js +11 -0
- package/esm5/lib/filter/models/merged-filter-params.js +2 -0
- package/esm5/lib/filter/models/merged-filter.js +120 -0
- package/esm5/lib/filter/models/simple-filter.js +96 -0
- package/esm5/lib/filter/models/task-search-request-body.js +2 -0
- package/esm5/lib/filter/models/user-filter-constants.js +39 -0
- package/esm5/lib/filter/public-api.js +18 -0
- package/esm5/lib/filter/user-filters.service.js +357 -0
- package/esm5/lib/forms/email-submission/abstract-email-submission-form.component.js +33 -0
- package/esm5/lib/forms/forgotten-password/abstract-forgotten-password.component.js +37 -0
- package/esm5/lib/forms/has-form.js +2 -0
- package/esm5/lib/forms/login/abstract-login-form.component.js +61 -0
- package/esm5/lib/forms/models/abstract-registration.component.js +106 -0
- package/esm5/lib/forms/models/password.validator.js +21 -0
- package/esm5/lib/forms/public-api.js +7 -0
- package/esm5/lib/forms/registration/abstract-registration-form.component.js +42 -0
- package/esm5/lib/groups/public-api.js +3 -0
- package/esm5/lib/groups/services/active-group.service.js +107 -0
- package/esm5/lib/groups/services/next-group.service.js +135 -0
- package/esm5/lib/header/abstract-header-service.js +485 -0
- package/esm5/lib/header/abstract-header.component.js +171 -0
- package/esm5/lib/header/case-header/case-header.service.js +86 -0
- package/esm5/lib/header/case-header/case-menta-enum.js +9 -0
- package/esm5/lib/header/header-modes/abstract-header-mode.component.js +14 -0
- package/esm5/lib/header/header-modes/edit-mode/abstract-edit-mode.component.js +81 -0
- package/esm5/lib/header/header-modes/loading-mode/abstract-loading-mode.component.js +17 -0
- package/esm5/lib/header/header-modes/search-mode/abstract-search-mode.component.js +94 -0
- package/esm5/lib/header/header-modes/sort-mode/abstract-sort-mode.component.js +19 -0
- package/esm5/lib/header/header-state.js +53 -0
- package/esm5/lib/header/models/default-headers-token.js +3 -0
- package/esm5/lib/header/models/fields-group.js +2 -0
- package/esm5/lib/header/models/header-column.js +29 -0
- package/esm5/lib/header/models/header-mode.js +7 -0
- package/esm5/lib/header/models/header-type.js +7 -0
- package/esm5/lib/header/models/public-api.js +12 -0
- package/esm5/lib/header/models/user-changes/column-header-change.js +2 -0
- package/esm5/lib/header/models/user-changes/edit-change-description.js +2 -0
- package/esm5/lib/header/models/user-changes/header-change-description.js +2 -0
- package/esm5/lib/header/models/user-changes/header-change-type.js +20 -0
- package/esm5/lib/header/models/user-changes/header-change.js +2 -0
- package/esm5/lib/header/models/user-changes/mode-change-description.js +2 -0
- package/esm5/lib/header/models/user-changes/search-change-description.js +2 -0
- package/esm5/lib/header/models/user-changes/sort-change-description.js +2 -0
- package/esm5/lib/header/public-api.js +21 -0
- package/esm5/lib/header/services/overflow.service.js +112 -0
- package/esm5/lib/header/task-header/task-header.service.js +71 -0
- package/esm5/lib/header/task-header/task-meta-enum.js +11 -0
- package/esm5/lib/header/workflow-header/workflow-header.service.js +53 -0
- package/esm5/lib/header/workflow-header/workflow-meta-enum.js +10 -0
- package/esm5/lib/legal/legal-notice/abstract-legal-notice.component.js +26 -0
- package/esm5/lib/legal/public-api.js +2 -0
- package/esm5/lib/logger/models/log-entry.js +68 -0
- package/esm5/lib/logger/public-api.js +10 -0
- package/esm5/lib/logger/publishers/console-log-publisher.js +36 -0
- package/esm5/lib/logger/publishers/local-storage-log-publisher.js +45 -0
- package/esm5/lib/logger/publishers/log-publisher.js +15 -0
- package/esm5/lib/logger/services/log-level.js +10 -0
- package/esm5/lib/logger/services/log-publisher.service.js +66 -0
- package/esm5/lib/logger/services/logger.service.js +107 -0
- package/esm5/lib/material/material.module.js +112 -0
- package/esm5/lib/moment/public-api.js +2 -0
- package/esm5/lib/moment/time-formats.js +26 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/abstract-group-navigation-component-resolver.component.js +40 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.js +37 -0
- package/esm5/lib/navigation/group-navigation-component-resolver/group-navigation-view-id-segment-factory.js +5 -0
- package/esm5/lib/navigation/model/filter-case-injection-token.js +6 -0
- package/esm5/lib/navigation/model/group-navigation-component-resolver-component-injection-token.js +6 -0
- package/esm5/lib/navigation/model/group-navigation-constants.js +59 -0
- package/esm5/lib/navigation/model/group-navigation-item-label.js +2 -0
- package/esm5/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.js +142 -0
- package/esm5/lib/navigation/navigation-drawer/abstract-navigation-resizable-drawer.component.js +17 -0
- package/esm5/lib/navigation/navigation-rail/abstract-navigation-rail.component.js +38 -0
- package/esm5/lib/navigation/navigation-tree/abstract-navigation-tree.component.js +415 -0
- package/esm5/lib/navigation/public-api.js +19 -0
- package/esm5/lib/navigation/quick-panel/components/abstract-quick-panel.component.js +30 -0
- package/esm5/lib/navigation/quick-panel/components/internal-link/abstract-internal-link.component.js +14 -0
- package/esm5/lib/navigation/quick-panel/components/language-selector/abstract-language-selector.component.js +59 -0
- package/esm5/lib/navigation/quick-panel/components/logout-shortcut/abstract-logout-shortcut.component.js +24 -0
- package/esm5/lib/navigation/quick-panel/components/paper-view.service.js +44 -0
- package/esm5/lib/navigation/quick-panel/public-api.js +8 -0
- package/esm5/lib/navigation/utility/filter-extraction.service.js +89 -0
- package/esm5/lib/navigation/utility/navigation-item-task-utility-methods.js +78 -0
- package/esm5/lib/panel/abstract/featured-value.js +2 -0
- package/esm5/lib/panel/abstract/panel-with-header-binding.js +50 -0
- package/esm5/lib/panel/abstract/panel-with-immediate-data.js +67 -0
- package/esm5/lib/panel/abstract/tabbed-virtual-scroll.component.js +35 -0
- package/esm5/lib/panel/abstract-panel.component.js +46 -0
- package/esm5/lib/panel/case-panel/abstract-case-panel.component.js +94 -0
- package/esm5/lib/panel/immediate/abstract-immediate-filter-text-content.component.js +45 -0
- package/esm5/lib/panel/immediate/abstract-immediate-filter-text.component.js +23 -0
- package/esm5/lib/panel/immediate/model/filter-text-injection-token.js +6 -0
- package/esm5/lib/panel/public-api.js +15 -0
- package/esm5/lib/panel/task-panel/abstract-task-panel.component.js +302 -0
- package/esm5/lib/panel/task-panel/models/disable-functions.js +3 -0
- package/esm5/lib/panel/task-panel-list/abstract-task-list.component.js +99 -0
- package/esm5/lib/panel/task-panel-list/task-panel-data/task-panel-data.js +2 -0
- package/esm5/lib/panel/workflow-panel/abstract-workflow-panel.component.js +109 -0
- package/esm5/lib/process/net.js +155 -0
- package/esm5/lib/process/netRole.js +2 -0
- package/esm5/lib/process/permissions.js +12 -0
- package/esm5/lib/process/petri-net-reference-with-permissions.js +2 -0
- package/esm5/lib/process/process.service.js +325 -0
- package/esm5/lib/process/public-api.js +8 -0
- package/esm5/lib/process/public-process.service.js +34 -0
- package/esm5/lib/process/rolesAndPermissions.js +2 -0
- package/esm5/lib/process/transaction.js +2 -0
- package/esm5/lib/process/transition.js +2 -0
- package/esm5/lib/public/factories/get-net-and-create-case.js +22 -0
- package/esm5/lib/public/factories/public-factory-resolver.js +13 -0
- package/esm5/lib/public/factories/public-search-factory.js +17 -0
- package/esm5/lib/public/public-api.js +5 -0
- package/esm5/lib/public/services/public-url-resolver.service.js +26 -0
- package/esm5/lib/resources/abstract-endpoint/abstract-resource.service.js +85 -0
- package/esm5/lib/resources/abstract-endpoint/count-service.js +2 -0
- package/esm5/lib/resources/engine-endpoint/case-resource.service.js +149 -0
- package/esm5/lib/resources/engine-endpoint/dashboard-resource.service.js +37 -0
- package/esm5/lib/resources/engine-endpoint/petri-net-resource.service.js +174 -0
- package/esm5/lib/resources/engine-endpoint/public/public-case-resource.service.js +52 -0
- package/esm5/lib/resources/engine-endpoint/public/public-petri-net-resource.service.js +120 -0
- package/esm5/lib/resources/engine-endpoint/public/public-task-resource.service.js +238 -0
- package/esm5/lib/resources/engine-endpoint/task-resource.service.js +327 -0
- package/esm5/lib/resources/engine-endpoint/user-resource.service.js +210 -0
- package/esm5/lib/resources/interface/assigned-user-policy.js +2 -0
- package/esm5/lib/resources/interface/author.js +2 -0
- package/esm5/lib/resources/interface/authority.js +2 -0
- package/esm5/lib/resources/interface/case-get-request-body.js +2 -0
- package/esm5/lib/resources/interface/case.js +2 -0
- package/esm5/lib/resources/interface/changed-field-container.js +2 -0
- package/esm5/lib/resources/interface/count.js +2 -0
- package/esm5/lib/resources/interface/create-case-request-body.js +2 -0
- package/esm5/lib/resources/interface/data-group-layout.js +59 -0
- package/esm5/lib/resources/interface/data-groups.js +19 -0
- package/esm5/lib/resources/interface/event-outcome.js +2 -0
- package/esm5/lib/resources/interface/field-alignment.js +10 -0
- package/esm5/lib/resources/interface/fields.js +2 -0
- package/esm5/lib/resources/interface/file-resource.js +2 -0
- package/esm5/lib/resources/interface/group.js +2 -0
- package/esm5/lib/resources/interface/immediate-data.js +2 -0
- package/esm5/lib/resources/interface/link.js +2 -0
- package/esm5/lib/resources/interface/message-resource.js +2 -0
- package/esm5/lib/resources/interface/page.js +2 -0
- package/esm5/lib/resources/interface/pagination.js +2 -0
- package/esm5/lib/resources/interface/petri-net-object-id.js +2 -0
- package/esm5/lib/resources/interface/petri-net-reference.js +2 -0
- package/esm5/lib/resources/interface/petri-net-request-body.js +2 -0
- package/esm5/lib/resources/interface/petri-net.js +2 -0
- package/esm5/lib/resources/interface/preferences.js +2 -0
- package/esm5/lib/resources/interface/process-role.js +2 -0
- package/esm5/lib/resources/interface/response-data.js +2 -0
- package/esm5/lib/resources/interface/task-layout.js +2 -0
- package/esm5/lib/resources/interface/task-reference.js +2 -0
- package/esm5/lib/resources/interface/task-set-data-request-body.js +2 -0
- package/esm5/lib/resources/interface/task.js +2 -0
- package/esm5/lib/resources/interface/user-process-role.js +2 -0
- package/esm5/lib/resources/interface/user-resource-small.js +2 -0
- package/esm5/lib/resources/interface/user-resource.js +2 -0
- package/esm5/lib/resources/public-api.js +46 -0
- package/esm5/lib/resources/resource-provider.service.js +174 -0
- package/esm5/lib/resources/types/nae-date-type.js +5 -0
- package/esm5/lib/routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service.js +42 -0
- package/esm5/lib/routing/public-api.js +7 -0
- package/esm5/lib/routing/redirect-service/redirect.service.js +130 -0
- package/esm5/lib/routing/routing-builder/routing-builder.service.js +207 -0
- package/esm5/lib/routing/view-service/model/view-entry.js +2 -0
- package/esm5/lib/routing/view-service/view.service.js +38 -0
- package/esm5/lib/search/advanced-search-component/abstract-advanced-search.component.js +64 -0
- package/esm5/lib/search/advanced-search-component-initialization-service/advanced-search-component-initialization.service.js +40 -0
- package/esm5/lib/search/category-factory/category-factory.js +96 -0
- package/esm5/lib/search/category-factory/category-resolver.service.js +152 -0
- package/esm5/lib/search/category-factory/category-serialisation-pair.js +2 -0
- package/esm5/lib/search/category-factory/default-categories-factories.js +67 -0
- package/esm5/lib/search/category-factory/default-search-categories.module.js +54 -0
- package/esm5/lib/search/category-factory/optional-dependencies.js +2 -0
- package/esm5/lib/search/category-factory/search-categories-injection-token.js +24 -0
- package/esm5/lib/search/fulltext-search-component/abstract-fulltext-search.component.js +20 -0
- package/esm5/lib/search/header-search-service/header-search.service.js +250 -0
- package/esm5/lib/search/models/base-filter-injection-token.js +6 -0
- package/esm5/lib/search/models/base-filter.js +2 -0
- package/esm5/lib/search/models/boolean-operator.js +10 -0
- package/esm5/lib/search/models/category/autocomplete-category.js +155 -0
- package/esm5/lib/search/models/category/autocomplete-options.js +2 -0
- package/esm5/lib/search/models/category/case/case-author.js +29 -0
- package/esm5/lib/search/models/category/case/case-creation-date-time.js +51 -0
- package/esm5/lib/search/models/category/case/case-creation-date.js +51 -0
- package/esm5/lib/search/models/category/case/case-dataset.js +444 -0
- package/esm5/lib/search/models/category/case/case-net-attribute-autocomplete-category.js +28 -0
- package/esm5/lib/search/models/category/case/case-process.js +84 -0
- package/esm5/lib/search/models/category/case/case-role.js +32 -0
- package/esm5/lib/search/models/category/case/case-search.enum.js +15 -0
- package/esm5/lib/search/models/category/case/case-simple-dataset.js +153 -0
- package/esm5/lib/search/models/category/case/case-string-id.js +35 -0
- package/esm5/lib/search/models/category/case/case-task.js +32 -0
- package/esm5/lib/search/models/category/case/case-title.js +37 -0
- package/esm5/lib/search/models/category/case/case-visual-id.js +31 -0
- package/esm5/lib/search/models/category/categories.js +24 -0
- package/esm5/lib/search/models/category/category.js +585 -0
- package/esm5/lib/search/models/category/name-id-pair.js +2 -0
- package/esm5/lib/search/models/category/net-attribute-autocomplete-category.js +66 -0
- package/esm5/lib/search/models/category/net-attribute-pair.js +2 -0
- package/esm5/lib/search/models/category/no-configuration-autocomplete-category.js +48 -0
- package/esm5/lib/search/models/category/no-configuration-category.js +51 -0
- package/esm5/lib/search/models/category/no-configuration-user-autocomplete-category.js +33 -0
- package/esm5/lib/search/models/category/search-autocomplete-option.js +2 -0
- package/esm5/lib/search/models/category/search-input-type.js +14 -0
- package/esm5/lib/search/models/category/task/task-assignee.js +29 -0
- package/esm5/lib/search/models/category/task/task-net-attribute-autocomplete-category.js +28 -0
- package/esm5/lib/search/models/category/task/task-process.js +61 -0
- package/esm5/lib/search/models/category/task/task-role.js +31 -0
- package/esm5/lib/search/models/category/task/task-task.js +31 -0
- package/esm5/lib/search/models/category/user-autocomplete.js +64 -0
- package/esm5/lib/search/models/component-configuration/search-component-configuration-injection-token.js +8 -0
- package/esm5/lib/search/models/component-configuration/search-component-configuration.js +2 -0
- package/esm5/lib/search/models/component-configuration/search-mode.js +9 -0
- package/esm5/lib/search/models/configuration-input.js +71 -0
- package/esm5/lib/search/models/datafield-map-key.js +91 -0
- package/esm5/lib/search/models/escape-result.js +2 -0
- package/esm5/lib/search/models/operator/equals-date-time.js +31 -0
- package/esm5/lib/search/models/operator/equals-date.js +31 -0
- package/esm5/lib/search/models/operator/equals.js +25 -0
- package/esm5/lib/search/models/operator/in-range-date-time.js +47 -0
- package/esm5/lib/search/models/operator/in-range-date.js +46 -0
- package/esm5/lib/search/models/operator/in-range.js +26 -0
- package/esm5/lib/search/models/operator/is-null.js +75 -0
- package/esm5/lib/search/models/operator/less-than-date-time.js +32 -0
- package/esm5/lib/search/models/operator/less-than-date.js +32 -0
- package/esm5/lib/search/models/operator/less-than-equal-date-time.js +32 -0
- package/esm5/lib/search/models/operator/less-than-equal-date.js +31 -0
- package/esm5/lib/search/models/operator/less-than-equal.js +21 -0
- package/esm5/lib/search/models/operator/less-than.js +21 -0
- package/esm5/lib/search/models/operator/like.js +33 -0
- package/esm5/lib/search/models/operator/more-than-date-time.js +34 -0
- package/esm5/lib/search/models/operator/more-than-date.js +34 -0
- package/esm5/lib/search/models/operator/more-than-equal-date-time.js +32 -0
- package/esm5/lib/search/models/operator/more-than-equal-date.js +32 -0
- package/esm5/lib/search/models/operator/more-than-equal.js +21 -0
- package/esm5/lib/search/models/operator/more-than.js +21 -0
- package/esm5/lib/search/models/operator/not-equals-date-time.js +29 -0
- package/esm5/lib/search/models/operator/not-equals-date.js +32 -0
- package/esm5/lib/search/models/operator/not-equals.js +35 -0
- package/esm5/lib/search/models/operator/operator.js +134 -0
- package/esm5/lib/search/models/operator/operators.js +31 -0
- package/esm5/lib/search/models/operator/substring.js +31 -0
- package/esm5/lib/search/models/operator-template-part-type.js +15 -0
- package/esm5/lib/search/models/operator-template-part.js +42 -0
- package/esm5/lib/search/models/persistance/filter-metadata-allowed-nets.js +2 -0
- package/esm5/lib/search/models/persistance/filter-metadata.js +2 -0
- package/esm5/lib/search/models/persistance/filter-text-segment.js +2 -0
- package/esm5/lib/search/models/persistance/generator-metadata.js +2 -0
- package/esm5/lib/search/models/persistance/saved-filter-metadata.js +2 -0
- package/esm5/lib/search/models/predicate/clause-predicate.js +95 -0
- package/esm5/lib/search/models/predicate/editable-clause-predicate-with-generators.js +79 -0
- package/esm5/lib/search/models/predicate/editable-clause-predicate.js +146 -0
- package/esm5/lib/search/models/predicate/editable-elementary-predicate.js +30 -0
- package/esm5/lib/search/models/predicate/editable-predicate-with-generator.js +47 -0
- package/esm5/lib/search/models/predicate/editable-predicate.js +32 -0
- package/esm5/lib/search/models/predicate/elementary-predicate.js +24 -0
- package/esm5/lib/search/models/predicate/predicate-with-generator.js +114 -0
- package/esm5/lib/search/models/predicate/predicate.js +110 -0
- package/esm5/lib/search/models/predicate-removal-event.js +2 -0
- package/esm5/lib/search/models/query/query.js +83 -0
- package/esm5/lib/search/models/search-index.js +76 -0
- package/esm5/lib/search/models/wrap-result.js +2 -0
- package/esm5/lib/search/operator-service/operator-resolver.service.js +113 -0
- package/esm5/lib/search/operator-service/operator.service.js +41 -0
- package/esm5/lib/search/public-api.js +107 -0
- package/esm5/lib/search/search-clause-component/abstract-search-clause.component.js +67 -0
- package/esm5/lib/search/search-component/abstract-search.component.js +201 -0
- package/esm5/lib/search/search-configuration-input-component/abstract-search-configuration-input.component.js +82 -0
- package/esm5/lib/search/search-keyword-resolver-service/search-index-resolver.service.js +40 -0
- package/esm5/lib/search/search-operand-input-component/abstract-search-operand-input.component.js +113 -0
- package/esm5/lib/search/search-predicate-component/abstract-search-predicate.component.js +162 -0
- package/esm5/lib/search/search-service/search.service.js +405 -0
- package/esm5/lib/side-menu/content-components/filter-selector/abstract-filter-selector.component.js +166 -0
- package/esm5/lib/side-menu/content-components/filter-selector/filter-selector-list-item/abstract-filter-selector-list-item.component.js +26 -0
- package/esm5/lib/side-menu/content-components/filter-selector/model/filter-selector-injection-data.js +2 -0
- package/esm5/lib/side-menu/content-components/filter-selector/model/filtered-array.js +37 -0
- package/esm5/lib/side-menu/content-components/import-net/abstract-import-net.component.js +152 -0
- package/esm5/lib/side-menu/content-components/injection-tokens.js +8 -0
- package/esm5/lib/side-menu/content-components/load-filter/abstract-load-filter.component.js +47 -0
- package/esm5/lib/side-menu/content-components/load-filter/model/load-filter-injection-data.js +2 -0
- package/esm5/lib/side-menu/content-components/new-case/abstract-new-case.component.js +264 -0
- package/esm5/lib/side-menu/content-components/new-case/model/new-case-injection-data.js +2 -0
- package/esm5/lib/side-menu/content-components/option-selector/abstract-option-selector.component.js +31 -0
- package/esm5/lib/side-menu/content-components/option-selector/model/option-selector-injection-data.js +2 -0
- package/esm5/lib/side-menu/content-components/public-api.js +20 -0
- package/esm5/lib/side-menu/content-components/save-filter/abstract-save-filter.component.js +43 -0
- package/esm5/lib/side-menu/content-components/save-filter/model/save-filter-injection-data.js +2 -0
- package/esm5/lib/side-menu/content-components/user-assign/abstract-user-assign.component.js +74 -0
- package/esm5/lib/side-menu/content-components/user-assign/model/user-list-injected-data.js +2 -0
- package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/abstract-user-assign-list.component.js +113 -0
- package/esm5/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/abstract-user-assign-item.component.js +15 -0
- package/esm5/lib/side-menu/models/portal-wrapper.js +23 -0
- package/esm5/lib/side-menu/models/side-menu-control.js +47 -0
- package/esm5/lib/side-menu/models/side-menu-event.js +2 -0
- package/esm5/lib/side-menu/models/side-menu-injection-data.js +2 -0
- package/esm5/lib/side-menu/models/side-menu-ref.js +26 -0
- package/esm5/lib/side-menu/models/side-menu-size.js +7 -0
- package/esm5/lib/side-menu/net-version-visible-injection-token.js +4 -0
- package/esm5/lib/side-menu/public-api.js +15 -0
- package/esm5/lib/side-menu/services/side-menu.service.js +90 -0
- package/esm5/lib/side-menu/side-menu-container/abstract-side-menu-container.component.js +36 -0
- package/esm5/lib/side-menu/side-menu-injection-token.js +3 -0
- package/esm5/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.js +31 -0
- package/esm5/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.js +31 -0
- package/esm5/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.js +31 -0
- package/esm5/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.js +31 -0
- package/esm5/lib/snack-bar/models/abstract-snack-bar.js +20 -0
- package/esm5/lib/snack-bar/models/injection-token-snackbar.js +4 -0
- package/esm5/lib/snack-bar/models/snack-bar-enums.js +12 -0
- package/esm5/lib/snack-bar/models/snack-bar-injection-data.js +2 -0
- package/esm5/lib/snack-bar/public-api.js +15 -0
- package/esm5/lib/snack-bar/services/snack-bar.service.js +105 -0
- package/esm5/lib/snack-bar/snack-bar.module.js +37 -0
- package/esm5/lib/tabs/classes/opened-tab.js +50 -0
- package/esm5/lib/tabs/classes/tab-view.js +283 -0
- package/esm5/lib/tabs/interfaces.js +2 -0
- package/esm5/lib/tabs/public-api.js +6 -0
- package/esm5/lib/tabs/tab-creation-detector/abstract-tab-creation-detector.component.js +21 -0
- package/esm5/lib/tabs/tab-data-injection-token/tab-data-injection-token.js +8 -0
- package/esm5/lib/tabs/tab-view/abstract-tab-view.component.js +71 -0
- package/esm5/lib/task/interfaces/task-operations.js +2 -0
- package/esm5/lib/task/models/null-task-operations.js +30 -0
- package/esm5/lib/task/models/subject-task-operations.js +76 -0
- package/esm5/lib/task/models/task-operations-injection-token.js +3 -0
- package/esm5/lib/task/models/task-set-data-request-context.js +2 -0
- package/esm5/lib/task/public-api.js +19 -0
- package/esm5/lib/task/services/assign-policy.service.js +189 -0
- package/esm5/lib/task/services/assign-task.service.js +200 -0
- package/esm5/lib/task/services/cancel-task.service.js +198 -0
- package/esm5/lib/task/services/data-focus-policy.service.js +40 -0
- package/esm5/lib/task/services/delegate-task.service.js +196 -0
- package/esm5/lib/task/services/finish-policy.service.js +85 -0
- package/esm5/lib/task/services/finish-task.service.js +215 -0
- package/esm5/lib/task/services/selected-case.service.js +48 -0
- package/esm5/lib/task/services/task-data.service.js +597 -0
- package/esm5/lib/task/services/task-handling-service.js +68 -0
- package/esm5/lib/task/services/task-request-state.service.js +118 -0
- package/esm5/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.js +41 -0
- package/esm5/lib/task-content/model/async-rendering-configuration-injection-token.js +8 -0
- package/esm5/lib/task-content/model/async-rendering-configuration.js +2 -0
- package/esm5/lib/task-content/model/datafield-grid-layout-element.js +2 -0
- package/esm5/lib/task-content/model/field-type-resource.js +23 -0
- package/esm5/lib/task-content/model/policy.js +31 -0
- package/esm5/lib/task-content/model/resource-interface.js +2 -0
- package/esm5/lib/task-content/model/split-data-group.js +2 -0
- package/esm5/lib/task-content/model/subgrid.js +247 -0
- package/esm5/lib/task-content/model/task-content-element-type.js +19 -0
- package/esm5/lib/task-content/model/task-event-notification.js +15 -0
- package/esm5/lib/task-content/model/task-event.js +10 -0
- package/esm5/lib/task-content/public-api.js +21 -0
- package/esm5/lib/task-content/services/field-converter.service.js +350 -0
- package/esm5/lib/task-content/services/single-task-content.service.js +85 -0
- package/esm5/lib/task-content/services/task-content.service.js +314 -0
- package/esm5/lib/task-content/services/task-event.service.js +54 -0
- package/esm5/lib/task-content/services/unlimited-task-content.service.js +77 -0
- package/esm5/lib/task-content/task-content/abstract-task-content.component.js +687 -0
- package/esm5/lib/toolbar/abstract-toolbar.component.js +24 -0
- package/esm5/lib/toolbar/public-api.js +2 -0
- package/esm5/lib/translate/language.service.js +89 -0
- package/esm5/lib/translate/public-api.js +3 -0
- package/esm5/lib/translate/translate-interceptor.js +25 -0
- package/esm5/lib/translate/translate-lib.module.js +42 -0
- package/esm5/lib/user/components/user-card/abstract-user-card.component.js +58 -0
- package/esm5/lib/user/models/iuser.js +2 -0
- package/esm5/lib/user/models/public-api.js +6 -0
- package/esm5/lib/user/models/user.js +51 -0
- package/esm5/lib/user/models/view-id-injection-tokens.js +4 -0
- package/esm5/lib/user/profile/abstract-profile.component.js +40 -0
- package/esm5/lib/user/public-api.js +12 -0
- package/esm5/lib/user/services/user-comparator.service.js +28 -0
- package/esm5/lib/user/services/user-list.service.js +220 -0
- package/esm5/lib/user/services/user-preference.service.js +164 -0
- package/esm5/lib/user/services/user.service.js +224 -0
- package/esm5/lib/user/services/view-id.service.js +36 -0
- package/esm5/lib/utility/array-to-observable.js +10 -0
- package/esm5/lib/utility/call-chain/after-action.js +19 -0
- package/esm5/lib/utility/call-chain/call-chain.service.js +36 -0
- package/esm5/lib/utility/clear-time-information.js +11 -0
- package/esm5/lib/utility/destroy-subscription.js +10 -0
- package/esm5/lib/utility/get-field.js +48 -0
- package/esm5/lib/utility/get-immediate-data.js +9 -0
- package/esm5/lib/utility/grid-layout/grid-layout-helper.js +105 -0
- package/esm5/lib/utility/grid-layout/model/grid-element-with-item.js +2 -0
- package/esm5/lib/utility/grid-layout/model/grid-element.js +2 -0
- package/esm5/lib/utility/grid-layout/model/grid-filler.js +52 -0
- package/esm5/lib/utility/incrementing-counter.js +23 -0
- package/esm5/lib/utility/loading-emitter.js +28 -0
- package/esm5/lib/utility/loading-with-filter-emitter.js +41 -0
- package/esm5/lib/utility/navigation-item-task-filter-factory.js +11 -0
- package/esm5/lib/utility/navigation-item-task-search-categories-factory.js +35 -0
- package/esm5/lib/utility/of-void.js +12 -0
- package/esm5/lib/utility/pagination/load-all-pages.js +47 -0
- package/esm5/lib/utility/pagination/page-has-content.js +8 -0
- package/esm5/lib/utility/process-message-response.js +17 -0
- package/esm5/lib/utility/public-api.js +47 -0
- package/esm5/lib/utility/refresh-tree.js +9 -0
- package/esm5/lib/utility/result-with-after-actions.js +34 -0
- package/esm5/lib/utility/service/case-list-font-color.service.js +47 -0
- package/esm5/lib/utility/service/spinner-overlay.service.js +51 -0
- package/esm5/lib/utility/stop-propagation.js +5 -0
- package/esm5/lib/utility/tests/mocks/mock-authentication-method-service.js +19 -0
- package/esm5/lib/utility/tests/mocks/mock-authentication.service.js +33 -0
- package/esm5/lib/utility/tests/mocks/mock-endpoint.js +46 -0
- package/esm5/lib/utility/tests/mocks/mock-sign-up.service.js +31 -0
- package/esm5/lib/utility/tests/mocks/mock-user-autocomplete-value.js +15 -0
- package/esm5/lib/utility/tests/mocks/mock-user-preference.service.js +53 -0
- package/esm5/lib/utility/tests/mocks/mock-user-resource.service.js +52 -0
- package/esm5/lib/utility/tests/search-category-mock-dependencies.js +21 -0
- package/esm5/lib/utility/tests/test-config.js +428 -0
- package/esm5/lib/utility/tests/test-factory-methods.js +21 -0
- package/esm5/lib/utility/tests/test-mock-dependencies.module.js +35 -0
- package/esm5/lib/utility/tests/test-view-service.js +28 -0
- package/esm5/lib/utility/tests/utility/configure-category.js +14 -0
- package/esm5/lib/utility/tests/utility/create-mock-case-outcome.js +19 -0
- package/esm5/lib/utility/tests/utility/create-mock-case.js +40 -0
- package/esm5/lib/utility/tests/utility/create-mock-datagroup.js +39 -0
- package/esm5/lib/utility/tests/utility/create-mock-field.js +47 -0
- package/esm5/lib/utility/tests/utility/create-mock-get-data-outcome.js +20 -0
- package/esm5/lib/utility/tests/utility/create-mock-immediate-data.js +17 -0
- package/esm5/lib/utility/tests/utility/create-mock-net.js +34 -0
- package/esm5/lib/utility/tests/utility/create-mock-page.js +24 -0
- package/esm5/lib/utility/tests/utility/create-mock-petri-net-outcome.js +16 -0
- package/esm5/lib/utility/tests/utility/create-mock-set-data-outcome.js +24 -0
- package/esm5/lib/utility/tests/utility/create-mock-task-outcome.js +22 -0
- package/esm5/lib/utility/tests/utility/create-mock-task.js +38 -0
- package/esm5/lib/view/abstract/page-load-request-context.js +34 -0
- package/esm5/lib/view/abstract/sortable-view.js +65 -0
- package/esm5/lib/view/abstract/view-with-headers.js +27 -0
- package/esm5/lib/view/case-view/abstract-case-view.js +47 -0
- package/esm5/lib/view/case-view/components/case-list/abstract-case-list.component.js +92 -0
- package/esm5/lib/view/case-view/models/case-page-load-request-result.js +2 -0
- package/esm5/lib/view/case-view/models/case-view-params.js +2 -0
- package/esm5/lib/view/case-view/models/new-case-configuration-injection-token.js +7 -0
- package/esm5/lib/view/case-view/models/new-case-configuration.js +2 -0
- package/esm5/lib/view/case-view/service/case-view-service.js +300 -0
- package/esm5/lib/view/case-view/tabbed-case-view.js +75 -0
- package/esm5/lib/view/public-api.js +42 -0
- package/esm5/lib/view/task-view/abstract-task-view.js +18 -0
- package/esm5/lib/view/task-view/models/injected-tabbed-task-view-data.js +2 -0
- package/esm5/lib/view/task-view/models/injection-token-task-endpoint.js +6 -0
- package/esm5/lib/view/task-view/models/task-endpoint.js +9 -0
- package/esm5/lib/view/task-view/models/task-page-load-request-result.js +2 -0
- package/esm5/lib/view/task-view/models/task-view-configuration-injection-token.js +20 -0
- package/esm5/lib/view/task-view/models/task-view-configuration.js +2 -0
- package/esm5/lib/view/task-view/models/task-view-params.js +2 -0
- package/esm5/lib/view/task-view/service/task-view.service.js +333 -0
- package/esm5/lib/view/task-view/tabbed-task-view.js +27 -0
- package/esm5/lib/view/tree-case-view/model/tree-petriflow-identifiers.js +43 -0
- package/esm5/lib/view/tree-case-view/tree-case-view.service.js +19 -0
- package/esm5/lib/view/tree-case-view/tree-component/abstract-tree.component.js +165 -0
- package/esm5/lib/view/tree-case-view/tree-component/add-child-node/abstract-add-child-node.component.js +16 -0
- package/esm5/lib/view/tree-case-view/tree-component/case-tree.service.js +899 -0
- package/esm5/lib/view/tree-case-view/tree-component/model/case-tree-node.js +106 -0
- package/esm5/lib/view/tree-case-view/tree-component/model/case-tree-path.js +2 -0
- package/esm5/lib/view/tree-case-view/tree-component/model/expansion-tree.js +2 -0
- package/esm5/lib/view/tree-case-view/tree-component/remove-node/abstract-remove-node.component.js +16 -0
- package/esm5/lib/view/tree-case-view/tree-task-content/abstract-tree-task-content.component.js +66 -0
- package/esm5/lib/view/tree-case-view/tree-task-content/tree-task-content.service.js +308 -0
- package/esm5/lib/view/workflow-view/abstract-workflow-view.component.js +74 -0
- package/esm5/lib/view/workflow-view/models/injection-token-workflow-service.js +10 -0
- package/esm5/lib/view/workflow-view/workflow-view.service.js +232 -0
- package/esm5/netgrif-components-core.js +20 -0
- package/esm5/public-api.js +45 -0
- package/fesm2015/netgrif-components-core.js +28627 -0
- package/fesm2015/netgrif-components-core.js.map +1 -0
- package/fesm5/netgrif-components-core.js +31716 -0
- package/fesm5/netgrif-components-core.js.map +1 -0
- package/lib/admin/public-api.d.ts +6 -0
- package/lib/admin/role-assignment/abstract-role-assignment.d.ts +31 -0
- package/lib/admin/role-assignment/services/ProcessList.d.ts +43 -0
- package/lib/admin/role-assignment/services/role-assignment.service.d.ts +16 -0
- package/lib/admin/user-invite/abstract-user-invite.component.d.ts +30 -0
- package/lib/admin/user-invite/services/organization-list.service.d.ts +16 -0
- package/lib/admin/user-invite/services/user-invite.service.d.ts +9 -0
- package/lib/allowed-nets/public-api.d.ts +3 -0
- package/lib/allowed-nets/services/allowed-nets.service.d.ts +45 -0
- package/lib/allowed-nets/services/base-allowed-nets.service.d.ts +27 -0
- package/lib/allowed-nets/services/factory/allowed-nets-service-factory.d.ts +59 -0
- package/lib/authentication/anonymous/anonymous.service.d.ts +18 -0
- package/lib/authentication/authentication.factory.d.ts +5 -0
- package/lib/authentication/authentication.module.d.ts +2 -0
- package/lib/authentication/components/abstract-authentication-overlay.d.ts +21 -0
- package/lib/authentication/models/credentials.d.ts +4 -0
- package/lib/authentication/models/public-api.d.ts +3 -0
- package/lib/authentication/models/transformer.d.ts +3 -0
- package/lib/authentication/models/user.transformer.d.ts +8 -0
- package/lib/authentication/public-api.d.ts +8 -0
- package/lib/authentication/services/anonymous-authentication-interceptor.d.ts +8 -0
- package/lib/authentication/services/authentication/authentication.service.d.ts +23 -0
- package/lib/authentication/services/authentication-interceptor.d.ts +12 -0
- package/lib/authentication/services/authentication-method.service.d.ts +8 -0
- package/lib/authentication/services/guard/authentication-guard.service.d.ts +11 -0
- package/lib/authentication/services/methods/basic-authentication/basic-authentication.service.d.ts +13 -0
- package/lib/authentication/services/methods/null-authentication/null-authentication.service.d.ts +9 -0
- package/lib/authentication/services/public-api.d.ts +5 -0
- package/lib/authentication/session/null-storage.d.ts +9 -0
- package/lib/authentication/session/public-api.d.ts +1 -0
- package/lib/authentication/session/services/session.service.d.ts +35 -0
- package/lib/authentication/sign-up/models/user-invitation-request.d.ts +5 -0
- package/lib/authentication/sign-up/models/user-registration-request.d.ts +6 -0
- package/lib/authentication/sign-up/public-api.d.ts +4 -0
- package/lib/authentication/sign-up/services/sign-up.service.d.ts +29 -0
- package/lib/authentication/sign-up/sign-up.module.d.ts +2 -0
- package/lib/authorization/authority/authority-guard.service.d.ts +16 -0
- package/lib/authorization/group/group-guard.service.d.ts +19 -0
- package/lib/authorization/permission/permission.service.d.ts +22 -0
- package/lib/authorization/public-api.d.ts +4 -0
- package/lib/authorization/role/role-guard.service.d.ts +29 -0
- package/lib/changed-fields/public-api.d.ts +1 -0
- package/lib/changed-fields/services/changed-fields.service.d.ts +12 -0
- package/lib/configuration/configuration.service.d.ts +69 -0
- package/lib/configuration/public-api.d.ts +1 -0
- package/lib/covalent/covalent.module.d.ts +2 -0
- package/lib/currency/currency.module.d.ts +3 -0
- package/lib/dashboard/cards/count-card/abstract-count-card.d.ts +19 -0
- package/lib/dashboard/cards/custom-card/abstract-custom-card.d.ts +39 -0
- package/lib/dashboard/cards/iframe-card/abstract-iframe-card.d.ts +10 -0
- package/lib/dashboard/cards/model/card-grid-element.d.ts +4 -0
- package/lib/dashboard/cards/model/count-card.d.ts +11 -0
- package/lib/dashboard/cards/model/custom-dashboard-model/aggregation-query.d.ts +9 -0
- package/lib/dashboard/cards/model/custom-dashboard-model/aggregation-result.d.ts +18 -0
- package/lib/dashboard/cards/model/custom-dashboard-model/custom-card.d.ts +14 -0
- package/lib/dashboard/cards/model/custom-dashboard-model/dashboard-event-content.d.ts +5 -0
- package/lib/dashboard/cards/model/custom-dashboard-model/dashboard-multi-data.d.ts +6 -0
- package/lib/dashboard/cards/model/custom-dashboard-model/dashboard-single-data.d.ts +5 -0
- package/lib/dashboard/cards/model/dashboard-card-types.d.ts +11 -0
- package/lib/dashboard/cards/model/dashboard-card.d.ts +7 -0
- package/lib/dashboard/cards/model/graph-card.d.ts +5 -0
- package/lib/dashboard/cards/model/iframe-card.d.ts +6 -0
- package/lib/dashboard/dashboard-content/abstract-dashboard-content.d.ts +15 -0
- package/lib/dashboard/dashboard-content/dashboard-params.d.ts +8 -0
- package/lib/dashboard/public-api.d.ts +16 -0
- package/lib/data-fields/boolean-field/abstract-boolean-field.component.d.ts +11 -0
- package/lib/data-fields/boolean-field/models/boolean-field.d.ts +15 -0
- package/lib/data-fields/button-field/abstract-button-field.component.d.ts +25 -0
- package/lib/data-fields/button-field/models/button-field.d.ts +22 -0
- package/lib/data-fields/data-field-template/abstract-data-field-template.component.d.ts +65 -0
- package/lib/data-fields/data-field-template/models/wrapped-boolean.d.ts +6 -0
- package/lib/data-fields/data-fields.module.d.ts +2 -0
- package/lib/data-fields/date-field/abstract-date-field.component.d.ts +9 -0
- package/lib/data-fields/date-field/models/custom-date-adapter.d.ts +4 -0
- package/lib/data-fields/date-field/models/date-field.d.ts +10 -0
- package/lib/data-fields/date-time-field/abstract-date-time-field.component.d.ts +9 -0
- package/lib/data-fields/date-time-field/models/date-time-field.d.ts +10 -0
- package/lib/data-fields/enumeration-field/abstract-enumeration-field.component.d.ts +6 -0
- package/lib/data-fields/enumeration-field/enumeration-autocomplete-dynamic-field/abstract-enumeration-autocomplete-dynamic-field.component.d.ts +21 -0
- package/lib/data-fields/enumeration-field/enumeration-autocomplete-select-field/abstract-enumeration-autocomplete-select-field.component.d.ts +26 -0
- package/lib/data-fields/enumeration-field/enumeration-icon-field/abstract-enumeration-icon-field.component.d.ts +17 -0
- package/lib/data-fields/enumeration-field/enumeration-list-field/abstract-enumeration-list-field.component.d.ts +10 -0
- package/lib/data-fields/enumeration-field/enumeration-select-field/abstract-enumeration-select-field.component.d.ts +10 -0
- package/lib/data-fields/enumeration-field/enumeration-stepper-field/abstract-enumeration-stepper-field.component.d.ts +18 -0
- package/lib/data-fields/enumeration-field/models/dynamic-enumeration-field.d.ts +25 -0
- package/lib/data-fields/enumeration-field/models/enumeration-field.d.ts +35 -0
- package/lib/data-fields/file-field/abstract-file-field.component.d.ts +147 -0
- package/lib/data-fields/file-field/abstract-preview-dialog/preview-dialog-data.d.ts +9 -0
- package/lib/data-fields/file-field/models/file-field-value.d.ts +4 -0
- package/lib/data-fields/file-field/models/file-field.d.ts +73 -0
- package/lib/data-fields/file-list-field/abstract-file-list-field.component.d.ts +73 -0
- package/lib/data-fields/file-list-field/models/file-list-field-value.d.ts +4 -0
- package/lib/data-fields/file-list-field/models/file-list-field.d.ts +41 -0
- package/lib/data-fields/filter-field/abstract-filter-field-content.component.d.ts +12 -0
- package/lib/data-fields/filter-field/abstract-filter-field.component.d.ts +14 -0
- package/lib/data-fields/filter-field/models/filter-field-injection-token.d.ts +7 -0
- package/lib/data-fields/filter-field/models/filter-field.d.ts +13 -0
- package/lib/data-fields/i18n-field/abstract-i18n-field.component.d.ts +7 -0
- package/lib/data-fields/i18n-field/i18n-divider-field/abstract-i18n-divider-field.component.d.ts +13 -0
- package/lib/data-fields/i18n-field/i18n-text-field/abstract-i18n-text-field.component.d.ts +18 -0
- package/lib/data-fields/i18n-field/models/i18n-field-value.d.ts +5 -0
- package/lib/data-fields/i18n-field/models/i18n-field.d.ts +9 -0
- package/lib/data-fields/models/abstract-data-field-component.d.ts +32 -0
- package/lib/data-fields/models/abstract-data-field.d.ts +220 -0
- package/lib/data-fields/models/behavior.d.ts +40 -0
- package/lib/data-fields/models/boolean-label-enabled-token.d.ts +2 -0
- package/lib/data-fields/models/changed-fields.d.ts +44 -0
- package/lib/data-fields/models/component.d.ts +7 -0
- package/lib/data-fields/models/format-filter.d.ts +5 -0
- package/lib/data-fields/models/icon.d.ts +9 -0
- package/lib/data-fields/models/invalid-data-policy-token.d.ts +10 -0
- package/lib/data-fields/models/layout.d.ts +22 -0
- package/lib/data-fields/models/material-appearance.d.ts +12 -0
- package/lib/data-fields/models/properties.d.ts +3 -0
- package/lib/data-fields/models/template-appearance.d.ts +13 -0
- package/lib/data-fields/models/validation.d.ts +15 -0
- package/lib/data-fields/multichoice-field/abstract-multichoice-field.component.d.ts +6 -0
- package/lib/data-fields/multichoice-field/models/multichoice-field.d.ts +26 -0
- package/lib/data-fields/multichoice-field/multichoice-list-field/abstract-multichoice-list-field.component.d.ts +10 -0
- package/lib/data-fields/multichoice-field/multichoice-select-field/abstract-multichoice-select-field.component.d.ts +8 -0
- package/lib/data-fields/number-field/abstract-number-errors.component.d.ts +13 -0
- package/lib/data-fields/number-field/abstract-number-field.component.d.ts +8 -0
- package/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.d.ts +15 -0
- package/lib/data-fields/number-field/models/number-field.d.ts +36 -0
- package/lib/data-fields/number-field/number-default-field/abstract-default-number-field.component.d.ts +5 -0
- package/lib/data-fields/public-api.d.ts +67 -0
- package/lib/data-fields/task-ref-field/model/task-ref-field.d.ts +8 -0
- package/lib/data-fields/text-field/abstract-text-errors.component.d.ts +10 -0
- package/lib/data-fields/text-field/abstract-text-field.component.d.ts +6 -0
- package/lib/data-fields/text-field/html-textarea-field/abstract-html-textarea-field.component.d.ts +39 -0
- package/lib/data-fields/text-field/models/text-area-field.d.ts +12 -0
- package/lib/data-fields/text-field/models/text-field.d.ts +36 -0
- package/lib/data-fields/text-field/password-text-field/abstract-password-text-field.component.d.ts +13 -0
- package/lib/data-fields/text-field/rich-textarea-field/abstract-rich-textarea-field.component.d.ts +16 -0
- package/lib/data-fields/text-field/simple-text-field/abstract-simple-text-field.component.d.ts +13 -0
- package/lib/data-fields/text-field/textarea-field/abstract-textarea-field.component.d.ts +22 -0
- package/lib/data-fields/time-instance-abstract-field/abstract-time-instance-field.component.d.ts +9 -0
- package/lib/data-fields/time-instance-abstract-field/models/abstract-time-instance-field.d.ts +41 -0
- package/lib/data-fields/user-field/abstract-user-field.component.d.ts +36 -0
- package/lib/data-fields/user-field/models/user-field.d.ts +13 -0
- package/lib/data-fields/user-field/models/user-value.d.ts +24 -0
- package/lib/dialog/components/alert-dialog/alert-dialog.component.d.ts +19 -0
- package/lib/dialog/components/alert-dialog/alert-dialog.module.d.ts +2 -0
- package/lib/dialog/components/confirm-dialog/confirm-dialog.component.d.ts +24 -0
- package/lib/dialog/components/confirm-dialog/confirm-dialog.module.d.ts +2 -0
- package/lib/dialog/components/prompt-dialog/prompt-dialog.component.d.ts +23 -0
- package/lib/dialog/components/prompt-dialog/prompt-dialog.module.d.ts +2 -0
- package/lib/dialog/dialog.module.d.ts +2 -0
- package/lib/dialog/models/DialogData.d.ts +8 -0
- package/lib/dialog/models/DialogResult.d.ts +5 -0
- package/lib/dialog/models/abstract-dialog.d.ts +18 -0
- package/lib/dialog/public-api.d.ts +5 -0
- package/lib/dialog/services/dialog.service.d.ts +43 -0
- package/lib/event/model/event-constants.d.ts +6 -0
- package/lib/event/model/event-outcomes/case-outcomes/case-event-outcome.d.ts +5 -0
- package/lib/event/model/event-outcomes/case-outcomes/create-case-event-outcome.d.ts +3 -0
- package/lib/event/model/event-outcomes/case-outcomes/delete-case-event-outcome.d.ts +3 -0
- package/lib/event/model/event-outcomes/data-outcomes/get-data-event-outcome.d.ts +5 -0
- package/lib/event/model/event-outcomes/data-outcomes/get-data-groups-event-outcome.d.ts +5 -0
- package/lib/event/model/event-outcomes/data-outcomes/get-data-localised-event-outcome.d.ts +5 -0
- package/lib/event/model/event-outcomes/data-outcomes/set-data-event-outcome.d.ts +5 -0
- package/lib/event/model/event-outcomes/petrinet-outcomes/petri-net-event-outcome.d.ts +5 -0
- package/lib/event/model/event-outcomes/task-outcomes/assign-task-event-outcome.d.ts +3 -0
- package/lib/event/model/event-outcomes/task-outcomes/cancel-task-event-outcome.d.ts +3 -0
- package/lib/event/model/event-outcomes/task-outcomes/delegate-task-event-outcome.d.ts +3 -0
- package/lib/event/model/event-outcomes/task-outcomes/finish-task-event-outcome.d.ts +3 -0
- package/lib/event/model/event-outcomes/task-outcomes/task-event-outcome.d.ts +5 -0
- package/lib/event/public-api.d.ts +15 -0
- package/lib/event/services/event.service.d.ts +7 -0
- package/lib/event/services/interfaces/changed-fields-map.d.ts +6 -0
- package/lib/event-queue/model/queued-event.d.ts +21 -0
- package/lib/event-queue/public-api.d.ts +2 -0
- package/lib/event-queue/services/event-queue.service.d.ts +21 -0
- package/lib/filter/filter.repository.d.ts +59 -0
- package/lib/filter/models/case-search-request-body.d.ts +88 -0
- package/lib/filter/models/filter-type.d.ts +9 -0
- package/lib/filter/models/filter.d.ts +68 -0
- package/lib/filter/models/filters-filter-injection-token.d.ts +9 -0
- package/lib/filter/models/merge-operator.d.ts +9 -0
- package/lib/filter/models/merged-filter-params.d.ts +13 -0
- package/lib/filter/models/merged-filter.d.ts +75 -0
- package/lib/filter/models/simple-filter.d.ts +74 -0
- package/lib/filter/models/task-search-request-body.d.ts +83 -0
- package/lib/filter/models/user-filter-constants.d.ts +37 -0
- package/lib/filter/public-api.d.ts +12 -0
- package/lib/filter/user-filters.service.d.ts +116 -0
- package/lib/forms/email-submission/abstract-email-submission-form.component.d.ts +13 -0
- package/lib/forms/forgotten-password/abstract-forgotten-password.component.d.ts +16 -0
- package/lib/forms/has-form.d.ts +10 -0
- package/lib/forms/login/abstract-login-form.component.d.ts +24 -0
- package/lib/forms/models/abstract-registration.component.d.ts +42 -0
- package/lib/forms/models/password.validator.d.ts +7 -0
- package/lib/forms/public-api.d.ts +6 -0
- package/lib/forms/registration/abstract-registration-form.component.d.ts +19 -0
- package/lib/groups/public-api.d.ts +2 -0
- package/lib/groups/services/active-group.service.d.ts +49 -0
- package/lib/groups/services/next-group.service.d.ts +52 -0
- package/lib/header/abstract-header-service.d.ts +133 -0
- package/lib/header/abstract-header.component.d.ts +52 -0
- package/lib/header/case-header/case-header.service.d.ts +21 -0
- package/lib/header/case-header/case-menta-enum.d.ts +7 -0
- package/lib/header/header-modes/abstract-header-mode.component.d.ts +5 -0
- package/lib/header/header-modes/edit-mode/abstract-edit-mode.component.d.ts +28 -0
- package/lib/header/header-modes/loading-mode/abstract-loading-mode.component.d.ts +8 -0
- package/lib/header/header-modes/search-mode/abstract-search-mode.component.d.ts +48 -0
- package/lib/header/header-modes/sort-mode/abstract-sort-mode.component.d.ts +8 -0
- package/lib/header/header-state.d.ts +28 -0
- package/lib/header/models/default-headers-token.d.ts +2 -0
- package/lib/header/models/fields-group.d.ts +9 -0
- package/lib/header/models/header-column.d.ts +17 -0
- package/lib/header/models/header-mode.d.ts +5 -0
- package/lib/header/models/header-type.d.ts +5 -0
- package/lib/header/models/public-api.d.ts +11 -0
- package/lib/header/models/user-changes/column-header-change.d.ts +6 -0
- package/lib/header/models/user-changes/edit-change-description.d.ts +7 -0
- package/lib/header/models/user-changes/header-change-description.d.ts +5 -0
- package/lib/header/models/user-changes/header-change-type.d.ts +18 -0
- package/lib/header/models/user-changes/header-change.d.ts +17 -0
- package/lib/header/models/user-changes/mode-change-description.d.ts +5 -0
- package/lib/header/models/user-changes/search-change-description.d.ts +13 -0
- package/lib/header/models/user-changes/sort-change-description.d.ts +13 -0
- package/lib/header/public-api.d.ts +14 -0
- package/lib/header/services/overflow.service.d.ts +28 -0
- package/lib/header/task-header/task-header.service.d.ts +18 -0
- package/lib/header/task-header/task-meta-enum.d.ts +9 -0
- package/lib/header/workflow-header/workflow-header.service.d.ts +14 -0
- package/lib/header/workflow-header/workflow-meta-enum.d.ts +8 -0
- package/lib/legal/legal-notice/abstract-legal-notice.component.d.ts +13 -0
- package/lib/legal/public-api.d.ts +1 -0
- package/lib/logger/models/log-entry.d.ts +38 -0
- package/lib/logger/public-api.d.ts +7 -0
- package/lib/logger/publishers/console-log-publisher.d.ts +8 -0
- package/lib/logger/publishers/local-storage-log-publisher.d.ts +9 -0
- package/lib/logger/publishers/log-publisher.d.ts +8 -0
- package/lib/logger/services/log-level.d.ts +8 -0
- package/lib/logger/services/log-publisher.service.d.ts +22 -0
- package/lib/logger/services/logger.service.d.ts +25 -0
- package/lib/material/material.module.d.ts +2 -0
- package/lib/moment/public-api.d.ts +1 -0
- package/lib/moment/time-formats.d.ts +24 -0
- package/lib/navigation/group-navigation-component-resolver/abstract-group-navigation-component-resolver.component.d.ts +21 -0
- package/lib/navigation/group-navigation-component-resolver/group-navigation-component-resolver.service.d.ts +14 -0
- package/lib/navigation/group-navigation-component-resolver/group-navigation-view-id-segment-factory.d.ts +2 -0
- package/lib/navigation/model/filter-case-injection-token.d.ts +6 -0
- package/lib/navigation/model/group-navigation-component-resolver-component-injection-token.d.ts +6 -0
- package/lib/navigation/model/group-navigation-constants.d.ts +57 -0
- package/lib/navigation/model/group-navigation-item-label.d.ts +4 -0
- package/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.d.ts +49 -0
- package/lib/navigation/navigation-drawer/abstract-navigation-resizable-drawer.component.d.ts +8 -0
- package/lib/navigation/navigation-rail/abstract-navigation-rail.component.d.ts +14 -0
- package/lib/navigation/navigation-tree/abstract-navigation-tree.component.d.ts +131 -0
- package/lib/navigation/public-api.d.ts +13 -0
- package/lib/navigation/quick-panel/components/abstract-quick-panel.component.d.ts +15 -0
- package/lib/navigation/quick-panel/components/internal-link/abstract-internal-link.component.d.ts +7 -0
- package/lib/navigation/quick-panel/components/language-selector/abstract-language-selector.component.d.ts +24 -0
- package/lib/navigation/quick-panel/components/logout-shortcut/abstract-logout-shortcut.component.d.ts +14 -0
- package/lib/navigation/quick-panel/components/paper-view.service.d.ts +6 -0
- package/lib/navigation/quick-panel/public-api.d.ts +5 -0
- package/lib/navigation/utility/filter-extraction.service.d.ts +18 -0
- package/lib/navigation/utility/navigation-item-task-utility-methods.d.ts +33 -0
- package/lib/panel/abstract/featured-value.d.ts +13 -0
- package/lib/panel/abstract/panel-with-header-binding.d.ts +23 -0
- package/lib/panel/abstract/panel-with-immediate-data.d.ts +18 -0
- package/lib/panel/abstract/tabbed-virtual-scroll.component.d.ts +10 -0
- package/lib/panel/abstract-panel.component.d.ts +23 -0
- package/lib/panel/case-panel/abstract-case-panel.component.d.ts +41 -0
- package/lib/panel/immediate/abstract-immediate-filter-text-content.component.d.ts +16 -0
- package/lib/panel/immediate/abstract-immediate-filter-text.component.d.ts +14 -0
- package/lib/panel/immediate/model/filter-text-injection-token.d.ts +10 -0
- package/lib/panel/public-api.d.ts +12 -0
- package/lib/panel/task-panel/abstract-task-panel.component.d.ts +109 -0
- package/lib/panel/task-panel/models/disable-functions.d.ts +10 -0
- package/lib/panel/task-panel-list/abstract-task-list.component.d.ts +46 -0
- package/lib/panel/task-panel-list/task-panel-data/task-panel-data.d.ts +8 -0
- package/lib/panel/workflow-panel/abstract-workflow-panel.component.d.ts +57 -0
- package/lib/process/net.d.ts +95 -0
- package/lib/process/netRole.d.ts +4 -0
- package/lib/process/permissions.d.ts +30 -0
- package/lib/process/petri-net-reference-with-permissions.d.ts +7 -0
- package/lib/process/process.service.d.ts +94 -0
- package/lib/process/public-api.d.ts +7 -0
- package/lib/process/public-process.service.d.ts +8 -0
- package/lib/process/rolesAndPermissions.d.ts +6 -0
- package/lib/process/transaction.d.ts +5 -0
- package/lib/process/transition.d.ts +7 -0
- package/lib/public/factories/get-net-and-create-case.d.ts +6 -0
- package/lib/public/factories/public-factory-resolver.d.ts +6 -0
- package/lib/public/factories/public-search-factory.d.ts +9 -0
- package/lib/public/public-api.d.ts +4 -0
- package/lib/public/services/public-url-resolver.service.d.ts +6 -0
- package/lib/resources/abstract-endpoint/abstract-resource.service.d.ts +38 -0
- package/lib/resources/abstract-endpoint/count-service.d.ts +6 -0
- package/lib/resources/engine-endpoint/case-resource.service.d.ts +86 -0
- package/lib/resources/engine-endpoint/dashboard-resource.service.d.ts +10 -0
- package/lib/resources/engine-endpoint/petri-net-resource.service.d.ts +105 -0
- package/lib/resources/engine-endpoint/public/public-case-resource.service.d.ts +20 -0
- package/lib/resources/engine-endpoint/public/public-petri-net-resource.service.d.ts +72 -0
- package/lib/resources/engine-endpoint/public/public-task-resource.service.d.ts +95 -0
- package/lib/resources/engine-endpoint/task-resource.service.d.ts +134 -0
- package/lib/resources/engine-endpoint/user-resource.service.d.ts +133 -0
- package/lib/resources/interface/assigned-user-policy.d.ts +4 -0
- package/lib/resources/interface/author.d.ts +15 -0
- package/lib/resources/interface/authority.d.ts +13 -0
- package/lib/resources/interface/case-get-request-body.d.ts +79 -0
- package/lib/resources/interface/case.d.ts +124 -0
- package/lib/resources/interface/changed-field-container.d.ts +4 -0
- package/lib/resources/interface/count.d.ts +15 -0
- package/lib/resources/interface/create-case-request-body.d.ts +11 -0
- package/lib/resources/interface/data-group-layout.d.ts +62 -0
- package/lib/resources/interface/data-groups.d.ts +60 -0
- package/lib/resources/interface/event-outcome.d.ts +10 -0
- package/lib/resources/interface/field-alignment.d.ts +8 -0
- package/lib/resources/interface/fields.d.ts +218 -0
- package/lib/resources/interface/file-resource.d.ts +22 -0
- package/lib/resources/interface/group.d.ts +18 -0
- package/lib/resources/interface/immediate-data.d.ts +44 -0
- package/lib/resources/interface/link.d.ts +18 -0
- package/lib/resources/interface/message-resource.d.ts +24 -0
- package/lib/resources/interface/page.d.ts +14 -0
- package/lib/resources/interface/pagination.d.ts +21 -0
- package/lib/resources/interface/petri-net-object-id.d.ts +12 -0
- package/lib/resources/interface/petri-net-reference.d.ts +46 -0
- package/lib/resources/interface/petri-net-request-body.d.ts +14 -0
- package/lib/resources/interface/petri-net.d.ts +10 -0
- package/lib/resources/interface/preferences.d.ts +16 -0
- package/lib/resources/interface/process-role.d.ts +9 -0
- package/lib/resources/interface/response-data.d.ts +19 -0
- package/lib/resources/interface/task-layout.d.ts +11 -0
- package/lib/resources/interface/task-reference.d.ts +17 -0
- package/lib/resources/interface/task-set-data-request-body.d.ts +35 -0
- package/lib/resources/interface/task.d.ts +72 -0
- package/lib/resources/interface/user-process-role.d.ts +13 -0
- package/lib/resources/interface/user-resource-small.d.ts +11 -0
- package/lib/resources/interface/user-resource.d.ts +16 -0
- package/lib/resources/public-api.d.ts +42 -0
- package/lib/resources/resource-provider.service.d.ts +53 -0
- package/lib/resources/types/nae-date-type.d.ts +7 -0
- package/lib/routing/dynamic-navigation-route-provider/dynamic-navigation-route-provider.service.d.ts +12 -0
- package/lib/routing/public-api.d.ts +5 -0
- package/lib/routing/redirect-service/redirect.service.d.ts +22 -0
- package/lib/routing/routing-builder/routing-builder.service.d.ts +23 -0
- package/lib/routing/view-service/model/view-entry.d.ts +14 -0
- package/lib/routing/view-service/view.service.d.ts +29 -0
- package/lib/search/advanced-search-component/abstract-advanced-search.component.d.ts +25 -0
- package/lib/search/advanced-search-component-initialization-service/advanced-search-component-initialization.service.d.ts +22 -0
- package/lib/search/category-factory/category-factory.d.ts +55 -0
- package/lib/search/category-factory/category-resolver.service.d.ts +48 -0
- package/lib/search/category-factory/category-serialisation-pair.d.ts +10 -0
- package/lib/search/category-factory/default-categories-factories.d.ts +32 -0
- package/lib/search/category-factory/default-search-categories.module.d.ts +2 -0
- package/lib/search/category-factory/optional-dependencies.d.ts +22 -0
- package/lib/search/category-factory/search-categories-injection-token.d.ts +24 -0
- package/lib/search/fulltext-search-component/abstract-fulltext-search.component.d.ts +7 -0
- package/lib/search/header-search-service/header-search.service.d.ts +112 -0
- package/lib/search/models/base-filter-injection-token.d.ts +6 -0
- package/lib/search/models/base-filter.d.ts +18 -0
- package/lib/search/models/boolean-operator.d.ts +7 -0
- package/lib/search/models/category/autocomplete-category.d.ts +94 -0
- package/lib/search/models/category/autocomplete-options.d.ts +17 -0
- package/lib/search/models/category/case/case-author.d.ts +12 -0
- package/lib/search/models/category/case/case-creation-date-time.d.ts +16 -0
- package/lib/search/models/category/case/case-creation-date.d.ts +16 -0
- package/lib/search/models/category/case/case-dataset.d.ts +94 -0
- package/lib/search/models/category/case/case-net-attribute-autocomplete-category.d.ts +18 -0
- package/lib/search/models/category/case/case-process.d.ts +27 -0
- package/lib/search/models/category/case/case-role.d.ts +15 -0
- package/lib/search/models/category/case/case-search.enum.d.ts +13 -0
- package/lib/search/models/category/case/case-simple-dataset.d.ts +58 -0
- package/lib/search/models/category/case/case-string-id.d.ts +11 -0
- package/lib/search/models/category/case/case-task.d.ts +15 -0
- package/lib/search/models/category/case/case-title.d.ts +11 -0
- package/lib/search/models/category/case/case-visual-id.d.ts +11 -0
- package/lib/search/models/category/categories.d.ts +20 -0
- package/lib/search/models/category/category.d.ts +363 -0
- package/lib/search/models/category/name-id-pair.d.ts +13 -0
- package/lib/search/models/category/net-attribute-autocomplete-category.d.ts +55 -0
- package/lib/search/models/category/net-attribute-pair.d.ts +17 -0
- package/lib/search/models/category/no-configuration-autocomplete-category.d.ts +28 -0
- package/lib/search/models/category/no-configuration-category.d.ts +30 -0
- package/lib/search/models/category/no-configuration-user-autocomplete-category.d.ts +20 -0
- package/lib/search/models/category/search-autocomplete-option.d.ts +21 -0
- package/lib/search/models/category/search-input-type.d.ts +12 -0
- package/lib/search/models/category/task/task-assignee.d.ts +12 -0
- package/lib/search/models/category/task/task-net-attribute-autocomplete-category.d.ts +18 -0
- package/lib/search/models/category/task/task-process.d.ts +19 -0
- package/lib/search/models/category/task/task-role.d.ts +15 -0
- package/lib/search/models/category/task/task-task.d.ts +15 -0
- package/lib/search/models/category/user-autocomplete.d.ts +28 -0
- package/lib/search/models/component-configuration/search-component-configuration-injection-token.d.ts +8 -0
- package/lib/search/models/component-configuration/search-component-configuration.d.ts +21 -0
- package/lib/search/models/component-configuration/search-mode.d.ts +7 -0
- package/lib/search/models/configuration-input.d.ts +38 -0
- package/lib/search/models/datafield-map-key.d.ts +28 -0
- package/lib/search/models/escape-result.d.ts +13 -0
- package/lib/search/models/operator/equals-date-time.d.ts +19 -0
- package/lib/search/models/operator/equals-date.d.ts +19 -0
- package/lib/search/models/operator/equals.d.ts +13 -0
- package/lib/search/models/operator/in-range-date-time.d.ts +24 -0
- package/lib/search/models/operator/in-range-date.d.ts +24 -0
- package/lib/search/models/operator/in-range.d.ts +12 -0
- package/lib/search/models/operator/is-null.d.ts +51 -0
- package/lib/search/models/operator/less-than-date-time.d.ts +16 -0
- package/lib/search/models/operator/less-than-date.d.ts +16 -0
- package/lib/search/models/operator/less-than-equal-date-time.d.ts +16 -0
- package/lib/search/models/operator/less-than-equal-date.d.ts +16 -0
- package/lib/search/models/operator/less-than-equal.d.ts +10 -0
- package/lib/search/models/operator/less-than.d.ts +10 -0
- package/lib/search/models/operator/like.d.ts +18 -0
- package/lib/search/models/operator/more-than-date-time.d.ts +16 -0
- package/lib/search/models/operator/more-than-date.d.ts +16 -0
- package/lib/search/models/operator/more-than-equal-date-time.d.ts +16 -0
- package/lib/search/models/operator/more-than-equal-date.d.ts +16 -0
- package/lib/search/models/operator/more-than-equal.d.ts +10 -0
- package/lib/search/models/operator/more-than.d.ts +10 -0
- package/lib/search/models/operator/not-equals-date-time.d.ts +13 -0
- package/lib/search/models/operator/not-equals-date.d.ts +16 -0
- package/lib/search/models/operator/not-equals.d.ts +18 -0
- package/lib/search/models/operator/operator.d.ts +98 -0
- package/lib/search/models/operator/operators.d.ts +29 -0
- package/lib/search/models/operator/substring.d.ts +13 -0
- package/lib/search/models/operator-template-part-type.d.ts +13 -0
- package/lib/search/models/operator-template-part.d.ts +26 -0
- package/lib/search/models/persistance/filter-metadata-allowed-nets.d.ts +14 -0
- package/lib/search/models/persistance/filter-metadata.d.ts +29 -0
- package/lib/search/models/persistance/filter-text-segment.d.ts +19 -0
- package/lib/search/models/persistance/generator-metadata.d.ts +44 -0
- package/lib/search/models/persistance/saved-filter-metadata.d.ts +26 -0
- package/lib/search/models/predicate/clause-predicate.d.ts +56 -0
- package/lib/search/models/predicate/editable-clause-predicate-with-generators.d.ts +24 -0
- package/lib/search/models/predicate/editable-clause-predicate.d.ts +67 -0
- package/lib/search/models/predicate/editable-elementary-predicate.d.ts +13 -0
- package/lib/search/models/predicate/editable-predicate-with-generator.d.ts +28 -0
- package/lib/search/models/predicate/editable-predicate.d.ts +14 -0
- package/lib/search/models/predicate/elementary-predicate.d.ts +10 -0
- package/lib/search/models/predicate/predicate-with-generator.d.ts +45 -0
- package/lib/search/models/predicate/predicate.d.ts +52 -0
- package/lib/search/models/predicate-removal-event.d.ts +13 -0
- package/lib/search/models/query/query.d.ts +44 -0
- package/lib/search/models/search-index.d.ts +74 -0
- package/lib/search/models/wrap-result.d.ts +13 -0
- package/lib/search/operator-service/operator-resolver.service.d.ts +23 -0
- package/lib/search/operator-service/operator.service.d.ts +16 -0
- package/lib/search/public-api.d.ts +98 -0
- package/lib/search/search-clause-component/abstract-search-clause.component.d.ts +28 -0
- package/lib/search/search-component/abstract-search.component.d.ts +86 -0
- package/lib/search/search-configuration-input-component/abstract-search-configuration-input.component.d.ts +42 -0
- package/lib/search/search-keyword-resolver-service/search-index-resolver.service.d.ts +25 -0
- package/lib/search/search-operand-input-component/abstract-search-operand-input.component.d.ts +38 -0
- package/lib/search/search-predicate-component/abstract-search-predicate.component.d.ts +64 -0
- package/lib/search/search-service/search.service.d.ts +182 -0
- package/lib/side-menu/content-components/filter-selector/abstract-filter-selector.component.d.ts +105 -0
- package/lib/side-menu/content-components/filter-selector/filter-selector-list-item/abstract-filter-selector-list-item.component.d.ts +20 -0
- package/lib/side-menu/content-components/filter-selector/model/filter-selector-injection-data.d.ts +20 -0
- package/lib/side-menu/content-components/filter-selector/model/filtered-array.d.ts +25 -0
- package/lib/side-menu/content-components/import-net/abstract-import-net.component.d.ts +50 -0
- package/lib/side-menu/content-components/injection-tokens.d.ts +8 -0
- package/lib/side-menu/content-components/load-filter/abstract-load-filter.component.d.ts +13 -0
- package/lib/side-menu/content-components/load-filter/model/load-filter-injection-data.d.ts +8 -0
- package/lib/side-menu/content-components/new-case/abstract-new-case.component.d.ts +62 -0
- package/lib/side-menu/content-components/new-case/model/new-case-injection-data.d.ts +13 -0
- package/lib/side-menu/content-components/option-selector/abstract-option-selector.component.d.ts +14 -0
- package/lib/side-menu/content-components/option-selector/model/option-selector-injection-data.d.ts +24 -0
- package/lib/side-menu/content-components/public-api.d.ts +17 -0
- package/lib/side-menu/content-components/save-filter/abstract-save-filter.component.d.ts +15 -0
- package/lib/side-menu/content-components/save-filter/model/save-filter-injection-data.d.ts +4 -0
- package/lib/side-menu/content-components/user-assign/abstract-user-assign.component.d.ts +46 -0
- package/lib/side-menu/content-components/user-assign/model/user-list-injected-data.d.ts +11 -0
- package/lib/side-menu/content-components/user-assign/user-assign-list/abstract-user-assign-list.component.d.ts +83 -0
- package/lib/side-menu/content-components/user-assign/user-assign-list/user-assign-item/abstract-user-assign-item.component.d.ts +16 -0
- package/lib/side-menu/models/portal-wrapper.d.ts +9 -0
- package/lib/side-menu/models/side-menu-control.d.ts +15 -0
- package/lib/side-menu/models/side-menu-event.d.ts +6 -0
- package/lib/side-menu/models/side-menu-injection-data.d.ts +3 -0
- package/lib/side-menu/models/side-menu-ref.d.ts +8 -0
- package/lib/side-menu/models/side-menu-size.d.ts +5 -0
- package/lib/side-menu/net-version-visible-injection-token.d.ts +3 -0
- package/lib/side-menu/public-api.d.ts +10 -0
- package/lib/side-menu/services/side-menu.service.d.ts +35 -0
- package/lib/side-menu/side-menu-container/abstract-side-menu-container.component.d.ts +16 -0
- package/lib/side-menu/side-menu-injection-token.d.ts +3 -0
- package/lib/snack-bar/components/error-snack-bar/error-snack-bar.component.d.ts +8 -0
- package/lib/snack-bar/components/generic-snack-bar/generic-snack-bar.component.d.ts +8 -0
- package/lib/snack-bar/components/success-snack-bar/success-snack-bar.component.d.ts +8 -0
- package/lib/snack-bar/components/warning-snack-bar/warning-snack-bar.component.d.ts +8 -0
- package/lib/snack-bar/models/abstract-snack-bar.d.ts +10 -0
- package/lib/snack-bar/models/injection-token-snackbar.d.ts +4 -0
- package/lib/snack-bar/models/snack-bar-enums.d.ts +9 -0
- package/lib/snack-bar/models/snack-bar-injection-data.d.ts +5 -0
- package/lib/snack-bar/public-api.d.ts +10 -0
- package/lib/snack-bar/services/snack-bar.service.d.ts +18 -0
- package/lib/snack-bar/snack-bar.module.d.ts +2 -0
- package/lib/tabs/classes/opened-tab.d.ts +67 -0
- package/lib/tabs/classes/tab-view.d.ts +123 -0
- package/lib/tabs/interfaces.d.ts +135 -0
- package/lib/tabs/public-api.d.ts +5 -0
- package/lib/tabs/tab-creation-detector/abstract-tab-creation-detector.component.d.ts +18 -0
- package/lib/tabs/tab-data-injection-token/tab-data-injection-token.d.ts +8 -0
- package/lib/tabs/tab-view/abstract-tab-view.component.d.ts +38 -0
- package/lib/task/interfaces/task-operations.d.ts +35 -0
- package/lib/task/models/null-task-operations.d.ts +22 -0
- package/lib/task/models/subject-task-operations.d.ts +37 -0
- package/lib/task/models/task-operations-injection-token.d.ts +3 -0
- package/lib/task/models/task-set-data-request-context.d.ts +11 -0
- package/lib/task/public-api.d.ts +15 -0
- package/lib/task/services/assign-policy.service.d.ts +81 -0
- package/lib/task/services/assign-task.service.d.ts +78 -0
- package/lib/task/services/cancel-task.service.d.ts +79 -0
- package/lib/task/services/data-focus-policy.service.d.ts +16 -0
- package/lib/task/services/delegate-task.service.d.ts +70 -0
- package/lib/task/services/finish-policy.service.d.ts +38 -0
- package/lib/task/services/finish-task.service.d.ts +76 -0
- package/lib/task/services/selected-case.service.d.ts +35 -0
- package/lib/task/services/task-data.service.d.ts +177 -0
- package/lib/task/services/task-handling-service.d.ts +41 -0
- package/lib/task/services/task-request-state.service.d.ts +64 -0
- package/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.d.ts +22 -0
- package/lib/task-content/model/async-rendering-configuration-injection-token.d.ts +8 -0
- package/lib/task-content/model/async-rendering-configuration.d.ts +22 -0
- package/lib/task-content/model/datafield-grid-layout-element.d.ts +9 -0
- package/lib/task-content/model/field-type-resource.d.ts +21 -0
- package/lib/task-content/model/policy.d.ts +27 -0
- package/lib/task-content/model/resource-interface.d.ts +37 -0
- package/lib/task-content/model/split-data-group.d.ts +7 -0
- package/lib/task-content/model/subgrid.d.ts +145 -0
- package/lib/task-content/model/task-content-element-type.d.ts +19 -0
- package/lib/task-content/model/task-event-notification.d.ts +32 -0
- package/lib/task-content/model/task-event.d.ts +8 -0
- package/lib/task-content/public-api.d.ts +17 -0
- package/lib/task-content/services/field-converter.service.d.ts +58 -0
- package/lib/task-content/services/single-task-content.service.d.ts +42 -0
- package/lib/task-content/services/task-content.service.d.ts +125 -0
- package/lib/task-content/services/task-event.service.d.ts +28 -0
- package/lib/task-content/services/unlimited-task-content.service.d.ts +42 -0
- package/lib/task-content/task-content/abstract-task-content.component.d.ts +263 -0
- package/lib/toolbar/abstract-toolbar.component.d.ts +15 -0
- package/lib/toolbar/public-api.d.ts +1 -0
- package/lib/translate/language.service.d.ts +20 -0
- package/lib/translate/public-api.d.ts +2 -0
- package/lib/translate/translate-interceptor.d.ts +8 -0
- package/lib/translate/translate-lib.module.d.ts +5 -0
- package/lib/user/components/user-card/abstract-user-card.component.d.ts +22 -0
- package/lib/user/models/iuser.d.ts +19 -0
- package/lib/user/models/public-api.d.ts +3 -0
- package/lib/user/models/user.d.ts +29 -0
- package/lib/user/models/view-id-injection-tokens.d.ts +3 -0
- package/lib/user/profile/abstract-profile.component.d.ts +14 -0
- package/lib/user/public-api.d.ts +8 -0
- package/lib/user/services/user-comparator.service.d.ts +7 -0
- package/lib/user/services/user-list.service.d.ts +111 -0
- package/lib/user/services/user-preference.service.d.ts +37 -0
- package/lib/user/services/user.service.d.ts +65 -0
- package/lib/user/services/view-id.service.d.ts +7 -0
- package/lib/utility/array-to-observable.d.ts +6 -0
- package/lib/utility/call-chain/after-action.d.ts +8 -0
- package/lib/utility/call-chain/call-chain.service.d.ts +16 -0
- package/lib/utility/clear-time-information.d.ts +6 -0
- package/lib/utility/destroy-subscription.d.ts +6 -0
- package/lib/utility/get-field.d.ts +34 -0
- package/lib/utility/get-immediate-data.d.ts +8 -0
- package/lib/utility/grid-layout/grid-layout-helper.d.ts +10 -0
- package/lib/utility/grid-layout/model/grid-element-with-item.d.ts +4 -0
- package/lib/utility/grid-layout/model/grid-element.d.ts +12 -0
- package/lib/utility/grid-layout/model/grid-filler.d.ts +10 -0
- package/lib/utility/incrementing-counter.d.ts +14 -0
- package/lib/utility/loading-emitter.d.ts +8 -0
- package/lib/utility/loading-with-filter-emitter.d.ts +12 -0
- package/lib/utility/navigation-item-task-filter-factory.d.ts +9 -0
- package/lib/utility/navigation-item-task-search-categories-factory.d.ts +15 -0
- package/lib/utility/of-void.d.ts +6 -0
- package/lib/utility/pagination/load-all-pages.d.ts +13 -0
- package/lib/utility/pagination/page-has-content.d.ts +6 -0
- package/lib/utility/process-message-response.d.ts +10 -0
- package/lib/utility/public-api.d.ts +45 -0
- package/lib/utility/refresh-tree.d.ts +5 -0
- package/lib/utility/result-with-after-actions.d.ts +21 -0
- package/lib/utility/service/case-list-font-color.service.d.ts +15 -0
- package/lib/utility/service/spinner-overlay.service.d.ts +13 -0
- package/lib/utility/stop-propagation.d.ts +1 -0
- package/lib/utility/tests/mocks/mock-authentication-method-service.d.ts +8 -0
- package/lib/utility/tests/mocks/mock-authentication.service.d.ts +10 -0
- package/lib/utility/tests/mocks/mock-endpoint.d.ts +25 -0
- package/lib/utility/tests/mocks/mock-sign-up.service.d.ts +20 -0
- package/lib/utility/tests/mocks/mock-user-autocomplete-value.d.ts +7 -0
- package/lib/utility/tests/mocks/mock-user-preference.service.d.ts +15 -0
- package/lib/utility/tests/mocks/mock-user-resource.service.d.ts +17 -0
- package/lib/utility/tests/search-category-mock-dependencies.d.ts +6 -0
- package/lib/utility/tests/test-config.d.ts +4 -0
- package/lib/utility/tests/test-factory-methods.d.ts +7 -0
- package/lib/utility/tests/test-mock-dependencies.module.d.ts +12 -0
- package/lib/utility/tests/test-view-service.d.ts +7 -0
- package/lib/utility/tests/utility/configure-category.d.ts +13 -0
- package/lib/utility/tests/utility/create-mock-case-outcome.d.ts +10 -0
- package/lib/utility/tests/utility/create-mock-case.d.ts +8 -0
- package/lib/utility/tests/utility/create-mock-datagroup.d.ts +18 -0
- package/lib/utility/tests/utility/create-mock-field.d.ts +19 -0
- package/lib/utility/tests/utility/create-mock-get-data-outcome.d.ts +7 -0
- package/lib/utility/tests/utility/create-mock-immediate-data.d.ts +8 -0
- package/lib/utility/tests/utility/create-mock-net.d.ts +17 -0
- package/lib/utility/tests/utility/create-mock-page.d.ts +7 -0
- package/lib/utility/tests/utility/create-mock-petri-net-outcome.d.ts +9 -0
- package/lib/utility/tests/utility/create-mock-set-data-outcome.d.ts +12 -0
- package/lib/utility/tests/utility/create-mock-task-outcome.d.ts +11 -0
- package/lib/utility/tests/utility/create-mock-task.d.ts +8 -0
- package/lib/view/abstract/page-load-request-context.d.ts +40 -0
- package/lib/view/abstract/sortable-view.d.ts +19 -0
- package/lib/view/abstract/view-with-headers.d.ts +13 -0
- package/lib/view/case-view/abstract-case-view.d.ts +25 -0
- package/lib/view/case-view/components/case-list/abstract-case-list.component.d.ts +35 -0
- package/lib/view/case-view/models/case-page-load-request-result.d.ts +14 -0
- package/lib/view/case-view/models/case-view-params.d.ts +3 -0
- package/lib/view/case-view/models/new-case-configuration-injection-token.d.ts +7 -0
- package/lib/view/case-view/models/new-case-configuration.d.ts +9 -0
- package/lib/view/case-view/service/case-view-service.d.ts +73 -0
- package/lib/view/case-view/tabbed-case-view.d.ts +26 -0
- package/lib/view/public-api.d.ts +35 -0
- package/lib/view/task-view/abstract-task-view.d.ts +12 -0
- package/lib/view/task-view/models/injected-tabbed-task-view-data.d.ts +12 -0
- package/lib/view/task-view/models/injection-token-task-endpoint.d.ts +6 -0
- package/lib/view/task-view/models/task-endpoint.d.ts +7 -0
- package/lib/view/task-view/models/task-page-load-request-result.d.ts +14 -0
- package/lib/view/task-view/models/task-view-configuration-injection-token.d.ts +13 -0
- package/lib/view/task-view/models/task-view-configuration.d.ts +19 -0
- package/lib/view/task-view/models/task-view-params.d.ts +3 -0
- package/lib/view/task-view/service/task-view.service.d.ts +68 -0
- package/lib/view/task-view/tabbed-task-view.d.ts +11 -0
- package/lib/view/tree-case-view/model/tree-petriflow-identifiers.d.ts +41 -0
- package/lib/view/tree-case-view/tree-case-view.service.d.ts +9 -0
- package/lib/view/tree-case-view/tree-component/abstract-tree.component.d.ts +99 -0
- package/lib/view/tree-case-view/tree-component/add-child-node/abstract-add-child-node.component.d.ts +8 -0
- package/lib/view/tree-case-view/tree-component/case-tree.service.d.ts +300 -0
- package/lib/view/tree-case-view/tree-component/model/case-tree-node.d.ts +57 -0
- package/lib/view/tree-case-view/tree-component/model/case-tree-path.d.ts +8 -0
- package/lib/view/tree-case-view/tree-component/model/expansion-tree.d.ts +6 -0
- package/lib/view/tree-case-view/tree-component/remove-node/abstract-remove-node.component.d.ts +8 -0
- package/lib/view/tree-case-view/tree-task-content/abstract-tree-task-content.component.d.ts +32 -0
- package/lib/view/tree-case-view/tree-task-content/tree-task-content.service.d.ts +112 -0
- package/lib/view/workflow-view/abstract-workflow-view.component.d.ts +30 -0
- package/lib/view/workflow-view/models/injection-token-workflow-service.d.ts +10 -0
- package/lib/view/workflow-view/workflow-view.service.d.ts +52 -0
- package/netgrif-components-core.d.ts +25 -0
- package/netgrif-components-core.metadata.json +1 -0
- package/package.json +79 -0
- package/public-api.d.ts +39 -0
- package/schematics/_commons/angular-cli-devkit-core-strings.d.ts +93 -0
- package/schematics/_commons/angular-cli-devkit-core-strings.js +167 -0
- package/schematics/_commons/angular-cli-devkit-core-strings.js.map +1 -0
- package/schematics/_commons/import-to-add.d.ts +5 -0
- package/schematics/_commons/import-to-add.js +11 -0
- package/schematics/_commons/import-to-add.js.map +1 -0
- package/schematics/_commons/view-class-info.d.ts +22 -0
- package/schematics/_commons/view-class-info.js +58 -0
- package/schematics/_commons/view-class-info.js.map +1 -0
- package/schematics/_utility/models/file-data.d.ts +6 -0
- package/schematics/_utility/models/file-data.js +3 -0
- package/schematics/_utility/models/file-data.js.map +1 -0
- package/schematics/_utility/models/file-system-node.d.ts +6 -0
- package/schematics/_utility/models/file-system-node.js +12 -0
- package/schematics/_utility/models/file-system-node.js.map +1 -0
- package/schematics/_utility/models/project-info.d.ts +13 -0
- package/schematics/_utility/models/project-info.js +20 -0
- package/schematics/_utility/models/project-info.js.map +1 -0
- package/schematics/_utility/modified-library-functions.d.ts +24 -0
- package/schematics/_utility/modified-library-functions.js +150 -0
- package/schematics/_utility/modified-library-functions.js.map +1 -0
- package/schematics/_utility/utility-functions.d.ts +60 -0
- package/schematics/_utility/utility-functions.js +221 -0
- package/schematics/_utility/utility-functions.js.map +1 -0
- package/schematics/add/add/index.d.ts +2 -0
- package/schematics/add/add/index.js +27 -0
- package/schematics/add/add/index.js.map +1 -0
- package/schematics/add/create-nae-files/files/app-routing.module.ts.template +13 -0
- package/schematics/add/create-nae-files/index.d.ts +2 -0
- package/schematics/add/create-nae-files/index.js +154 -0
- package/schematics/add/create-nae-files/index.js.map +1 -0
- package/schematics/add/create-nae-files/schema.json +7 -0
- package/schematics/collection.json +30 -0
- package/schematics/configuration-service/files/__project@dasherize__-configuration.service.ts.template +13 -0
- package/schematics/configuration-service/schema.json +7 -0
- package/schematics/configuration-service/schematic-create-configuration-service.d.ts +2 -0
- package/schematics/configuration-service/schematic-create-configuration-service.js +41 -0
- package/schematics/configuration-service/schematic-create-configuration-service.js.map +1 -0
- package/schematics/migrations/4.1/migration-4.1.d.ts +5 -0
- package/schematics/migrations/4.1/migration-4.1.js +37 -0
- package/schematics/migrations/4.1/migration-4.1.js.map +1 -0
- package/schematics/migrations.json +10 -0
- package/schematics/view/_utility/view-service-functions.d.ts +9 -0
- package/schematics/view/_utility/view-service-functions.js +59 -0
- package/schematics/view/_utility/view-service-functions.js.map +1 -0
- package/schematics/view/_utility/view-utility-functions.d.ts +7 -0
- package/schematics/view/_utility/view-utility-functions.js +53 -0
- package/schematics/view/_utility/view-utility-functions.js.map +1 -0
- package/schematics/view-service/files/__project@dasherize__-view.service.ts.template +14 -0
- package/schematics/view-service/schema.json +7 -0
- package/schematics/view-service/schematic-create-view-service.d.ts +2 -0
- package/schematics/view-service/schematic-create-view-service.js +25 -0
- package/schematics/view-service/schematic-create-view-service.js.map +1 -0
- package/src/assets/i18n/de.json +419 -0
- package/src/assets/i18n/en.json +419 -0
- package/src/assets/i18n/sk.json +419 -0
- package/src/schema/nae-schema.json +770 -0
|
@@ -0,0 +1,597 @@
|
|
|
1
|
+
import { __extends, __values } from "tslib";
|
|
2
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { TaskContentService } from '../../task-content/services/task-content.service';
|
|
5
|
+
import { TaskRequestStateService } from './task-request-state.service';
|
|
6
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
7
|
+
import { LoggerService } from '../../logger/services/logger.service';
|
|
8
|
+
import { SnackBarService } from '../../snack-bar/services/snack-bar.service';
|
|
9
|
+
import { TaskResourceService } from '../../resources/engine-endpoint/task-resource.service';
|
|
10
|
+
import { FieldConverterService } from '../../task-content/services/field-converter.service';
|
|
11
|
+
import { TaskHandlingService } from './task-handling-service';
|
|
12
|
+
import { NAE_TASK_OPERATIONS } from '../models/task-operations-injection-token';
|
|
13
|
+
import { FileField } from '../../data-fields/file-field/models/file-field';
|
|
14
|
+
import { SelectedCaseService } from './selected-case.service';
|
|
15
|
+
import { FileListField } from '../../data-fields/file-list-field/models/file-list-field';
|
|
16
|
+
import { createTaskEventNotification } from '../../task-content/model/task-event-notification';
|
|
17
|
+
import { TaskEvent } from '../../task-content/model/task-event';
|
|
18
|
+
import { TaskEventService } from '../../task-content/services/task-event.service';
|
|
19
|
+
import { CallChainService } from '../../utility/call-chain/call-chain.service';
|
|
20
|
+
import { take } from 'rxjs/operators';
|
|
21
|
+
import { DynamicEnumerationField } from '../../data-fields/enumeration-field/models/dynamic-enumeration-field';
|
|
22
|
+
import { EventQueueService } from '../../event-queue/services/event-queue.service';
|
|
23
|
+
import { QueuedEvent } from '../../event-queue/model/queued-event';
|
|
24
|
+
import { AfterAction } from '../../utility/call-chain/after-action';
|
|
25
|
+
import { UserComparatorService } from '../../user/services/user-comparator.service';
|
|
26
|
+
import { EventService } from '../../event/services/event.service';
|
|
27
|
+
import { ChangedFieldsService } from '../../changed-fields/services/changed-fields.service';
|
|
28
|
+
/**
|
|
29
|
+
* Handles the loading and updating of data fields and behaviour of
|
|
30
|
+
* a single Task object managed by a {@link TaskContentService} instance.
|
|
31
|
+
*/
|
|
32
|
+
var TaskDataService = /** @class */ (function (_super) {
|
|
33
|
+
__extends(TaskDataService, _super);
|
|
34
|
+
function TaskDataService(_taskState, _translate, _log, _snackBar, _taskResourceService, _fieldConverterService, _taskEvent, _taskOperations, _selectedCaseService, _taskContentService, _afterActionFactory, _eventQueue, _userComparator, _eventService, _changedFieldsService) {
|
|
35
|
+
var _this = _super.call(this, _taskContentService, _selectedCaseService) || this;
|
|
36
|
+
_this._taskState = _taskState;
|
|
37
|
+
_this._translate = _translate;
|
|
38
|
+
_this._log = _log;
|
|
39
|
+
_this._snackBar = _snackBar;
|
|
40
|
+
_this._taskResourceService = _taskResourceService;
|
|
41
|
+
_this._fieldConverterService = _fieldConverterService;
|
|
42
|
+
_this._taskEvent = _taskEvent;
|
|
43
|
+
_this._taskOperations = _taskOperations;
|
|
44
|
+
_this._afterActionFactory = _afterActionFactory;
|
|
45
|
+
_this._eventQueue = _eventQueue;
|
|
46
|
+
_this._userComparator = _userComparator;
|
|
47
|
+
_this._eventService = _eventService;
|
|
48
|
+
_this._changedFieldsService = _changedFieldsService;
|
|
49
|
+
_this._updateSuccess$ = new Subject();
|
|
50
|
+
_this._dataReloadSubscription = _this._taskContentService.taskDataReloadRequest$.subscribe(function (queuedFrontendAction) {
|
|
51
|
+
_this.initializeTaskDataFields(_this._afterActionFactory.create(function (success) {
|
|
52
|
+
if (success && queuedFrontendAction) {
|
|
53
|
+
_this._taskContentService.performFrontendAction(queuedFrontendAction);
|
|
54
|
+
}
|
|
55
|
+
}), true);
|
|
56
|
+
});
|
|
57
|
+
return _this;
|
|
58
|
+
}
|
|
59
|
+
TaskDataService.prototype.ngOnDestroy = function () {
|
|
60
|
+
this._updateSuccess$.complete();
|
|
61
|
+
this._dataReloadSubscription.unsubscribe();
|
|
62
|
+
if (this.isTaskPresent() && this._safeTask.dataGroups) {
|
|
63
|
+
this._safeTask.dataGroups.forEach(function (group) {
|
|
64
|
+
if (group && group.fields) {
|
|
65
|
+
group.fields.forEach(function (field) { return field.destroy(); });
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
Object.defineProperty(TaskDataService.prototype, "updateSuccess$", {
|
|
71
|
+
/**
|
|
72
|
+
* Contains information about the success or failure of backend
|
|
73
|
+
* calls in [updateTaskDataFields]{@link TaskDataService#updateTaskDataFields} method.
|
|
74
|
+
*/
|
|
75
|
+
get: function () {
|
|
76
|
+
return this._updateSuccess$.asObservable();
|
|
77
|
+
},
|
|
78
|
+
enumerable: false,
|
|
79
|
+
configurable: true
|
|
80
|
+
});
|
|
81
|
+
/**
|
|
82
|
+
* Loads the Data Fields of an uninitialized Task from backend
|
|
83
|
+
* and populates the Task managed by {@link TaskContentService} with the appropriate objects.
|
|
84
|
+
*
|
|
85
|
+
* Beware that if the Task has some data already loaded this function does nothing
|
|
86
|
+
* and only passes `true` to the `afterAction` argument.
|
|
87
|
+
*
|
|
88
|
+
* If the task held within the {@link TaskContentService} changes before a response is received, the response will be ignored
|
|
89
|
+
* and the `afterAction` will not be executed.
|
|
90
|
+
*
|
|
91
|
+
* @param afterAction if the request completes successfully emits `true` into the Subject, otherwise `false` will be emitted
|
|
92
|
+
* @param force set to `true` if you need force reload of all task data
|
|
93
|
+
*/
|
|
94
|
+
TaskDataService.prototype.initializeTaskDataFields = function (afterAction, force) {
|
|
95
|
+
var _this = this;
|
|
96
|
+
if (afterAction === void 0) { afterAction = new AfterAction(); }
|
|
97
|
+
if (force === void 0) { force = false; }
|
|
98
|
+
this._eventQueue.scheduleEvent(new QueuedEvent(function () {
|
|
99
|
+
return _this.isTaskPresent();
|
|
100
|
+
}, function (nextEvent) {
|
|
101
|
+
_this.performGetDataRequest(afterAction, force, nextEvent);
|
|
102
|
+
}, function (nextEvent) {
|
|
103
|
+
afterAction.resolve(false);
|
|
104
|
+
nextEvent.resolve(false);
|
|
105
|
+
}));
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Performs a `getData` request on the task currently stored in the `taskContent` service
|
|
109
|
+
* @param afterAction the action that should be performed after the request is processed
|
|
110
|
+
* @param force set to `true` if you need force reload of all task data
|
|
111
|
+
* @param nextEvent indicates to the event queue that the next event can be processed
|
|
112
|
+
*/
|
|
113
|
+
TaskDataService.prototype.performGetDataRequest = function (afterAction, force, nextEvent) {
|
|
114
|
+
var _this = this;
|
|
115
|
+
if (this._safeTask.dataSize > 0 && !force) {
|
|
116
|
+
this.sendNotification(TaskEvent.GET_DATA, true);
|
|
117
|
+
afterAction.resolve(true);
|
|
118
|
+
this._taskContentService.$shouldCreate.next(this._safeTask.dataGroups);
|
|
119
|
+
nextEvent.resolve(true);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (force) {
|
|
123
|
+
this._safeTask.dataSize = 0;
|
|
124
|
+
}
|
|
125
|
+
var gottenTaskId = this._safeTask.stringId;
|
|
126
|
+
this._taskState.startLoading(gottenTaskId);
|
|
127
|
+
this._taskResourceService.getData(gottenTaskId).pipe(take(1)).subscribe(function (dataGroups) {
|
|
128
|
+
_this.processSuccessfulGetDataRequest(gottenTaskId, dataGroups, afterAction, nextEvent);
|
|
129
|
+
}, function (error) {
|
|
130
|
+
_this.processErroneousGetDataRequest(gottenTaskId, error, afterAction, nextEvent);
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Processes a successful outcome of a `getData` request
|
|
135
|
+
* @param gottenTaskId the Id of the task whose data was requested
|
|
136
|
+
* @param dataGroups the returned data groups of the task
|
|
137
|
+
* @param afterAction the action that should be performed after the request is processed
|
|
138
|
+
* @param nextEvent indicates to the event queue that the next event can be processed
|
|
139
|
+
*/
|
|
140
|
+
TaskDataService.prototype.processSuccessfulGetDataRequest = function (gottenTaskId, dataGroups, afterAction, nextEvent) {
|
|
141
|
+
var _this = this;
|
|
142
|
+
if (!this.isTaskRelevant(gottenTaskId)) {
|
|
143
|
+
this._log.debug('current task changed before the get data response could be received, discarding...');
|
|
144
|
+
this._taskState.stopLoading(gottenTaskId);
|
|
145
|
+
afterAction.complete();
|
|
146
|
+
nextEvent.resolve(false);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
this._taskContentService.referencedTaskAndCaseIds = {};
|
|
150
|
+
this._taskContentService.taskFieldsIndex = {};
|
|
151
|
+
this._safeTask.dataGroups = dataGroups;
|
|
152
|
+
if (dataGroups.length === 0) {
|
|
153
|
+
this._log.info('Task has no data ' + this._safeTask);
|
|
154
|
+
this._safeTask.dataSize = 0;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
this._taskContentService.referencedTaskAndCaseIds[this._safeTask.caseId] = [this._safeTask.stringId];
|
|
158
|
+
dataGroups.forEach(function (group) {
|
|
159
|
+
var dataGroupParentCaseId = group.parentCaseId === undefined ? _this._safeTask.caseId : group.parentCaseId;
|
|
160
|
+
var parentTaskId = group.parentTaskId === undefined ? _this._safeTask.stringId : group.parentTaskId;
|
|
161
|
+
if (dataGroupParentCaseId !== _this._safeTask.caseId) {
|
|
162
|
+
if (!_this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId]) {
|
|
163
|
+
_this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId] = [group.parentTaskId];
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
_this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId].push(group.parentTaskId);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else if (dataGroupParentCaseId === _this._safeTask.caseId
|
|
170
|
+
&& parentTaskId !== _this._safeTask.stringId
|
|
171
|
+
&& !_this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId].includes(parentTaskId)) {
|
|
172
|
+
_this._taskContentService.referencedTaskAndCaseIds[dataGroupParentCaseId].push(group.parentTaskId);
|
|
173
|
+
}
|
|
174
|
+
if (group.fields.length > 0 && !_this._taskContentService.taskFieldsIndex[parentTaskId]) {
|
|
175
|
+
_this._taskContentService.taskFieldsIndex[parentTaskId] = {};
|
|
176
|
+
}
|
|
177
|
+
group.fields.forEach(function (field) {
|
|
178
|
+
_this._taskContentService.taskFieldsIndex[parentTaskId][field.stringId] = field;
|
|
179
|
+
field.valueChanges().subscribe(function () {
|
|
180
|
+
if (_this.wasFieldUpdated(field)) {
|
|
181
|
+
if (field instanceof DynamicEnumerationField) {
|
|
182
|
+
field.loading = true;
|
|
183
|
+
_this.updateTaskDataFields(_this._afterActionFactory.create(function (bool) {
|
|
184
|
+
field.loading = false;
|
|
185
|
+
}));
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
_this.updateTaskDataFields();
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
if (field instanceof FileField || field instanceof FileListField) {
|
|
193
|
+
field.changedFields$.subscribe(function (change) {
|
|
194
|
+
_this._changedFieldsService.emitChangedFields(change);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
_this._safeTask.dataSize === undefined ?
|
|
199
|
+
_this._safeTask.dataSize = group.fields.length :
|
|
200
|
+
_this._safeTask.dataSize += group.fields.length;
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
this._taskState.stopLoading(gottenTaskId);
|
|
204
|
+
this.sendNotification(TaskEvent.GET_DATA, true);
|
|
205
|
+
afterAction.resolve(true);
|
|
206
|
+
nextEvent.resolve(true);
|
|
207
|
+
this._taskContentService.$shouldCreate.next(this._safeTask.dataGroups);
|
|
208
|
+
this._taskContentService.$shouldCreateCounter.next(this._taskContentService.$shouldCreateCounter.getValue() + 1);
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Processes an erroneous outcome of a `getData` request
|
|
212
|
+
* @param gottenTaskId the Id of the task whose data was requested
|
|
213
|
+
* @param error the returned error
|
|
214
|
+
* @param afterAction the action that should be performed after the request is processed
|
|
215
|
+
* @param nextEvent indicates to the event queue that the next event can be processed
|
|
216
|
+
*/
|
|
217
|
+
TaskDataService.prototype.processErroneousGetDataRequest = function (gottenTaskId, error, afterAction, nextEvent) {
|
|
218
|
+
this._taskState.stopLoading(gottenTaskId);
|
|
219
|
+
this._log.debug('getting task data failed', error);
|
|
220
|
+
if (!this.isTaskRelevant(gottenTaskId)) {
|
|
221
|
+
this._log.debug('current task changed before the get data error could be received');
|
|
222
|
+
afterAction.complete();
|
|
223
|
+
nextEvent.resolve(false);
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
if (error.status === 500 && error.error.message && error.error.message.startsWith('Could not find task with id')) {
|
|
227
|
+
this._snackBar.openWarningSnackBar(this._translate.instant('tasks.snackbar.noLongerExists'));
|
|
228
|
+
this._taskOperations.reload();
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
this._snackBar.openErrorSnackBar(this._translate.instant('tasks.snackbar.noGroup') + "\n " + this._taskContentService.task.title + " " + this._translate.instant('tasks.snackbar.failedToLoad'));
|
|
232
|
+
}
|
|
233
|
+
this.sendNotification(TaskEvent.GET_DATA, false);
|
|
234
|
+
afterAction.resolve(false);
|
|
235
|
+
nextEvent.resolve(false);
|
|
236
|
+
};
|
|
237
|
+
/**
|
|
238
|
+
* Collects all changed data fields and notifies the backend of the changes.
|
|
239
|
+
*
|
|
240
|
+
* If the request is successful clears the [changed]{@link DataField#changed} flag on all data fields that were a part of the request
|
|
241
|
+
* and emits a {@link ChangedFields} object into this object's [changedFields$]{@link TaskDataService#changedFields$} stream.
|
|
242
|
+
*
|
|
243
|
+
* If the task held within the {@link TaskContentService} changes before a response is received, the response will be ignored
|
|
244
|
+
* and the `afterAction` will not be executed.
|
|
245
|
+
*
|
|
246
|
+
* @param afterAction if the request completes successfully emits `true` into the Subject, otherwise `false` will be emitted
|
|
247
|
+
*/
|
|
248
|
+
TaskDataService.prototype.updateTaskDataFields = function (afterAction) {
|
|
249
|
+
var _this = this;
|
|
250
|
+
if (afterAction === void 0) { afterAction = new AfterAction(); }
|
|
251
|
+
if (!this.isTaskPresent()) {
|
|
252
|
+
this._log.debug('Task is not present. Update request ignored.');
|
|
253
|
+
afterAction.resolve(false);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
if (this._safeTask.user === undefined) {
|
|
257
|
+
this._log.debug('current task is not assigned...');
|
|
258
|
+
afterAction.resolve(false);
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
var setTaskId = this._safeTask.stringId;
|
|
262
|
+
if (this._safeTask.dataSize <= 0) {
|
|
263
|
+
afterAction.resolve(true);
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
var requestContext = this.createUpdateRequestContext();
|
|
267
|
+
this._eventQueue.scheduleEvent(new QueuedEvent(function () { return _this.isSetDataRequestStillValid(requestContext.body); }, function (nextEvent) {
|
|
268
|
+
_this.performSetDataRequest(setTaskId, requestContext.body, afterAction, nextEvent);
|
|
269
|
+
}, function (nextEvent) {
|
|
270
|
+
_this.revertSetDataRequest(requestContext);
|
|
271
|
+
nextEvent.resolve(false);
|
|
272
|
+
}));
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* @ignore
|
|
276
|
+
* Goes over all the data fields in the managed Task and if they are valid and changed adds them to the set data request
|
|
277
|
+
*/
|
|
278
|
+
TaskDataService.prototype.createUpdateRequestContext = function () {
|
|
279
|
+
var _this = this;
|
|
280
|
+
var context = {
|
|
281
|
+
body: {},
|
|
282
|
+
previousValues: {}
|
|
283
|
+
};
|
|
284
|
+
context.body[this._task.stringId] = {};
|
|
285
|
+
this._safeTask.dataGroups.filter(function (dataGroup) { return dataGroup.parentTaskId === undefined; }).forEach(function (dataGroup) {
|
|
286
|
+
dataGroup.fields.filter(function (field) { return _this.wasFieldUpdated(field); }).forEach(function (field) {
|
|
287
|
+
_this.addFieldToSetDataRequestBody(context, _this._task.stringId, field);
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
this._safeTask.dataGroups.filter(function (dataGroup) { return dataGroup.parentTaskId !== undefined; }).forEach(function (dataGroup) {
|
|
291
|
+
if (dataGroup.fields.some(function (field) { return _this.wasFieldUpdated(field); })) {
|
|
292
|
+
context.body[dataGroup.parentTaskId] = {};
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
dataGroup.fields.filter(function (field) { return _this.wasFieldUpdated(field); }).forEach(function (field) {
|
|
298
|
+
_this.addFieldToSetDataRequestBody(context, dataGroup.parentTaskId, field);
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
return context;
|
|
302
|
+
};
|
|
303
|
+
TaskDataService.prototype.addFieldToSetDataRequestBody = function (context, taskId, field) {
|
|
304
|
+
context.body[taskId][field.stringId] = {
|
|
305
|
+
type: this._fieldConverterService.resolveType(field),
|
|
306
|
+
value: this._fieldConverterService.formatValueForBackend(field, field.value)
|
|
307
|
+
};
|
|
308
|
+
context.previousValues[field.stringId] = field.previousValue;
|
|
309
|
+
field.changed = false;
|
|
310
|
+
};
|
|
311
|
+
/**
|
|
312
|
+
* @param field the checked field
|
|
313
|
+
* @returns whether the field was updated on frontend and thus the backend should be notified
|
|
314
|
+
*/
|
|
315
|
+
TaskDataService.prototype.wasFieldUpdated = function (field) {
|
|
316
|
+
return field.initialized && field.changed && (field.valid || field.sendInvalidValues);
|
|
317
|
+
};
|
|
318
|
+
/**
|
|
319
|
+
* Checks whether the request could still be performed by the logged user
|
|
320
|
+
* @param request
|
|
321
|
+
*/
|
|
322
|
+
TaskDataService.prototype.isSetDataRequestStillValid = function (request) {
|
|
323
|
+
var e_1, _a, e_2, _b;
|
|
324
|
+
if (!this.isTaskPresent()) {
|
|
325
|
+
return false;
|
|
326
|
+
}
|
|
327
|
+
if (this._safeTask.user === undefined) {
|
|
328
|
+
return false;
|
|
329
|
+
}
|
|
330
|
+
if (!this._userComparator.compareUsers(this._safeTask.user)) {
|
|
331
|
+
return false;
|
|
332
|
+
}
|
|
333
|
+
var taskIdsInRequest = Object.keys(request);
|
|
334
|
+
try {
|
|
335
|
+
for (var taskIdsInRequest_1 = __values(taskIdsInRequest), taskIdsInRequest_1_1 = taskIdsInRequest_1.next(); !taskIdsInRequest_1_1.done; taskIdsInRequest_1_1 = taskIdsInRequest_1.next()) {
|
|
336
|
+
var taskId = taskIdsInRequest_1_1.value;
|
|
337
|
+
if (!Object.keys(this._taskContentService.taskFieldsIndex).includes(taskId)) {
|
|
338
|
+
this._log.error("Task id " + taskId + " is not present in task fields index");
|
|
339
|
+
return false;
|
|
340
|
+
}
|
|
341
|
+
var fieldIdsOfRequest = Object.keys(request[taskId]);
|
|
342
|
+
try {
|
|
343
|
+
for (var fieldIdsOfRequest_1 = (e_2 = void 0, __values(fieldIdsOfRequest)), fieldIdsOfRequest_1_1 = fieldIdsOfRequest_1.next(); !fieldIdsOfRequest_1_1.done; fieldIdsOfRequest_1_1 = fieldIdsOfRequest_1.next()) {
|
|
344
|
+
var fieldId = fieldIdsOfRequest_1_1.value;
|
|
345
|
+
var field = this._taskContentService.taskFieldsIndex[taskId][fieldId];
|
|
346
|
+
if (field === undefined) {
|
|
347
|
+
this._log.error("Unexpected state. Datafield " + fieldId + " of task " + taskId + " in setData request is not present in the task.");
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
if (!field.behavior.editable) {
|
|
351
|
+
this._log.debug("Field " + fieldId + ", was meant to be set to\n " + JSON.stringify(request[taskId][fieldId]) + ", but is no loner editable.");
|
|
352
|
+
return false;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
357
|
+
finally {
|
|
358
|
+
try {
|
|
359
|
+
if (fieldIdsOfRequest_1_1 && !fieldIdsOfRequest_1_1.done && (_b = fieldIdsOfRequest_1.return)) _b.call(fieldIdsOfRequest_1);
|
|
360
|
+
}
|
|
361
|
+
finally { if (e_2) throw e_2.error; }
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
366
|
+
finally {
|
|
367
|
+
try {
|
|
368
|
+
if (taskIdsInRequest_1_1 && !taskIdsInRequest_1_1.done && (_a = taskIdsInRequest_1.return)) _a.call(taskIdsInRequest_1);
|
|
369
|
+
}
|
|
370
|
+
finally { if (e_1) throw e_1.error; }
|
|
371
|
+
}
|
|
372
|
+
return true;
|
|
373
|
+
};
|
|
374
|
+
/**
|
|
375
|
+
* Performs a `setData` request on the task currently stored in the `taskContent` service
|
|
376
|
+
* @param setTaskId id of the task
|
|
377
|
+
* @param body content of the `setData` request
|
|
378
|
+
* @param afterAction the action that should be performed after the request is processed
|
|
379
|
+
* @param nextEvent indicates to the event queue that the next event can be processed
|
|
380
|
+
*/
|
|
381
|
+
TaskDataService.prototype.performSetDataRequest = function (setTaskId, body, afterAction, nextEvent) {
|
|
382
|
+
var _this = this;
|
|
383
|
+
if (Object.keys(body).length === 0) {
|
|
384
|
+
this.sendNotification(TaskEvent.SET_DATA, true);
|
|
385
|
+
afterAction.resolve(true);
|
|
386
|
+
nextEvent.resolve(true);
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
this._taskState.startLoading(setTaskId);
|
|
390
|
+
this._taskState.startUpdating(setTaskId);
|
|
391
|
+
this._taskResourceService.setData(this._safeTask.stringId, body).pipe(take(1))
|
|
392
|
+
.subscribe(function (response) {
|
|
393
|
+
_this.processSuccessfulSetDataRequest(setTaskId, response.outcome, afterAction, nextEvent, body);
|
|
394
|
+
}, function (error) {
|
|
395
|
+
_this.processErroneousSetDataRequest(setTaskId, error, afterAction, nextEvent, body);
|
|
396
|
+
});
|
|
397
|
+
};
|
|
398
|
+
/**
|
|
399
|
+
* Processes a successful outcome of a `setData` request
|
|
400
|
+
* @param setTaskId the Id of the task whose data was set
|
|
401
|
+
* @param response the resulting Event outcome of the set data request
|
|
402
|
+
* @param afterAction the action that should be performed after the request is processed
|
|
403
|
+
* @param nextEvent indicates to the event queue that the next event can be processed
|
|
404
|
+
* @param body hold the data that was sent in request
|
|
405
|
+
*/
|
|
406
|
+
TaskDataService.prototype.processSuccessfulSetDataRequest = function (setTaskId, response, afterAction, nextEvent, body) {
|
|
407
|
+
if (!this.isTaskRelevant(setTaskId)) {
|
|
408
|
+
this._log.debug('current task changed before the set data response could be received, discarding...');
|
|
409
|
+
this._taskState.stopLoading(setTaskId);
|
|
410
|
+
this._taskState.stopUpdating(setTaskId);
|
|
411
|
+
afterAction.complete();
|
|
412
|
+
nextEvent.resolve(false);
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
var changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(response);
|
|
416
|
+
if (Object.keys(changedFieldsMap).length > 0) {
|
|
417
|
+
this._changedFieldsService.emitChangedFields(changedFieldsMap);
|
|
418
|
+
}
|
|
419
|
+
this.clearWaitingForResponseFlag(body);
|
|
420
|
+
this._snackBar.openSuccessSnackBar(!!response.message ? response.message : this._translate.instant('tasks.snackbar.dataSaved'));
|
|
421
|
+
this.updateStateInfo(afterAction, true, setTaskId);
|
|
422
|
+
nextEvent.resolve(true);
|
|
423
|
+
};
|
|
424
|
+
/**
|
|
425
|
+
* Processes an erroneous outcome of a `setData` request
|
|
426
|
+
* @param setTaskId the Id of the task whose data was set
|
|
427
|
+
* @param error the returned error
|
|
428
|
+
* @param afterAction the action that should be performed after the request is processed
|
|
429
|
+
* @param nextEvent indicates to the event queue that the next event can be processed
|
|
430
|
+
* @param body hold the data that was sent in request
|
|
431
|
+
*/
|
|
432
|
+
TaskDataService.prototype.processErroneousSetDataRequest = function (setTaskId, error, afterAction, nextEvent, body) {
|
|
433
|
+
this._log.debug('setting task data failed', error);
|
|
434
|
+
if (!this.isTaskRelevant(setTaskId)) {
|
|
435
|
+
this._log.debug('current task changed before the get data error could be received');
|
|
436
|
+
this._taskState.stopLoading(setTaskId);
|
|
437
|
+
this._taskState.stopUpdating(setTaskId);
|
|
438
|
+
afterAction.complete();
|
|
439
|
+
nextEvent.resolve(false);
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
this.revertToPreviousValue();
|
|
443
|
+
this.clearWaitingForResponseFlag(body);
|
|
444
|
+
this._snackBar.openErrorSnackBar(this._translate.instant('tasks.snackbar.failedSave'));
|
|
445
|
+
this.updateStateInfo(afterAction, false, setTaskId);
|
|
446
|
+
nextEvent.resolve(false);
|
|
447
|
+
this._taskOperations.reload();
|
|
448
|
+
};
|
|
449
|
+
/**
|
|
450
|
+
* Reverts the effects of a failed `setData` request, so that the user sees current values.
|
|
451
|
+
* @param context the context of the failed request
|
|
452
|
+
*/
|
|
453
|
+
TaskDataService.prototype.revertSetDataRequest = function (context) {
|
|
454
|
+
var e_3, _a, e_4, _b;
|
|
455
|
+
// this iteration could be improved if we had a map of all the data fields in a task
|
|
456
|
+
var totalCount = Object.keys(context.body).length;
|
|
457
|
+
var foundCount = 0;
|
|
458
|
+
try {
|
|
459
|
+
for (var _c = __values(this._safeTask.dataGroups), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
460
|
+
var datagroup = _d.value;
|
|
461
|
+
try {
|
|
462
|
+
for (var _e = (e_4 = void 0, __values(datagroup.fields)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
463
|
+
var field = _f.value;
|
|
464
|
+
if (!context.body[field.stringId]) {
|
|
465
|
+
continue;
|
|
466
|
+
}
|
|
467
|
+
if (this.compareBackendFormattedFieldValues(this._fieldConverterService.formatValueForBackend(field, field.value), context.body[field.stringId].value)) {
|
|
468
|
+
field.valueWithoutChange(context.previousValues[field.stringId]);
|
|
469
|
+
}
|
|
470
|
+
foundCount++;
|
|
471
|
+
if (foundCount === totalCount) {
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
477
|
+
finally {
|
|
478
|
+
try {
|
|
479
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
480
|
+
}
|
|
481
|
+
finally { if (e_4) throw e_4.error; }
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
486
|
+
finally {
|
|
487
|
+
try {
|
|
488
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
489
|
+
}
|
|
490
|
+
finally { if (e_3) throw e_3.error; }
|
|
491
|
+
}
|
|
492
|
+
this._log.error("Invalid state. Some data fields of task " + this._safeTask.stringId + ", are no longer present in it!");
|
|
493
|
+
};
|
|
494
|
+
/**
|
|
495
|
+
* Compares the values that are in the backend compatible format as given by the {@link FieldConverterService}
|
|
496
|
+
* and determines whether they are the same value, or not.
|
|
497
|
+
* @param current the current value (can also be called `value1` or `left`)
|
|
498
|
+
* @param old the new value (can also be called `value2` or `right`)
|
|
499
|
+
* @returns `true` if the values are the same and `false` otherwise
|
|
500
|
+
*/
|
|
501
|
+
TaskDataService.prototype.compareBackendFormattedFieldValues = function (current, old) {
|
|
502
|
+
if (Array.isArray(current)) {
|
|
503
|
+
if (!Array.isArray(old)) {
|
|
504
|
+
throw new Error('Illegal arguments! Cannot compare array value to non-array value');
|
|
505
|
+
}
|
|
506
|
+
if (current.length !== old.length) {
|
|
507
|
+
return false;
|
|
508
|
+
}
|
|
509
|
+
return current.every(function (value, index) { return old[index] === value; });
|
|
510
|
+
}
|
|
511
|
+
return current === old;
|
|
512
|
+
};
|
|
513
|
+
/**
|
|
514
|
+
* @ignore
|
|
515
|
+
*
|
|
516
|
+
* stops loading and updating indicators, and emits the `result` value
|
|
517
|
+
* to both the `afterAction` and [_updateSuccess$]{@link TaskDataService#_updateSuccess$} streams.
|
|
518
|
+
*
|
|
519
|
+
* @param afterAction the call chain steam of the update data method
|
|
520
|
+
* @param result result of the update data request
|
|
521
|
+
* @param setTaskId the Id of the {@link Task}, who's state should be updated
|
|
522
|
+
*/
|
|
523
|
+
TaskDataService.prototype.updateStateInfo = function (afterAction, result, setTaskId) {
|
|
524
|
+
this._taskState.stopLoading(setTaskId);
|
|
525
|
+
this._taskState.stopUpdating(setTaskId);
|
|
526
|
+
if (this._updateSuccess$.observers.length !== 0) {
|
|
527
|
+
this._updateSuccess$.next(result);
|
|
528
|
+
}
|
|
529
|
+
this.sendNotification(TaskEvent.SET_DATA, result);
|
|
530
|
+
afterAction.resolve(result);
|
|
531
|
+
};
|
|
532
|
+
/**
|
|
533
|
+
* Publishes a get/set data notification to the {@link TaskEventService}
|
|
534
|
+
* @param event the event that occurred to the task
|
|
535
|
+
* @param success whether the get/set data operation was successful or not
|
|
536
|
+
*/
|
|
537
|
+
TaskDataService.prototype.sendNotification = function (event, success) {
|
|
538
|
+
this._taskEvent.publishTaskEvent(createTaskEventNotification(this._safeTask, event, success));
|
|
539
|
+
};
|
|
540
|
+
TaskDataService.prototype.revertToPreviousValue = function () {
|
|
541
|
+
this._safeTask.dataGroups.forEach(function (dataGroup) {
|
|
542
|
+
dataGroup.fields.forEach(function (field) {
|
|
543
|
+
if (field.initialized && field.valid && field.changed) {
|
|
544
|
+
field.revertToPreviousValue();
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
});
|
|
548
|
+
};
|
|
549
|
+
TaskDataService.prototype.clearWaitingForResponseFlag = function (body) {
|
|
550
|
+
var _this = this;
|
|
551
|
+
Object.keys(body).forEach(function (taskId) {
|
|
552
|
+
Object.keys(body[taskId]).forEach(function (fieldId) {
|
|
553
|
+
_this._taskContentService.taskFieldsIndex[taskId][fieldId].waitingForResponse = false;
|
|
554
|
+
});
|
|
555
|
+
});
|
|
556
|
+
};
|
|
557
|
+
TaskDataService.ctorParameters = function () { return [
|
|
558
|
+
{ type: TaskRequestStateService },
|
|
559
|
+
{ type: TranslateService },
|
|
560
|
+
{ type: LoggerService },
|
|
561
|
+
{ type: SnackBarService },
|
|
562
|
+
{ type: TaskResourceService },
|
|
563
|
+
{ type: FieldConverterService },
|
|
564
|
+
{ type: TaskEventService },
|
|
565
|
+
{ type: undefined, decorators: [{ type: Inject, args: [NAE_TASK_OPERATIONS,] }] },
|
|
566
|
+
{ type: SelectedCaseService, decorators: [{ type: Optional }] },
|
|
567
|
+
{ type: TaskContentService },
|
|
568
|
+
{ type: CallChainService },
|
|
569
|
+
{ type: EventQueueService },
|
|
570
|
+
{ type: UserComparatorService },
|
|
571
|
+
{ type: EventService },
|
|
572
|
+
{ type: ChangedFieldsService }
|
|
573
|
+
]; };
|
|
574
|
+
TaskDataService.decorators = [
|
|
575
|
+
{ type: Injectable }
|
|
576
|
+
];
|
|
577
|
+
TaskDataService.ctorParameters = function () { return [
|
|
578
|
+
{ type: TaskRequestStateService },
|
|
579
|
+
{ type: TranslateService },
|
|
580
|
+
{ type: LoggerService },
|
|
581
|
+
{ type: SnackBarService },
|
|
582
|
+
{ type: TaskResourceService },
|
|
583
|
+
{ type: FieldConverterService },
|
|
584
|
+
{ type: TaskEventService },
|
|
585
|
+
{ type: undefined, decorators: [{ type: Inject, args: [NAE_TASK_OPERATIONS,] }] },
|
|
586
|
+
{ type: SelectedCaseService, decorators: [{ type: Optional }] },
|
|
587
|
+
{ type: TaskContentService },
|
|
588
|
+
{ type: CallChainService },
|
|
589
|
+
{ type: EventQueueService },
|
|
590
|
+
{ type: UserComparatorService },
|
|
591
|
+
{ type: EventService },
|
|
592
|
+
{ type: ChangedFieldsService }
|
|
593
|
+
]; };
|
|
594
|
+
return TaskDataService;
|
|
595
|
+
}(TaskHandlingService));
|
|
596
|
+
export { TaskDataService };
|
|
597
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUvIiwic291cmNlcyI6WyJsaWIvdGFzay9zZXJ2aWNlcy90YXNrLWRhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBYSxPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFdkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUMxRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUUxRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUc5RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDekUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEVB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Q0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDekYsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2dCQW5oQmlDLHVCQUF1QjtnQkFDdkIsZ0JBQWdCO2dCQUN0QixhQUFhO2dCQUNSLGVBQWU7Z0JBQ0osbUJBQW1CO2dCQUNqQixxQkFBcUI7Z0JBQ2pDLGdCQUFnQjtnREFDckMsTUFBTSxTQUFDLG1CQUFtQjtnQkFDTyxtQkFBbUIsdUJBQXBELFFBQVE7Z0JBQ1ksa0JBQWtCO2dCQUNSLGdCQUFnQjtnQkFDeEIsaUJBQWlCO2dCQUNiLHFCQUFxQjtnQkFDdkIsWUFBWTtnQkFDSixvQkFBb0I7OztnQkFwQnBFLFVBQVU7OztnQkFyQ0gsdUJBQXVCO2dCQUN2QixnQkFBZ0I7Z0JBQ2hCLGFBQWE7Z0JBQ2IsZUFBZTtnQkFDZixtQkFBbUI7Z0JBQ25CLHFCQUFxQjtnQkFXckIsZ0JBQWdCO2dEQWtDUCxNQUFNLFNBQUMsbUJBQW1CO2dCQXRDbkMsbUJBQW1CLHVCQXVDVixRQUFRO2dCQXBEakIsa0JBQWtCO2dCQW1CbEIsZ0JBQWdCO2dCQUloQixpQkFBaUI7Z0JBR2pCLHFCQUFxQjtnQkFHckIsWUFBWTtnQkFFWixvQkFBb0I7O0lBaWlCNUIsc0JBQUM7Q0FBQSxBQTFoQkQsQ0FDcUMsbUJBQW1CLEdBeWhCdkQ7U0F6aEJZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NoYW5nZWRGaWVsZHN9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL21vZGVscy9jaGFuZ2VkLWZpZWxkcyc7XG5pbXBvcnQge1Rhc2tDb250ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L3NlcnZpY2VzL3Rhc2stY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7VGFza1JlcXVlc3RTdGF0ZVNlcnZpY2V9IGZyb20gJy4vdGFzay1yZXF1ZXN0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7U25hY2tCYXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zbmFjay1iYXIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L3Rhc2stcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge0ZpZWxkQ29udmVydGVyU2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L3NlcnZpY2VzL2ZpZWxkLWNvbnZlcnRlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza1NldERhdGFSZXF1ZXN0Qm9keX0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS90YXNrLXNldC1kYXRhLXJlcXVlc3QtYm9keSc7XG5pbXBvcnQge1Rhc2tIYW5kbGluZ1NlcnZpY2V9IGZyb20gJy4vdGFzay1oYW5kbGluZy1zZXJ2aWNlJztcbmltcG9ydCB7TkFFX1RBU0tfT1BFUkFUSU9OU30gZnJvbSAnLi4vbW9kZWxzL3Rhc2stb3BlcmF0aW9ucy1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHtUYXNrT3BlcmF0aW9uc30gZnJvbSAnLi4vaW50ZXJmYWNlcy90YXNrLW9wZXJhdGlvbnMnO1xuaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtGaWxlRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL2ZpbGUtZmllbGQvbW9kZWxzL2ZpbGUtZmllbGQnO1xuaW1wb3J0IHtTZWxlY3RlZENhc2VTZXJ2aWNlfSBmcm9tICcuL3NlbGVjdGVkLWNhc2Uuc2VydmljZSc7XG5pbXBvcnQge0ZpbGVMaXN0RmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL2ZpbGUtbGlzdC1maWVsZC9tb2RlbHMvZmlsZS1saXN0LWZpZWxkJztcbmltcG9ydCB7Y3JlYXRlVGFza0V2ZW50Tm90aWZpY2F0aW9ufSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvbW9kZWwvdGFzay1ldmVudC1ub3RpZmljYXRpb24nO1xuaW1wb3J0IHtUYXNrRXZlbnR9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9tb2RlbC90YXNrLWV2ZW50JztcbmltcG9ydCB7VGFza0V2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L3NlcnZpY2VzL3Rhc2stZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0RhdGFGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQnO1xuaW1wb3J0IHtDYWxsQ2hhaW5TZXJ2aWNlfSBmcm9tICcuLi8uLi91dGlsaXR5L2NhbGwtY2hhaW4vY2FsbC1jaGFpbi5zZXJ2aWNlJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtEeW5hbWljRW51bWVyYXRpb25GaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvZW51bWVyYXRpb24tZmllbGQvbW9kZWxzL2R5bmFtaWMtZW51bWVyYXRpb24tZmllbGQnO1xuaW1wb3J0IHtEYXRhR3JvdXB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvZGF0YS1ncm91cHMnO1xuaW1wb3J0IHtFdmVudFF1ZXVlU2VydmljZX0gZnJvbSAnLi4vLi4vZXZlbnQtcXVldWUvc2VydmljZXMvZXZlbnQtcXVldWUuc2VydmljZSc7XG5pbXBvcnQge1F1ZXVlZEV2ZW50fSBmcm9tICcuLi8uLi9ldmVudC1xdWV1ZS9tb2RlbC9xdWV1ZWQtZXZlbnQnO1xuaW1wb3J0IHtBZnRlckFjdGlvbn0gZnJvbSAnLi4vLi4vdXRpbGl0eS9jYWxsLWNoYWluL2FmdGVyLWFjdGlvbic7XG5pbXBvcnQge1VzZXJDb21wYXJhdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vdXNlci9zZXJ2aWNlcy91c2VyLWNvbXBhcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQge1Rhc2tTZXREYXRhUmVxdWVzdENvbnRleHR9IGZyb20gJy4uL21vZGVscy90YXNrLXNldC1kYXRhLXJlcXVlc3QtY29udGV4dCc7XG5pbXBvcnQge0V2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZX0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9tZXNzYWdlLXJlc291cmNlJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9ldmVudC9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7RXZlbnRPdXRjb21lfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2V2ZW50LW91dGNvbWUnO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzU2VydmljZX0gZnJvbSAnLi4vLi4vY2hhbmdlZC1maWVsZHMvc2VydmljZXMvY2hhbmdlZC1maWVsZHMuc2VydmljZSc7XG5pbXBvcnQge0NoYW5nZWRGaWVsZHNNYXB9IGZyb20gJy4uLy4uL2V2ZW50L3NlcnZpY2VzL2ludGVyZmFjZXMvY2hhbmdlZC1maWVsZHMtbWFwJztcblxuLyoqXG4gKiBIYW5kbGVzIHRoZSBsb2FkaW5nIGFuZCB1cGRhdGluZyBvZiBkYXRhIGZpZWxkcyBhbmQgYmVoYXZpb3VyIG9mXG4gKiBhIHNpbmdsZSBUYXNrIG9iamVjdCBtYW5hZ2VkIGJ5IGEge0BsaW5rIFRhc2tDb250ZW50U2VydmljZX0gaW5zdGFuY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUYXNrRGF0YVNlcnZpY2UgZXh0ZW5kcyBUYXNrSGFuZGxpbmdTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIHByb3RlY3RlZCBfdXBkYXRlU3VjY2VzcyQ6IFN1YmplY3Q8Ym9vbGVhbj47XG4gICAgcHJvdGVjdGVkIF9kYXRhUmVsb2FkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3Rhc2tTdGF0ZTogVGFza1JlcXVlc3RTdGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1Jlc291cmNlU2VydmljZTogVGFza1Jlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2ZpZWxkQ29udmVydGVyU2VydmljZTogRmllbGRDb252ZXJ0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza0V2ZW50OiBUYXNrRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTkFFX1RBU0tfT1BFUkFUSU9OUykgcHJvdGVjdGVkIF90YXNrT3BlcmF0aW9uczogVGFza09wZXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgX3NlbGVjdGVkQ2FzZVNlcnZpY2U6IFNlbGVjdGVkQ2FzZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX3Rhc2tDb250ZW50U2VydmljZTogVGFza0NvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfYWZ0ZXJBY3Rpb25GYWN0b3J5OiBDYWxsQ2hhaW5TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZXZlbnRRdWV1ZTogRXZlbnRRdWV1ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyQ29tcGFyYXRvcjogVXNlckNvbXBhcmF0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jaGFuZ2VkRmllbGRzU2VydmljZTogQ2hhbmdlZEZpZWxkc1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoX3Rhc2tDb250ZW50U2VydmljZSwgX3NlbGVjdGVkQ2FzZVNlcnZpY2UpO1xuICAgICAgICB0aGlzLl91cGRhdGVTdWNjZXNzJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgICAgIHRoaXMuX2RhdGFSZWxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudGFza0RhdGFSZWxvYWRSZXF1ZXN0JC5zdWJzY3JpYmUocXVldWVkRnJvbnRlbmRBY3Rpb24gPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVGFza0RhdGFGaWVsZHModGhpcy5fYWZ0ZXJBY3Rpb25GYWN0b3J5LmNyZWF0ZShzdWNjZXNzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3VjY2VzcyAmJiBxdWV1ZWRGcm9udGVuZEFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UucGVyZm9ybUZyb250ZW5kQWN0aW9uKHF1ZXVlZEZyb250ZW5kQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSwgdHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVTdWNjZXNzJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9kYXRhUmVsb2FkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGlmICh0aGlzLmlzVGFza1ByZXNlbnQoKSAmJiB0aGlzLl9zYWZlVGFzay5kYXRhR3JvdXBzKSB7XG4gICAgICAgICAgICB0aGlzLl9zYWZlVGFzay5kYXRhR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChncm91cCAmJiBncm91cC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuZmllbGRzLmZvckVhY2goZmllbGQgPT4gZmllbGQuZGVzdHJveSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdWNjZXNzIG9yIGZhaWx1cmUgb2YgYmFja2VuZFxuICAgICAqIGNhbGxzIGluIFt1cGRhdGVUYXNrRGF0YUZpZWxkc117QGxpbmsgVGFza0RhdGFTZXJ2aWNlI3VwZGF0ZVRhc2tEYXRhRmllbGRzfSBtZXRob2QuXG4gICAgICovXG4gICAgcHVibGljIGdldCB1cGRhdGVTdWNjZXNzJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZVN1Y2Nlc3MkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvYWRzIHRoZSBEYXRhIEZpZWxkcyBvZiBhbiB1bmluaXRpYWxpemVkIFRhc2sgZnJvbSBiYWNrZW5kXG4gICAgICogYW5kIHBvcHVsYXRlcyB0aGUgVGFzayBtYW5hZ2VkIGJ5IHtAbGluayBUYXNrQ29udGVudFNlcnZpY2V9IHdpdGggdGhlIGFwcHJvcHJpYXRlIG9iamVjdHMuXG4gICAgICpcbiAgICAgKiBCZXdhcmUgdGhhdCBpZiB0aGUgVGFzayBoYXMgc29tZSBkYXRhIGFscmVhZHkgbG9hZGVkIHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nXG4gICAgICogYW5kIG9ubHkgcGFzc2VzIGB0cnVlYCB0byB0aGUgYGFmdGVyQWN0aW9uYCBhcmd1bWVudC5cbiAgICAgKlxuICAgICAqIElmIHRoZSB0YXNrIGhlbGQgd2l0aGluIHRoZSB7QGxpbmsgVGFza0NvbnRlbnRTZXJ2aWNlfSBjaGFuZ2VzIGJlZm9yZSBhIHJlc3BvbnNlIGlzIHJlY2VpdmVkLCB0aGUgcmVzcG9uc2Ugd2lsbCBiZSBpZ25vcmVkXG4gICAgICogYW5kIHRoZSBgYWZ0ZXJBY3Rpb25gIHdpbGwgbm90IGJlIGV4ZWN1dGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFmdGVyQWN0aW9uIGlmIHRoZSByZXF1ZXN0IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkgZW1pdHMgYHRydWVgIGludG8gdGhlIFN1YmplY3QsIG90aGVyd2lzZSBgZmFsc2VgIHdpbGwgYmUgZW1pdHRlZFxuICAgICAqIEBwYXJhbSBmb3JjZSBzZXQgdG8gYHRydWVgIGlmIHlvdSBuZWVkIGZvcmNlIHJlbG9hZCBvZiBhbGwgdGFzayBkYXRhXG4gICAgICovXG4gICAgcHVibGljIGluaXRpYWxpemVUYXNrRGF0YUZpZWxkcyhhZnRlckFjdGlvbjogQWZ0ZXJBY3Rpb24gPSBuZXcgQWZ0ZXJBY3Rpb24oKSwgZm9yY2UgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ldmVudFF1ZXVlLnNjaGVkdWxlRXZlbnQobmV3IFF1ZXVlZEV2ZW50KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzVGFza1ByZXNlbnQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucGVyZm9ybUdldERhdGFSZXF1ZXN0KGFmdGVyQWN0aW9uLCBmb3JjZSwgbmV4dEV2ZW50KTtcbiAgICAgICAgICAgIH0sIG5leHRFdmVudCA9PiB7XG4gICAgICAgICAgICAgICAgYWZ0ZXJBY3Rpb24ucmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgbmV4dEV2ZW50LnJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICApKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyBhIGBnZXREYXRhYCByZXF1ZXN0IG9uIHRoZSB0YXNrIGN1cnJlbnRseSBzdG9yZWQgaW4gdGhlIGB0YXNrQ29udGVudGAgc2VydmljZVxuICAgICAqIEBwYXJhbSBhZnRlckFjdGlvbiB0aGUgYWN0aW9uIHRoYXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBhZnRlciB0aGUgcmVxdWVzdCBpcyBwcm9jZXNzZWRcbiAgICAgKiBAcGFyYW0gZm9yY2Ugc2V0IHRvIGB0cnVlYCBpZiB5b3UgbmVlZCBmb3JjZSByZWxvYWQgb2YgYWxsIHRhc2sgZGF0YVxuICAgICAqIEBwYXJhbSBuZXh0RXZlbnQgaW5kaWNhdGVzIHRvIHRoZSBldmVudCBxdWV1ZSB0aGF0IHRoZSBuZXh0IGV2ZW50IGNhbiBiZSBwcm9jZXNzZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcGVyZm9ybUdldERhdGFSZXF1ZXN0KGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbiwgZm9yY2U6IGJvb2xlYW4sIG5leHRFdmVudDogQWZ0ZXJBY3Rpb24pIHtcbiAgICAgICAgaWYgKHRoaXMuX3NhZmVUYXNrLmRhdGFTaXplID4gMCAmJiAhZm9yY2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZE5vdGlmaWNhdGlvbihUYXNrRXZlbnQuR0VUX0RBVEEsIHRydWUpO1xuICAgICAgICAgICAgYWZ0ZXJBY3Rpb24ucmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS4kc2hvdWxkQ3JlYXRlLm5leHQodGhpcy5fc2FmZVRhc2suZGF0YUdyb3Vwcyk7XG4gICAgICAgICAgICBuZXh0RXZlbnQucmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9yY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3NhZmVUYXNrLmRhdGFTaXplID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGdvdHRlblRhc2tJZCA9IHRoaXMuX3NhZmVUYXNrLnN0cmluZ0lkO1xuICAgICAgICB0aGlzLl90YXNrU3RhdGUuc3RhcnRMb2FkaW5nKGdvdHRlblRhc2tJZCk7XG5cbiAgICAgICAgdGhpcy5fdGFza1Jlc291cmNlU2VydmljZS5nZXREYXRhKGdvdHRlblRhc2tJZCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZGF0YUdyb3VwcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NTdWNjZXNzZnVsR2V0RGF0YVJlcXVlc3QoZ290dGVuVGFza0lkLCBkYXRhR3JvdXBzLCBhZnRlckFjdGlvbiwgbmV4dEV2ZW50KTtcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXJyb25lb3VzR2V0RGF0YVJlcXVlc3QoZ290dGVuVGFza0lkLCBlcnJvciwgYWZ0ZXJBY3Rpb24sIG5leHRFdmVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhIHN1Y2Nlc3NmdWwgb3V0Y29tZSBvZiBhIGBnZXREYXRhYCByZXF1ZXN0XG4gICAgICogQHBhcmFtIGdvdHRlblRhc2tJZCB0aGUgSWQgb2YgdGhlIHRhc2sgd2hvc2UgZGF0YSB3YXMgcmVxdWVzdGVkXG4gICAgICogQHBhcmFtIGRhdGFHcm91cHMgdGhlIHJldHVybmVkIGRhdGEgZ3JvdXBzIG9mIHRoZSB0YXNrXG4gICAgICogQHBhcmFtIGFmdGVyQWN0aW9uIHRoZSBhY3Rpb24gdGhhdCBzaG91bGQgYmUgcGVyZm9ybWVkIGFmdGVyIHRoZSByZXF1ZXN0IGlzIHByb2Nlc3NlZFxuICAgICAqIEBwYXJhbSBuZXh0RXZlbnQgaW5kaWNhdGVzIHRvIHRoZSBldmVudCBxdWV1ZSB0aGF0IHRoZSBuZXh0IGV2ZW50IGNhbiBiZSBwcm9jZXNzZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc1N1Y2Nlc3NmdWxHZXREYXRhUmVxdWVzdChnb3R0ZW5UYXNrSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhR3JvdXBzOiBBcnJheTxEYXRhR3JvdXA+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RXZlbnQ6IEFmdGVyQWN0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1Rhc2tSZWxldmFudChnb3R0ZW5UYXNrSWQpKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJ2N1cnJlbnQgdGFzayBjaGFuZ2VkIGJlZm9yZSB0aGUgZ2V0IGRhdGEgcmVzcG9uc2UgY291bGQgYmUgcmVjZWl2ZWQsIGRpc2NhcmRpbmcuLi4nKTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tTdGF0ZS5zdG9wTG9hZGluZyhnb3R0ZW5UYXNrSWQpO1xuICAgICAgICAgICAgYWZ0ZXJBY3Rpb24uY29tcGxldGUoKTtcbiAgICAgICAgICAgIG5leHRFdmVudC5yZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UucmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzID0ge307XG4gICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrRmllbGRzSW5kZXggPSB7fTtcblxuICAgICAgICB0aGlzLl9zYWZlVGFzay5kYXRhR3JvdXBzID0gZGF0YUdyb3VwcztcbiAgICAgICAgaWYgKGRhdGFHcm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuaW5mbygnVGFzayBoYXMgbm8gZGF0YSAnICsgdGhpcy5fc2FmZVRhc2spO1xuICAgICAgICAgICAgdGhpcy5fc2FmZVRhc2suZGF0YVNpemUgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnJlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkc1t0aGlzLl9zYWZlVGFzay5jYXNlSWRdID0gW3RoaXMuX3NhZmVUYXNrLnN0cmluZ0lkXTtcbiAgICAgICAgICAgIGRhdGFHcm91cHMuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YUdyb3VwUGFyZW50Q2FzZUlkOiBzdHJpbmcgPSBncm91cC5wYXJlbnRDYXNlSWQgPT09IHVuZGVmaW5lZCA/IHRoaXMuX3NhZmVUYXNrLmNhc2VJZCA6IGdyb3VwLnBhcmVudENhc2VJZDtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRUYXNrSWQ6IHN0cmluZyA9IGdyb3VwLnBhcmVudFRhc2tJZCA9PT0gdW5kZWZpbmVkID8gdGhpcy5fc2FmZVRhc2suc3RyaW5nSWQgOiBncm91cC5wYXJlbnRUYXNrSWQ7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGFHcm91cFBhcmVudENhc2VJZCAhPT0gdGhpcy5fc2FmZVRhc2suY2FzZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnJlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkc1tkYXRhR3JvdXBQYXJlbnRDYXNlSWRdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UucmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzW2RhdGFHcm91cFBhcmVudENhc2VJZF0gPSBbZ3JvdXAucGFyZW50VGFza0lkXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5yZWZlcmVuY2VkVGFza0FuZENhc2VJZHNbZGF0YUdyb3VwUGFyZW50Q2FzZUlkXS5wdXNoKGdyb3VwLnBhcmVudFRhc2tJZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGFHcm91cFBhcmVudENhc2VJZCA9PT0gdGhpcy5fc2FmZVRhc2suY2FzZUlkXG4gICAgICAgICAgICAgICAgICAgICYmIHBhcmVudFRhc2tJZCAhPT0gdGhpcy5fc2FmZVRhc2suc3RyaW5nSWRcbiAgICAgICAgICAgICAgICAgICAgJiYgIXRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5yZWZlcmVuY2VkVGFza0FuZENhc2VJZHNbZGF0YUdyb3VwUGFyZW50Q2FzZUlkXS5pbmNsdWRlcyhwYXJlbnRUYXNrSWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS5yZWZlcmVuY2VkVGFza0FuZENhc2VJZHNbZGF0YUdyb3VwUGFyZW50Q2FzZUlkXS5wdXNoKGdyb3VwLnBhcmVudFRhc2tJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChncm91cC5maWVsZHMubGVuZ3RoID4gMCAmJiAhdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2tGaWVsZHNJbmRleFtwYXJlbnRUYXNrSWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrRmllbGRzSW5kZXhbcGFyZW50VGFza0lkXSA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBncm91cC5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrRmllbGRzSW5kZXhbcGFyZW50VGFza0lkXVtmaWVsZC5zdHJpbmdJZF0gPSBmaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmFsdWVDaGFuZ2VzKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLndhc0ZpZWxkVXBkYXRlZChmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQgaW5zdGFuY2VvZiBEeW5hbWljRW51bWVyYXRpb25GaWVsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUYXNrRGF0YUZpZWxkcyh0aGlzLl9hZnRlckFjdGlvbkZhY3RvcnkuY3JlYXRlKGJvb2wgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUYXNrRGF0YUZpZWxkcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZCBpbnN0YW5jZW9mIEZpbGVGaWVsZCB8fCBmaWVsZCBpbnN0YW5jZW9mIEZpbGVMaXN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmNoYW5nZWRGaWVsZHMkLnN1YnNjcmliZSgoY2hhbmdlOiBDaGFuZ2VkRmllbGRzTWFwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkc1NlcnZpY2UuZW1pdENoYW5nZWRGaWVsZHMoY2hhbmdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2FmZVRhc2suZGF0YVNpemUgPT09IHVuZGVmaW5lZCA/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NhZmVUYXNrLmRhdGFTaXplID0gZ3JvdXAuZmllbGRzLmxlbmd0aCA6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NhZmVUYXNrLmRhdGFTaXplICs9IGdyb3VwLmZpZWxkcy5sZW5ndGg7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90YXNrU3RhdGUuc3RvcExvYWRpbmcoZ290dGVuVGFza0lkKTtcbiAgICAgICAgdGhpcy5zZW5kTm90aWZpY2F0aW9uKFRhc2tFdmVudC5HRVRfREFUQSwgdHJ1ZSk7XG4gICAgICAgIGFmdGVyQWN0aW9uLnJlc29sdmUodHJ1ZSk7XG4gICAgICAgIG5leHRFdmVudC5yZXNvbHZlKHRydWUpO1xuICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UuJHNob3VsZENyZWF0ZS5uZXh0KHRoaXMuX3NhZmVUYXNrLmRhdGFHcm91cHMpO1xuICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UuJHNob3VsZENyZWF0ZUNvdW50ZXIubmV4dCh0aGlzLl90YXNrQ29udGVudFNlcnZpY2UuJHNob3VsZENyZWF0ZUNvdW50ZXIuZ2V0VmFsdWUoKSArIDEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhbiBlcnJvbmVvdXMgb3V0Y29tZSBvZiBhIGBnZXREYXRhYCByZXF1ZXN0XG4gICAgICogQHBhcmFtIGdvdHRlblRhc2tJZCB0aGUgSWQgb2YgdGhlIHRhc2sgd2hvc2UgZGF0YSB3YXMgcmVxdWVzdGVkXG4gICAgICogQHBhcmFtIGVycm9yIHRoZSByZXR1cm5lZCBlcnJvclxuICAgICAqIEBwYXJhbSBhZnRlckFjdGlvbiB0aGUgYWN0aW9uIHRoYXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBhZnRlciB0aGUgcmVxdWVzdCBpcyBwcm9jZXNzZWRcbiAgICAgKiBAcGFyYW0gbmV4dEV2ZW50IGluZGljYXRlcyB0byB0aGUgZXZlbnQgcXVldWUgdGhhdCB0aGUgbmV4dCBldmVudCBjYW4gYmUgcHJvY2Vzc2VkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHByb2Nlc3NFcnJvbmVvdXNHZXREYXRhUmVxdWVzdChnb3R0ZW5UYXNrSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRFdmVudDogQWZ0ZXJBY3Rpb24pIHtcbiAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0b3BMb2FkaW5nKGdvdHRlblRhc2tJZCk7XG4gICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnZ2V0dGluZyB0YXNrIGRhdGEgZmFpbGVkJywgZXJyb3IpO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1Rhc2tSZWxldmFudChnb3R0ZW5UYXNrSWQpKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJ2N1cnJlbnQgdGFzayBjaGFuZ2VkIGJlZm9yZSB0aGUgZ2V0IGRhdGEgZXJyb3IgY291bGQgYmUgcmVjZWl2ZWQnKTtcbiAgICAgICAgICAgIGFmdGVyQWN0aW9uLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICBuZXh0RXZlbnQucmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDAgJiYgZXJyb3IuZXJyb3IubWVzc2FnZSAmJiBlcnJvci5lcnJvci5tZXNzYWdlLnN0YXJ0c1dpdGgoJ0NvdWxkIG5vdCBmaW5kIHRhc2sgd2l0aCBpZCcpKSB7XG4gICAgICAgICAgICB0aGlzLl9zbmFja0Jhci5vcGVuV2FybmluZ1NuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5ub0xvbmdlckV4aXN0cycpKTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLnJlbG9hZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc25hY2tCYXIub3BlbkVycm9yU25hY2tCYXIoYCR7dGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3Rhc2tzLnNuYWNrYmFyLm5vR3JvdXAnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2sudGl0bGV9ICR7dGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3Rhc2tzLnNuYWNrYmFyLmZhaWxlZFRvTG9hZCcpfWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VuZE5vdGlmaWNhdGlvbihUYXNrRXZlbnQuR0VUX0RBVEEsIGZhbHNlKTtcbiAgICAgICAgYWZ0ZXJBY3Rpb24ucmVzb2x2ZShmYWxzZSk7XG4gICAgICAgIG5leHRFdmVudC5yZXNvbHZlKGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb2xsZWN0cyBhbGwgY2hhbmdlZCBkYXRhIGZpZWxkcyBhbmQgbm90aWZpZXMgdGhlIGJhY2tlbmQgb2YgdGhlIGNoYW5nZXMuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgcmVxdWVzdCBpcyBzdWNjZXNzZnVsIGNsZWFycyB0aGUgW2NoYW5nZWRde0BsaW5rIERhdGFGaWVsZCNjaGFuZ2VkfSBmbGFnIG9uIGFsbCBkYXRhIGZpZWxkcyB0aGF0IHdlcmUgYSBwYXJ0IG9mIHRoZSByZXF1ZXN0XG4gICAgICogYW5kIGVtaXRzIGEge0BsaW5rIENoYW5nZWRGaWVsZHN9IG9iamVjdCBpbnRvIHRoaXMgb2JqZWN0J3MgW2NoYW5nZWRGaWVsZHMkXXtAbGluayBUYXNrRGF0YVNlcnZpY2UjY2hhbmdlZEZpZWxkcyR9IHN0cmVhbS5cbiAgICAgKlxuICAgICAqIElmIHRoZSB0YXNrIGhlbGQgd2l0aGluIHRoZSB7QGxpbmsgVGFza0NvbnRlbnRTZXJ2aWNlfSBjaGFuZ2VzIGJlZm9yZSBhIHJlc3BvbnNlIGlzIHJlY2VpdmVkLCB0aGUgcmVzcG9uc2Ugd2lsbCBiZSBpZ25vcmVkXG4gICAgICogYW5kIHRoZSBgYWZ0ZXJBY3Rpb25gIHdpbGwgbm90IGJlIGV4ZWN1dGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFmdGVyQWN0aW9uIGlmIHRoZSByZXF1ZXN0IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkgZW1pdHMgYHRydWVgIGludG8gdGhlIFN1YmplY3QsIG90aGVyd2lzZSBgZmFsc2VgIHdpbGwgYmUgZW1pdHRlZFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVUYXNrRGF0YUZpZWxkcyhhZnRlckFjdGlvbjogQWZ0ZXJBY3Rpb24gPSBuZXcgQWZ0ZXJBY3Rpb24oKSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNUYXNrUHJlc2VudCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJ1Rhc2sgaXMgbm90IHByZXNlbnQuIFVwZGF0ZSByZXF1ZXN0IGlnbm9yZWQuJyk7XG4gICAgICAgICAgICBhZnRlckFjdGlvbi5yZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9zYWZlVGFzay51c2VyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnY3VycmVudCB0YXNrIGlzIG5vdCBhc3NpZ25lZC4uLicpO1xuICAgICAgICAgICAgYWZ0ZXJBY3Rpb24ucmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZXRUYXNrSWQgPSB0aGlzLl9zYWZlVGFzay5zdHJpbmdJZDtcblxuICAgICAgICBpZiAodGhpcy5fc2FmZVRhc2suZGF0YVNpemUgPD0gMCkge1xuICAgICAgICAgICAgYWZ0ZXJBY3Rpb24ucmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3RDb250ZXh0ID0gdGhpcy5jcmVhdGVVcGRhdGVSZXF1ZXN0Q29udGV4dCgpO1xuXG4gICAgICAgIHRoaXMuX2V2ZW50UXVldWUuc2NoZWR1bGVFdmVudChuZXcgUXVldWVkRXZlbnQoXG4gICAgICAgICAgICAoKSA9PiB0aGlzLmlzU2V0RGF0YVJlcXVlc3RTdGlsbFZhbGlkKHJlcXVlc3RDb250ZXh0LmJvZHkpLFxuICAgICAgICAgICAgbmV4dEV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBlcmZvcm1TZXREYXRhUmVxdWVzdChzZXRUYXNrSWQsIHJlcXVlc3RDb250ZXh0LmJvZHksIGFmdGVyQWN0aW9uLCBuZXh0RXZlbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRFdmVudCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXZlcnRTZXREYXRhUmVxdWVzdChyZXF1ZXN0Q29udGV4dCk7XG4gICAgICAgICAgICAgICAgbmV4dEV2ZW50LnJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICApKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogR29lcyBvdmVyIGFsbCB0aGUgZGF0YSBmaWVsZHMgaW4gdGhlIG1hbmFnZWQgVGFzayBhbmQgaWYgdGhleSBhcmUgdmFsaWQgYW5kIGNoYW5nZWQgYWRkcyB0aGVtIHRvIHRoZSBzZXQgZGF0YSByZXF1ZXN0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVVwZGF0ZVJlcXVlc3RDb250ZXh0KCk6IFRhc2tTZXREYXRhUmVxdWVzdENvbnRleHQge1xuICAgICAgICBjb25zdCBjb250ZXh0OiBUYXNrU2V0RGF0YVJlcXVlc3RDb250ZXh0ID0ge1xuICAgICAgICAgICAgYm9keToge30sXG4gICAgICAgICAgICBwcmV2aW91c1ZhbHVlczoge31cbiAgICAgICAgfTtcbiAgICAgICAgY29udGV4dC5ib2R5W3RoaXMuX3Rhc2suc3RyaW5nSWRdID0ge307XG4gICAgICAgIHRoaXMuX3NhZmVUYXNrLmRhdGFHcm91cHMuZmlsdGVyKGRhdGFHcm91cCA9PiBkYXRhR3JvdXAucGFyZW50VGFza0lkID09PSB1bmRlZmluZWQpLmZvckVhY2goZGF0YUdyb3VwID0+IHtcbiAgICAgICAgICAgIGRhdGFHcm91cC5maWVsZHMuZmlsdGVyKGZpZWxkID0+IHRoaXMud2FzRmllbGRVcGRhdGVkKGZpZWxkKSkuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRGaWVsZFRvU2V0RGF0YVJlcXVlc3RCb2R5KGNvbnRleHQsIHRoaXMuX3Rhc2suc3RyaW5nSWQsIGZpZWxkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fc2FmZVRhc2suZGF0YUdyb3Vwcy5maWx0ZXIoZGF0YUdyb3VwID0+IGRhdGFHcm91cC5wYXJlbnRUYXNrSWQgIT09IHVuZGVmaW5lZCkuZm9yRWFjaChkYXRhR3JvdXAgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGFHcm91cC5maWVsZHMuc29tZShmaWVsZCA9PiB0aGlzLndhc0ZpZWxkVXBkYXRlZChmaWVsZCkpKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5ib2R5W2RhdGFHcm91cC5wYXJlbnRUYXNrSWRdID0ge307XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGFHcm91cC5maWVsZHMuZmlsdGVyKGZpZWxkID0+IHRoaXMud2FzRmllbGRVcGRhdGVkKGZpZWxkKSkuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRGaWVsZFRvU2V0RGF0YVJlcXVlc3RCb2R5KGNvbnRleHQsIGRhdGFHcm91cC5wYXJlbnRUYXNrSWQsIGZpZWxkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFkZEZpZWxkVG9TZXREYXRhUmVxdWVzdEJvZHkoY29udGV4dDogVGFza1NldERhdGFSZXF1ZXN0Q29udGV4dCwgdGFza0lkOiBzdHJpbmcsIGZpZWxkOiBEYXRhRmllbGQ8YW55Pik6IHZvaWQge1xuICAgICAgICBjb250ZXh0LmJvZHlbdGFza0lkXVtmaWVsZC5zdHJpbmdJZF0gPSB7XG4gICAgICAgICAgICB0eXBlOiB0aGlzLl9maWVsZENvbnZlcnRlclNlcnZpY2UucmVzb2x2ZVR5cGUoZmllbGQpLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuX2ZpZWxkQ29udmVydGVyU2VydmljZS5mb3JtYXRWYWx1ZUZvckJhY2tlbmQoZmllbGQsIGZpZWxkLnZhbHVlKVxuICAgICAgICB9O1xuICAgICAgICBjb250ZXh0LnByZXZpb3VzVmFsdWVzW2ZpZWxkLnN0cmluZ0lkXSA9IGZpZWxkLnByZXZpb3VzVmFsdWU7XG4gICAgICAgIGZpZWxkLmNoYW5nZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGNoZWNrZWQgZmllbGRcbiAgICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSBmaWVsZCB3YXMgdXBkYXRlZCBvbiBmcm9udGVuZCBhbmQgdGh1cyB0aGUgYmFja2VuZCBzaG91bGQgYmUgbm90aWZpZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgd2FzRmllbGRVcGRhdGVkKGZpZWxkOiBEYXRhRmllbGQ8dW5rbm93bj4pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkLmluaXRpYWxpemVkICYmIGZpZWxkLmNoYW5nZWQgJiYgKGZpZWxkLnZhbGlkIHx8IGZpZWxkLnNlbmRJbnZhbGlkVmFsdWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgcmVxdWVzdCBjb3VsZCBzdGlsbCBiZSBwZXJmb3JtZWQgYnkgdGhlIGxvZ2dlZCB1c2VyXG4gICAgICogQHBhcmFtIHJlcXVlc3RcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNTZXREYXRhUmVxdWVzdFN0aWxsVmFsaWQocmVxdWVzdDogVGFza1NldERhdGFSZXF1ZXN0Qm9keSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNUYXNrUHJlc2VudCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3NhZmVUYXNrLnVzZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fdXNlckNvbXBhcmF0b3IuY29tcGFyZVVzZXJzKHRoaXMuX3NhZmVUYXNrLnVzZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFza0lkc0luUmVxdWVzdDogQXJyYXk8c3RyaW5nPiA9IE9iamVjdC5rZXlzKHJlcXVlc3QpO1xuICAgICAgICBmb3IgKGNvbnN0IHRhc2tJZCBvZiB0YXNrSWRzSW5SZXF1ZXN0KSB7XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS50YXNrRmllbGRzSW5kZXgpLmluY2x1ZGVzKHRhc2tJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoYFRhc2sgaWQgJHt0YXNrSWR9IGlzIG5vdCBwcmVzZW50IGluIHRhc2sgZmllbGRzIGluZGV4YCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZmllbGRJZHNPZlJlcXVlc3QgPSBPYmplY3Qua2V5cyhyZXF1ZXN0W3Rhc2tJZF0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZElkIG9mIGZpZWxkSWRzT2ZSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF1bZmllbGRJZF07XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKGBVbmV4cGVjdGVkIHN0YXRlLiBEYXRhZmllbGQgJHtmaWVsZElkfSBvZiB0YXNrICR7dGFza0lkXG4gICAgICAgICAgICAgICAgICAgIH0gaW4gc2V0RGF0YSByZXF1ZXN0IGlzIG5vdCBwcmVzZW50IGluIHRoZSB0YXNrLmApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZmllbGQuYmVoYXZpb3IuZWRpdGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKGBGaWVsZCAke2ZpZWxkSWR9LCB3YXMgbWVhbnQgdG8gYmUgc2V0IHRvXG4gICAgICAgICAgICAgICAgICAgICR7SlNPTi5zdHJpbmdpZnkocmVxdWVzdFt0YXNrSWRdW2ZpZWxkSWRdKVxuICAgICAgICAgICAgICAgICAgICB9LCBidXQgaXMgbm8gbG9uZXIgZWRpdGFibGUuYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBgc2V0RGF0YWAgcmVxdWVzdCBvbiB0aGUgdGFzayBjdXJyZW50bHkgc3RvcmVkIGluIHRoZSBgdGFza0NvbnRlbnRgIHNlcnZpY2VcbiAgICAgKiBAcGFyYW0gc2V0VGFza0lkIGlkIG9mIHRoZSB0YXNrXG4gICAgICogQHBhcmFtIGJvZHkgY29udGVudCBvZiB0aGUgYHNldERhdGFgIHJlcXVlc3RcbiAgICAgKiBAcGFyYW0gYWZ0ZXJBY3Rpb24gdGhlIGFjdGlvbiB0aGF0IHNob3VsZCBiZSBwZXJmb3JtZWQgYWZ0ZXIgdGhlIHJlcXVlc3QgaXMgcHJvY2Vzc2VkXG4gICAgICogQHBhcmFtIG5leHRFdmVudCBpbmRpY2F0ZXMgdG8gdGhlIGV2ZW50IHF1ZXVlIHRoYXQgdGhlIG5leHQgZXZlbnQgY2FuIGJlIHByb2Nlc3NlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwZXJmb3JtU2V0RGF0YVJlcXVlc3Qoc2V0VGFza0lkOiBzdHJpbmcsIGJvZHk6IFRhc2tTZXREYXRhUmVxdWVzdEJvZHksIGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbiwgbmV4dEV2ZW50OiBBZnRlckFjdGlvbikge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoYm9keSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmROb3RpZmljYXRpb24oVGFza0V2ZW50LlNFVF9EQVRBLCB0cnVlKTtcbiAgICAgICAgICAgIGFmdGVyQWN0aW9uLnJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICBuZXh0RXZlbnQucmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Rhc2tTdGF0ZS5zdGFydExvYWRpbmcoc2V0VGFza0lkKTtcbiAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0YXJ0VXBkYXRpbmcoc2V0VGFza0lkKTtcblxuICAgICAgICB0aGlzLl90YXNrUmVzb3VyY2VTZXJ2aWNlLnNldERhdGEodGhpcy5fc2FmZVRhc2suc3RyaW5nSWQsIGJvZHkpLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NTdWNjZXNzZnVsU2V0RGF0YVJlcXVlc3Qoc2V0VGFza0lkLCByZXNwb25zZS5vdXRjb21lLCBhZnRlckFjdGlvbiwgbmV4dEV2ZW50LCBib2R5KTtcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvbmVvdXNTZXREYXRhUmVxdWVzdChzZXRUYXNrSWQsIGVycm9yLCBhZnRlckFjdGlvbiwgbmV4dEV2ZW50LCBib2R5KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhIHN1Y2Nlc3NmdWwgb3V0Y29tZSBvZiBhIGBzZXREYXRhYCByZXF1ZXN0XG4gICAgICogQHBhcmFtIHNldFRhc2tJZCB0aGUgSWQgb2YgdGhlIHRhc2sgd2hvc2UgZGF0YSB3YXMgc2V0XG4gICAgICogQHBhcmFtIHJlc3BvbnNlIHRoZSByZXN1bHRpbmcgRXZlbnQgb3V0Y29tZSBvZiB0aGUgc2V0IGRhdGEgcmVxdWVzdFxuICAgICAqIEBwYXJhbSBhZnRlckFjdGlvbiB0aGUgYWN0aW9uIHRoYXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBhZnRlciB0aGUgcmVxdWVzdCBpcyBwcm9jZXNzZWRcbiAgICAgKiBAcGFyYW0gbmV4dEV2ZW50IGluZGljYXRlcyB0byB0aGUgZXZlbnQgcXVldWUgdGhhdCB0aGUgbmV4dCBldmVudCBjYW4gYmUgcHJvY2Vzc2VkXG4gICAgICogQHBhcmFtIGJvZHkgaG9sZCB0aGUgZGF0YSB0aGF0IHdhcyBzZW50IGluIHJlcXVlc3RcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc1N1Y2Nlc3NmdWxTZXREYXRhUmVxdWVzdChzZXRUYXNrSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogRXZlbnRPdXRjb21lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RXZlbnQ6IEFmdGVyQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IFRhc2tTZXREYXRhUmVxdWVzdEJvZHkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVGFza1JlbGV2YW50KHNldFRhc2tJZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnY3VycmVudCB0YXNrIGNoYW5nZWQgYmVmb3JlIHRoZSBzZXQgZGF0YSByZXNwb25zZSBjb3VsZCBiZSByZWNlaXZlZCwgZGlzY2FyZGluZy4uLicpO1xuICAgICAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0b3BMb2FkaW5nKHNldFRhc2tJZCk7XG4gICAgICAgICAgICB0aGlzLl90YXNrU3RhdGUuc3RvcFVwZGF0aW5nKHNldFRhc2tJZCk7XG4gICAgICAgICAgICBhZnRlckFjdGlvbi5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgbmV4dEV2ZW50LnJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hhbmdlZEZpZWxkc01hcDogQ2hhbmdlZEZpZWxkc01hcCA9IHRoaXMuX2V2ZW50U2VydmljZS5wYXJzZUNoYW5nZWRGaWVsZHNGcm9tT3V0Y29tZVRyZWUocmVzcG9uc2UpO1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhjaGFuZ2VkRmllbGRzTWFwKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VkRmllbGRzU2VydmljZS5lbWl0Q2hhbmdlZEZpZWxkcyhjaGFuZ2VkRmllbGRzTWFwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsZWFyV2FpdGluZ0ZvclJlc3BvbnNlRmxhZyhib2R5KTtcbiAgICAgICAgdGhpcy5fc25hY2tCYXIub3BlblN1Y2Nlc3NTbmFja0JhcighIXJlc3BvbnNlLm1lc3NhZ2UgPyByZXNwb25zZS5tZXNzYWdlIDogdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3Rhc2tzLnNuYWNrYmFyLmRhdGFTYXZlZCcpKTtcbiAgICAgICAgdGhpcy51cGRhdGVTdGF0ZUluZm8oYWZ0ZXJBY3Rpb24sIHRydWUsIHNldFRhc2tJZCk7XG4gICAgICAgIG5leHRFdmVudC5yZXNvbHZlKHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhbiBlcnJvbmVvdXMgb3V0Y29tZSBvZiBhIGBzZXREYXRhYCByZXF1ZXN0XG4gICAgICogQHBhcmFtIHNldFRhc2tJZCB0aGUgSWQgb2YgdGhlIHRhc2sgd2hvc2UgZGF0YSB3YXMgc2V0XG4gICAgICogQHBhcmFtIGVycm9yIHRoZSByZXR1cm5lZCBlcnJvclxuICAgICAqIEBwYXJhbSBhZnRlckFjdGlvbiB0aGUgYWN0aW9uIHRoYXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBhZnRlciB0aGUgcmVxdWVzdCBpcyBwcm9jZXNzZWRcbiAgICAgKiBAcGFyYW0gbmV4dEV2ZW50IGluZGljYXRlcyB0byB0aGUgZXZlbnQgcXVldWUgdGhhdCB0aGUgbmV4dCBldmVudCBjYW4gYmUgcHJvY2Vzc2VkXG4gICAgICogQHBhcmFtIGJvZHkgaG9sZCB0aGUgZGF0YSB0aGF0IHdhcyBzZW50IGluIHJlcXVlc3RcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc0Vycm9uZW91c1NldERhdGFSZXF1ZXN0KHNldFRhc2tJZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXJBY3Rpb246IEFmdGVyQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEV2ZW50OiBBZnRlckFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IFRhc2tTZXREYXRhUmVxdWVzdEJvZHkpIHtcbiAgICAgICAgdGhpcy5fbG9nLmRlYnVnKCdzZXR0aW5nIHRhc2sgZGF0YSBmYWlsZWQnLCBlcnJvcik7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVGFza1JlbGV2YW50KHNldFRhc2tJZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnY3VycmVudCB0YXNrIGNoYW5nZWQgYmVmb3JlIHRoZSBnZXQgZGF0YSBlcnJvciBjb3VsZCBiZSByZWNlaXZlZCcpO1xuICAgICAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0b3BMb2FkaW5nKHNldFRhc2tJZCk7XG4gICAgICAgICAgICB0aGlzLl90YXNrU3RhdGUuc3RvcFVwZGF0aW5nKHNldFRhc2tJZCk7XG4gICAgICAgICAgICBhZnRlckFjdGlvbi5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgbmV4dEV2ZW50LnJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXZlcnRUb1ByZXZpb3VzVmFsdWUoKTtcbiAgICAgICAgdGhpcy5jbGVhcldhaXRpbmdGb3JSZXNwb25zZUZsYWcoYm9keSk7XG4gICAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5mYWlsZWRTYXZlJykpO1xuICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlSW5mbyhhZnRlckFjdGlvbiwgZmFsc2UsIHNldFRhc2tJZCk7XG4gICAgICAgIG5leHRFdmVudC5yZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5fdGFza09wZXJhdGlvbnMucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV2ZXJ0cyB0aGUgZWZmZWN0cyBvZiBhIGZhaWxlZCBgc2V0RGF0YWAgcmVxdWVzdCwgc28gdGhhdCB0aGUgdXNlciBzZWVzIGN1cnJlbnQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSBjb250ZXh0IHRoZSBjb250ZXh0IG9mIHRoZSBmYWlsZWQgcmVxdWVzdFxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZXZlcnRTZXREYXRhUmVxdWVzdChjb250ZXh0OiBUYXNrU2V0RGF0YVJlcXVlc3RDb250ZXh0KSB7XG4gICAgICAgIC8vIHRoaXMgaXRlcmF0aW9uIGNvdWxkIGJlIGltcHJvdmVkIGlmIHdlIGhhZCBhIG1hcCBvZiBhbGwgdGhlIGRhdGEgZmllbGRzIGluIGEgdGFza1xuICAgICAgICBjb25zdCB0b3RhbENvdW50ID0gT2JqZWN0LmtleXMoY29udGV4dC5ib2R5KS5sZW5ndGg7XG4gICAgICAgIGxldCBmb3VuZENvdW50ID0gMDtcblxuICAgICAgICBmb3IgKGNvbnN0IGRhdGFncm91cCBvZiB0aGlzLl9zYWZlVGFzay5kYXRhR3JvdXBzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGRhdGFncm91cC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRleHQuYm9keVtmaWVsZC5zdHJpbmdJZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFyZUJhY2tlbmRGb3JtYXR0ZWRGaWVsZFZhbHVlcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmllbGRDb252ZXJ0ZXJTZXJ2aWNlLmZvcm1hdFZhbHVlRm9yQmFja2VuZChmaWVsZCwgZmllbGQudmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmJvZHlbZmllbGQuc3RyaW5nSWRdLnZhbHVlKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZC52YWx1ZVdpdGhvdXRDaGFuZ2UoY29udGV4dC5wcmV2aW91c1ZhbHVlc1tmaWVsZC5zdHJpbmdJZF0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvdW5kQ291bnQrKztcbiAgICAgICAgICAgICAgICBpZiAoZm91bmRDb3VudCA9PT0gdG90YWxDb3VudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbG9nLmVycm9yKGBJbnZhbGlkIHN0YXRlLiBTb21lIGRhdGEgZmllbGRzIG9mIHRhc2sgJHt0aGlzLl9zYWZlVGFzay5zdHJpbmdJZH0sIGFyZSBubyBsb25nZXIgcHJlc2VudCBpbiBpdCFgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wYXJlcyB0aGUgdmFsdWVzIHRoYXQgYXJlIGluIHRoZSBiYWNrZW5kIGNvbXBhdGlibGUgZm9ybWF0IGFzIGdpdmVuIGJ5IHRoZSB7QGxpbmsgRmllbGRDb252ZXJ0ZXJTZXJ2aWNlfVxuICAgICAqIGFuZCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhleSBhcmUgdGhlIHNhbWUgdmFsdWUsIG9yIG5vdC5cbiAgICAgKiBAcGFyYW0gY3VycmVudCB0aGUgY3VycmVudCB2YWx1ZSAoY2FuIGFsc28gYmUgY2FsbGVkIGB2YWx1ZTFgIG9yIGBsZWZ0YClcbiAgICAgKiBAcGFyYW0gb2xkIHRoZSBuZXcgdmFsdWUgKGNhbiBhbHNvIGJlIGNhbGxlZCBgdmFsdWUyYCBvciBgcmlnaHRgKVxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSB0aGUgc2FtZSBhbmQgYGZhbHNlYCBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY29tcGFyZUJhY2tlbmRGb3JtYXR0ZWRGaWVsZFZhbHVlcyhjdXJyZW50LCBvbGQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudCkpIHtcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShvbGQpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIGFyZ3VtZW50cyEgQ2Fubm90IGNvbXBhcmUgYXJyYXkgdmFsdWUgdG8gbm9uLWFycmF5IHZhbHVlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50Lmxlbmd0aCAhPT0gb2xkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQuZXZlcnkoKHZhbHVlLCBpbmRleCkgPT4gb2xkW2luZGV4XSA9PT0gdmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQgPT09IG9sZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICpcbiAgICAgKiBzdG9wcyBsb2FkaW5nIGFuZCB1cGRhdGluZyBpbmRpY2F0b3JzLCBhbmQgZW1pdHMgdGhlIGByZXN1bHRgIHZhbHVlXG4gICAgICogdG8gYm90aCB0aGUgYGFmdGVyQWN0aW9uYCBhbmQgW191cGRhdGVTdWNjZXNzJF17QGxpbmsgVGFza0RhdGFTZXJ2aWNlI191cGRhdGVTdWNjZXNzJH0gc3RyZWFtcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhZnRlckFjdGlvbiB0aGUgY2FsbCBjaGFpbiBzdGVhbSBvZiB0aGUgdXBkYXRlIGRhdGEgbWV0aG9kXG4gICAgICogQHBhcmFtIHJlc3VsdCByZXN1bHQgb2YgdGhlIHVwZGF0ZSBkYXRhIHJlcXVlc3RcbiAgICAgKiBAcGFyYW0gc2V0VGFza0lkIHRoZSBJZCBvZiB0aGUge0BsaW5rIFRhc2t9LCB3aG8ncyBzdGF0ZSBzaG91bGQgYmUgdXBkYXRlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVTdGF0ZUluZm8oYWZ0ZXJBY3Rpb246IEFmdGVyQWN0aW9uLCByZXN1bHQ6IGJvb2xlYW4sIHNldFRhc2tJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Rhc2tTdGF0ZS5zdG9wTG9hZGluZyhzZXRUYXNrSWQpO1xuICAgICAgICB0aGlzLl90YXNrU3RhdGUuc3RvcFVwZGF0aW5nKHNldFRhc2tJZCk7XG4gICAgICAgIGlmICh0aGlzLl91cGRhdGVTdWNjZXNzJC5vYnNlcnZlcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVTdWNjZXNzJC5uZXh0KHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZW5kTm90aWZpY2F0aW9uKFRhc2tFdmVudC5TRVRfREFUQSwgcmVzdWx0KTtcbiAgICAgICAgYWZ0ZXJBY3Rpb24ucmVzb2x2ZShyZXN1bHQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1Ymxpc2hlcyBhIGdldC9zZXQgZGF0YSBub3RpZmljYXRpb24gdG8gdGhlIHtAbGluayBUYXNrRXZlbnRTZXJ2aWNlfVxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdGhhdCBvY2N1cnJlZCB0byB0aGUgdGFza1xuICAgICAqIEBwYXJhbSBzdWNjZXNzIHdoZXRoZXIgdGhlIGdldC9zZXQgZGF0YSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwgb3Igbm90XG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNlbmROb3RpZmljYXRpb24oZXZlbnQ6IFRhc2tFdmVudC5HRVRfREFUQSB8IFRhc2tFdmVudC5TRVRfREFUQSwgc3VjY2VzczogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl90YXNrRXZlbnQucHVibGlzaFRhc2tFdmVudChjcmVhdGVUYXNrRXZlbnROb3RpZmljYXRpb24odGhpcy5fc2FmZVRhc2ssIGV2ZW50LCBzdWNjZXNzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXZlcnRUb1ByZXZpb3VzVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NhZmVUYXNrLmRhdGFHcm91cHMuZm9yRWFjaChkYXRhR3JvdXAgPT4ge1xuICAgICAgICAgICAgZGF0YUdyb3VwLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQuaW5pdGlhbGl6ZWQgJiYgZmllbGQudmFsaWQgJiYgZmllbGQuY2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZC5yZXZlcnRUb1ByZXZpb3VzVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhcldhaXRpbmdGb3JSZXNwb25zZUZsYWcoYm9keTogVGFza1NldERhdGFSZXF1ZXN0Qm9keSkge1xuICAgICAgICBPYmplY3Qua2V5cyhib2R5KS5mb3JFYWNoKHRhc2tJZCA9PiB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhib2R5W3Rhc2tJZF0pLmZvckVhY2goZmllbGRJZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnRhc2tGaWVsZHNJbmRleFt0YXNrSWRdW2ZpZWxkSWRdLndhaXRpbmdGb3JSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|