@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,524 @@
|
|
|
1
|
+
import { Operator } from '../operator/operator';
|
|
2
|
+
import { ElementaryPredicate } from '../predicate/elementary-predicate';
|
|
3
|
+
import { SearchInputType } from './search-input-type';
|
|
4
|
+
import { FormControl } from '@angular/forms';
|
|
5
|
+
import { BehaviorSubject, forkJoin, of, ReplaySubject } from 'rxjs';
|
|
6
|
+
import { debounceTime, defaultIfEmpty, map } from 'rxjs/operators';
|
|
7
|
+
import { OperatorTemplatePart } from '../operator-template-part';
|
|
8
|
+
import { IncrementingCounter } from '../../../utility/incrementing-counter';
|
|
9
|
+
import { ConfigurationInput } from '../configuration-input';
|
|
10
|
+
import { ofVoid } from '../../../utility/of-void';
|
|
11
|
+
import { DATE_FORMAT_STRING, DATE_TIME_FORMAT_STRING } from '../../../moment/time-formats';
|
|
12
|
+
/**
|
|
13
|
+
* The top level of abstraction in search query generation. Represents a set of indexed fields that can be searched.
|
|
14
|
+
* Encapsulates the the state and logic of the query construction process.
|
|
15
|
+
*
|
|
16
|
+
* As opposed to {@link Operator}s Categories are not stateless and shouldn't be shared.
|
|
17
|
+
* A single Category instance is capable of holding the state of one {@link EditablePredicate},
|
|
18
|
+
* or can be used as a builder to form an unlimited amount of [ElementaryPredicates]{@link ElementaryPredicate}.
|
|
19
|
+
*
|
|
20
|
+
* You can use {@link CategoryFactory} to get instances of Category classes.
|
|
21
|
+
* Alternatively you can use the [clone()]{@Link Category#clone} method to duplicate an existing instance.
|
|
22
|
+
*
|
|
23
|
+
* If you want to make your own Category class you have to make sure that the constructor takes {@link OperatorService} as it's first
|
|
24
|
+
* argument and {@link LoggerService} as it's second argument. Alternatively you can make your own implementation of the
|
|
25
|
+
* {@link CategoryFactory} so, that your style of constructors is supported.
|
|
26
|
+
*
|
|
27
|
+
* @typeparam T type of objects the category expects to generate queries from
|
|
28
|
+
*/
|
|
29
|
+
export class Category {
|
|
30
|
+
/**
|
|
31
|
+
* The constructor fills the values of all protected fields and then calls the [initializeCategory()]{@link Category#initializeCategory}
|
|
32
|
+
* method. If you want to override the category creation behavior override that method.
|
|
33
|
+
*
|
|
34
|
+
* @param _elasticKeywords Elasticsearch keywords that should be queried by queries generated with this category
|
|
35
|
+
* @param _allowedOperators Operators that can be used to generated queries on the above keywords
|
|
36
|
+
* @param translationPath path to the translation string
|
|
37
|
+
* @param _inputType input field type that should be used to enter operator arguments for this category
|
|
38
|
+
* @param _log used to record information about incorrect use of this class
|
|
39
|
+
* @param _operatorService used to resolve serialized operators during deserialization
|
|
40
|
+
*/
|
|
41
|
+
constructor(_elasticKeywords, _allowedOperators, translationPath, _inputType, _log, _operatorService) {
|
|
42
|
+
this._elasticKeywords = _elasticKeywords;
|
|
43
|
+
this._allowedOperators = _allowedOperators;
|
|
44
|
+
this.translationPath = translationPath;
|
|
45
|
+
this._inputType = _inputType;
|
|
46
|
+
this._log = _log;
|
|
47
|
+
this._operatorService = _operatorService;
|
|
48
|
+
this._OPERATOR_INPUT = new ConfigurationInput(SearchInputType.OPERATOR, 'search.operator.name', false, new Map(), () => {
|
|
49
|
+
throw new Error('ConfigurationInput of type OPERATOR is a placeholder!'
|
|
50
|
+
+ ' Use operator related methods from the Category class instead.');
|
|
51
|
+
});
|
|
52
|
+
this._operatorFormControl = this._OPERATOR_INPUT.formControl;
|
|
53
|
+
this._operandsFormControls$ = new ReplaySubject(1);
|
|
54
|
+
this._operatorTemplate$ = new BehaviorSubject(undefined);
|
|
55
|
+
this._operandsFormControls = [];
|
|
56
|
+
this._trackByIdGenerator = new IncrementingCounter();
|
|
57
|
+
this._generatedPredicate$ = new BehaviorSubject(undefined);
|
|
58
|
+
this.initializeCategory();
|
|
59
|
+
this.operandsFormControls$.pipe(map(formControls => {
|
|
60
|
+
if (!formControls) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
const parts = this.selectedOperator.getOperatorNameTemplate();
|
|
64
|
+
const fcs = [...formControls];
|
|
65
|
+
let first = true;
|
|
66
|
+
return parts.map(part => {
|
|
67
|
+
const template = new OperatorTemplatePart(part ? part : fcs.shift(), this._trackByIdGenerator.next(), part ? undefined : first);
|
|
68
|
+
if (!part) {
|
|
69
|
+
first = false;
|
|
70
|
+
}
|
|
71
|
+
return template;
|
|
72
|
+
});
|
|
73
|
+
})).subscribe(template => {
|
|
74
|
+
this._operatorTemplate$.next(template);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Cleans up the internal state of the object before its destruction.
|
|
79
|
+
*
|
|
80
|
+
* The developer must call this method at an appropriate moment, as this object cannot hook into the Angular lifecycle.
|
|
81
|
+
*/
|
|
82
|
+
destroy() {
|
|
83
|
+
this._operandsFormControls$.complete();
|
|
84
|
+
this._operatorTemplate$.complete();
|
|
85
|
+
this._generatedPredicate$.complete();
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* If you use the `Category` class as a sort of PredicateBuilder, then you want to use the
|
|
89
|
+
* [generatePredicate()]{@link Category#generatePredicate} method instead.
|
|
90
|
+
*
|
|
91
|
+
* This stream publishes either a new `Predicate` object or `undefined` based on changes to the `FormControls` that are
|
|
92
|
+
* managed by this class. If (based on user input) the `Category` reaches a state when construction of a `Predicate` is possible
|
|
93
|
+
* it will emit this `Predicate`. If it reaches a state when the `Predicate` can not longer be created `undefined` is emitted.
|
|
94
|
+
*/
|
|
95
|
+
get generatedPredicate$() {
|
|
96
|
+
return this._generatedPredicate$.asObservable();
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Returns the {@link Predicate} currently generated by the Category.
|
|
100
|
+
*
|
|
101
|
+
* For more information see [generatedPredicate$]{@link Category#generatedPredicate$}.
|
|
102
|
+
*/
|
|
103
|
+
get generatedPredicate() {
|
|
104
|
+
return this._generatedPredicate$.getValue();
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Beware that while most categories always return the same constant it is not a requirement.
|
|
108
|
+
* An example for such behavior is the {@link CaseDataset} category, where the argument input type depends
|
|
109
|
+
* on the selected data field type.
|
|
110
|
+
*
|
|
111
|
+
* @returns the required input type for arguments for this category
|
|
112
|
+
*/
|
|
113
|
+
get inputType() {
|
|
114
|
+
return this._inputType;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* @returns the set of Operators that can be used with this category. Iteration order determines the display order.
|
|
118
|
+
*/
|
|
119
|
+
get allowedOperators() {
|
|
120
|
+
const result = [];
|
|
121
|
+
result.push(...this._allowedOperators);
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @returns the currently selected operator or `undefined` if no operator is selected.
|
|
126
|
+
*/
|
|
127
|
+
get selectedOperator() {
|
|
128
|
+
return this._operatorFormControl.value;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @returns an array of `FormControl` objects that contains as many controls as is the arity of the selected operator.
|
|
132
|
+
* Calling this method multiple times will return the same `FormControl` instances.
|
|
133
|
+
* When no operator is selected `undefined` is emitted.
|
|
134
|
+
*/
|
|
135
|
+
get operandsFormControls$() {
|
|
136
|
+
return this._operandsFormControls$.asObservable();
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* A new value is emitted whenever the selected operator changes. `undefined` is emitted if no operator is selected.
|
|
140
|
+
*
|
|
141
|
+
* @returns [operators template]{@link Operator#getOperatorNameTemplate} in processed form fit for GUI rendering
|
|
142
|
+
*/
|
|
143
|
+
get operatorTemplate$() {
|
|
144
|
+
return this._operatorTemplate$.asObservable();
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* @returns whether the category is fully configured and represents a valid predicate or not
|
|
148
|
+
*/
|
|
149
|
+
get providesPredicate() {
|
|
150
|
+
return !!this._generatedPredicate$.getValue();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* @returns the set of Elasticsearch keywords that should be queried by queries generated with this category.
|
|
154
|
+
* The method can be overridden if the keywords are not static and change based on some additional selection (eg. Data fields)
|
|
155
|
+
*/
|
|
156
|
+
get elasticKeywords() {
|
|
157
|
+
const result = [];
|
|
158
|
+
result.push(...this._elasticKeywords);
|
|
159
|
+
return result;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* @returns the arity of the selected operator. Throws an error if no operator is selected.
|
|
163
|
+
*/
|
|
164
|
+
get selectedOperatorArity() {
|
|
165
|
+
if (!this.isOperatorSelected()) {
|
|
166
|
+
throw new Error('An operator mus be selected before its arity can be resolved!');
|
|
167
|
+
}
|
|
168
|
+
return this.selectedOperator.numberOfOperands;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Changes the state of the Category. Category can create queries when an {@link Operator} is selected.
|
|
172
|
+
*
|
|
173
|
+
* This method is useful if you want to use the Category class as predicate builder.
|
|
174
|
+
*
|
|
175
|
+
* @param operatorIndex index in the [allowedOperators]{@link Category#allowedOperators} array of the {@link Operator} that
|
|
176
|
+
* should be selected
|
|
177
|
+
*/
|
|
178
|
+
selectOperator(operatorIndex) {
|
|
179
|
+
const operators = this.allowedOperators;
|
|
180
|
+
if (operatorIndex < 0 || operatorIndex >= operators.length) {
|
|
181
|
+
this._log.warn(`The provided 'operatorIndex' is out of range.`);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
this._operatorFormControl.setValue(operators[operatorIndex]);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Changes the state of the Category and generates a query if all necessary operands were set.
|
|
188
|
+
*
|
|
189
|
+
* If you are using the category as a builder. Consider using the [generatePredicate()]{@link Category#generatePredicate}
|
|
190
|
+
* method instead.
|
|
191
|
+
*
|
|
192
|
+
* @param userInput values entered by the user. The length of the array should match the
|
|
193
|
+
* [arity]{@link Operator#_numberOfOperands} of the selected Operator.
|
|
194
|
+
*/
|
|
195
|
+
setOperands(userInput) {
|
|
196
|
+
const range = Math.min(userInput.length, this._operandsFormControls.length);
|
|
197
|
+
if (range < userInput.length) {
|
|
198
|
+
this._log.warn(`${userInput.length} operands are being set, but only ${range} inputs are available!`
|
|
199
|
+
+ ' Extra operands will be ignored.');
|
|
200
|
+
}
|
|
201
|
+
for (let i = 0; i < range; i++) {
|
|
202
|
+
this._operandsFormControls[i].setValue(userInput[i]);
|
|
203
|
+
}
|
|
204
|
+
if (range !== 0) {
|
|
205
|
+
this.operandValueChanges(range - 1);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Resets the state of the Category, deselecting any selected category and removing other state
|
|
210
|
+
* information if the Category defines them.
|
|
211
|
+
*
|
|
212
|
+
* This method can be used to reset the state of the category after each predicate constructed,
|
|
213
|
+
* effectively turning the category instance into a predicate builder.
|
|
214
|
+
*/
|
|
215
|
+
reset() {
|
|
216
|
+
this.clearOperatorSelection();
|
|
217
|
+
this._operandsFormControls.forEach(fc => {
|
|
218
|
+
fc.setValue(undefined);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Calls the [createQuery]{@link Operator#createQuery} method on the selected Operator.
|
|
223
|
+
*
|
|
224
|
+
* Throws an Error if no Operator is selected.
|
|
225
|
+
*
|
|
226
|
+
* Override this method if the query should be generated in some other way.
|
|
227
|
+
* @param userInput values entered by the user. The length of the array should match the
|
|
228
|
+
* [arity]{@link Operator#_numberOfOperands} of the selected Operator.
|
|
229
|
+
* @returns the Query generated by the selected Operator
|
|
230
|
+
*/
|
|
231
|
+
generateQuery(userInput) {
|
|
232
|
+
if (!this.isOperatorSelected()) {
|
|
233
|
+
throw new Error('Category cannot generate a Query if no Operator is selected');
|
|
234
|
+
}
|
|
235
|
+
return this._operatorFormControl.value.createQuery(this._elasticKeywords, userInput);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Calls the [generateQuery]{@link Category#generateQuery} method and creates an {@link ElementaryPredicate} with the result.
|
|
239
|
+
* @param userInput values entered by the user. The length of the array should match the
|
|
240
|
+
* [arity]{@link Operator#_numberOfOperands} of the selected Operator.
|
|
241
|
+
* @returns Predicate with {@link Query} generated by this object's [generateQuery]{@link Category#generateQuery} method
|
|
242
|
+
*/
|
|
243
|
+
generatePredicate(userInput) {
|
|
244
|
+
return new ElementaryPredicate(this.generateQuery(userInput));
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Selects the default operator that should be used for query generation, when no Operator selection is provided to the user.
|
|
248
|
+
*
|
|
249
|
+
* The default implementation selects the first operator in the [_allowedOperators]{@link Category#allowedOperators} array.
|
|
250
|
+
*
|
|
251
|
+
* See [selectOperator()]{@link Category#selectOperator} for more information.
|
|
252
|
+
*/
|
|
253
|
+
selectDefaultOperator() {
|
|
254
|
+
this.selectOperator(0);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* @returns whether an operator is currently selected or not.
|
|
258
|
+
*/
|
|
259
|
+
isOperatorSelected() {
|
|
260
|
+
return !!this._operatorFormControl.value;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Deselects the currently selected operator (if any)
|
|
264
|
+
*/
|
|
265
|
+
clearOperatorSelection() {
|
|
266
|
+
this._operatorFormControl.setValue(undefined);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Provides the necessary information for the serialisation of this category's state.
|
|
270
|
+
*
|
|
271
|
+
* Not every state must be preservable. The default library implementation supports only the preservation of the final state when the
|
|
272
|
+
* Category is generating a predicate object.
|
|
273
|
+
*
|
|
274
|
+
* @returns an object containing all the necessary information for the reconstruction of this category's state,
|
|
275
|
+
* barring information about allowed nets. Returns `undefined` if the category is not in a state that generates a predicate.
|
|
276
|
+
* See [providesPredicate()]{@link Category#providesPredicate}.
|
|
277
|
+
*/
|
|
278
|
+
createMetadata() {
|
|
279
|
+
if (!this.providesPredicate) {
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
return {
|
|
283
|
+
category: this.serializeClass(),
|
|
284
|
+
configuration: this.createMetadataConfiguration(),
|
|
285
|
+
values: this.createMetadataValues()
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Restores the saved state contained in the provided metadata.
|
|
290
|
+
*
|
|
291
|
+
* @param metadata the metadata created by calling the [createMetadata()]{@link Category#createMetadata} method
|
|
292
|
+
*
|
|
293
|
+
* @returns an Observable. When the Observable emits the category has finished restoring its state.
|
|
294
|
+
*/
|
|
295
|
+
loadFromMetadata(metadata) {
|
|
296
|
+
const result$ = new ReplaySubject(1);
|
|
297
|
+
this.loadConfigurationFromMetadata(metadata.configuration).subscribe(() => {
|
|
298
|
+
this.loadValuesFromMetadata(metadata.values).subscribe(() => {
|
|
299
|
+
result$.next();
|
|
300
|
+
result$.complete();
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
return result$.asObservable();
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* This method is calle in the constructor. Apart from calling this method, the constructor only creates instances to fill the protected
|
|
307
|
+
* fields of this class.
|
|
308
|
+
*
|
|
309
|
+
* The default implementation manages creation of operand `FormControl` instances and manages subscriptions to them.
|
|
310
|
+
*
|
|
311
|
+
* You can override this method to change the initialization of your category without having to rewrite the base
|
|
312
|
+
* constructor from scratch.
|
|
313
|
+
*/
|
|
314
|
+
initializeCategory() {
|
|
315
|
+
this._operatorFormControl.valueChanges.subscribe((newOperator) => {
|
|
316
|
+
this._operandsFormControls.forEach(fc => {
|
|
317
|
+
fc.setValue(undefined);
|
|
318
|
+
});
|
|
319
|
+
if (!newOperator) {
|
|
320
|
+
// undefined is next-ed into the stream. Marked as code smell by sonar when explicitly stated
|
|
321
|
+
this._operandsFormControls$.next();
|
|
322
|
+
if (this._operandsFormControls.length === 0) {
|
|
323
|
+
this._generatedPredicate$.next(undefined);
|
|
324
|
+
}
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
if (newOperator.numberOfOperands > this._operandsFormControls.length) {
|
|
328
|
+
while (this._operandsFormControls.length < newOperator.numberOfOperands) {
|
|
329
|
+
const fc = new FormControl();
|
|
330
|
+
const currentLength = this._operandsFormControls.length;
|
|
331
|
+
fc.valueChanges.pipe(debounceTime(600)).subscribe(() => {
|
|
332
|
+
this.operandValueChanges(currentLength);
|
|
333
|
+
});
|
|
334
|
+
this._operandsFormControls.push(fc);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
this._operandsFormControls$.next(this._operandsFormControls.slice(0, newOperator.numberOfOperands));
|
|
338
|
+
if (newOperator.numberOfOperands === 0) {
|
|
339
|
+
this._generatedPredicate$.next(this.generatePredicate([]));
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* The method that is (by default) called whenever an operand `FormControl` changes its value.
|
|
345
|
+
*
|
|
346
|
+
* @param operandIndex the index of the operand that changed its value
|
|
347
|
+
*/
|
|
348
|
+
operandValueChanges(operandIndex) {
|
|
349
|
+
if (!this.isOperatorSelected()) {
|
|
350
|
+
this._generatedPredicate$.next(undefined);
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
if (operandIndex >= this.selectedOperatorArity) {
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
for (let i = 0; i < this.selectedOperatorArity; i++) {
|
|
357
|
+
if (!this.isOperandValueSelected(this._operandsFormControls[i].value)) {
|
|
358
|
+
if (this._generatedPredicate$.getValue()) {
|
|
359
|
+
this._generatedPredicate$.next(undefined);
|
|
360
|
+
}
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
this._generatedPredicate$.next(this.generatePredicate(this._operandsFormControls.map(fc => this.transformCategoryValue(fc.value))));
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* The default implementation serializes only the operator.
|
|
368
|
+
* If the category contains additional configuration, this method must be extended.
|
|
369
|
+
*
|
|
370
|
+
* @returns an object containing all the necessary information for the reconstruction of the configuration of this category instance
|
|
371
|
+
*/
|
|
372
|
+
createMetadataConfiguration() {
|
|
373
|
+
return {
|
|
374
|
+
[Category.OPERATOR_METADATA]: this.selectedOperator.serialize()
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* The default implementation returns the value of all operand form control objects up to the current number of operands.
|
|
379
|
+
* To serialize value of each operand the [serializeOperandValue()]{@link Category#serializeOperandValue} method is used.
|
|
380
|
+
*
|
|
381
|
+
* If the values used by this category are not serializable, then either this method, or the `serializeOperandValue` method,
|
|
382
|
+
* must be overridden.
|
|
383
|
+
*
|
|
384
|
+
* @returns an array containing values input by the user in a serializable form
|
|
385
|
+
*/
|
|
386
|
+
createMetadataValues() {
|
|
387
|
+
const result = [];
|
|
388
|
+
for (let i = 0; i < this.selectedOperatorArity; i++) {
|
|
389
|
+
result.push(this.serializeOperandValue(this._operandsFormControls[i]));
|
|
390
|
+
}
|
|
391
|
+
return result;
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* @param valueFormControl FormControl object of one operand
|
|
395
|
+
* @returns the value of the operand in a serialized form. The default implementation returns the FormControls `value` attribute.
|
|
396
|
+
*/
|
|
397
|
+
serializeOperandValue(valueFormControl) {
|
|
398
|
+
return valueFormControl.value;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Restored the saved configuration from the metadata created by the
|
|
402
|
+
* [createMetadataConfiguration()]{@link Category#createMetadataConfiguration} method.
|
|
403
|
+
*
|
|
404
|
+
* The default implementation restores only the saved operator.
|
|
405
|
+
*
|
|
406
|
+
* If the Category overrides the serialization method, it must override this method as well.
|
|
407
|
+
*
|
|
408
|
+
* @param configuration the serialized configuration
|
|
409
|
+
*
|
|
410
|
+
* @returns an Observable. When the Observable emits the category has finished loading its configuration.
|
|
411
|
+
*/
|
|
412
|
+
loadConfigurationFromMetadata(configuration) {
|
|
413
|
+
const resolvedOperator = this._operatorService.getFromMetadata(configuration[Category.OPERATOR_METADATA]);
|
|
414
|
+
this.selectOperator(this.allowedOperators.findIndex(op => op === resolvedOperator));
|
|
415
|
+
return ofVoid();
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* The default implementation sets the provided values into this Category's operand form controls.
|
|
419
|
+
*
|
|
420
|
+
* An operator must be set before calling this method! Otherwise an error will be thrown.
|
|
421
|
+
*
|
|
422
|
+
* If the number of values doesn't match the arity of the selected operator an error will be thrown!
|
|
423
|
+
*
|
|
424
|
+
* If this Category overrides the [serializeOperandValue()]{@link Category#serializeOperandValue}, it must also
|
|
425
|
+
* override its deserialization counterpart - [deserializeOperandValue()]{@link #Category#deserializeOperandValue}!
|
|
426
|
+
*
|
|
427
|
+
* @param values the serialized values that should be loaded into this Category instance
|
|
428
|
+
*
|
|
429
|
+
* @returns an Observable. When the Observable emits the category has finished loading its values.
|
|
430
|
+
*/
|
|
431
|
+
loadValuesFromMetadata(values) {
|
|
432
|
+
if (!this.isOperatorSelected()) {
|
|
433
|
+
throw new Error('An operator must be selected before Category values can be resolved from metadata!');
|
|
434
|
+
}
|
|
435
|
+
if (this.selectedOperatorArity !== values.length) {
|
|
436
|
+
throw new Error(`The arity of the selected operator (${this.selectedOperatorArity}) doesn't match the number of the provided values (${values.length})!`);
|
|
437
|
+
}
|
|
438
|
+
const deserializedValuesObservables = values.map(v => this.deserializeOperandValue(v));
|
|
439
|
+
const result$ = new ReplaySubject(1);
|
|
440
|
+
forkJoin(deserializedValuesObservables).pipe(defaultIfEmpty([])).subscribe(deserializedValues => {
|
|
441
|
+
this.setOperands(deserializedValues);
|
|
442
|
+
result$.next();
|
|
443
|
+
result$.complete();
|
|
444
|
+
});
|
|
445
|
+
return result$.asObservable();
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* @param value the serialized output of the [serializeOperandValue()]{@link Category#serializeOperandValue} method
|
|
449
|
+
* @returns an `Observable` that emits the deserialized value, that can be set as FormControl value and then completes
|
|
450
|
+
*
|
|
451
|
+
* This method may throw na error if the value cannot be deserialized.
|
|
452
|
+
*/
|
|
453
|
+
deserializeOperandValue(value) {
|
|
454
|
+
return of(value);
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Performs a transformation of the `FormControl` value before passing it into the selected `Operator` for query generation.
|
|
458
|
+
* It is mostly useful only for AutocompleteCategories, where the selected value of the FormControl is an object.
|
|
459
|
+
*
|
|
460
|
+
* The default implementation performs an identity transformation - returns the input.
|
|
461
|
+
* @param value the FormControlValue
|
|
462
|
+
* @returns the value used for query generation
|
|
463
|
+
*/
|
|
464
|
+
transformCategoryValue(value) {
|
|
465
|
+
return value;
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* @returns an Array containing text segments representing the content of the predicate generated by this category
|
|
469
|
+
*/
|
|
470
|
+
createFilterTextSegments() {
|
|
471
|
+
if (!this.providesPredicate) {
|
|
472
|
+
return [];
|
|
473
|
+
}
|
|
474
|
+
return [
|
|
475
|
+
{ segment: this.translationPath, bold: this.displayBold },
|
|
476
|
+
...this.createConfigurationFilterTextSegments(),
|
|
477
|
+
...this.createOperatorFilterTextSegments()
|
|
478
|
+
];
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* @returns an Array containing text segments representing the operators with operands of this category
|
|
482
|
+
*/
|
|
483
|
+
createOperatorFilterTextSegments() {
|
|
484
|
+
const result = [];
|
|
485
|
+
let operandIndex = 0;
|
|
486
|
+
for (const segment of this.selectedOperator.getOperatorNameTemplate()) {
|
|
487
|
+
if (segment === Operator.INPUT_PLACEHOLDER) {
|
|
488
|
+
result.push(this.createOperandFilterTextSegment(operandIndex));
|
|
489
|
+
operandIndex++;
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
result.push({ segment });
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
return result;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* @returns filter text segment representing the operand value at the specified index
|
|
499
|
+
*/
|
|
500
|
+
createOperandFilterTextSegment(operandIndex) {
|
|
501
|
+
let segment;
|
|
502
|
+
const operand = this._operandsFormControls[operandIndex].value;
|
|
503
|
+
switch (this.inputType) {
|
|
504
|
+
case SearchInputType.AUTOCOMPLETE:
|
|
505
|
+
segment = operand.text;
|
|
506
|
+
break;
|
|
507
|
+
case SearchInputType.DATE:
|
|
508
|
+
segment = operand.format(DATE_FORMAT_STRING);
|
|
509
|
+
break;
|
|
510
|
+
case SearchInputType.DATE_TIME:
|
|
511
|
+
segment = operand.format(DATE_TIME_FORMAT_STRING);
|
|
512
|
+
break;
|
|
513
|
+
default:
|
|
514
|
+
segment = operand;
|
|
515
|
+
break;
|
|
516
|
+
}
|
|
517
|
+
return { segment, bold: true };
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* The {@link CategoryMetadataConfiguration} key for this Category's {@link Operator}
|
|
522
|
+
*/
|
|
523
|
+
Category.OPERATOR_METADATA = 'operator';
|
|
524
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VhcmNoL21vZGVscy9jYXRlZ29yeS9jYXRlZ29yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHOUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBSzFELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUV6Rjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sT0FBZ0IsUUFBUTtJQTZDMUI7Ozs7Ozs7Ozs7T0FVRztJQUNILFlBQXlDLGdCQUErQixFQUMvQixpQkFBdUMsRUFDMUMsZUFBdUIsRUFDcEIsVUFBMkIsRUFDcEMsSUFBbUIsRUFDbkIsZ0JBQWlDO1FBTHhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZTtRQUMvQixzQkFBaUIsR0FBakIsaUJB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O0lBQ08sOEJBQThCLENBQUMsWUFBb0I7UUFDekQsSUFBSSxPQUFPLENBQUM7UUFDWixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQy9ELFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNwQixLQUFLLGVBQWUsQ0FBQyxZQUFZO2dCQUM3QixPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDdkIsTUFBTTtZQUNWLEtBQUssZUFBZSxDQUFDLElBQUk7Z0JBQ3JCLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzdDLE1BQU07WUFDVixLQUFLLGVBQWUsQ0FBQyxTQUFTO2dCQUMxQixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dCQUNsRCxNQUFNO1lBQ1Y7Z0JBQ0ksT0FBTyxHQUFHLE9BQU8sQ0FBQztnQkFDbEIsTUFBTTtTQUNiO1FBQ0QsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDakMsQ0FBQzs7QUF0bkJEOztHQUVHO0FBQ3VCLDBCQUFpQixHQUFHLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3BlcmF0b3J9IGZyb20gJy4uL29wZXJhdG9yL29wZXJhdG9yJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7UXVlcnl9IGZyb20gJy4uL3F1ZXJ5L3F1ZXJ5JztcbmltcG9ydCB7RWxlbWVudGFyeVByZWRpY2F0ZX0gZnJvbSAnLi4vcHJlZGljYXRlL2VsZW1lbnRhcnktcHJlZGljYXRlJztcbmltcG9ydCB7U2VhcmNoSW5wdXRUeXBlfSBmcm9tICcuL3NlYXJjaC1pbnB1dC10eXBlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRlZmF1bHRJZkVtcHR5LCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T3BlcmF0b3JUZW1wbGF0ZVBhcnR9IGZyb20gJy4uL29wZXJhdG9yLXRlbXBsYXRlLXBhcnQnO1xuaW1wb3J0IHtJbmNyZW1lbnRpbmdDb3VudGVyfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L2luY3JlbWVudGluZy1jb3VudGVyJztcbmltcG9ydCB7Q29uZmlndXJhdGlvbklucHV0fSBmcm9tICcuLi9jb25maWd1cmF0aW9uLWlucHV0JztcbmltcG9ydCB7Q2F0ZWdvcnlHZW5lcmF0b3JNZXRhZGF0YSwgQ2F0ZWdvcnlNZXRhZGF0YUNvbmZpZ3VyYXRpb259IGZyb20gJy4uL3BlcnNpc3RhbmNlL2dlbmVyYXRvci1tZXRhZGF0YSc7XG5pbXBvcnQge0NhdGVnb3JpZXN9IGZyb20gJy4vY2F0ZWdvcmllcyc7XG5pbXBvcnQge09wZXJhdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3Itc2VydmljZS9vcGVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7T3BlcmF0b3JzfSBmcm9tICcuLi9vcGVyYXRvci9vcGVyYXRvcnMnO1xuaW1wb3J0IHtvZlZvaWR9IGZyb20gJy4uLy4uLy4uL3V0aWxpdHkvb2Ytdm9pZCc7XG5pbXBvcnQge0ZpbHRlclRleHRTZWdtZW50fSBmcm9tICcuLi9wZXJzaXN0YW5jZS9maWx0ZXItdGV4dC1zZWdtZW50JztcbmltcG9ydCB7REFURV9GT1JNQVRfU1RSSU5HLCBEQVRFX1RJTUVfRk9STUFUX1NUUklOR30gZnJvbSAnLi4vLi4vLi4vbW9tZW50L3RpbWUtZm9ybWF0cyc7XG5cbi8qKlxuICogVGhlIHRvcCBsZXZlbCBvZiBhYnN0cmFjdGlvbiBpbiBzZWFyY2ggcXVlcnkgZ2VuZXJhdGlvbi4gUmVwcmVzZW50cyBhIHNldCBvZiBpbmRleGVkIGZpZWxkcyB0aGF0IGNhbiBiZSBzZWFyY2hlZC5cbiAqIEVuY2Fwc3VsYXRlcyB0aGUgdGhlIHN0YXRlIGFuZCBsb2dpYyBvZiB0aGUgcXVlcnkgY29uc3RydWN0aW9uIHByb2Nlc3MuXG4gKlxuICogQXMgb3Bwb3NlZCB0byB7QGxpbmsgT3BlcmF0b3J9cyBDYXRlZ29yaWVzIGFyZSBub3Qgc3RhdGVsZXNzIGFuZCBzaG91bGRuJ3QgYmUgc2hhcmVkLlxuICogQSBzaW5nbGUgQ2F0ZWdvcnkgaW5zdGFuY2UgaXMgY2FwYWJsZSBvZiBob2xkaW5nIHRoZSBzdGF0ZSBvZiBvbmUge0BsaW5rIEVkaXRhYmxlUHJlZGljYXRlfSxcbiAqIG9yIGNhbiBiZSB1c2VkIGFzIGEgYnVpbGRlciB0byBmb3JtIGFuIHVubGltaXRlZCBhbW91bnQgb2YgW0VsZW1lbnRhcnlQcmVkaWNhdGVzXXtAbGluayBFbGVtZW50YXJ5UHJlZGljYXRlfS5cbiAqXG4gKiBZb3UgY2FuIHVzZSB7QGxpbmsgQ2F0ZWdvcnlGYWN0b3J5fSB0byBnZXQgaW5zdGFuY2VzIG9mIENhdGVnb3J5IGNsYXNzZXMuXG4gKiBBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gdXNlIHRoZSBbY2xvbmUoKV17QExpbmsgQ2F0ZWdvcnkjY2xvbmV9IG1ldGhvZCB0byBkdXBsaWNhdGUgYW4gZXhpc3RpbmcgaW5zdGFuY2UuXG4gKlxuICogSWYgeW91IHdhbnQgdG8gbWFrZSB5b3VyIG93biBDYXRlZ29yeSBjbGFzcyB5b3UgaGF2ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY29uc3RydWN0b3IgdGFrZXMge0BsaW5rIE9wZXJhdG9yU2VydmljZX0gYXMgaXQncyBmaXJzdFxuICogYXJndW1lbnQgYW5kIHtAbGluayBMb2dnZXJTZXJ2aWNlfSBhcyBpdCdzIHNlY29uZCBhcmd1bWVudC4gQWx0ZXJuYXRpdmVseSB5b3UgY2FuIG1ha2UgeW91ciBvd24gaW1wbGVtZW50YXRpb24gb2YgdGhlXG4gKiB7QGxpbmsgQ2F0ZWdvcnlGYWN0b3J5fSBzbywgdGhhdCB5b3VyIHN0eWxlIG9mIGNvbnN0cnVjdG9ycyBpcyBzdXBwb3J0ZWQuXG4gKlxuICogQHR5cGVwYXJhbSBUIHR5cGUgb2Ygb2JqZWN0cyB0aGUgY2F0ZWdvcnkgZXhwZWN0cyB0byBnZW5lcmF0ZSBxdWVyaWVzIGZyb21cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENhdGVnb3J5PFQ+IHtcblxuICAgIC8qKlxuICAgICAqIFRoZSB7QGxpbmsgQ2F0ZWdvcnlNZXRhZGF0YUNvbmZpZ3VyYXRpb259IGtleSBmb3IgdGhpcyBDYXRlZ29yeSdzIHtAbGluayBPcGVyYXRvcn1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc3RhdGljIHJlYWRvbmx5IE9QRVJBVE9SX01FVEFEQVRBID0gJ29wZXJhdG9yJztcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5zIHRoZSBgRm9ybUNvbnRyb2xgIG9iamVjdCB0aGF0IGlzIHVzZWQgdG8gZHJpdmUgdGhlIG9wZXJhdG9yIHNlbGVjdGlvbi5cbiAgICAgKlxuICAgICAqIFRoZSBjYXRlZ29yeSBjYW4gc3Vic2NyaWJlIHRvIGl0IGlmIGl0IHdpc2hlcyB0byByZWFjdCB0byB0aGUgc2VsZWN0aW9uIGNoYW5nZSBieSB0aGUgdXNlci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX29wZXJhdG9yRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gICAgLyoqXG4gICAgICogU3RvcmVzIHRoZSBgRm9ybUNvbnRyb2xgIG9iamVjdHMgdGhhdCBhcmUgcHVzaGVkIGludG8gdGhlIG9ic2VydmFibGUgd2hlbiB0aGUgbnVtYmVyIG9mIG9wZXJhbmRzIGNoYW5nZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9vcGVyYW5kc0Zvcm1Db250cm9sczogQXJyYXk8Rm9ybUNvbnRyb2w+O1xuXG4gICAgLyoqXG4gICAgICogQ29udGFpbnMgdGhlIGBGb3JtQ29udHJvbGAgb2JqZWN0cyB0aGF0IGNhbiBiZSB1c2VkIHRvIGlucHV0IHNlYXJjaCBhcmd1bWVudHMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9vcGVyYW5kc0Zvcm1Db250cm9scyQ6IFJlcGxheVN1YmplY3Q8QXJyYXk8Rm9ybUNvbnRyb2w+IHwgdW5kZWZpbmVkPjtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5zIHRoZSBvcGVyYXRvciB0ZW1wbGF0ZSBwYXJ0cyB0aGF0IG1ha2UgdXAgdGhlIG9wZXJhbmRzIEdVSS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX29wZXJhdG9yVGVtcGxhdGUkOiBCZWhhdmlvclN1YmplY3Q8QXJyYXk8T3BlcmF0b3JUZW1wbGF0ZVBhcnQ+IHwgdW5kZWZpbmVkPjtcblxuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBJRHMgZm9yIHRlbXBsYXRlIHBhcnRzIHN1cHBsaWVkIHRvIG5nIGZvci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3RyYWNrQnlJZEdlbmVyYXRvcjogSW5jcmVtZW50aW5nQ291bnRlcjtcblxuICAgIC8qKlxuICAgICAqIEVtaXQgYSBuZXcgYFByZWRpY2F0ZWAgaWYgdGhlIGBDYXRlZ29yeWAgaXMgaW4gYSBzdGF0ZSB0aGF0IGl0IGNhbiBiZSBjcmVhdGVkLlxuICAgICAqIEVtaXRzIGB1bmRlZmluZWRgIGlmIHRoZSBgQ2F0ZWdvcnlgIGlzIG5vdCBpbiBzdWNoIHN0YXRlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfZ2VuZXJhdGVkUHJlZGljYXRlJDogQmVoYXZpb3JTdWJqZWN0PEVsZW1lbnRhcnlQcmVkaWNhdGUgfCB1bmRlZmluZWQ+O1xuXG4gICAgLyoqXG4gICAgICogVXRpbGl0eSB2YXJpYWJsZSB0aGF0IGNhbiBiZSB1c2VkIGFzIHZhbHVlIGZvciB0aGUgW2NvbmZpZ3VyYXRpb25JbnB1dHMkXXtAbGluayBDYXRlZ29yeSNjb25maWd1cmF0aW9uSW5wdXRzJH0gYE9ic2VydmFibGVgLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfT1BFUkFUT1JfSU5QVVQ6IENvbmZpZ3VyYXRpb25JbnB1dDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb25zdHJ1Y3RvciBmaWxscyB0aGUgdmFsdWVzIG9mIGFsbCBwcm90ZWN0ZWQgZmllbGRzIGFuZCB0aGVuIGNhbGxzIHRoZSBbaW5pdGlhbGl6ZUNhdGVnb3J5KClde0BsaW5rIENhdGVnb3J5I2luaXRpYWxpemVDYXRlZ29yeX1cbiAgICAgKiBtZXRob2QuIElmIHlvdSB3YW50IHRvIG92ZXJyaWRlIHRoZSBjYXRlZ29yeSBjcmVhdGlvbiBiZWhhdmlvciBvdmVycmlkZSB0aGF0IG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBfZWxhc3RpY0tleXdvcmRzIEVsYXN0aWNzZWFyY2gga2V5d29yZHMgdGhhdCBzaG91bGQgYmUgcXVlcmllZCBieSBxdWVyaWVzIGdlbmVyYXRlZCB3aXRoIHRoaXMgY2F0ZWdvcnlcbiAgICAgKiBAcGFyYW0gX2FsbG93ZWRPcGVyYXRvcnMgT3BlcmF0b3JzIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGVkIHF1ZXJpZXMgb24gdGhlIGFib3ZlIGtleXdvcmRzXG4gICAgICogQHBhcmFtIHRyYW5zbGF0aW9uUGF0aCBwYXRoIHRvIHRoZSB0cmFuc2xhdGlvbiBzdHJpbmdcbiAgICAgKiBAcGFyYW0gX2lucHV0VHlwZSBpbnB1dCBmaWVsZCB0eXBlIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZW50ZXIgb3BlcmF0b3IgYXJndW1lbnRzIGZvciB0aGlzIGNhdGVnb3J5XG4gICAgICogQHBhcmFtIF9sb2cgdXNlZCB0byByZWNvcmQgaW5mb3JtYXRpb24gYWJvdXQgaW5jb3JyZWN0IHVzZSBvZiB0aGlzIGNsYXNzXG4gICAgICogQHBhcmFtIF9vcGVyYXRvclNlcnZpY2UgdXNlZCB0byByZXNvbHZlIHNlcmlhbGl6ZWQgb3BlcmF0b3JzIGR1cmluZyBkZXNlcmlhbGl6YXRpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IF9lbGFzdGljS2V5d29yZHM6IEFycmF5PHN0cmluZz4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCByZWFkb25seSBfYWxsb3dlZE9wZXJhdG9yczogQXJyYXk8T3BlcmF0b3I8YW55Pj4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyByZWFkb25seSB0cmFuc2xhdGlvblBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9pbnB1dFR5cGU6IFNlYXJjaElucHV0VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfb3BlcmF0b3JTZXJ2aWNlOiBPcGVyYXRvclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5fT1BFUkFUT1JfSU5QVVQgPSBuZXcgQ29uZmlndXJhdGlvbklucHV0KFxuICAgICAgICAgICAgU2VhcmNoSW5wdXRUeXBlLk9QRVJBVE9SLFxuICAgICAgICAgICAgJ3NlYXJjaC5vcGVyYXRvci5uYW1lJyxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgbmV3IE1hcDxzdHJpbmcsIEFycmF5PHVua25vd24+PigpLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29uZmlndXJhdGlvbklucHV0IG9mIHR5cGUgT1BFUkFUT1IgaXMgYSBwbGFjZWhvbGRlciEnXG4gICAgICAgICAgICAgICAgICAgICsgJyBVc2Ugb3BlcmF0b3IgcmVsYXRlZCBtZXRob2RzIGZyb20gdGhlIENhdGVnb3J5IGNsYXNzIGluc3RlYWQuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fb3BlcmF0b3JGb3JtQ29udHJvbCA9IHRoaXMuX09QRVJBVE9SX0lOUFVULmZvcm1Db250cm9sO1xuICAgICAgICB0aGlzLl9vcGVyYW5kc0Zvcm1Db250cm9scyQgPSBuZXcgUmVwbGF5U3ViamVjdDxBcnJheTxGb3JtQ29udHJvbD4gfCB1bmRlZmluZWQ+KDEpO1xuICAgICAgICB0aGlzLl9vcGVyYXRvclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8T3BlcmF0b3JUZW1wbGF0ZVBhcnQ+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLl9vcGVyYW5kc0Zvcm1Db250cm9scyA9IFtdO1xuICAgICAgICB0aGlzLl90cmFja0J5SWRHZW5lcmF0b3IgPSBuZXcgSW5jcmVtZW50aW5nQ291bnRlcigpO1xuICAgICAgICB0aGlzLl9nZW5lcmF0ZWRQcmVkaWNhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGVtZW50YXJ5UHJlZGljYXRlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVDYXRlZ29yeSgpO1xuXG4gICAgICAgIHRoaXMub3BlcmFuZHNGb3JtQ29udHJvbHMkLnBpcGUoXG4gICAgICAgICAgICBtYXAoZm9ybUNvbnRyb2xzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm1Db250cm9scykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gdGhpcy5zZWxlY3RlZE9wZXJhdG9yLmdldE9wZXJhdG9yTmFtZVRlbXBsYXRlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmNzID0gWy4uLmZvcm1Db250cm9sc107XG4gICAgICAgICAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFydHMubWFwKHBhcnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IG5ldyBPcGVyYXRvclRlbXBsYXRlUGFydChwYXJ0ID8gcGFydCA6IGZjcy5zaGlmdCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJhY2tCeUlkR2VuZXJhdG9yLm5leHQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnQgPyB1bmRlZmluZWQgOiBmaXJzdCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApLnN1YnNjcmliZSh0ZW1wbGF0ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9vcGVyYXRvclRlbXBsYXRlJC5uZXh0KHRlbXBsYXRlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYW5zIHVwIHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgb2JqZWN0IGJlZm9yZSBpdHMgZGVzdHJ1Y3Rpb24uXG4gICAgICpcbiAgICAgKiBUaGUgZGV2ZWxvcGVyIG11c3QgY2FsbCB0aGlzIG1ldGhvZCBhdCBhbiBhcHByb3ByaWF0ZSBtb21lbnQsIGFzIHRoaXMgb2JqZWN0IGNhbm5vdCBob29rIGludG8gdGhlIEFuZ3VsYXIgbGlmZWN5Y2xlLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcGVyYW5kc0Zvcm1Db250cm9scyQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fb3BlcmF0b3JUZW1wbGF0ZSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZ2VuZXJhdGVkUHJlZGljYXRlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gaW5wdXQgcmVwcmVzZW50IHRoZSBzdGVwcyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gY29uZmlndXJlIHRoZSBjYXRlZ29yeS5cbiAgICAgKiBUaGUgbGFzdCBpbnB1dCBtdXN0IGFsd2F5cyBiZSBvZiB0eXBlIFtPUEVSQVRPUl17QGxpbmsgU2VhcmNoSW5wdXRUeXBlI09QRVJBVE9SfS5cbiAgICAgKiBTZWxlY3RpbmcgdGhlIG9wZXJhdG9yIGNvbXBsZXRlcyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgY2F0ZWdvcnkgYW5kIHRoZSBhcmd1bWVudHMgaW5wdXRzXG4gICAgICogKGJhc2VkIG9uIGNhdGVnb3J5IGlucHV0IHR5cGUgYW5kIG9wZXJhdG9yIGFyaXR5KSBhcmUgZGlzcGxheWVkLlxuICAgICAqXG4gICAgICogQmV3YXJlIHRoYXQgd2hpbGUgbW9zdCBjYXRlZ29yaWVzIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUgY29uc3RhbnQgaXQgbXVzdCBub3QgYWx3YXlzIGJlIHRoZSBjYXNlLlxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIHJlcXVpcmVkIGlucHV0IHR5cGUgZm9yIGNvbmZpZ3VyYXRpb24gc3RlcHMgb2YgdGhpcyBjYXRlZ29yeVxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgY29uZmlndXJhdGlvbklucHV0cyQoKTogT2JzZXJ2YWJsZTxBcnJheTxDb25maWd1cmF0aW9uSW5wdXQ+PjtcblxuICAgIC8qKlxuICAgICAqIElmIHlvdSB1c2UgdGhlIGBDYXRlZ29yeWAgY2xhc3MgYXMgYSBzb3J0IG9mIFByZWRpY2F0ZUJ1aWxkZXIsIHRoZW4geW91IHdhbnQgdG8gdXNlIHRoZVxuICAgICAqIFtnZW5lcmF0ZVByZWRpY2F0ZSgpXXtAbGluayBDYXRlZ29yeSNnZW5lcmF0ZVByZWRpY2F0ZX0gbWV0aG9kIGluc3RlYWQuXG4gICAgICpcbiAgICAgKiBUaGlzIHN0cmVhbSBwdWJsaXNoZXMgZWl0aGVyIGEgbmV3IGBQcmVkaWNhdGVgIG9iamVjdCBvciBgdW5kZWZpbmVkYCBiYXNlZCBvbiBjaGFuZ2VzIHRvIHRoZSBgRm9ybUNvbnRyb2xzYCB0aGF0IGFyZVxuICAgICAqIG1hbmFnZWQgYnkgdGhpcyBjbGFzcy4gSWYgKGJhc2VkIG9uIHVzZXIgaW5wdXQpIHRoZSBgQ2F0ZWdvcnlgIHJlYWNoZXMgYSBzdGF0ZSB3aGVuIGNvbnN0cnVjdGlvbiBvZiBhIGBQcmVkaWNhdGVgIGlzIHBvc3NpYmxlXG4gICAgICogaXQgd2lsbCBlbWl0IHRoaXMgYFByZWRpY2F0ZWAuIElmIGl0IHJlYWNoZXMgYSBzdGF0ZSB3aGVuIHRoZSBgUHJlZGljYXRlYCBjYW4gbm90IGxvbmdlciBiZSBjcmVhdGVkIGB1bmRlZmluZWRgIGlzIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHVibGljIGdldCBnZW5lcmF0ZWRQcmVkaWNhdGUkKCk6IE9ic2VydmFibGU8RWxlbWVudGFyeVByZWRpY2F0ZSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2VuZXJhdGVkUHJlZGljYXRlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB7QGxpbmsgUHJlZGljYXRlfSBjdXJyZW50bHkgZ2VuZXJhdGVkIGJ5IHRoZSBDYXRlZ29yeS5cbiAgICAgKlxuICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBbZ2VuZXJhdGVkUHJlZGljYXRlJF17QGxpbmsgQ2F0ZWdvcnkjZ2VuZXJhdGVkUHJlZGljYXRlJH0uXG4gICAgICovXG4gICAgcHVibGljIGdldCBnZW5lcmF0ZWRQcmVkaWNhdGUoKTogRWxlbWVudGFyeVByZWRpY2F0ZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZW5lcmF0ZWRQcmVkaWNhdGUkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQmV3YXJlIHRoYXQgd2hpbGUgbW9zdCBjYXRlZ29yaWVzIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUgY29uc3RhbnQgaXQgaXMgbm90IGEgcmVxdWlyZW1lbnQuXG4gICAgICogQW4gZXhhbXBsZSBmb3Igc3VjaCBiZWhhdmlvciBpcyB0aGUge0BsaW5rIENhc2VEYXRhc2V0fSBjYXRlZ29yeSwgd2hlcmUgdGhlIGFyZ3VtZW50IGlucHV0IHR5cGUgZGVwZW5kc1xuICAgICAqIG9uIHRoZSBzZWxlY3RlZCBkYXRhIGZpZWxkIHR5cGUuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgcmVxdWlyZWQgaW5wdXQgdHlwZSBmb3IgYXJndW1lbnRzIGZvciB0aGlzIGNhdGVnb3J5XG4gICAgICovXG4gICAgcHVibGljIGdldCBpbnB1dFR5cGUoKTogU2VhcmNoSW5wdXRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0VHlwZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgc2V0IG9mIE9wZXJhdG9ycyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhpcyBjYXRlZ29yeS4gSXRlcmF0aW9uIG9yZGVyIGRldGVybWluZXMgdGhlIGRpc3BsYXkgb3JkZXIuXG4gICAgICovXG4gICAgcHVibGljIGdldCBhbGxvd2VkT3BlcmF0b3JzKCk6IEFycmF5PE9wZXJhdG9yPGFueT4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuX2FsbG93ZWRPcGVyYXRvcnMpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgb3BlcmF0b3Igb3IgYHVuZGVmaW5lZGAgaWYgbm8gb3BlcmF0b3IgaXMgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgcHVibGljIGdldCBzZWxlY3RlZE9wZXJhdG9yKCk6IE9wZXJhdG9yPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3JGb3JtQ29udHJvbC52YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBhbiBhcnJheSBvZiBgRm9ybUNvbnRyb2xgIG9iamVjdHMgdGhhdCBjb250YWlucyBhcyBtYW55IGNvbnRyb2xzIGFzIGlzIHRoZSBhcml0eSBvZiB0aGUgc2VsZWN0ZWQgb3BlcmF0b3IuXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCBtdWx0aXBsZSB0aW1lcyB3aWxsIHJldHVybiB0aGUgc2FtZSBgRm9ybUNvbnRyb2xgIGluc3RhbmNlcy5cbiAgICAgKiBXaGVuIG5vIG9wZXJhdG9yIGlzIHNlbGVjdGVkIGB1bmRlZmluZWRgIGlzIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHVibGljIGdldCBvcGVyYW5kc0Zvcm1Db250cm9scyQoKTogT2JzZXJ2YWJsZTxBcnJheTxGb3JtQ29udHJvbD4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhbmRzRm9ybUNvbnRyb2xzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIG5ldyB2YWx1ZSBpcyBlbWl0dGVkIHdoZW5ldmVyIHRoZSBzZWxlY3RlZCBvcGVyYXRvciBjaGFuZ2VzLiBgdW5kZWZpbmVkYCBpcyBlbWl0dGVkIGlmIG5vIG9wZXJhdG9yIGlzIHNlbGVjdGVkLlxuICAgICAqXG4gICAgICogQHJldHVybnMgW29wZXJhdG9ycyB0ZW1wbGF0ZV17QGxpbmsgT3BlcmF0b3IjZ2V0T3BlcmF0b3JOYW1lVGVtcGxhdGV9IGluIHByb2Nlc3NlZCBmb3JtIGZpdCBmb3IgR1VJIHJlbmRlcmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgb3BlcmF0b3JUZW1wbGF0ZSQoKTogT2JzZXJ2YWJsZTxBcnJheTxPcGVyYXRvclRlbXBsYXRlUGFydD4gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yVGVtcGxhdGUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIGNhdGVnb3J5IGlzIGZ1bGx5IGNvbmZpZ3VyZWQgYW5kIHJlcHJlc2VudHMgYSB2YWxpZCBwcmVkaWNhdGUgb3Igbm90XG4gICAgICovXG4gICAgcHVibGljIGdldCBwcm92aWRlc1ByZWRpY2F0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fZ2VuZXJhdGVkUHJlZGljYXRlJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHRoZSBzZXQgb2YgRWxhc3RpY3NlYXJjaCBrZXl3b3JkcyB0aGF0IHNob3VsZCBiZSBxdWVyaWVkIGJ5IHF1ZXJpZXMgZ2VuZXJhdGVkIHdpdGggdGhpcyBjYXRlZ29yeS5cbiAgICAgKiBUaGUgbWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGlmIHRoZSBrZXl3b3JkcyBhcmUgbm90IHN0YXRpYyBhbmQgY2hhbmdlIGJhc2VkIG9uIHNvbWUgYWRkaXRpb25hbCBzZWxlY3Rpb24gKGVnLiBEYXRhIGZpZWxkcylcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGVsYXN0aWNLZXl3b3JkcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuX2VsYXN0aWNLZXl3b3Jkcyk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgdGhlIGFyaXR5IG9mIHRoZSBzZWxlY3RlZCBvcGVyYXRvci4gVGhyb3dzIGFuIGVycm9yIGlmIG5vIG9wZXJhdG9yIGlzIHNlbGVjdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgc2VsZWN0ZWRPcGVyYXRvckFyaXR5KCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5pc09wZXJhdG9yU2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBbiBvcGVyYXRvciBtdXMgYmUgc2VsZWN0ZWQgYmVmb3JlIGl0cyBhcml0eSBjYW4gYmUgcmVzb2x2ZWQhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcGVyYXRvci5udW1iZXJPZk9wZXJhbmRzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZXMgdGhlIHN0YXRlIG9mIHRoZSBDYXRlZ29yeS4gQ2F0ZWdvcnkgY2FuIGNyZWF0ZSBxdWVyaWVzIHdoZW4gYW4ge0BsaW5rIE9wZXJhdG9yfSBpcyBzZWxlY3RlZC5cbiAgICAgKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIENhdGVnb3J5IGNsYXNzIGFzIHByZWRpY2F0ZSBidWlsZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wZXJhdG9ySW5kZXggaW5kZXggaW4gdGhlIFthbGxvd2VkT3BlcmF0b3JzXXtAbGluayBDYXRlZ29yeSNhbGxvd2VkT3BlcmF0b3JzfSBhcnJheSBvZiB0aGUge0BsaW5rIE9wZXJhdG9yfSB0aGF0XG4gICAgICogc2hvdWxkIGJlIHNlbGVjdGVkXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdE9wZXJhdG9yKG9wZXJhdG9ySW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBvcGVyYXRvcnMgPSB0aGlzLmFsbG93ZWRPcGVyYXRvcnM7XG4gICAgICAgIGlmIChvcGVyYXRvckluZGV4IDwgMCB8fCBvcGVyYXRvckluZGV4ID49IG9wZXJhdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy53YXJuKGBUaGUgcHJvdmlkZWQgJ29wZXJhdG9ySW5kZXgnIGlzIG91dCBvZiByYW5nZS5gKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9vcGVyYXRvckZvcm1Db250cm9sLnNldFZhbHVlKG9wZXJhdG9yc1tvcGVyYXRvckluZGV4XSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgc3RhdGUgb2YgdGhlIENhdGVnb3J5IGFuZCBnZW5lcmF0ZXMgYSBxdWVyeSBpZiBhbGwgbmVjZXNzYXJ5IG9wZXJhbmRzIHdlcmUgc2V0LlxuICAgICAqXG4gICAgICogSWYgeW91IGFyZSB1c2luZyB0aGUgY2F0ZWdvcnkgYXMgYSBidWlsZGVyLiBDb25zaWRlciB1c2luZyB0aGUgW2dlbmVyYXRlUHJlZGljYXRlKClde0BsaW5rIENhdGVnb3J5I2dlbmVyYXRlUHJlZGljYXRlfVxuICAgICAqIG1ldGhvZCBpbnN0ZWFkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJJbnB1dCB2YWx1ZXMgZW50ZXJlZCBieSB0aGUgdXNlci4gVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgc2hvdWxkIG1hdGNoIHRoZVxuICAgICAqIFthcml0eV17QGxpbmsgT3BlcmF0b3IjX251bWJlck9mT3BlcmFuZHN9IG9mIHRoZSBzZWxlY3RlZCBPcGVyYXRvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0T3BlcmFuZHModXNlcklucHV0OiBBcnJheTxUPik6IHZvaWQge1xuICAgICAgICBjb25zdCByYW5nZSA9IE1hdGgubWluKHVzZXJJbnB1dC5sZW5ndGgsIHRoaXMuX29wZXJhbmRzRm9ybUNvbnRyb2xzLmxlbmd0aCk7XG4gICAgICAgIGlmIChyYW5nZSA8IHVzZXJJbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy53YXJuKGAke3VzZXJJbnB1dC5sZW5ndGh9IG9wZXJhbmRzIGFyZSBiZWluZyBzZXQsIGJ1dCBvbmx5ICR7cmFuZ2V9IGlucHV0cyBhcmUgYXZhaWxhYmxlIWBcbiAgICAgICAgICAgICAgICArICcgRXh0cmEgb3BlcmFuZHMgd2lsbCBiZSBpZ25vcmVkLicpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmFuZ2U7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5fb3BlcmFuZHNGb3JtQ29udHJvbHNbaV0uc2V0VmFsdWUodXNlcklucHV0W2ldKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmFuZ2UgIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmFuZFZhbHVlQ2hhbmdlcyhyYW5nZSAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXRzIHRoZSBzdGF0ZSBvZiB0aGUgQ2F0ZWdvcnksIGRlc2VsZWN0aW5nIGFueSBzZWxlY3RlZCBjYXRlZ29yeSBhbmQgcmVtb3Zpbmcgb3RoZXIgc3RhdGVcbiAgICAgKiBpbmZvcm1hdGlvbiBpZiB0aGUgQ2F0ZWdvcnkgZGVmaW5lcyB0aGVtLlxuICAgICAqXG4gICAgICogVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgdG8gcmVzZXQgdGhlIHN0YXRlIG9mIHRoZSBjYXRlZ29yeSBhZnRlciBlYWNoIHByZWRpY2F0ZSBjb25zdHJ1Y3RlZCxcbiAgICAgKiBlZmZlY3RpdmVseSB0dXJuaW5nIHRoZSBjYXRlZ29yeSBpbnN0YW5jZSBpbnRvIGEgcHJlZGljYXRlIGJ1aWxkZXIuXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyT3BlcmF0b3JTZWxlY3Rpb24oKTtcbiAgICAgICAgdGhpcy5fb3BlcmFuZHNGb3JtQ29udHJvbHMuZm9yRWFjaChmYyA9PiB7XG4gICAgICAgICAgICBmYy5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxscyB0aGUgW2NyZWF0ZVF1ZXJ5XXtAbGluayBPcGVyYXRvciNjcmVhdGVRdWVyeX0gbWV0aG9kIG9uIHRoZSBzZWxlY3RlZCBPcGVyYXRvci5cbiAgICAgKlxuICAgICAqIFRocm93cyBhbiBFcnJvciBpZiBubyBPcGVyYXRvciBpcyBzZWxlY3RlZC5cbiAgICAgKlxuICAgICAqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIGlmIHRoZSBxdWVyeSBzaG91bGQgYmUgZ2VuZXJhdGVkIGluIHNvbWUgb3RoZXIgd2F5LlxuICAgICAqIEBwYXJhbSB1c2VySW5wdXQgdmFsdWVzIGVudGVyZWQgYnkgdGhlIHVzZXIuIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHNob3VsZCBtYXRjaCB0aGVcbiAgICAgKiBbYXJpdHlde0BsaW5rIE9wZXJhdG9yI19udW1iZXJPZk9wZXJhbmRzfSBvZiB0aGUgc2VsZWN0ZWQgT3BlcmF0b3IuXG4gICAgICogQHJldHVybnMgdGhlIFF1ZXJ5IGdlbmVyYXRlZCBieSB0aGUgc2VsZWN0ZWQgT3BlcmF0b3JcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVRdWVyeSh1c2VySW5wdXQ6IEFycmF5PFQ+KTogUXVlcnkge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVyYXRvclNlbGVjdGVkKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2F0ZWdvcnkgY2Fubm90IGdlbmVyYXRlIGEgUXVlcnkgaWYgbm8gT3BlcmF0b3IgaXMgc2VsZWN0ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3JGb3JtQ29udHJvbC52YWx1ZS5jcmVhdGVRdWVyeSh0aGlzLl9lbGFzdGljS2V5d29yZHMsIHVzZXJJbnB1dCBhcyB1bmtub3duIGFzIEFycmF5PHN0cmluZz4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxzIHRoZSBbZ2VuZXJhdGVRdWVyeV17QGxpbmsgQ2F0ZWdvcnkjZ2VuZXJhdGVRdWVyeX0gbWV0aG9kIGFuZCBjcmVhdGVzIGFuIHtAbGluayBFbGVtZW50YXJ5UHJlZGljYXRlfSB3aXRoIHRoZSByZXN1bHQuXG4gICAgICogQHBhcmFtIHVzZXJJbnB1dCB2YWx1ZXMgZW50ZXJlZCBieSB0aGUgdXNlci4gVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgc2hvdWxkIG1hdGNoIHRoZVxuICAgICAqIFthcml0eV17QGxpbmsgT3BlcmF0b3IjX251bWJlck9mT3BlcmFuZHN9IG9mIHRoZSBzZWxlY3RlZCBPcGVyYXRvci5cbiAgICAgKiBAcmV0dXJucyBQcmVkaWNhdGUgd2l0aCB7QGxpbmsgUXVlcnl9IGdlbmVyYXRlZCBieSB0aGlzIG9iamVjdCdzIFtnZW5lcmF0ZVF1ZXJ5XXtAbGluayBDYXRlZ29yeSNnZW5lcmF0ZVF1ZXJ5fSBtZXRob2RcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2VuZXJhdGVQcmVkaWNhdGUodXNlcklucHV0OiBBcnJheTxUPik6IEVsZW1lbnRhcnlQcmVkaWNhdGUge1xuICAgICAgICByZXR1cm4gbmV3IEVsZW1lbnRhcnlQcmVkaWNhdGUodGhpcy5nZW5lcmF0ZVF1ZXJ5KHVzZXJJbnB1dCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgdGhlIGRlZmF1bHQgb3BlcmF0b3IgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgcXVlcnkgZ2VuZXJhdGlvbiwgd2hlbiBubyBPcGVyYXRvciBzZWxlY3Rpb24gaXMgcHJvdmlkZWQgdG8gdGhlIHVzZXIuXG4gICAgICpcbiAgICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBzZWxlY3RzIHRoZSBmaXJzdCBvcGVyYXRvciBpbiB0aGUgW19hbGxvd2VkT3BlcmF0b3JzXXtAbGluayBDYXRlZ29yeSNhbGxvd2VkT3BlcmF0b3JzfSBhcnJheS5cbiAgICAgKlxuICAgICAqIFNlZSBbc2VsZWN0T3BlcmF0b3IoKV17QGxpbmsgQ2F0ZWdvcnkjc2VsZWN0T3BlcmF0b3J9IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3REZWZhdWx0T3BlcmF0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0T3BlcmF0b3IoMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgdGhlIHRyYW5zbGF0aW9uIHN0cmluZyBwYXRoIGZvciB0aGUgdGV4dCB0aGF0IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0IHBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBpbnB1dFBsYWNlaG9sZGVyKCk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIGNhdGVnb3J5IHRleHQgc2hvdWxkIGJlIHJlbmRlcmVkIHdpdGggYm9sZCB0ZXh0IHdoZW4gc2VsZWN0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IGRpc3BsYXlCb2xkKCk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB3aGV0aGVyIGFuIG9wZXJhdG9yIGlzIGN1cnJlbnRseSBzZWxlY3RlZCBvciBub3QuXG4gICAgICovXG4gICAgcHVibGljIGlzT3BlcmF0b3JTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5fb3BlcmF0b3JGb3JtQ29udHJvbC52YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXNlbGVjdHMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBvcGVyYXRvciAoaWYgYW55KVxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhck9wZXJhdG9yU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcGVyYXRvckZvcm1Db250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGR1cGxpY2F0ZSBvZiB0aGUgY3VycmVudCBjYXRlZ29yeSBvYmplY3QuIE5vdGUgdGhhdCBhIGR1cGxpY2F0ZSBpcyBOT1QgYSBjbG9uZS5cbiAgICAgKiBUaGUgc3RhdGUgb2YgdGhlIHJldHVybmVkIGNhdGVnb3J5IGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgc3RhdGUgb2YgdGhpcyBjYXRlZ29yeS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGEgY2F0ZWdvcnkgaW5zdGFuY2Ugb2YgdGhlIHNhbWUgdHlwZSBhcyB0aGlzIGNhdGVnb3J5IGluIGl0cyBpbml0aWFsIHN0YXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBkdXBsaWNhdGUoKTogQ2F0ZWdvcnk8VD47XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZvciB0aGUgc2VyaWFsaXNhdGlvbiBvZiB0aGlzIGNhdGVnb3J5J3Mgc3RhdGUuXG4gICAgICpcbiAgICAgKiBOb3QgZXZlcnkgc3RhdGUgbXVzdCBiZSBwcmVzZXJ2YWJsZS4gVGhlIGRlZmF1bHQgbGlicmFyeSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBvbmx5IHRoZSBwcmVzZXJ2YXRpb24gb2YgdGhlIGZpbmFsIHN0YXRlIHdoZW4gdGhlXG4gICAgICogQ2F0ZWdvcnkgaXMgZ2VuZXJhdGluZyBhIHByZWRpY2F0ZSBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3IgdGhlIHJlY29uc3RydWN0aW9uIG9mIHRoaXMgY2F0ZWdvcnkncyBzdGF0ZSxcbiAgICAgKiBiYXJyaW5nIGluZm9ybWF0aW9uIGFib3V0IGFsbG93ZWQgbmV0cy4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgY2F0ZWdvcnkgaXMgbm90IGluIGEgc3RhdGUgdGhhdCBnZW5lcmF0ZXMgYSBwcmVkaWNhdGUuXG4gICAgICogU2VlIFtwcm92aWRlc1ByZWRpY2F0ZSgpXXtAbGluayBDYXRlZ29yeSNwcm92aWRlc1ByZWRpY2F0ZX0uXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZU1ldGFkYXRhKCk6IENhdGVnb3J5R2VuZXJhdG9yTWV0YWRhdGEgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXRoaXMucHJvdmlkZXNQcmVkaWNhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiB0aGlzLnNlcmlhbGl6ZUNsYXNzKCksXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uOiB0aGlzLmNyZWF0ZU1ldGFkYXRhQ29uZmlndXJhdGlvbigpLFxuICAgICAgICAgICAgdmFsdWVzOiB0aGlzLmNyZWF0ZU1ldGFkYXRhVmFsdWVzKClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXN0b3JlcyB0aGUgc2F2ZWQgc3RhdGUgY29udGFpbmVkIGluIHRoZSBwcm92aWRlZCBtZXRhZGF0YS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZXRhZGF0YSB0aGUgbWV0YWRhdGEgY3JlYXRlZCBieSBjYWxsaW5nIHRoZSBbY3JlYXRlTWV0YWRhdGEoKV17QGxpbmsgQ2F0ZWdvcnkjY3JlYXRlTWV0YWRhdGF9IG1ldGhvZFxuICAgICAqXG4gICAgICogQHJldHVybnMgYW4gT2JzZXJ2YWJsZS4gV2hlbiB0aGUgT2JzZXJ2YWJsZSBlbWl0cyB0aGUgY2F0ZWdvcnkgaGFzIGZpbmlzaGVkIHJlc3RvcmluZyBpdHMgc3RhdGUuXG4gICAgICovXG4gICAgcHVibGljIGxvYWRGcm9tTWV0YWRhdGEobWV0YWRhdGE6IENhdGVnb3J5R2VuZXJhdG9yTWV0YWRhdGEpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0JCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuICAgICAgICB0aGlzLmxvYWRDb25maWd1cmF0aW9uRnJvbU1ldGFkYXRhKG1ldGFkYXRhLmNvbmZpZ3VyYXRpb24pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRWYWx1ZXNGcm9tTWV0YWRhdGEobWV0YWRhdGEudmFsdWVzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdCQubmV4dCgpO1xuICAgICAgICAgICAgICAgIHJlc3VsdCQuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGUgaW4gdGhlIGNvbnN0cnVjdG9yLiBBcGFydCBmcm9tIGNhbGxpbmcgdGhpcyBtZXRob2QsIHRoZSBjb25zdHJ1Y3RvciBvbmx5IGNyZWF0ZXMgaW5zdGFuY2VzIHRvIGZpbGwgdGhlIHByb3RlY3RlZFxuICAgICAqIGZpZWxkcyBvZiB0aGlzIGNsYXNzLlxuICAgICAqXG4gICAgICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gbWFuYWdlcyBjcmVhdGlvbiBvZiBvcGVyYW5kIGBGb3JtQ29udHJvbGAgaW5zdGFuY2VzIGFuZCBtYW5hZ2VzIHN1YnNjcmlwdGlvbnMgdG8gdGhlbS5cbiAgICAgKlxuICAgICAqIFlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gY2hhbmdlIHRoZSBpbml0aWFsaXphdGlvbiBvZiB5b3VyIGNhdGVnb3J5IHdpdGhvdXQgaGF2aW5nIHRvIHJld3JpdGUgdGhlIGJhc2VcbiAgICAgKiBjb25zdHJ1Y3RvciBmcm9tIHNjcmF0Y2guXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVDYXRlZ29yeSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3BlcmF0b3JGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChuZXdPcGVyYXRvcjogT3BlcmF0b3I8YW55PikgPT4ge1xuICAgICAgICAgICAgdGhpcy5fb3BlcmFuZHNGb3JtQ29udHJvbHMuZm9yRWFjaChmYyA9PiB7XG4gICAgICAgICAgICAgICAgZmMuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoIW5ld09wZXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgLy8gdW5kZWZpbmVkIGlzIG5leHQtZWQgaW50byB0aGUgc3RyZWFtLiBNYXJrZWQgYXMgY29kZSBzbWVsbCBieSBzb25hciB3aGVuIGV4cGxpY2l0bHkgc3RhdGVkXG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmFuZHNGb3JtQ29udHJvbHMkLm5leHQoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fb3BlcmFuZHNGb3JtQ29udHJvbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlZFByZWRpY2F0ZSQubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXdPcGVyYXRvci5udW1iZXJPZk9wZXJhbmRzID4gdGhpcy5fb3BlcmFuZHNGb3JtQ29udHJvbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuX29wZXJhbmRzRm9ybUNvbnRyb2xzLmxlbmd0aCA8IG5ld09wZXJhdG9yLm51bWJlck9mT3BlcmFuZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmMgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudExlbmd0aCA9IHRoaXMuX29wZXJhbmRzRm9ybUNvbnRyb2xzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgZmMudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDYwMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZXJhbmRWYWx1ZUNoYW5nZXMoY3VycmVudExlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYW5kc0Zvcm1Db250cm9scy5wdXNoKGZjKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX29wZXJhbmRzRm9ybUNvbnRyb2xzJC5uZXh0KHRoaXMuX29wZXJhbmRzRm9ybUNvbnRyb2xzLnNsaWNlKDAsIG5ld09wZXJhdG9yLm51bWJlck9mT3BlcmFuZHMpKTtcblxuICAgICAgICAgICAgaWYgKG5ld09wZXJhdG9yLm51bWJlck9mT3BlcmFuZHMgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZWRQcmVkaWNhdGUkLm5leHQodGhpcy5nZW5lcmF0ZVByZWRpY2F0ZShbXSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWV0aG9kIHRoYXQgaXMgKGJ5IGRlZmF1bHQpIGNhbGxlZCB3aGVuZXZlciBhbiBvcGVyYW5kIGBGb3JtQ29udHJvbGAgY2hhbmdlcyBpdHMgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3BlcmFuZEluZGV4IHRoZSBpbmRleCBvZiB0aGUgb3BlcmFuZCB0aGF0IGNoYW5nZWQgaXRzIHZhbHVlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG9wZXJhbmRWYWx1ZUNoYW5nZXMob3BlcmFuZEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlcmF0b3JTZWxlY3RlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZWRQcmVkaWNhdGUkLm5leHQodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3BlcmFuZEluZGV4ID49IHRoaXMuc2VsZWN0ZWRPcGVyYXRvckFyaXR5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VsZWN0ZWRPcGVyYXRvckFyaXR5OyBpKyspIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc09wZXJhbmRWYWx1ZVNlbGVjdGVkKHRoaXMuX29wZXJhbmRzRm9ybUNvbnRyb2xzW2ldLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9nZW5lcmF0ZWRQcmVkaWNhdGUkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVkUHJlZGljYXRlJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2dlbmVyYXRlZFByZWRpY2F0ZSQubmV4dCh0aGlzLmdlbmVyYXRlUHJlZGljYXRlKHRoaXMuX29wZXJhbmRzRm9ybUNvbnRyb2xzLm1hcChmYyA9PiB0aGlzLnRyYW5zZm9ybUNhdGVnb3J5VmFsdWUoZmMudmFsdWUpKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHRoZSBjYXRlZ29yeSBjbGFzcyBpbiBhIHNlcmlhbGl6YWJsZSBmb3JtXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZCBpbiA1LjYuMCAtIENhdGVnb3J5IHNlcmlhbGlzYXRpb24gc2hvdWxkIGJlIGRvbmUgYnkgdXRpbGlzaW5nIHRoZSB7QGxpbmsgQ2F0ZWdvcnlSZXNvbHZlclNlcnZpY2V9IGluc3RlYWRcbiAgICAgKi9cbiAgICBhYnN0cmFjdCBzZXJpYWxpemVDbGFzcygpOiBDYXRlZ29yaWVzIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gc2VyaWFsaXplcyBvbmx5IHRoZSBvcGVyYXRvci5cbiAgICAgKiBJZiB0aGUgY2F0ZWdvcnkgY29udGFpbnMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLCB0aGlzIG1ldGhvZCBtdXN0IGJlIGV4dGVuZGVkLlxuICAgICAqXG4gICAgICogQHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYWxsIHRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZm9yIHRoZSByZWNvbnN0cnVjdGlvbiBvZiB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGNhdGVnb3J5IGluc3RhbmNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU1ldGFkYXRhQ29uZmlndXJhdGlvbigpOiBDYXRlZ29yeU1ldGFkYXRhQ29uZmlndXJhdGlvbiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbQ2F0ZWdvcnkuT1BFUkFUT1JfTUVUQURBVEFdOiB0aGlzLnNlbGVjdGVkT3BlcmF0b3Iuc2VyaWFsaXplKClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSB2YWx1ZSBvZiBhbGwgb3BlcmFuZCBmb3JtIGNvbnRyb2wgb2JqZWN0cyB1cCB0byB0aGUgY3VycmVudCBudW1iZXIgb2Ygb3BlcmFuZHMuXG4gICAgICogVG8gc2VyaWFsaXplIHZhbHVlIG9mIGVhY2ggb3BlcmFuZCB0aGUgW3NlcmlhbGl6ZU9wZXJhbmRWYWx1ZSgpXXtAbGluayBDYXRlZ29yeSNzZXJpYWxpemVPcGVyYW5kVmFsdWV9IG1ldGhvZCBpcyB1c2VkLlxuICAgICAqXG4gICAgICogSWYgdGhlIHZhbHVlcyB1c2VkIGJ5IHRoaXMgY2F0ZWdvcnkgYXJlIG5vdCBzZXJpYWxpemFibGUsIHRoZW4gZWl0aGVyIHRoaXMgbWV0aG9kLCBvciB0aGUgYHNlcmlhbGl6ZU9wZXJhbmRWYWx1ZWAgbWV0aG9kLFxuICAgICAqIG11c3QgYmUgb3ZlcnJpZGRlbi5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGFuIGFycmF5IGNvbnRhaW5pbmcgdmFsdWVzIGlucHV0IGJ5IHRoZSB1c2VyIGluIGEgc2VyaWFsaXphYmxlIGZvcm1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3JlYXRlTWV0YWRhdGFWYWx1ZXMoKTogQXJyYXk8dW5rbm93bj4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNlbGVjdGVkT3BlcmF0b3JBcml0eTsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLnNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh0aGlzLl9vcGVyYW5kc0Zvcm1Db250cm9sc1tpXSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHZhbHVlRm9ybUNvbnRyb2wgRm9ybUNvbnRyb2wgb2JqZWN0IG9mIG9uZSBvcGVyYW5kXG4gICAgICogQHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBvcGVyYW5kIGluIGEgc2VyaWFsaXplZCBmb3JtLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHRoZSBGb3JtQ29udHJvbHMgYHZhbHVlYCBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2YWx1ZUZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IHVua25vd24ge1xuICAgICAgICByZXR1cm4gdmFsdWVGb3JtQ29udHJvbC52YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXN0b3JlZCB0aGUgc2F2ZWQgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBtZXRhZGF0YSBjcmVhdGVkIGJ5IHRoZVxuICAgICAqIFtjcmVhdGVNZXRhZGF0YUNvbmZpZ3VyYXRpb24oKV17QGxpbmsgQ2F0ZWdvcnkjY3JlYXRlTWV0YWRhdGFDb25maWd1cmF0aW9ufSBtZXRob2QuXG4gICAgICpcbiAgICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXN0b3JlcyBvbmx5IHRoZSBzYXZlZCBvcGVyYXRvci5cbiAgICAgKlxuICAgICAqIElmIHRoZSBDYXRlZ29yeSBvdmVycmlkZXMgdGhlIHNlcmlhbGl6YXRpb24gbWV0aG9kLCBpdCBtdXN0IG92ZXJyaWRlIHRoaXMgbWV0aG9kIGFzIHdlbGwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiB0aGUgc2VyaWFsaXplZCBjb25maWd1cmF0aW9uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBhbiBPYnNlcnZhYmxlLiBXaGVuIHRoZSBPYnNlcnZhYmxlIGVtaXRzIHRoZSBjYXRlZ29yeSBoYXMgZmluaXNoZWQgbG9hZGluZyBpdHMgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZENvbmZpZ3VyYXRpb25Gcm9tTWV0YWRhdGEoY29uZmlndXJhdGlvbjogQ2F0ZWdvcnlNZXRhZGF0YUNvbmZpZ3VyYXRpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRPcGVyYXRvciA9IHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRGcm9tTWV0YWRhdGEoY29uZmlndXJhdGlvbltDYXRlZ29yeS5PUEVSQVRPUl9NRVRBREFUQV0gYXMgT3BlcmF0b3JzIHwgc3RyaW5nKTtcbiAgICAgICAgdGhpcy5zZWxlY3RPcGVyYXRvcih0aGlzLmFsbG93ZWRPcGVyYXRvcnMuZmluZEluZGV4KG9wID0+IG9wID09PSByZXNvbHZlZE9wZXJhdG9yKSk7XG4gICAgICAgIHJldHVybiBvZlZvaWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBzZXRzIHRoZSBwcm92aWRlZCB2YWx1ZXMgaW50byB0aGlzIENhdGVnb3J5J3Mgb3BlcmFuZCBmb3JtIGNvbnRyb2xzLlxuICAgICAqXG4gICAgICogQW4gb3BlcmF0b3IgbXVzdCBiZSBzZXQgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QhIE90aGVyd2lzZSBhbiBlcnJvciB3aWxsIGJlIHRocm93bi5cbiAgICAgKlxuICAgICAqIElmIHRoZSBudW1iZXIgb2YgdmFsdWVzIGRvZXNuJ3QgbWF0Y2ggdGhlIGFyaXR5IG9mIHRoZSBzZWxlY3RlZCBvcGVyYXRvciBhbiBlcnJvciB3aWxsIGJlIHRocm93biFcbiAgICAgKlxuICAgICAqIElmIHRoaXMgQ2F0ZWdvcnkgb3ZlcnJpZGVzIHRoZSBbc2VyaWFsaXplT3BlcmFuZFZhbHVlKClde0BsaW5rIENhdGVnb3J5I3NlcmlhbGl6ZU9wZXJhbmRWYWx1ZX0sIGl0IG11c3QgYWxzb1xuICAgICAqIG92ZXJyaWRlIGl0cyBkZXNlcmlhbGl6YXRpb24gY291bnRlcnBhcnQgLSBbZGVzZXJpYWxpemVPcGVyYW5kVmFsdWUoKV17QGxpbmsgI0NhdGVnb3J5I2Rlc2VyaWFsaXplT3BlcmFuZFZhbHVlfSFcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZXMgdGhlIHNlcmlhbGl6ZWQgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIGxvYWRlZCBpbnRvIHRoaXMgQ2F0ZWdvcnkgaW5zdGFuY2VcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGFuIE9ic2VydmFibGUuIFdoZW4gdGhlIE9ic2VydmFibGUgZW1pdHMgdGhlIGNhdGVnb3J5IGhhcyBmaW5pc2hlZCBsb2FkaW5nIGl0cyB2YWx1ZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxvYWRWYWx1ZXNGcm9tTWV0YWRhdGEodmFsdWVzOiBBcnJheTx1bmtub3duPik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVyYXRvclNlbGVjdGVkKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQW4gb3BlcmF0b3IgbXVzdCBiZSBzZWxlY3RlZCBiZWZvcmUgQ2F0ZWdvcnkgdmFsdWVzIGNhbiBiZSByZXNvbHZlZCBmcm9tIG1ldGFkYXRhIScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3BlcmF0b3JBcml0eSAhPT0gdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJpdHkgb2YgdGhlIHNlbGVjdGVkIG9wZXJhdG9yICgke3RoaXMuc2VsZWN0ZWRPcGVyYXRvckFyaXR5XG4gICAgICAgICAgICB9KSBkb2Vzbid0IG1hdGNoIHRoZSBudW1iZXIgb2YgdGhlIHByb3ZpZGVkIHZhbHVlcyAoJHt2YWx1ZXMubGVuZ3RofSkhYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkVmFsdWVzT2JzZXJ2YWJsZXMgPSB2YWx1ZXMubWFwKHYgPT4gdGhpcy5kZXNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2KSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcbiAgICAgICAgZm9ya0pvaW4oZGVzZXJpYWxpemVkVmFsdWVzT2JzZXJ2YWJsZXMpLnBpcGUoZGVmYXVsdElmRW1wdHkoW10pKS5zdWJzY3JpYmUoZGVzZXJpYWxpemVkVmFsdWVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0T3BlcmFuZHMoZGVzZXJpYWxpemVkVmFsdWVzKTtcbiAgICAgICAgICAgIHJlc3VsdCQubmV4dCgpO1xuICAgICAgICAgICAgcmVzdWx0JC5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHZhbHVlIHRoZSBzZXJpYWxpemVkIG91dHB1dCBvZiB0aGUgW3NlcmlhbGl6ZU9wZXJhbmRWYWx1ZSgpXXtAbGluayBDYXRlZ29yeSNzZXJpYWxpemVPcGVyYW5kVmFsdWV9IG1ldGhvZFxuICAgICAqIEByZXR1cm5zIGFuIGBPYnNlcnZhYmxlYCB0aGF0IGVtaXRzIHRoZSBkZXNlcmlhbGl6ZWQgdmFsdWUsIHRoYXQgY2FuIGJlIHNldCBhcyBGb3JtQ29udHJvbCB2YWx1ZSBhbmQgdGhlbiBjb21wbGV0ZXNcbiAgICAgKlxuICAgICAqIFRoaXMgbWV0aG9kIG1heSB0aHJvdyBuYSBlcnJvciBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIGRlc2VyaWFsaXplZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemVPcGVyYW5kVmFsdWUodmFsdWU6IHVua25vd24pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gb2YodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgdmFsdWUgb2YgdGhlIGBGb3JtQ29udHJvbGAgb2JqZWN0IHRoYXQgd2Ugd2FudCB0byB0ZXN0XG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuZXdseSBzZWxlY3RlZCB2YWx1ZSBpcyBhIHZhbGlkIHZhbHVlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgaXNPcGVyYW5kVmFsdWVTZWxlY3RlZChuZXdWYWx1ZTogYW55KTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIGEgdHJhbnNmb3JtYXRpb24gb2YgdGhlIGBGb3JtQ29udHJvbGAgdmFsdWUgYmVmb3JlIHBhc3NpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgYE9wZXJhdG9yYCBmb3IgcXVlcnkgZ2VuZXJhdGlvbi5cbiAgICAgKiBJdCBpcyBtb3N0bHkgdXNlZnVsIG9ubHkgZm9yIEF1dG9jb21wbGV0ZUNhdGVnb3JpZXMsIHdoZXJlIHRoZSBzZWxlY3RlZCB2YWx1ZSBvZiB0aGUgRm9ybUNvbnRyb2wgaXMgYW4gb2JqZWN0LlxuICAgICAqXG4gICAgICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcGVyZm9ybXMgYW4gaWRlbnRpdHkgdHJhbnNmb3JtYXRpb24gLSByZXR1cm5zIHRoZSBpbnB1dC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIEZvcm1Db250cm9sVmFsdWVcbiAgICAgKiBAcmV0dXJucyB0aGUgdmFsdWUgdXNlZCBmb3IgcXVlcnkgZ2VuZXJhdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCB0cmFuc2Zvcm1DYXRlZ29yeVZhbHVlKHZhbHVlOiBhbnkpOiBUIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIGFuIEFycmF5IGNvbnRhaW5pbmcgdGV4dCBzZWdtZW50cyByZXByZXNlbnRpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIHByZWRpY2F0ZSBnZW5lcmF0ZWQgYnkgdGhpcyBjYXRlZ29yeVxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVGaWx0ZXJUZXh0U2VnbWVudHMoKTogQXJyYXk8RmlsdGVyVGV4dFNlZ21lbnQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3ZpZGVzUHJlZGljYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtzZWdtZW50OiB0aGlzLnRyYW5zbGF0aW9uUGF0aCwgYm9sZDogdGhpcy5kaXNwbGF5Qm9sZH0sXG4gICAgICAgICAgICAuLi50aGlzLmNyZWF0ZUNvbmZpZ3VyYXRpb25GaWx0ZXJUZXh0U2VnbWVudHMoKSxcbiAgICAgICAgICAgIC4uLnRoaXMuY3JlYXRlT3BlcmF0b3JGaWx0ZXJUZXh0U2VnbWVudHMoKVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIGFuIEFycmF5IGNvbnRhaW5pbmcgdGV4dCBzZWdtZW50cyByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5wdXRzIG9mIHRoaXMgY2F0ZWdvcnlcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlQ29uZmlndXJhdGlvbkZpbHRlclRleHRTZWdtZW50cygpOiBBcnJheTxGaWx0ZXJUZXh0U2VnbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBhbiBBcnJheSBjb250YWluaW5nIHRleHQgc2VnbWVudHMgcmVwcmVzZW50aW5nIHRoZSBvcGVyYXRvcnMgd2l0aCBvcGVyYW5kcyBvZiB0aGlzIGNhdGVnb3J5XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU9wZXJhdG9yRmlsdGVyVGV4dFNlZ21lbnRzKCk6IEFycmF5PEZpbHRlclRleHRTZWdtZW50PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogQXJyYXk8RmlsdGVyVGV4dFNlZ21lbnQ+ID0gW107XG4gICAgICAgIGxldCBvcGVyYW5kSW5kZXggPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgdGhpcy5zZWxlY3RlZE9wZXJhdG9yLmdldE9wZXJhdG9yTmFtZVRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgIGlmIChzZWdtZW50ID09PSBPcGVyYXRvci5JTlBVVF9QTEFDRUhPTERFUikge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuY3JlYXRlT3BlcmFuZEZpbHRlclRleHRTZWdtZW50KG9wZXJhbmRJbmRleCkpO1xuICAgICAgICAgICAgICAgIG9wZXJhbmRJbmRleCsrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7c2VnbWVudH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgZmlsdGVyIHRleHQgc2VnbWVudCByZXByZXNlbnRpbmcgdGhlIG9wZXJhbmQgdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBpbmRleFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjcmVhdGVPcGVyYW5kRmlsdGVyVGV4dFNlZ21lbnQob3BlcmFuZEluZGV4OiBudW1iZXIpOiBGaWx0ZXJUZXh0U2VnbWVudCB7XG4gICAgICAgIGxldCBzZWdtZW50O1xuICAgICAgICBjb25zdCBvcGVyYW5kID0gdGhpcy5fb3BlcmFuZHNGb3JtQ29udHJvbHNbb3BlcmFuZEluZGV4XS52YWx1ZTtcbiAgICAgICAgc3dpdGNoICh0aGlzLmlucHV0VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICAgICAgICAgIHNlZ21lbnQgPSBvcGVyYW5kLnRleHQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5EQVRFOlxuICAgICAgICAgICAgICAgIHNlZ21lbnQgPSBvcGVyYW5kLmZvcm1hdChEQVRFX0ZPUk1BVF9TVFJJTkcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuREFURV9USU1FOlxuICAgICAgICAgICAgICAgIHNlZ21lbnQgPSBvcGVyYW5kLmZvcm1hdChEQVRFX1RJTUVfRk9STUFUX1NUUklORyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHNlZ21lbnQgPSBvcGVyYW5kO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7c2VnbWVudCwgYm9sZDogdHJ1ZX07XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZS1pZC1wYWlyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlYXJjaC9tb2RlbHMvY2F0ZWdvcnkvbmFtZS1pZC1wYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSB1c2VkIGZvciBleHRyYWN0aW9uIG9mIG5ldCBhdHRyaWJ1dGVzIGJ5IHtAbGluayBOZXRBdHRyaWJ1dGVBdXRvY29tcGxldGVDYXRlZ29yeX0gaW1wbGVtZW50YXRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVJZFBhaXIge1xuICAgIC8qKlxuICAgICAqIERpc3BsYXkgbmFtZSBvZiB0aGUgYXR0cmlidXRlXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFVuaXF1ZSBpZCBvZiB0aGUgYXR0cmlidXRlLCB0aGF0IGlzIHVzZWQgZm9yIHNlYXJjaGluZ1xuICAgICAqL1xuICAgIGlkOiBzdHJpbmc7XG59XG4iXX0=
|