nuxeo-development-framework 6.1.0 → 6.1.2
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/bundles/nuxeo-development-framework.umd.js +2091 -1569
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +1 -1
- package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +1 -1
- package/esm2015/lib/components/activities-log/activities-log.module.js +1 -1
- package/esm2015/lib/components/activity/activity/activity.component.js +1 -1
- package/esm2015/lib/components/activity/activity.module.js +1 -1
- package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +2 -2
- package/esm2015/lib/components/attachment-item/attachment-item.module.js +1 -1
- package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +1 -1
- package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +1 -1
- package/esm2015/lib/components/avatar/avatar/avatar.component.js +1 -1
- package/esm2015/lib/components/avatar/avatar.module.js +1 -1
- package/esm2015/lib/components/card/card.component.js +1 -1
- package/esm2015/lib/components/card/card.module.js +1 -1
- package/esm2015/lib/components/comments/comments.module.js +1 -1
- package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +2 -2
- package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +1 -1
- package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +1 -1
- package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +1 -1
- package/esm2015/lib/components/comments/constants/comment.js +1 -1
- package/esm2015/lib/components/comments/services/comment-api.service.js +1 -1
- package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +1 -1
- package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +1 -1
- package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +1 -1
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +1 -1
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +1 -1
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +1 -1
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +1 -1
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +2 -2
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +1 -1
- package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +1 -1
- package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +1 -1
- package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +1 -1
- package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +1 -1
- package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +1 -1
- package/esm2015/lib/components/create-entity/create-entity.module.js +1 -1
- package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +2 -2
- package/esm2015/lib/components/cts-tags/cts-tags.module.js +1 -1
- package/esm2015/lib/components/cts-tags/services/tags-api.service.js +1 -1
- package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +1 -1
- package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +1 -1
- package/esm2015/lib/components/custom-toastr/interfaces/toast-type.interface.js +1 -1
- package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +1 -1
- package/esm2015/lib/components/diagrams/components/base-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/circle-node/circle-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/connection-label.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/content-node/content-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/custom-connection.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/custom-socket.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/gateway-node/gateway-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/gateway-ports.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/index.js +1 -1
- package/esm2015/lib/components/diagrams/components/node-icon.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/node-inputs.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/node-outputs.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/node-ports.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/remove-button.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/status-icon.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/template-node/template-node.component.js +1 -1
- package/esm2015/lib/components/diagrams/components/zoom-control.component.js +1 -1
- package/esm2015/lib/components/diagrams/constants/defaults.js +1 -1
- package/esm2015/lib/components/diagrams/constants/direction.js +1 -1
- package/esm2015/lib/components/diagrams/constants/index.js +1 -1
- package/esm2015/lib/components/diagrams/constants/message-type.js +1 -1
- package/esm2015/lib/components/diagrams/constants/node-type.js +1 -1
- package/esm2015/lib/components/diagrams/constants/notify-events.js +1 -1
- package/esm2015/lib/components/diagrams/constants/sizes.js +1 -1
- package/esm2015/lib/components/diagrams/constants/status.js +1 -1
- package/esm2015/lib/components/diagrams/diagrams.module.js +1 -1
- package/esm2015/lib/components/diagrams/directive/diagram.directive.js +1 -1
- package/esm2015/lib/components/diagrams/directive/index.js +1 -1
- package/esm2015/lib/components/diagrams/editor/customize.js +1 -1
- package/esm2015/lib/components/diagrams/editor/editor.js +1 -1
- package/esm2015/lib/components/diagrams/editor/index.js +1 -1
- package/esm2015/lib/components/diagrams/editor/overrides/connection-path.transformers.js +1 -1
- package/esm2015/lib/components/diagrams/editor/overrides/index.js +1 -1
- package/esm2015/lib/components/diagrams/editor/path-plugin.js +1 -1
- package/esm2015/lib/components/diagrams/editor/socket-position-watcher.js +1 -1
- package/esm2015/lib/components/diagrams/index.js +1 -1
- package/esm2015/lib/components/diagrams/models/base-node.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/circle-node.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/connection.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/content-node.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/gate-way.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/index.js +1 -1
- package/esm2015/lib/components/diagrams/models/ports.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/socket.model.js +1 -1
- package/esm2015/lib/components/diagrams/models/template-node.model.js +1 -1
- package/esm2015/lib/components/diagrams/public-api.js +1 -1
- package/esm2015/lib/components/diagrams/services/diagram-plugins.service.js +1 -1
- package/esm2015/lib/components/diagrams/services/diagram.service.js +1 -1
- package/esm2015/lib/components/diagrams/services/index.js +1 -1
- package/esm2015/lib/components/diagrams/services/message.service.js +1 -1
- package/esm2015/lib/components/diagrams/services/workflow.service.js +1 -1
- package/esm2015/lib/components/diagrams/types/common.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/connection-config.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/connection-label.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/customization.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/diagram-config.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/diagram-editor.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/emitter-type.js +1 -1
- package/esm2015/lib/components/diagrams/types/index.js +1 -1
- package/esm2015/lib/components/diagrams/types/layout.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/node-content.js +1 -1
- package/esm2015/lib/components/diagrams/types/node-definition.js +1 -1
- package/esm2015/lib/components/diagrams/types/node-status.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/node.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/notify-event.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/path.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/ports-config.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/schemes.type.js +1 -1
- package/esm2015/lib/components/diagrams/types/socket.type.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/common.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/index.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/random.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/remove.util.js +1 -1
- package/esm2015/lib/components/diagrams/utilities/serialize.js +1 -1
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +2 -2
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +1 -1
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +1 -1
- package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +1 -1
- package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +1 -1
- package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +1 -1
- package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +1 -1
- package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +1 -1
- package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +1 -1
- package/esm2015/lib/components/documents/components/documents/documents.component.js +1 -1
- package/esm2015/lib/components/documents/constants/document-templates.js +1 -1
- package/esm2015/lib/components/documents/constants/documents.js +1 -1
- package/esm2015/lib/components/documents/documents.module.js +1 -1
- package/esm2015/lib/components/documents/services/document-templates.service.js +1 -1
- package/esm2015/lib/components/documents/services/documents.service.js +1 -1
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +1 -1
- package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +1 -1
- package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +1 -1
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +1 -1
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +1 -1
- package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +2 -2
- package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/constants/department.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.formio.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.formio.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.formio.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +1 -1
- package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.formio.js +1 -1
- package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +1 -1
- package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-boolitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-dateitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item-validator.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-item.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-keyvaluepairsitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-selectitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-pipe-property.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form-textitem-properties.interface.js +1 -1
- package/esm2015/lib/components/dynamic-form/interfaces/dynamic-form.interfaces.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-baseitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-boolitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-dateitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-datetimeitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-mapitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-selectitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form-textitem.model.js +1 -1
- package/esm2015/lib/components/dynamic-form/models/dynamic-form.models.js +1 -1
- package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/services/dynamic-component-mapper.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/services/vocabulary-api.service.js +1 -1
- package/esm2015/lib/components/dynamic-form/validators/length-validator.js +1 -1
- package/esm2015/lib/components/dynamic-form/validators/regex-validator.js +1 -1
- package/esm2015/lib/components/dynamic-form/validators/required-validator.js +1 -1
- package/esm2015/lib/components/dynamic-form/validators/value-validator.js +1 -1
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +1 -1
- package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +1 -1
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +1 -1
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +1 -1
- package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +1 -1
- package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +1 -1
- package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +1 -1
- package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +1 -1
- package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +1 -1
- package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/copy/copy.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/delete/delete.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/move/move.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/rename/rename.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +1 -1
- package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +1 -1
- package/esm2015/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.js +1 -1
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +1 -1
- package/esm2015/lib/components/file-manger/file-manger.module.js +1 -1
- package/esm2015/lib/components/file-manger/models/file-manager-config.model.js +1 -1
- package/esm2015/lib/components/file-manger/models/index.js +1 -1
- package/esm2015/lib/components/file-manger/models/pagination-payload.mode.js +1 -1
- package/esm2015/lib/components/file-manger/models/pagination-response.model.js +1 -1
- package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
- package/esm2015/lib/components/filter/filter.module.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +1 -1
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/consts.js +1 -1
- package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +1 -1
- package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +1 -1
- package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +1 -1
- package/esm2015/lib/components/latest-activity/constants/activitylog.js +1 -1
- package/esm2015/lib/components/latest-activity/latest-activity.module.js +1 -1
- package/esm2015/lib/components/latest-activity/services/activity-log.service.js +1 -1
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +1 -1
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/components/config-editor-actions/config-editor-actions.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/components/editor-mode-switch.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/components/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/components/info-dialog/info-dialog.component.js +2 -2
- package/esm2015/lib/components/ndf-config-editor/config.token.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/constants/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/constants/mode.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/constants/query.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.js +2 -2
- package/esm2015/lib/components/ndf-config-editor/containers/editor-settings/editor-settings.component.js +2 -2
- package/esm2015/lib/components/ndf-config-editor/containers/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/containers/monaco-editor.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/metadata-token.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/config.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/dialog-data.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/editor-model.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/payload-data.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/models/type-helper.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/ndf-config-editor.module.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/pipes/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/pipes/is-valid-json.pipe.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/pipes/validate-object.pipe.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/public/editor-navigate-button.js +2 -2
- package/esm2015/lib/components/ndf-config-editor/public/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/public-api.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/services/data-access.service.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/services/data-store.service.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/services/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/services/monaco.loader.service.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/utility/index.js +1 -1
- package/esm2015/lib/components/ndf-config-editor/utility/json.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/adapters/hijri-adapter.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/adapters/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/adapters/moment-adapter.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/base/base-value-accessor.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/base/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/components/base-datepicker.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/components/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/components/input-date.component.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/components/input-range-date.component.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/date-locale-keys.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/date-picker.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/date-type.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/formats.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/hijri-dates-names.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/constants/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/containers/datepicker-container.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/containers/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/containers/ndf-gregorian-datepicker.component.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/containers/ndf-hijri-datepicker.component.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/models/data-types.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/models/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/models/value-object.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.component.js +2 -2
- package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.module.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/services/calendar.service.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/services/index.js +1 -1
- package/esm2015/lib/components/ndf-datepicker/services/localize-state.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-aggregation-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-checkbox-radio.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-custom-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-predicate-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/base-value-accessor.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/base/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/field-header.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-collapse-control/filter-collapse-control.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-date-range/filter-date-range.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-empty-message.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-option-text/filter-option-text.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-options-sort/filter-options-sort.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-search-input/filter-search-input.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/html-dialog/html-dialog.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-autocomplete/aggregation-autocomplete.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-checkbox/aggregation-checkbox.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-custom/aggregation-custom.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-radio/aggregation-radio.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-select/aggregation-select.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/aggregation-switch/aggregation-switch.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/components/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/predicate-date-input/predicate-date-input.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/components/predicate-text-input/predicate-text-input.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/constants/common.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/field.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/operators.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/sort.js +1 -1
- package/esm2015/lib/components/ndf-filters/constants/type.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/base-field.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/custom-field/custom-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/filters-panel/base-filters-panel.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/containers/predicate-field/predicate-field.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user-switch.component.js +2 -2
- package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/user-types.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/aggregation-group/aggregation-group.component.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/aggregation-group/map-aggregation-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/custom-components/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/autocomplete-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/checkbox-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/custom-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/date-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/dropdown-label-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/dropdown-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/radio-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/directives/switch-template.directive.js +1 -1
- package/esm2015/lib/components/ndf-filters/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/aggregation-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/aggregation-response.model.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/base-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/common.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/custom-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-config.model.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/autocomplete-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/checkbox-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/common-utils.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/custom-fields-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/custom-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/date-list-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/date-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/dropdown-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/input-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/radio-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/field-options/switch-options.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/filter-option.model.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/form-query-request.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/operator-value-object.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/predicate-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/types-helper.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/value-object.model.js +1 -1
- package/esm2015/lib/components/ndf-filters/ndf-filters-panel.module.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/autocomplete-filter.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/check-condition.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/filter.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/hash-translate.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/localized-label.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/roles-filters.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/sanitizer.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/sort.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/pipes/tooltip.pipe.js +1 -1
- package/esm2015/lib/components/ndf-filters/public-api.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/aggregation-field.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/dynamic-component-loader.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/filters-mapper.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/filters-query.service.js +1 -1
- package/esm2015/lib/components/ndf-filters/services/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/utility/index.js +1 -1
- package/esm2015/lib/components/ndf-filters/utility/nxql-query.js +1 -1
- package/esm2015/lib/components/ndf-filters/utility/nxql.js +1 -1
- package/esm2015/lib/components/ndf-filters/utility/object.js +1 -1
- package/esm2015/lib/components/ndf-panel/component/ndf-panel.component.js +1 -1
- package/esm2015/lib/components/ndf-panel/index.js +1 -1
- package/esm2015/lib/components/ndf-panel/ndf-panel.module.js +1 -1
- package/esm2015/lib/components/ndf-scanner/index.js +1 -1
- package/esm2015/lib/components/ndf-scanner/ndf-scanner.component.js +2 -2
- package/esm2015/lib/components/ndf-scanner/ndf-scanner.module.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/dialogs/auth/emdha-auth.dialog.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/dialogs/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/services/emdha.service.js +1 -1
- package/esm2015/lib/components/ndf-signatures/emdha/services/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/ndf-signature-panel/ndf-signature-panel.component.js +1 -1
- package/esm2015/lib/components/ndf-signatures/ndf-signatures.module.js +1 -1
- package/esm2015/lib/components/ndf-signatures/services/index.js +1 -1
- package/esm2015/lib/components/ndf-signatures/services/signatures.service.js +1 -1
- package/esm2015/lib/components/ndf-tabs/component/ndf-tabs.component.js +1 -1
- package/esm2015/lib/components/ndf-tabs/index.js +1 -1
- package/esm2015/lib/components/ndf-tabs/ndf-tabs.module.js +1 -1
- package/esm2015/lib/components/ndf-tabs/tab.type.js +1 -1
- package/esm2015/lib/components/ndf-uploader/components/bottom-sheet/ndf-uploader-bottom-sheet.component.js +2 -2
- package/esm2015/lib/components/ndf-uploader/components/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/config/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/config/uploader.config.js +1 -1
- package/esm2015/lib/components/ndf-uploader/constant/file-content.js +1 -1
- package/esm2015/lib/components/ndf-uploader/constant/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/helpers/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/helpers/uploader.helper.js +1 -1
- package/esm2015/lib/components/ndf-uploader/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/models/batch.model.js +1 -1
- package/esm2015/lib/components/ndf-uploader/models/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/models/ndf-file.model.js +1 -1
- package/esm2015/lib/components/ndf-uploader/models/provider.model.js +1 -1
- package/esm2015/lib/components/ndf-uploader/ndf-uploader-bottom-sheet.service.js +1 -1
- package/esm2015/lib/components/ndf-uploader/ndf-uploader.module.js +1 -1
- package/esm2015/lib/components/ndf-uploader/ndf-uploader.service.js +1 -1
- package/esm2015/lib/components/ndf-uploader/nuxeo-base-url.js +1 -1
- package/esm2015/lib/components/ndf-uploader/providers/index.js +1 -1
- package/esm2015/lib/components/ndf-uploader/providers/nuxeo-provider.service.js +1 -1
- package/esm2015/lib/components/ndf-uploader/providers/s3-provider.service.js +1 -1
- package/esm2015/lib/components/no-data-found/index.js +1 -1
- package/esm2015/lib/components/no-data-found/no-data-found.component.js +1 -1
- package/esm2015/lib/components/no-data-found/no-data.module.js +1 -1
- package/esm2015/lib/components/notifications/components/base-list-notfications.component.js +1 -1
- package/esm2015/lib/components/notifications/components/base-notifications.component.js +1 -1
- package/esm2015/lib/components/notifications/components/index.js +1 -1
- package/esm2015/lib/components/notifications/components/notification-item/get-icon.pipe.js +1 -1
- package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notification-sortby-toggle/notification-sortby-toggle.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notification-source-select/notification-source-select.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-list/options.js +1 -1
- package/esm2015/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.js +1 -1
- package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.js +1 -1
- package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.component.js +2 -2
- package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.js +1 -1
- package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.js +1 -1
- package/esm2015/lib/components/notifications/constants/date.js +1 -1
- package/esm2015/lib/components/notifications/constants/index.js +1 -1
- package/esm2015/lib/components/notifications/constants/pagination.js +1 -1
- package/esm2015/lib/components/notifications/constants/panel.js +1 -1
- package/esm2015/lib/components/notifications/constants/status.js +1 -1
- package/esm2015/lib/components/notifications/containers/index.js +1 -1
- package/esm2015/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.js +2 -2
- package/esm2015/lib/components/notifications/containers/notifications-list-container/options.js +1 -1
- package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +1 -1
- package/esm2015/lib/components/notifications/directives/button.directive.js +1 -1
- package/esm2015/lib/components/notifications/directives/index.js +1 -1
- package/esm2015/lib/components/notifications/directives/notification.directive.js +1 -1
- package/esm2015/lib/components/notifications/index.js +1 -1
- package/esm2015/lib/components/notifications/models/common.js +1 -1
- package/esm2015/lib/components/notifications/models/index.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-definition.model.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-message.mode.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-options.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-setting.presenter.js +1 -1
- package/esm2015/lib/components/notifications/models/notification-subscription.model.js +1 -1
- package/esm2015/lib/components/notifications/models/notification.model.js +1 -1
- package/esm2015/lib/components/notifications/models/notifications-list-options.js +1 -1
- package/esm2015/lib/components/notifications/models/paging-response.model.js +1 -1
- package/esm2015/lib/components/notifications/models/params.model.js +1 -1
- package/esm2015/lib/components/notifications/models/vocabularies.js +1 -1
- package/esm2015/lib/components/notifications/notifications.module.js +1 -1
- package/esm2015/lib/components/notifications/public-api.js +1 -1
- package/esm2015/lib/components/notifications/services/index.js +1 -1
- package/esm2015/lib/components/notifications/services/listener.service.js +1 -1
- package/esm2015/lib/components/notifications/services/notifications.service.js +1 -1
- package/esm2015/lib/components/notifications/services/params.service.js +1 -1
- package/esm2015/lib/components/notifications/services/response.service.js +1 -1
- package/esm2015/lib/components/notifications/services/socket.service.js +1 -1
- package/esm2015/lib/components/notifications/utilities/index.js +1 -1
- package/esm2015/lib/components/notifications/utilities/response.adapter.js +1 -1
- package/esm2015/lib/components/pagination/pagination/pagination.component.js +1 -1
- package/esm2015/lib/components/pagination/pagination.module.js +1 -1
- package/esm2015/lib/components/pdf-tron/directives/index.js +1 -1
- package/esm2015/lib/components/pdf-tron/directives/ndf-tron-extract-text.directive.js +1 -1
- package/esm2015/lib/components/pdf-tron/models/index.js +1 -1
- package/esm2015/lib/components/pdf-tron/models/tron.model.js +1 -1
- package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +1 -1
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +1 -1
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +1 -1
- package/esm2015/lib/components/pdf-tron/pdftron/silent-pdftron.service.js +1 -1
- package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +2 -2
- package/esm2015/lib/components/permissions/permission.service.js +1 -1
- package/esm2015/lib/components/permissions/permissions/permissions.component.js +1 -1
- package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +1 -1
- package/esm2015/lib/components/permissions/permissions.module.js +1 -1
- package/esm2015/lib/components/reports/chart-panel.js +1 -1
- package/esm2015/lib/components/reports/charts/chart.const.js +1 -1
- package/esm2015/lib/components/reports/charts/chart.token.js +1 -1
- package/esm2015/lib/components/reports/charts/charts.module.js +1 -1
- package/esm2015/lib/components/reports/charts/components/base-chart.component.js +1 -1
- package/esm2015/lib/components/reports/charts/components/chart.component.js +1 -1
- package/esm2015/lib/components/reports/charts/components/data-chart.component.js +1 -1
- package/esm2015/lib/components/reports/charts/components/index.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/bar.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/doughnut.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/index.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/line.js +1 -1
- package/esm2015/lib/components/reports/charts/defaults/pie.js +1 -1
- package/esm2015/lib/components/reports/charts/index.js +1 -1
- package/esm2015/lib/components/reports/charts/models/index.js +1 -1
- package/esm2015/lib/components/reports/charts/models/options.js +1 -1
- package/esm2015/lib/components/reports/charts/models/plugins-options.js +1 -1
- package/esm2015/lib/components/reports/charts/models/response.js +1 -1
- package/esm2015/lib/components/reports/charts/models/statistic-request-config.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/data-labels.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/doughnut-center-text.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/doughnut-empty-state.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/index.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/legend-margin.js +1 -1
- package/esm2015/lib/components/reports/charts/plugins/scrollable-legends.js +1 -1
- package/esm2015/lib/components/reports/charts/public-api.js +1 -1
- package/esm2015/lib/components/reports/charts/services/index.js +1 -1
- package/esm2015/lib/components/reports/charts/services/statistic.service.js +1 -1
- package/esm2015/lib/components/reports/charts/utility/colors.js +1 -1
- package/esm2015/lib/components/reports/charts/utility/common.js +1 -1
- package/esm2015/lib/components/reports/charts/utility/css.js +1 -1
- package/esm2015/lib/components/reports/charts/utility/index.js +1 -1
- package/esm2015/lib/components/reports/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/base-chart.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/base-custom-report.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/base-graph.report.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/base/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/custom-chart/custom-chart.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/charts-components/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/custom-chart-dialog/custom-chart-dialog.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/report-actions/report-actions.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +3 -3
- package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +2 -2
- package/esm2015/lib/components/reports/ndf-reports/components/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/constants/charts-types.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/constants/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/constants/time-group.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/containers/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +73 -44
- package/esm2015/lib/components/reports/ndf-reports/directives/empty-content-template.directive.js +28 -0
- package/esm2015/lib/components/reports/ndf-reports/directives/header-panel-template.directive.js +28 -0
- package/esm2015/lib/components/reports/ndf-reports/directives/index.js +3 -1
- package/esm2015/lib/components/reports/ndf-reports/directives/scrollable-div.directive.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/base.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/common.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/custom-definition.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/digit.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/graph-definition.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/report-data-source.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/report-response.model.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/models/request.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +31 -17
- package/esm2015/lib/components/reports/ndf-reports/options/doughnut.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/horizontal-bar.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/line.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/pie.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/options/vertical-bar.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/pipes/check-condition.pipe.js +20 -0
- package/esm2015/lib/components/reports/ndf-reports/public-api.js +6 -5
- package/esm2015/lib/components/reports/ndf-reports/services/base-chart-builder.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-callbacks-register.services.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-data-transformers.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-manager.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/chart-theme.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/custom-reports-registry.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/digit-chart.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +26 -31
- package/esm2015/lib/components/reports/ndf-reports/services/index.js +12 -11
- package/esm2015/lib/components/reports/ndf-reports/services/ndf-reports.service.js +20 -17
- package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/report-configuration.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/report-transform.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/reports-data-transformers.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/reports-dialog.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/services/reports-hooks.service.js +89 -0
- package/esm2015/lib/components/reports/ndf-reports/services/reports-state.service.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/utilities/dataset-colors.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/utilities/index.js +1 -1
- package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +1 -1
- package/esm2015/lib/components/select/select/select.component.js +1 -1
- package/esm2015/lib/components/select/select.module.js +1 -1
- package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +1 -1
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +1 -1
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +1 -1
- package/esm2015/lib/components/skeleton/index.js +1 -1
- package/esm2015/lib/components/skeleton/skeleton.component.js +1 -1
- package/esm2015/lib/components/skeleton/skeleton.module.js +1 -1
- package/esm2015/lib/components/skeleton/table-skeleton.component.js +1 -1
- package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
- package/esm2015/lib/components/spell-checker-field/spell-checker-text-field/spell-checker-text-field.component.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/directives/empty-state.directive.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +116 -102
- package/esm2015/lib/components/tables/dynamic-table/dynamic-table.module.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/index.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/public-api.js +3 -2
- package/esm2015/lib/components/tables/dynamic-table/services/dynamic-table.service.js +1 -1
- package/esm2015/lib/components/tables/dynamic-table/services/table-hooks.service.js +56 -0
- package/esm2015/lib/components/tables/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/components/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/components/mode-toggler/mode-toggler.component.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/components/sorting-list/sorting-list.component.js +2 -2
- package/esm2015/lib/components/tables/ndf-table/components/table-columns-toggler/table-columns-toggler.component.js +2 -2
- package/esm2015/lib/components/tables/ndf-table/components/table-export/table-export.component.js +2 -2
- package/esm2015/lib/components/tables/ndf-table/components/text-search/text-search.component.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/constants/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/constants/sizes.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/containers/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/directives/actions.directive.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/directives/filter-custom.directive.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/directives/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/directives/search.directive.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/payload-types.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/search.config.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/table-column.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/table-config.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/table-mode.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/table-options.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/models/types.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/public-api.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/services/index.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/services/ndf-table-configuration.service.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/services/ndf-table.service.js +1 -1
- package/esm2015/lib/components/tables/public-api.js +1 -1
- package/esm2015/lib/components/tables/table/dynamic-column/dynamic-column.component.js +1 -1
- package/esm2015/lib/components/tables/table/dynamic-component.js +1 -1
- package/esm2015/lib/components/tables/table/index.js +1 -1
- package/esm2015/lib/components/tables/table/page-sizes-list/page-sizes-list.component.js +1 -1
- package/esm2015/lib/components/tables/table/public-api.js +1 -1
- package/esm2015/lib/components/tables/table/table/table.component.js +2 -2
- package/esm2015/lib/components/tables/table/table.module.js +1 -1
- package/esm2015/lib/components/toasts/components/notification-toast/notification-toast.component.js +1 -1
- package/esm2015/lib/components/toasts/index.js +1 -1
- package/esm2015/lib/components/toasts/public-api.js +1 -1
- package/esm2015/lib/components/toasts/toasts.module.js +1 -1
- package/esm2015/lib/components/user/user/user.component.js +1 -1
- package/esm2015/lib/components/user/user.module.js +1 -1
- package/esm2015/lib/components/users-card/users-card.component.js +2 -2
- package/esm2015/lib/components/users-card/users-card.module.js +1 -1
- package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +1 -1
- package/esm2015/lib/components/viewer-log/viewer-log.module.js +1 -1
- package/esm2015/lib/components/vocabulary/interfaces/op-type.interface.js +1 -1
- package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +1 -1
- package/esm2015/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.js +1 -1
- package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +1 -1
- package/esm2015/lib/components/vocabulary/vocabulary.module.js +1 -1
- package/esm2015/lib/configuration/app-config.service.js +1 -1
- package/esm2015/lib/configuration/helpers/app-initializer.js +1 -1
- package/esm2015/lib/core/adapters/adapter.service.js +1 -1
- package/esm2015/lib/core/core.module.js +1 -1
- package/esm2015/lib/core/enums/language.enum.js +1 -1
- package/esm2015/lib/core/env/env-manager.js +1 -1
- package/esm2015/lib/core/env/index.js +1 -1
- package/esm2015/lib/core/models/api-response.model.js +1 -1
- package/esm2015/lib/core/models/automation-response.model.js +1 -1
- package/esm2015/lib/core/models/base-response.models.js +1 -1
- package/esm2015/lib/core/models/component.model.js +1 -1
- package/esm2015/lib/core/models/index.js +1 -1
- package/esm2015/lib/core/services/callApi/call-api.service.js +1 -1
- package/esm2015/lib/core/services/column-renderer/column-renderer-registry.service.js +1 -1
- package/esm2015/lib/core/services/column-renderer/index.js +1 -1
- package/esm2015/lib/core/services/extension/action.extensions.js +1 -1
- package/esm2015/lib/core/services/extension/component-register.service.js +1 -1
- package/esm2015/lib/core/services/extension/extenion-utils.js +1 -1
- package/esm2015/lib/core/services/extension/extension-element.js +1 -1
- package/esm2015/lib/core/services/extension/extension-loader.service.js +1 -1
- package/esm2015/lib/core/services/extension/extension.service.js +1 -1
- package/esm2015/lib/core/services/index.js +1 -1
- package/esm2015/lib/core/services/initialization/initialization.service.js +1 -1
- package/esm2015/lib/core/services/localStorag/local-storag.service.js +1 -1
- package/esm2015/lib/core/services/ndf-transform.service.js +1 -1
- package/esm2015/lib/core/services/nuxeo/new-nuxeo-overide.js +1 -1
- package/esm2015/lib/core/services/nuxeo/nuxeo-override.js +1 -1
- package/esm2015/lib/core/services/nuxeo/nuxeo.service.js +1 -1
- package/esm2015/lib/core/services/roles/roles.service.js +1 -1
- package/esm2015/lib/core/services/translation/translate-loader.service.js +1 -1
- package/esm2015/lib/core/services/translation/translation.service.js +1 -1
- package/esm2015/lib/core/services/user/user-preferences.service.js +1 -1
- package/esm2015/lib/core/tokens/index.js +1 -1
- package/esm2015/lib/core/tokens/project.token.js +1 -1
- package/esm2015/lib/core/utilities/moment-date-adapter.js +1 -1
- package/esm2015/lib/core/utilities/utility.service.js +1 -1
- package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +1 -1
- package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +1 -1
- package/esm2015/lib/directive/directive.module.js +1 -1
- package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +1 -1
- package/esm2015/lib/directive/permissions/evaluators.service.js +1 -1
- package/esm2015/lib/directive/permissions/permissions.directive.js +1 -1
- package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +1 -1
- package/esm2015/lib/directive/rtl/set-rtl.directive.js +1 -1
- package/esm2015/lib/nuxeo-development-framework.component.js +1 -1
- package/esm2015/lib/nuxeo-development-framework.module.js +1 -1
- package/esm2015/lib/nuxeo-development-framework.service.js +1 -1
- package/esm2015/lib/pipes/file-size.pipe.js +1 -1
- package/esm2015/lib/pipes/hijri-date.pipe.js +1 -1
- package/esm2015/lib/pipes/localized-date.pipe.js +1 -1
- package/esm2015/lib/pipes/multi-value.pipe.js +1 -1
- package/esm2015/lib/pipes/pipes.module.js +1 -1
- package/esm2015/lib/pipes/secure-html.pipe.js +1 -1
- package/esm2015/lib/pipes/secure.pipe.js +1 -1
- package/esm2015/lib/pipes/time-ago.pipe.js +1 -1
- package/esm2015/lib/shared/components/base/base-column.component.js +1 -1
- package/esm2015/lib/shared/components/base/base-dialog.component.js +1 -1
- package/esm2015/lib/shared/components/base/base-selector.component.js +1 -1
- package/esm2015/lib/shared/components/base/base.component.js +1 -1
- package/esm2015/lib/shared/components/base/destroy.subject.js +1 -1
- package/esm2015/lib/shared/components/base/index.js +1 -1
- package/esm2015/lib/shared/components/button/button.component.js +1 -1
- package/esm2015/lib/shared/components/general-notification-popup/general-notification-popup.component.js +1 -1
- package/esm2015/lib/shared/components/index.js +1 -1
- package/esm2015/lib/shared/components/item-list/item-list.component.js +2 -2
- package/esm2015/lib/shared/components/no-data/no-data.component.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/confirmation/ndf-confirmation-dialog.component.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/index.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/models/confirm-options.model.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/models/dialog-option.model.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo-dialog.module.js +1 -1
- package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +2 -2
- package/esm2015/lib/shared/components/nuxeo-dialog/services/nuxeo-dialog.service.js +1 -1
- package/esm2015/lib/shared/components/read-more/read-more.component.js +1 -1
- package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +1 -1
- package/esm2015/lib/shared/components/spinner/spinner.component.js +1 -1
- package/esm2015/lib/shared/components/user-card/user-card.component.js +1 -1
- package/esm2015/lib/shared/constants/editor-config-type.js +1 -1
- package/esm2015/lib/shared/constants/index.js +1 -1
- package/esm2015/lib/shared/directives/copy-to-clipboard.directive.js +1 -1
- package/esm2015/lib/shared/directives/element-height.directive.js +1 -1
- package/esm2015/lib/shared/directives/fluid-height.directive.js +1 -1
- package/esm2015/lib/shared/directives/index.js +1 -1
- package/esm2015/lib/shared/evaluator/evaluator.js +1 -1
- package/esm2015/lib/shared/evaluator/index.js +1 -1
- package/esm2015/lib/shared/evaluator/types.js +1 -1
- package/esm2015/lib/shared/index.js +1 -1
- package/esm2015/lib/shared/libraryShared.module.js +1 -1
- package/esm2015/lib/shared/models/index.js +1 -1
- package/esm2015/lib/shared/models/mapper/index.js +1 -1
- package/esm2015/lib/shared/models/mapper/nuxeo-mapper.js +1 -1
- package/esm2015/lib/shared/models/ndf-request.model.js +1 -1
- package/esm2015/lib/shared/models/nuxeo-response.model.js +1 -1
- package/esm2015/lib/shared/models/task.model.js +1 -1
- package/esm2015/lib/shared/models/type-helpers.js +1 -1
- package/esm2015/lib/shared/services/base/base-editor-config.service.js +1 -1
- package/esm2015/lib/shared/services/base/base.service.js +9 -10
- package/esm2015/lib/shared/services/base/cache-base.service.js +1 -1
- package/esm2015/lib/shared/services/base/config/default-ttl-config.js +1 -1
- package/esm2015/lib/shared/services/base/config/index.js +1 -1
- package/esm2015/lib/shared/services/base/constants/default-cache-options.js +1 -1
- package/esm2015/lib/shared/services/base/constants/index.js +1 -1
- package/esm2015/lib/shared/services/base/http-base.service.js +1 -1
- package/esm2015/lib/shared/services/base/index.js +1 -1
- package/esm2015/lib/shared/services/base/models/cache-info-model.js +1 -1
- package/esm2015/lib/shared/services/base/models/http-options.model.js +1 -1
- package/esm2015/lib/shared/services/base/models/index.js +1 -1
- package/esm2015/lib/shared/services/base/models/operation-options.model.js +1 -1
- package/esm2015/lib/shared/services/base/models/query-options.model.js +1 -1
- package/esm2015/lib/shared/services/base/models/request-options.model.js +1 -1
- package/esm2015/lib/shared/services/base/override-token.service.js +1 -1
- package/esm2015/lib/shared/services/index.js +1 -1
- package/esm2015/lib/shared-services/apis-errors-messages.service.js +1 -1
- package/esm2015/lib/shared-services/dialog-mangment.service.js +1 -1
- package/esm2015/lib/shared-services/dynamic-form.service.js +1 -1
- package/esm2015/lib/shared-services/file-manager.adapter.js +1 -1
- package/esm2015/lib/shared-services/file-manager.service.js +1 -1
- package/esm2015/lib/shared-services/global-admin.service.js +1 -1
- package/esm2015/lib/shared-services/global-pdftron.service.js +1 -1
- package/esm2015/lib/shared-services/mainfolder.service.js +1 -1
- package/esm2015/lib/shared-services/publishing-document.service.js +1 -1
- package/esm2015/lib/shared-services/recently-viewed.service.js +1 -1
- package/esm2015/lib/shared-services/shared-docs.service.js +1 -1
- package/esm2015/lib/shared-services/shared-services.module.js +1 -1
- package/esm2015/lib/shared-services/upload-file.service.js +1 -1
- package/esm2015/lib/shared-services/upload-managment.service.js +1 -1
- package/esm2015/lib/shared-services/user.service.js +1 -1
- package/esm2015/nuxeo-development-framework.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/fesm2015/nuxeo-development-framework.js +1625 -1369
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/diagrams/components/custom-connection.component.d.ts +1 -1
- package/lib/components/dynamic-form/components/form-wrappers/base-edit-form/base-edit-form.d.ts +1 -1
- package/lib/components/reports/charts/components/base-chart.component.d.ts +1 -1
- package/lib/components/reports/ndf-reports/base/base-chart.d.ts +1 -1
- package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +2 -18
- package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts +1 -1
- package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +14 -6
- package/lib/components/reports/ndf-reports/directives/empty-content-template.directive.d.ts +9 -0
- package/lib/components/reports/ndf-reports/directives/header-panel-template.directive.d.ts +9 -0
- package/lib/components/reports/ndf-reports/directives/index.d.ts +2 -0
- package/lib/components/reports/ndf-reports/models/common.d.ts +9 -1
- package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts +4 -5
- package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +4 -1
- package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +29 -26
- package/lib/components/reports/ndf-reports/pipes/check-condition.pipe.d.ts +8 -0
- package/lib/components/reports/ndf-reports/public-api.d.ts +5 -4
- package/lib/components/reports/ndf-reports/services/base-chart-builder.service.d.ts +14 -14
- package/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.d.ts +4 -2
- package/lib/components/reports/ndf-reports/services/index.d.ts +11 -10
- package/lib/components/reports/ndf-reports/services/ndf-reports.service.d.ts +15 -6
- package/lib/components/reports/ndf-reports/services/reports-hooks.service.d.ts +24 -0
- package/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.d.ts +23 -9
- package/lib/components/tables/dynamic-table/public-api.d.ts +2 -1
- package/lib/components/tables/dynamic-table/services/table-hooks.service.d.ts +13 -0
- package/lib/components/tables/ndf-table/components/table-export/table-export.component.d.ts +1 -1
- package/lib/components/tables/ndf-table/models/table-options.d.ts +1 -1
- package/lib/shared/services/base/base.service.d.ts +4 -2
- package/package.json +1 -1
package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js
CHANGED
|
@@ -1,37 +1,40 @@
|
|
|
1
1
|
import { __rest } from "tslib";
|
|
2
|
-
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
3
|
-
import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { animate, state, style, transition, trigger, } from '@angular/animations';
|
|
3
|
+
import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
|
|
4
4
|
import _ from 'lodash';
|
|
5
|
+
import { BehaviorSubject, combineLatest, forkJoin, from, fromEvent, of, ReplaySubject, } from 'rxjs';
|
|
6
|
+
import { filter, finalize, map, switchMap, takeUntil, tap, } from 'rxjs/operators';
|
|
5
7
|
import { DestroySubject, FluidHeightDirective } from '../../../../../shared';
|
|
6
|
-
import { BehaviorSubject, combineLatest, forkJoin, fromEvent, of, ReplaySubject } from 'rxjs';
|
|
7
|
-
import { distinctUntilChanged, filter, finalize, map, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
8
|
-
import { CUSTOM_TEMPLATE } from '../../../../ndf-filters';
|
|
9
|
-
import { mapToNdfTableConfig, prepareNdfTableFilters } from '../../utilities';
|
|
10
8
|
import { NDF_EDITOR_TYPE } from '../../../../ndf-config-editor/constants';
|
|
9
|
+
import { CUSTOM_TEMPLATE, } from '../../../../ndf-filters';
|
|
10
|
+
import { EMPTY_CONTENT_TEMPLATE, HEADER_PANEL_TEMPLATE, } from '../../directives';
|
|
11
|
+
import { mapToNdfTableConfig, prepareNdfTableFilters } from '../../utilities';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "@ngx-translate/core";
|
|
13
14
|
import * as i2 from "../../../../ndf-filters";
|
|
14
15
|
import * as i3 from "../../services";
|
|
15
16
|
import * as i4 from "@angular/router";
|
|
16
|
-
import * as i5 from "
|
|
17
|
-
import * as i6 from "
|
|
18
|
-
import * as i7 from "@angular/material/
|
|
19
|
-
import * as i8 from "
|
|
20
|
-
import * as i9 from "
|
|
17
|
+
import * as i5 from "@angular/material/progress-spinner";
|
|
18
|
+
import * as i6 from "../../../../ndf-filters/containers/filters-panel/filters-panel.component";
|
|
19
|
+
import * as i7 from "@angular/material/button";
|
|
20
|
+
import * as i8 from "@angular/material/icon";
|
|
21
|
+
import * as i9 from "../../../../ndf-config-editor/public/editor-navigate-button";
|
|
21
22
|
import * as i10 from "../ndf-report/ndf-report.component";
|
|
22
23
|
import * as i11 from "../../../../tables/ndf-table/containers/ndf-table/ndf-table.component";
|
|
23
|
-
import * as i12 from "
|
|
24
|
-
import * as i13 from "
|
|
25
|
-
import * as i14 from "@angular/
|
|
24
|
+
import * as i12 from "../../../../../shared/directives/fluid-height.directive";
|
|
25
|
+
import * as i13 from "@angular/cdk/bidi";
|
|
26
|
+
import * as i14 from "@angular/common";
|
|
26
27
|
import * as i15 from "../../directives/scrollable-div.directive";
|
|
27
28
|
import * as i16 from "../../../../tables/ndf-table/directives/search.directive";
|
|
28
29
|
export const slideAnimation = trigger('slideInOut', [
|
|
29
|
-
state('closed', style({
|
|
30
|
+
state('closed', style({
|
|
31
|
+
transform: 'translateX(var(--ndf-reports-details-translateX, -100%))',
|
|
32
|
+
})),
|
|
30
33
|
state('open', style({ transform: 'translateX(0)' })),
|
|
31
|
-
transition('closed <=> open', animate('200ms ease-out'))
|
|
34
|
+
transition('closed <=> open', animate('200ms ease-out')),
|
|
32
35
|
]);
|
|
33
36
|
export class NdfReportsComponent extends DestroySubject {
|
|
34
|
-
constructor(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _configurationService, _router, _ngZone) {
|
|
37
|
+
constructor(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _configurationService, _router, _ngZone, _reportsHooksService) {
|
|
35
38
|
super();
|
|
36
39
|
this._translateService = _translateService;
|
|
37
40
|
this._filtersMapper = _filtersMapper;
|
|
@@ -44,12 +47,12 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
44
47
|
this._configurationService = _configurationService;
|
|
45
48
|
this._router = _router;
|
|
46
49
|
this._ngZone = _ngZone;
|
|
50
|
+
this._reportsHooksService = _reportsHooksService;
|
|
47
51
|
this._isHeightUpdated = false;
|
|
48
52
|
this.direction = 'rtl';
|
|
49
53
|
this.isPanelOpened = false;
|
|
50
54
|
this.isLoadingResult = false;
|
|
51
55
|
this.isExpanded = false;
|
|
52
|
-
// activeQuery: Record<string, any> = {};
|
|
53
56
|
this._activeQuerySub = new BehaviorSubject(null);
|
|
54
57
|
this._activeFiltersQuerySub = new ReplaySubject();
|
|
55
58
|
this.activeFiltersQuery$ = this._activeFiltersQuerySub.asObservable();
|
|
@@ -57,6 +60,7 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
57
60
|
this.reportConfig$ = this._configSubject.asObservable();
|
|
58
61
|
this._filtersCriteriaSubject = new BehaviorSubject(null);
|
|
59
62
|
this.filtersParams$ = this._filtersCriteriaSubject.asObservable();
|
|
63
|
+
this._triggerFiltersSub = new BehaviorSubject(true);
|
|
60
64
|
this._detailsFiltersSubject = new BehaviorSubject(null);
|
|
61
65
|
this.detailsFiltersParams$ = this._detailsFiltersSubject.asObservable();
|
|
62
66
|
this._reportDetailsSubject = new BehaviorSubject(null);
|
|
@@ -70,7 +74,24 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
70
74
|
this.trackByFn = (_, report) => {
|
|
71
75
|
return report.id;
|
|
72
76
|
};
|
|
73
|
-
this.
|
|
77
|
+
this.triggerUpdate = () => {
|
|
78
|
+
this._triggerFiltersSub.next(true);
|
|
79
|
+
};
|
|
80
|
+
this.resetFilters = () => {
|
|
81
|
+
this._resetQueryAndFiltersCriteria();
|
|
82
|
+
};
|
|
83
|
+
this.filterChanged = (criteria) => {
|
|
84
|
+
if (_.isEqual(this.activeQuery, criteria)) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.onQueryChange.emit(criteria);
|
|
88
|
+
this._updateActiveQuery(criteria);
|
|
89
|
+
const _date = this._prepareMappedQuery(criteria, this.filtersConfig.mode);
|
|
90
|
+
this._filtersCriteriaSubject.next(_date);
|
|
91
|
+
};
|
|
92
|
+
this._translateService.onLangChange
|
|
93
|
+
.pipe(takeUntil(this.destroy$))
|
|
94
|
+
.subscribe((res) => {
|
|
74
95
|
this.direction = res.lang === 'ar' ? 'rtl' : 'ltr';
|
|
75
96
|
});
|
|
76
97
|
}
|
|
@@ -99,6 +120,12 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
99
120
|
this.reportsData$ = this._prepareReports();
|
|
100
121
|
this._handleKeyboardEvent();
|
|
101
122
|
}
|
|
123
|
+
callLoadCondition() {
|
|
124
|
+
if (this.loadCondition && typeof this.loadCondition == 'function') {
|
|
125
|
+
return this.loadCondition(this.activeQuery);
|
|
126
|
+
}
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
102
129
|
ngOnChanges(changes) {
|
|
103
130
|
var _a, _b;
|
|
104
131
|
const reportsKey = (_a = changes.reportsKey) === null || _a === void 0 ? void 0 : _a.currentValue;
|
|
@@ -142,15 +169,6 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
142
169
|
printAll() {
|
|
143
170
|
window.print();
|
|
144
171
|
}
|
|
145
|
-
filterChanged(criteria) {
|
|
146
|
-
if (_.isEqual(this.activeQuery, criteria)) {
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
this.onQueryChange.emit(criteria);
|
|
150
|
-
this._updateActiveQuery(criteria);
|
|
151
|
-
const _date = this._prepareMappedQuery(criteria, this.filtersConfig.mode);
|
|
152
|
-
this._filtersCriteriaSubject.next(_date);
|
|
153
|
-
}
|
|
154
172
|
onContentScroll(isScrolling) {
|
|
155
173
|
this._stateService.onContentScroll(isScrolling);
|
|
156
174
|
if (isScrolling && !this._isHeightUpdated) {
|
|
@@ -178,7 +196,9 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
178
196
|
return data;
|
|
179
197
|
}
|
|
180
198
|
return _.merge(data, {
|
|
181
|
-
options: {
|
|
199
|
+
options: {
|
|
200
|
+
filters: prepareNdfTableFilters((_d = data === null || data === void 0 ? void 0 : data.options) === null || _d === void 0 ? void 0 : _d.filters, this.config, data),
|
|
201
|
+
},
|
|
182
202
|
});
|
|
183
203
|
}))
|
|
184
204
|
: of(mapToNdfTableConfig(this.config, reportConfig.details));
|
|
@@ -186,7 +206,7 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
186
206
|
queueMicrotask(() => {
|
|
187
207
|
this._reportDetailsSubject.next({
|
|
188
208
|
config,
|
|
189
|
-
label: reportConfig.label
|
|
209
|
+
label: reportConfig.label,
|
|
190
210
|
});
|
|
191
211
|
});
|
|
192
212
|
});
|
|
@@ -213,8 +233,9 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
213
233
|
_prepareReports() {
|
|
214
234
|
this.isLoadingResult = true;
|
|
215
235
|
return combineLatest([
|
|
216
|
-
this.filtersParams
|
|
217
|
-
this.reportConfig
|
|
236
|
+
this.filtersParams$,
|
|
237
|
+
this.reportConfig$,
|
|
238
|
+
this._triggerFiltersSub,
|
|
218
239
|
]).pipe(tap(() => {
|
|
219
240
|
this.isLoadingResult = true;
|
|
220
241
|
this._cdr.detectChanges();
|
|
@@ -227,7 +248,7 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
227
248
|
if (!criteria && !!config.activeQuery) {
|
|
228
249
|
_payload = this.prepareCriteriaPayload(config.activeQuery);
|
|
229
250
|
}
|
|
230
|
-
const data$ = this._ndfReportsService.
|
|
251
|
+
const data$ = from(this._reportsHooksService.executeBeforeSubmit(Object.assign(Object.assign({}, this._ndfReportsService.prepareRequest(request, criteria)), { request }))).pipe(switchMap((res) => this._ndfReportsService.getData(request, res)), switchMap((reports) => {
|
|
231
252
|
return this._transformService.prepareData(reports, config);
|
|
232
253
|
}), finalize(() => {
|
|
233
254
|
this.isLoadingResult = false;
|
|
@@ -238,7 +259,7 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
238
259
|
this._prepareAggregations(response === null || response === void 0 ? void 0 : response.aggregations);
|
|
239
260
|
return {
|
|
240
261
|
config,
|
|
241
|
-
response
|
|
262
|
+
response,
|
|
242
263
|
};
|
|
243
264
|
}));
|
|
244
265
|
}
|
|
@@ -255,17 +276,17 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
255
276
|
return mode == 'payload'
|
|
256
277
|
? this.prepareCriteriaPayload(criteria)
|
|
257
278
|
: {
|
|
258
|
-
params: this._stringifyValues(criteria)
|
|
279
|
+
params: this._stringifyValues(criteria),
|
|
259
280
|
};
|
|
260
281
|
}
|
|
261
282
|
_updateActiveQuery(query) {
|
|
262
283
|
this._activeQuerySub.next({
|
|
263
284
|
previous: this.activeQuery,
|
|
264
|
-
current: query
|
|
285
|
+
current: query,
|
|
265
286
|
});
|
|
266
287
|
this._activeFiltersQuerySub.next({
|
|
267
288
|
query,
|
|
268
|
-
emitEvent: false
|
|
289
|
+
emitEvent: false,
|
|
269
290
|
});
|
|
270
291
|
}
|
|
271
292
|
_prepareAggregations(aggregations) {
|
|
@@ -338,7 +359,7 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
338
359
|
else if (!this.activeQuery || Object.keys(this.activeQuery).length == 0) {
|
|
339
360
|
this._resetQueryAndFiltersCriteria();
|
|
340
361
|
}
|
|
341
|
-
this.isPanelOpened =
|
|
362
|
+
this.isPanelOpened = !!(config === null || config === void 0 ? void 0 : config.filters.visible);
|
|
342
363
|
this.isDetailsOpened = false;
|
|
343
364
|
this._reportDetailsSubject.next(null);
|
|
344
365
|
}
|
|
@@ -347,8 +368,8 @@ export class NdfReportsComponent extends DestroySubject {
|
|
|
347
368
|
this._filtersCriteriaSubject.next(null);
|
|
348
369
|
}
|
|
349
370
|
}
|
|
350
|
-
NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: i2.FiltersMapperService }, { token: i3.NdfReportsService }, { token: i3.ChartManagerService }, { token: i3.ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: i2.FilterQueryService }, { token: i3.ReportsStateService }, { token: i3.ReportConfigurationService }, { token: i4.Router }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
351
|
-
NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, queries: [{ propertyName: "filterCustomTemplate", first: true, predicate: CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n\t*ngIf=\"reportsData$ | async as reports\"\r\n\tclass=\"ndf-reports__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n>\r\n\t<div class=\"ndf-reports__panel print:hidden\" *ngIf=\"!!filtersConfig?.fields?.length\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig?.fields\"\r\n\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\tclass=\"ndf-reports__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\r\n\t<div class=\"ndf-reports__content\" (scrolled)=\"onContentScroll($event)\">\r\n\t\t<div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<app-editor-button\r\n\t\t\t\t*ngIf=\"jsonEditorEnabled && reportsKey\"\r\n\t\t\t\t[key]=\"reportsKey\"\r\n\t\t\t\t[type]=\"editorType\"\r\n\t\t\t></app-editor-button>\r\n\t\t\t<button mat-stroked-button *ngIf=\"config?.options?.print\" class=\"print-button\" (click)=\"printAll()\">\r\n\t\t\t\t<mat-icon> print</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<mat-spinner *ngIf=\"isLoadingResult\" class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n\r\n\t\t<div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n\t\t\t<app-ndf-report\r\n\t\t\t\t*ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n\t\t\t\t[config]=\"config\"\r\n\t\t\t\t[data]=\"reports?.response\"\r\n\t\t\t\t[criteria]=\"filtersParams$ | async\"\r\n\t\t\t\t[direction]=\"direction\"\r\n\t\t\t\t[attr.data-width]=\"config?.layout?.width || 4\"\r\n\t\t\t\t[attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n\t\t\t\t[attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n\t\t\t\t[attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n\t\t\t\t[class.wide]=\"config?.layout?.width >= 6\"\r\n [style]=\"config?.layout?.style\"\r\n\t\t\t\tclass=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n\t\t\t\t(onNavigate)=\"onNavigate($event)\"\r\n\t\t\t\t(onOpen)=\"openReportDetails($event, config)\"\r\n\t\t\t></app-ndf-report>\r\n\t\t</div>\r\n\t</div>\r\n\t<div\r\n\t\tclass=\"ndf-reports__details print:hidden\"\r\n\t\t[class.opened]=\"showDetails\"\r\n\t\t[@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n\t\t(@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n\t>\r\n\t\t<app-ndf-table\r\n\t\t\t*ngIf=\"reportDetails$ | async as report\"\r\n\t\t\t[config]=\"report.config\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\t[customCriteria]=\"detailsFiltersParams$ | async\"\r\n\t\t>\r\n\t\t\t<ng-template searchTableTemplate let-toggle=\"togglePanel\">\r\n\t\t\t\t<div class=\"ndf-reports__details__header flex gap-2\" >\r\n\t\t\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"toggle()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button mat-stroked-button class=\"close-button\" (click)=\"closeDetailsPanel()\">\r\n\t\t\t\t\t\t<mat-icon> close</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t{{ report.label | translate }}\r\n\t\t\t\t</h3>\r\n\t\t\t</ng-template>\r\n\t\t</app-ndf-table>\r\n\t</div>\r\n</div>\r\n\r\n", styles: [":host{--table-dev-height: var(--ndf-reports-table-dev-height, auto);--report-height: var(--ndf-reports-report-height, 430px);--cp-height: var(--report-height);padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}@media print{:host{--report-height: auto;--cp-print-min-height: 80mm;padding:0}}.ndf-reports *{box-sizing:border-box;min-height:0}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-pis: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-pis, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible;width:100%;margin:0;padding:0;page-break-after:avoid}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 10mm;--reports-grid-margin-top: 0;padding:0;margin:0;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: i5.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i9.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i10.NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: i11.NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i13.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i14.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i15.ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i16.SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i12.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
|
|
371
|
+
NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: i2.FiltersMapperService }, { token: i3.NdfReportsService }, { token: i3.ChartManagerService }, { token: i3.ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: i2.FilterQueryService }, { token: i3.ReportsStateService }, { token: i3.ReportConfigurationService }, { token: i4.Router }, { token: i0.NgZone }, { token: i3.ReportsHooksService }], target: i0.ɵɵFactoryTarget.Component });
|
|
372
|
+
NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", loadCondition: "loadCondition", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, queries: [{ propertyName: "filterCustomTemplate", first: true, predicate: CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "headerPanelTemplate", first: true, predicate: HEADER_PANEL_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "emptyContentTemplate", first: true, predicate: EMPTY_CONTENT_TEMPLATE, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"ndf-reports__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n>\r\n <div\r\n class=\"absolute flex justify-center items-center loading-result\"\r\n *ngIf=\"isLoadingResult && callLoadCondition()\"\r\n >\r\n <mat-spinner class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n </div>\r\n\r\n <div class=\"ndf-reports__panel print:hidden\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"headerPanelTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: aggregations,\r\n filterChanged: filterChanged,\r\n activeQuery: activeQuery,\r\n triggerUpdate: triggerUpdate,\r\n reset: resetFilters,\r\n config: config\r\n }\"\r\n ></ng-container>\r\n\r\n <app-filters-panel\r\n *ngIf=\"!!filtersConfig?.fields?.length && callLoadCondition()\"\r\n [fields]=\"filtersConfig?.fields\"\r\n [aggregations]=\"aggregations\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n class=\"ndf-reports__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n\r\n <ng-container *ngIf=\"callLoadCondition(); else emptyContent\">\r\n <div\r\n class=\"ndf-reports__content\"\r\n (scrolled)=\"onContentScroll($event)\"\r\n *ngIf=\"reportsData$ | async as reports\"\r\n >\r\n <div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n <button\r\n mat-stroked-button\r\n class=\"toggle-button\"\r\n (click)=\"togglePanel()\"\r\n >\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && reportsKey\"\r\n [key]=\"reportsKey\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"config?.options?.print\"\r\n class=\"print-button\"\r\n (click)=\"printAll()\"\r\n >\r\n <mat-icon> print</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n <app-ndf-report\r\n *ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n [config]=\"config\"\r\n [data]=\"reports?.response\"\r\n [criteria]=\"filtersParams$ | async\"\r\n [direction]=\"direction\"\r\n [attr.data-width]=\"config?.layout?.width || 4\"\r\n [attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n [attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n [attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n [class.wide]=\"config?.layout?.width >= 6\"\r\n [style]=\"config?.layout?.style\"\r\n class=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n (onNavigate)=\"onNavigate($event)\"\r\n (onOpen)=\"openReportDetails($event, config)\"\r\n ></app-ndf-report>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"ndf-reports__details print:hidden\"\r\n [class.opened]=\"showDetails\"\r\n [@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n (@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n >\r\n <app-ndf-table\r\n *ngIf=\"reportDetails$ | async as report\"\r\n [config]=\"report.config\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n [customCriteria]=\"detailsFiltersParams$ | async\"\r\n >\r\n <ng-template searchTableTemplate let-toggle=\"togglePanel\">\r\n <div class=\"ndf-reports__details__header flex gap-2\">\r\n <button mat-stroked-button class=\"toggle-button\" (click)=\"toggle()\">\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"close-button\"\r\n (click)=\"closeDetailsPanel()\"\r\n >\r\n <mat-icon> close</mat-icon>\r\n </button>\r\n </div>\r\n <h3>\r\n {{ report.label | translate }}\r\n </h3>\r\n </ng-template>\r\n </app-ndf-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #emptyContent>\r\n <div class=\"ndf-reports__content flex items-center flex-grow-1\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"emptyContentTemplate || defaultEmptyContent\"\r\n ></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultEmptyContent>\r\n <div class=\"no-data mt-26\">\r\n {{ 'noData' | translate }}\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--table-dev-height: var(--ndf-reports-table-dev-height, auto);--report-height: var(--ndf-reports-report-height, 430px);--cp-height: var(--report-height);padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}@media print{:host{--report-height: auto;--cp-print-min-height: 80mm;padding:0}}.loading-result{background:var(--loading-result-background, rgba(255, 255, 255, .5));-webkit-backdrop-filter:var(--loading-result-filter, blur(3px));backdrop-filter:var(--loading-result-filter, blur(3px));width:100%;height:100%;z-index:3}.ndf-reports *{box-sizing:border-box;min-height:0}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc( var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5) ));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-pis: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-pis, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible;width:100%;margin:0;padding:0;page-break-after:avoid}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 10mm;--reports-grid-margin-top: 0;padding:0;margin:0;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: i5.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: i6.FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i10.NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: i11.NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i12.FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i13.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i15.ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i16.SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i14.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
|
|
352
373
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, decorators: [{
|
|
353
374
|
type: Component,
|
|
354
375
|
args: [{
|
|
@@ -357,11 +378,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
357
378
|
styleUrls: ['./ndf-reports.component.scss'],
|
|
358
379
|
host: {
|
|
359
380
|
class: 'ndf-reports',
|
|
360
|
-
'[dir]': 'direction'
|
|
381
|
+
'[dir]': 'direction',
|
|
361
382
|
},
|
|
362
|
-
animations: [slideAnimation]
|
|
383
|
+
animations: [slideAnimation],
|
|
363
384
|
}]
|
|
364
|
-
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.FiltersMapperService }, { type: i3.NdfReportsService }, { type: i3.ChartManagerService }, { type: i3.ReportTransformService }, { type: i0.ChangeDetectorRef }, { type: i2.FilterQueryService }, { type: i3.ReportsStateService }, { type: i3.ReportConfigurationService }, { type: i4.Router }, { type: i0.NgZone }]; }, propDecorators: { fluidDirective: [{
|
|
385
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.FiltersMapperService }, { type: i3.NdfReportsService }, { type: i3.ChartManagerService }, { type: i3.ReportTransformService }, { type: i0.ChangeDetectorRef }, { type: i2.FilterQueryService }, { type: i3.ReportsStateService }, { type: i3.ReportConfigurationService }, { type: i4.Router }, { type: i0.NgZone }, { type: i3.ReportsHooksService }]; }, propDecorators: { fluidDirective: [{
|
|
365
386
|
type: ViewChild,
|
|
366
387
|
args: [FluidHeightDirective]
|
|
367
388
|
}], jsonEditorEnabled: [{
|
|
@@ -370,6 +391,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
370
391
|
type: Input
|
|
371
392
|
}], navigateRoute: [{
|
|
372
393
|
type: Input
|
|
394
|
+
}], loadCondition: [{
|
|
395
|
+
type: Input
|
|
373
396
|
}], config: [{
|
|
374
397
|
type: Input
|
|
375
398
|
}], onQueryChange: [{
|
|
@@ -377,5 +400,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
377
400
|
}], filterCustomTemplate: [{
|
|
378
401
|
type: ContentChild,
|
|
379
402
|
args: [CUSTOM_TEMPLATE, { read: TemplateRef }]
|
|
403
|
+
}], headerPanelTemplate: [{
|
|
404
|
+
type: ContentChild,
|
|
405
|
+
args: [HEADER_PANEL_TEMPLATE, { read: TemplateRef }]
|
|
406
|
+
}], emptyContentTemplate: [{
|
|
407
|
+
type: ContentChild,
|
|
408
|
+
args: [EMPTY_CONTENT_TEMPLATE, { read: TemplateRef }]
|
|
380
409
|
}] } });
|
|
381
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9jb250YWluZXJzL25kZi1yZXBvcnRzL25kZi1yZXBvcnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvY29udGFpbmVycy9uZGYtcmVwb3J0cy9uZGYtcmVwb3J0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBa0IsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakcsT0FBTyxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFLTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4RyxPQUFPLEVBRU4sZUFBZSxFQUtmLE1BQU0seUJBQXlC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aW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uRXZlbnQsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7XHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdENvbnRlbnRDaGlsZCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0Tmdab25lLFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRPbkRlc3Ryb3ksXHJcblx0T25Jbml0LFxyXG5cdE91dHB1dCxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdFRlbXBsYXRlUmVmLFxyXG5cdFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IERlc3Ryb3lTdWJqZWN0LCBGbHVpZEhlaWdodERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZm9ya0pvaW4sIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmluYWxpemUsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEFwaVJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IE5kZlRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vdGFibGVzJztcclxuaW1wb3J0IHtcclxuXHRBZ2dyZWdhdGlvblJlc3BvbnNlLFxyXG5cdENVU1RPTV9URU1QTEFURSxcclxuXHRGaWVsZENvbmZpZ01vZGVsLFxyXG5cdEZpbHRlclF1ZXJ5U2VydmljZSxcclxuXHRGaWx0ZXJzTWFwcGVyU2VydmljZSxcclxuXHRGb3JtUXVlcnlNb2RlbFxyXG59IGZyb20gJy4uLy4uLy4uLy4uL25kZi1maWx0ZXJzJztcclxuaW1wb3J0IHsgQ3JpdGVyaWFNb2RlbCwgTmRmUmVwb3J0c0NvbmZpZywgUmVwb3J0Q29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG5cdENoYXJ0TWFuYWdlclNlcnZpY2UsXHJcblx0TmRmUmVwb3J0c1NlcnZpY2UsXHJcblx0UmVwb3J0Q29uZmlndXJhdGlvblNlcnZpY2UsXHJcblx0UmVwb3J0c1N0YXRlU2VydmljZSxcclxuXHRSZXBvcnRUcmFuc2Zvcm1TZXJ2aWNlXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBtYXBUb05kZlRhYmxlQ29uZmlnLCBwcmVwYXJlTmRmVGFibGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgTkRGX0VESVRPUl9UWVBFIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWNvbmZpZy1lZGl0b3IvY29uc3RhbnRzJztcclxuXHJcbmV4cG9ydCBjb25zdCBzbGlkZUFuaW1hdGlvbiA9IHRyaWdnZXIoJ3NsaWRlSW5PdXQnLCBbXHJcblx0c3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh2YXIoLS1uZGYtcmVwb3J0cy1kZXRhaWxzLXRyYW5zbGF0ZVgsIC0xMDAlKSknIH0pKSxcclxuXHRzdGF0ZSgnb3BlbicsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScgfSkpLFxyXG5cdHRyYW5zaXRpb24oJ2Nsb3NlZCA8PT4gb3BlbicsIGFuaW1hdGUoJzIwMG1zIGVhc2Utb3V0JykpXHJcbl0pO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtbmRmLXJlcG9ydHMnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9uZGYtcmVwb3J0cy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbmRmLXJlcG9ydHMuY29tcG9uZW50LnNjc3MnXSxcclxuXHRob3N0OiB7XHJcblx0XHRjbGFzczogJ25kZi1yZXBvcnRzJyxcclxuXHRcdCdbZGlyXSc6ICdkaXJlY3Rpb24nXHJcblx0fSxcclxuXHRhbmltYXRpb25zOiBbc2xpZGVBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZSZXBvcnRzQ29tcG9uZW50IGV4dGVuZHMgRGVzdHJveVN1YmplY3QgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuXHRAVmlld0NoaWxkKEZsdWlkSGVpZ2h0RGlyZWN0aXZlKSBmbHVpZERpcmVjdGl2ZTogRmx1aWRIZWlnaHREaXJlY3RpdmU7XHJcblx0X2lzSGVpZ2h0VXBkYXRlZCA9IGZhbHNlO1xyXG5cdGRpcmVjdGlvbjogRGlyZWN0aW9uID0gJ3J0bCc7XHJcblx0aXNQYW5lbE9wZW5lZCA9IGZhbHNlO1xyXG5cdGlzTG9hZGluZ1Jlc3VsdCA9IGZhbHNlO1xyXG5cdHJlcG9ydHNEYXRhJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cdGlzRXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcblx0Ly8gYWN0aXZlUXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfYWN0aXZlUXVlcnlTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcclxuXHRcdHByZXZpb3VzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdFx0Y3VycmVudDogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHR9PihudWxsKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfYWN0aXZlRmlsdGVyc1F1ZXJ5U3ViID0gbmV3IFJlcGxheVN1YmplY3Q8Rm9ybVF1ZXJ5TW9kZWw+KCk7XHJcblx0cmVhZG9ubHkgYWN0aXZlRmlsdGVyc1F1ZXJ5JCA9IHRoaXMuX2FjdGl2ZUZpbHRlcnNRdWVyeVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmRmUmVwb3J0c0NvbmZpZz4obnVsbCk7XHJcblx0cmVhZG9ubHkgcmVwb3J0Q29uZmlnJCA9IHRoaXMuX2NvbmZpZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnNDcml0ZXJpYVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENyaXRlcmlhTW9kZWw+KG51bGwpO1xyXG5cdHJlYWRvbmx5IGZpbHRlcnNQYXJhbXMkID0gdGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfZGV0YWlsc0ZpbHRlcnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDcml0ZXJpYU1vZGVsPihudWxsKTtcclxuXHRyZWFkb25seSBkZXRhaWxzRmlsdGVyc1BhcmFtcyQgPSB0aGlzLl9kZXRhaWxzRmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHByaXZhdGUgX3JlcG9ydERldGFpbHNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7XHJcblx0XHRsYWJlbD86IHN0cmluZztcclxuXHRcdGNvbmZpZzogTmRmVGFibGVDb25maWc7XHJcblx0fT4obnVsbCk7XHJcblxyXG5cdGdldCBhY3RpdmVRdWVyeSgpIHtcclxuXHRcdHJldHVybiB0aGlzLl9hY3RpdmVRdWVyeVN1Yi5nZXRWYWx1ZSgpPy5jdXJyZW50O1xyXG5cdH1cclxuXHJcblx0cmVwb3J0RGV0YWlscyQgPSB0aGlzLl9yZXBvcnREZXRhaWxzU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcblx0YWdncmVnYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBBZ2dyZWdhdGlvblJlc3BvbnNlPjtcclxuXHJcblx0Z2V0IHNob3dEZXRhaWxzKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuICEhdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QuZ2V0VmFsdWUoKTtcclxuXHR9XHJcblxyXG5cdGlzRGV0YWlsc09wZW5lZCA9IGZhbHNlO1xyXG5cclxuXHRnZXQgZmlsdGVyc0NvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbmZpZz8uZmlsdGVycztcclxuXHR9XHJcblxyXG5cdGdldCByZXBvcnRDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb25maWc/LnJlcG9ydHM7XHJcblx0fVxyXG5cclxuXHRASW5wdXQoKSBqc29uRWRpdG9yRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIHJlcG9ydHNLZXk6IHN0cmluZztcclxuXHRlZGl0b3JUeXBlID0gTkRGX0VESVRPUl9UWVBFLlJFUE9SVFM7XHJcblxyXG5cdEBJbnB1dCgpIG5hdmlnYXRlUm91dGU6IHN0cmluZ1tdID0gW107XHJcblxyXG5cdHByaXZhdGUgX2lzQ29uZmlnQ2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuXHRwcml2YXRlIF9jb25maWc6IE5kZlJlcG9ydHNDb25maWc7XHJcblx0QElucHV0KCkgc2V0IGNvbmZpZyhjb25maWc6IE5kZlJlcG9ydHNDb25maWcpIHtcclxuXHRcdHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuXHR9XHJcblxyXG5cdGdldCBjb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY29uZmlnU3ViamVjdC5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0QE91dHB1dCgpIG9uUXVlcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cdEBDb250ZW50Q2hpbGQoQ1VTVE9NX1RFTVBMQVRFLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcblx0ZmlsdGVyQ3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cdHRyYWNrQnlGbiA9IChfOiBudW1iZXIsIHJlcG9ydDogUmVwb3J0Q29uZmlnTW9kZWwpID0+IHtcclxuXHRcdHJldHVybiByZXBvcnQuaWQ7XHJcblx0fTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfZmlsdGVyc01hcHBlcjogRmlsdGVyc01hcHBlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9uZGZSZXBvcnRzU2VydmljZTogTmRmUmVwb3J0c1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9jaGFydEhlbHBlclNlcnZpY2U6IENoYXJ0TWFuYWdlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF90cmFuc2Zvcm1TZXJ2aWNlOiBSZXBvcnRUcmFuc2Zvcm1TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRcdHByaXZhdGUgX2ZpbHRlclF1ZXJ5U2VydmljZTogRmlsdGVyUXVlcnlTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfc3RhdGVTZXJ2aWNlOiBSZXBvcnRzU3RhdGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfY29uZmlndXJhdGlvblNlcnZpY2U6IFJlcG9ydENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXHJcblx0XHRwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZVxyXG5cdCkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHRcdHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHR0aGlzLmRpcmVjdGlvbiA9IHJlcy5sYW5nID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnJlcG9ydHNEYXRhJCA9IHRoaXMuX3ByZXBhcmVSZXBvcnRzKCk7XHJcblx0XHR0aGlzLl9oYW5kbGVLZXlib2FyZEV2ZW50KCk7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRjb25zdCByZXBvcnRzS2V5ID0gY2hhbmdlcy5yZXBvcnRzS2V5Py5jdXJyZW50VmFsdWU7XHJcblx0XHRjb25zdCBjb25maWcgPSBjaGFuZ2VzLmNvbmZpZz8uY3VycmVudFZhbHVlO1xyXG5cclxuXHRcdGlmIChyZXBvcnRzS2V5ICYmIGNvbmZpZykge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGJvdGggcmVwb3J0c0tleSBhbmQgcmVwb3J0cyBDb25maWcgYXQgdGhlIHNhbWUgdGltZS4nKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoY29uZmlnKSB7XHJcblx0XHRcdHRoaXMuX2luaXRSZXBvcnRzQ29uZmlnKGNvbmZpZyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHJlcG9ydHNLZXkpIHtcclxuXHRcdFx0dGhpcy5fbG9hZFJlcG9ydHNDb25maWcocmVwb3J0c0tleSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvbk5hdmlnYXRlKGRhdGE6IHsgcmVwb3J0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0pIHtcclxuXHRcdGNvbnN0IHJlcG9ydCA9IGRhdGE/LnJlcG9ydDtcclxuXHRcdGNvbnN0IF9jdXN0b21Sb3V0ZSA9IHJlcG9ydC5uYXZpZ2F0ZT8ucm91dGUgfHwgW107XHJcblx0XHQvLyBsZXQgcm91dGUgPSBbUk1TX0JBU0UucmVwbGFjZSgvXFwvJC8sICcnKV07XHJcblx0XHRsZXQgcm91dGUgPSB0aGlzLm5hdmlnYXRlUm91dGU7XHJcblx0XHRpZiAoISFfY3VzdG9tUm91dGUubGVuZ3RoKSB7XHJcblx0XHRcdHJvdXRlID0gWy4uLnJvdXRlLCAuLi5fY3VzdG9tUm91dGVdO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XHJcblx0XHRpZiAocmVwb3J0Lm5hdmlnYXRlPy5pbmNsdWRlUGFyYW1zID8/IHRydWUpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlUXVlcnkgfHwge30pLmxlbmd0aCkge1xyXG5cdFx0XHRcdGNvbnN0IGRhdGEgPSB0aGlzLl9maWx0ZXJRdWVyeVNlcnZpY2UuZW5jb2RlUXVlcnkodGhpcy5hY3RpdmVRdWVyeSk7XHJcblx0XHRcdFx0aWYgKGRhdGEpIHtcclxuXHRcdFx0XHRcdHF1ZXJ5UGFyYW1zWydmaWx0ZXJzJ10gPSBkYXRhO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShyb3V0ZSwgeyBxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfSkudGhlbigoKSA9PiB7fSk7XHJcblx0fVxyXG5cclxuXHR0b2dnbGVQYW5lbCgpIHtcclxuXHRcdHRoaXMuaXNQYW5lbE9wZW5lZCA9ICF0aGlzLmlzUGFuZWxPcGVuZWQ7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5fY2hhcnRIZWxwZXJTZXJ2aWNlLnJlc2l6ZUNoYXJ0cygpO1xyXG5cdFx0fSwgNTAwKTtcclxuXHR9XHJcblxyXG5cdHByaW50QWxsKCkge1xyXG5cdFx0d2luZG93LnByaW50KCk7XHJcblx0fVxyXG5cclxuXHRmaWx0ZXJDaGFuZ2VkKGNyaXRlcmlhOiBSZWNvcmQ8YW55LCBhbnk+KSB7XHJcblx0XHRpZiAoXy5pc0VxdWFsKHRoaXMuYWN0aXZlUXVlcnksIGNyaXRlcmlhKSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLm9uUXVlcnlDaGFuZ2UuZW1pdChjcml0ZXJpYSk7XHJcblx0XHR0aGlzLl91cGRhdGVBY3RpdmVRdWVyeShjcml0ZXJpYSk7XHJcblx0XHRjb25zdCBfZGF0ZSA9IHRoaXMuX3ByZXBhcmVNYXBwZWRRdWVyeShjcml0ZXJpYSwgdGhpcy5maWx0ZXJzQ29uZmlnLm1vZGUpO1xyXG5cdFx0dGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5uZXh0KF9kYXRlKTtcclxuXHR9XHJcblxyXG5cdG9uQ29udGVudFNjcm9sbChpc1Njcm9sbGluZzogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0dGhpcy5fc3RhdGVTZXJ2aWNlLm9uQ29udGVudFNjcm9sbChpc1Njcm9sbGluZyk7XHJcblxyXG5cdFx0aWYgKGlzU2Nyb2xsaW5nICYmICF0aGlzLl9pc0hlaWdodFVwZGF0ZWQpIHtcclxuXHRcdFx0dGhpcy5faXNIZWlnaHRVcGRhdGVkID0gdHJ1ZTtcclxuXHRcdFx0dGhpcy5mbHVpZERpcmVjdGl2ZS5zY2hlZHVsZVNldEhlaWdodCgxMDApO1xyXG5cdFx0fSBlbHNlIGlmICghaXNTY3JvbGxpbmcgJiYgdGhpcy5faXNIZWlnaHRVcGRhdGVkKSB7XHJcblx0XHRcdHRoaXMuX2lzSGVpZ2h0VXBkYXRlZCA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmZsdWlkRGlyZWN0aXZlLnNjaGVkdWxlU2V0SGVpZ2h0KDEwMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvcGVuUmVwb3J0RGV0YWlscyhjcml0ZXJpYU1vZGVsOiBDcml0ZXJpYU1vZGVsLCByZXBvcnRDb25maWc6IFJlcG9ydENvbmZpZ01vZGVsKSB7XHJcblx0XHRpZiAoIXJlcG9ydENvbmZpZz8uZGV0YWlscz8uZW5hYmxlZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcGFyYW1zID0gdGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5nZXRWYWx1ZSgpO1xyXG5cdFx0dGhpcy5fZGV0YWlsc0ZpbHRlcnNTdWJqZWN0Lm5leHQocGFyYW1zKTtcclxuXHJcblx0XHR0aGlzLmlzUGFuZWxPcGVuZWQgPSBmYWxzZTtcclxuXHRcdGNvbnN0IHNvdXJjZSA9IHJlcG9ydENvbmZpZz8uZGV0YWlscz8uc291cmNlO1xyXG5cdFx0Y29uc3QgY29uZmlnJCA9XHJcblx0XHRcdHNvdXJjZSAmJiB0eXBlb2Ygc291cmNlID09PSAnc3RyaW5nJ1xyXG5cdFx0XHRcdD8gdGhpcy5fY29uZmlndXJhdGlvblNlcnZpY2UuZ2V0VGFibGVDb25maWd1cmF0aW9uKHNvdXJjZSkucGlwZShcclxuXHRcdFx0XHRcdFx0bWFwKChkYXRhKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCEhZGF0YT8ub3B0aW9ucz8uZmlsdGVycz8uZmllbGRzPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBkYXRhO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gXy5tZXJnZShkYXRhLCB7XHJcblx0XHRcdFx0XHRcdFx0XHRvcHRpb25zOiB7IGZpbHRlcnM6IHByZXBhcmVOZGZUYWJsZUZpbHRlcnMoZGF0YT8ub3B0aW9ucz8uZmlsdGVycywgdGhpcy5jb25maWcsIGRhdGEpIH1cclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdClcclxuXHRcdFx0XHQ6IG9mKG1hcFRvTmRmVGFibGVDb25maWcodGhpcy5jb25maWcsIHJlcG9ydENvbmZpZy5kZXRhaWxzKSk7XHJcblxyXG5cdFx0Y29uZmlnJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuXHRcdFx0cXVldWVNaWNyb3Rhc2soKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0Lm5leHQoe1xyXG5cdFx0XHRcdFx0Y29uZmlnLFxyXG5cdFx0XHRcdFx0bGFiZWw6IHJlcG9ydENvbmZpZy5sYWJlbFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Y2xvc2VEZXRhaWxzUGFuZWwoKSB7XHJcblx0XHR0aGlzLl9yZXBvcnREZXRhaWxzU3ViamVjdC5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0b25EZXRhaWxzQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xyXG5cdFx0dGhpcy5pc0RldGFpbHNPcGVuZWQgPSBldmVudC50b1N0YXRlID09PSAnb3Blbic7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdHN1cGVyLm5nT25EZXN0cm95KCk7XHJcblx0XHR0aGlzLl9jaGFydEhlbHBlclNlcnZpY2UuZGVzdHJveUFsbCgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBwcmVwYXJlQ3JpdGVyaWFQYXlsb2FkKGNyaXRlcmlhOiBSZWNvcmQ8YW55LCBhbnk+LCBmaWVsZHM6IEZpZWxkQ29uZmlnTW9kZWxbXSA9IHRoaXMuZmlsdGVyc0NvbmZpZy5maWVsZHMpIHtcclxuXHRcdHJldHVybiB0aGlzLl9maWx0ZXJzTWFwcGVyLnByZXBhcmVQYXlsb2FkKGZpZWxkcywgY3JpdGVyaWEpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoY3JpdGVyaWEpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0YWNjW2tleV0gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IHZhbHVlO1xyXG5cdFx0XHRyZXR1cm4gYWNjO1xyXG5cdFx0fSwge30pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZVJlcG9ydHMoKSB7XHJcblx0XHR0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IHRydWU7XHJcblx0XHRyZXR1cm4gY29tYmluZUxhdGVzdChbXHJcblx0XHRcdHRoaXMuZmlsdGVyc1BhcmFtcyQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gXy5pc0VxdWFsKGEsIGIpKSksXHJcblx0XHRcdHRoaXMucmVwb3J0Q29uZmlnJFxyXG5cdFx0XSkucGlwZShcclxuXHRcdFx0dGFwKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IHRydWU7XHJcblx0XHRcdFx0dGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdFx0fSksXHJcblx0XHRcdHN3aXRjaE1hcCgoW2NyaXRlcmlhLCBjb25maWddKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgcmVxdWVzdCA9IGNvbmZpZz8ucmVxdWVzdDtcclxuXHRcdFx0XHRpZiAoIXJlcXVlc3QpIHtcclxuXHRcdFx0XHRcdHJldHVybiBvZihudWxsKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0bGV0IF9wYXlsb2FkID0gY3JpdGVyaWE7XHJcblx0XHRcdFx0aWYgKCFjcml0ZXJpYSAmJiAhIWNvbmZpZy5hY3RpdmVRdWVyeSkge1xyXG5cdFx0XHRcdFx0X3BheWxvYWQgPSB0aGlzLnByZXBhcmVDcml0ZXJpYVBheWxvYWQoY29uZmlnLmFjdGl2ZVF1ZXJ5KTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGNvbnN0IGRhdGEkID0gdGhpcy5fbmRmUmVwb3J0c1NlcnZpY2UuZ2V0RGF0YShyZXF1ZXN0LCBfcGF5bG9hZCkucGlwZShcclxuXHRcdFx0XHRcdHN3aXRjaE1hcCgocmVwb3J0czogQXBpUmVzcG9uc2VNb2RlbCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5fdHJhbnNmb3JtU2VydmljZS5wcmVwYXJlRGF0YShyZXBvcnRzLCBjb25maWcpO1xyXG5cdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuaXNMb2FkaW5nUmVzdWx0ID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdCk7XHJcblxyXG5cdFx0XHRcdHJldHVybiBmb3JrSm9pbihbb2YoY29uZmlnKSwgZGF0YSRdKTtcclxuXHRcdFx0fSksXHJcblx0XHRcdG1hcCgoW2NvbmZpZywgcmVzcG9uc2VdKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5fcHJlcGFyZUFnZ3JlZ2F0aW9ucyhyZXNwb25zZT8uYWdncmVnYXRpb25zKTtcclxuXHRcdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFx0Y29uZmlnLFxyXG5cdFx0XHRcdFx0cmVzcG9uc2VcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2hhbmRsZUtleWJvYXJkRXZlbnQoKSB7XHJcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG5cdFx0XHRmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXlkb3duJylcclxuXHRcdFx0XHQucGlwZShcclxuXHRcdFx0XHRcdGZpbHRlcigoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5zaG93RGV0YWlscyksXHJcblx0XHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuXHRcdFx0XHQpXHJcblx0XHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmNsb3NlRGV0YWlsc1BhbmVsKCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3ByZXBhcmVNYXBwZWRRdWVyeShjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55PiwgbW9kZTogJ3BheWxvYWQnIHwgJ3BhcmFtcycpIHtcclxuXHRcdHJldHVybiBtb2RlID09ICdwYXlsb2FkJ1xyXG5cdFx0XHQ/IHRoaXMucHJlcGFyZUNyaXRlcmlhUGF5bG9hZChjcml0ZXJpYSlcclxuXHRcdFx0OiB7XHJcblx0XHRcdFx0XHRwYXJhbXM6IHRoaXMuX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYSlcclxuXHRcdFx0XHR9O1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfdXBkYXRlQWN0aXZlUXVlcnkocXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuXHRcdHRoaXMuX2FjdGl2ZVF1ZXJ5U3ViLm5leHQoe1xyXG5cdFx0XHRwcmV2aW91czogdGhpcy5hY3RpdmVRdWVyeSxcclxuXHRcdFx0Y3VycmVudDogcXVlcnlcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5fYWN0aXZlRmlsdGVyc1F1ZXJ5U3ViLm5leHQoe1xyXG5cdFx0XHRxdWVyeSxcclxuXHRcdFx0ZW1pdEV2ZW50OiBmYWxzZVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlQWdncmVnYXRpb25zKGFnZ3JlZ2F0aW9uczogYW55KSB7XHJcblx0XHRpZiAodGhpcy5faXNDb25maWdDaGFuZ2VkICYmIHRoaXMuYWdncmVnYXRpb25zKSB7XHJcblx0XHRcdHRoaXMuYWdncmVnYXRpb25zID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCByZWxvYWRTdHJhdGVneSA9IHRoaXMuY29uZmlnPy5maWx0ZXJzPy5yZWxvYWQ/LnN0cmF0ZWd5O1xyXG5cclxuXHRcdGlmICh0aGlzLmFnZ3JlZ2F0aW9ucyAmJiByZWxvYWRTdHJhdGVneSA9PT0gJ25ldmVyJykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuYWdncmVnYXRpb25zICYmIHJlbG9hZFN0cmF0ZWd5ID09PSAnb25DaGFuZ2UnKSB7XHJcblx0XHRcdGlmICh0aGlzLl9zaG91bGRSZWxvYWRPbkNoYW5nZSgpKSB7XHJcblx0XHRcdFx0dGhpcy5fdXBkYXRlQWdncmVnYXRpb25zKGFnZ3JlZ2F0aW9ucyk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX3VwZGF0ZUFnZ3JlZ2F0aW9ucyhhZ2dyZWdhdGlvbnMpO1xyXG5cdFx0dGhpcy5faXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9zaG91bGRSZWxvYWRPbkNoYW5nZSgpIHtcclxuXHRcdGlmICh0aGlzLmNvbmZpZz8uZmlsdGVycz8ucmVsb2FkPy5zdHJhdGVneSAhPT0gJ29uQ2hhbmdlJykge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgdHJpZ2dlckZpZWxkcyA9IHRoaXMuY29uZmlnPy5maWx0ZXJzPy5yZWxvYWQ/LnRyaWdnZXJGaWVsZHM7XHJcblxyXG5cdFx0aWYgKCFBcnJheS5pc0FycmF5KHRyaWdnZXJGaWVsZHMpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCB2YWxpZEZpZWxkcyA9IHRyaWdnZXJGaWVsZHMuZmlsdGVyKEJvb2xlYW4pO1xyXG5cdFx0aWYgKCF2YWxpZEZpZWxkcy5sZW5ndGgpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGFjdGl2YXRlZFF1ZXJ5ID0gdGhpcy5fYWN0aXZlUXVlcnlTdWIuZ2V0VmFsdWUoKTtcclxuXHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5jdXJyZW50IHx8IHt9O1xyXG5cdFx0Y29uc3QgcHJldmlvdXNWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5wcmV2aW91cyB8fCB7fTtcclxuXHJcblx0XHRjb25zdCBjaGFuZ2VkS2V5cyA9IHRoaXMuX2dldENoYW5nZWRLZXlzKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSk7XHJcblxyXG5cdFx0cmV0dXJuIHZhbGlkRmllbGRzLnNvbWUoKGZpZWxkKSA9PiBjaGFuZ2VkS2V5cy5pbmNsdWRlcyhmaWVsZCkpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZ2V0Q2hhbmdlZEtleXMocHJldmlvdXM6IFJlY29yZDxzdHJpbmcsIGFueT4sIGN1cnJlbnQ6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBzdHJpbmdbXSB7XHJcblx0XHRjb25zdCBhbGxLZXlzID0gXy51bmlvbihfLmtleXMocHJldmlvdXMpLCBfLmtleXMoY3VycmVudCkpO1xyXG5cdFx0cmV0dXJuIGFsbEtleXMuZmlsdGVyKChrZXkpID0+ICFfLmlzRXF1YWwocHJldmlvdXNba2V5XSwgY3VycmVudFtrZXldKSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF91cGRhdGVBZ2dyZWdhdGlvbnMoYWdncmVnYXRpb25zOiBhbnkpOiB2b2lkIHtcclxuXHRcdHRoaXMuYWdncmVnYXRpb25zID0gXy5jbG9uZURlZXAoYWdncmVnYXRpb25zKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2NoZWNrQ29uZmlnQ2hhbmdlKHZhbHVlOiBOZGZSZXBvcnRzQ29uZmlnKSB7XHJcblx0XHRjb25zdCB7IGFjdGl2ZVF1ZXJ5LCAuLi5jb25maWcgfSA9IHZhbHVlO1xyXG5cdFx0Y29uc3QgeyBhY3RpdmVRdWVyeTogYXEsIC4uLmN1cnJlbnRDb25maWcgfSA9IHRoaXMuX2NvbmZpZ1N1YmplY3QuZ2V0VmFsdWUoKSB8fCB7fTtcclxuXHJcblx0XHR0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSAhXy5pc0VxdWFsKGN1cnJlbnRDb25maWcsIGNvbmZpZyk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9sb2FkUmVwb3J0c0NvbmZpZyhrZXk6IHN0cmluZykge1xyXG5cdFx0dGhpcy5fY29uZmlndXJhdGlvblNlcnZpY2VcclxuXHRcdFx0LmdldFJlcG9ydHNDb25maWd1cmF0aW9uKGtleSlcclxuXHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuXHRcdFx0XHRpZiAoY29uZmlnKSB7XHJcblx0XHRcdFx0XHR0aGlzLl9pbml0UmVwb3J0c0NvbmZpZyhjb25maWcpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9pbml0UmVwb3J0c0NvbmZpZyhjb25maWc6IE5kZlJlcG9ydHNDb25maWcpIHtcclxuXHRcdGNvbnN0IHZhbHVlID0gXy5jbG9uZURlZXAoY29uZmlnKTtcclxuXHRcdHRoaXMuX2NoZWNrQ29uZmlnQ2hhbmdlKHZhbHVlKTtcclxuXHRcdHRoaXMuX2NvbmZpZ1N1YmplY3QubmV4dCh2YWx1ZSk7XHJcblx0XHRpZiAodmFsdWU/LmFjdGl2ZVF1ZXJ5ICYmICEhT2JqZWN0LmtleXModmFsdWU/LmFjdGl2ZVF1ZXJ5KS5sZW5ndGgpIHtcclxuXHRcdFx0dGhpcy5fdXBkYXRlQWN0aXZlUXVlcnkodmFsdWU/LmFjdGl2ZVF1ZXJ5KTtcclxuXHRcdFx0dGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5uZXh0KHRoaXMuX3ByZXBhcmVNYXBwZWRRdWVyeSh2YWx1ZT8uYWN0aXZlUXVlcnksIHRoaXMuZmlsdGVyc0NvbmZpZy5tb2RlKSk7XHJcblx0XHR9IGVsc2UgaWYgKCF0aGlzLmFjdGl2ZVF1ZXJ5IHx8IE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlUXVlcnkpLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdHRoaXMuX3Jlc2V0UXVlcnlBbmRGaWx0ZXJzQ3JpdGVyaWEoKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuaXNQYW5lbE9wZW5lZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5pc0RldGFpbHNPcGVuZWQgPSBmYWxzZTtcclxuXHRcdHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0Lm5leHQobnVsbCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9yZXNldFF1ZXJ5QW5kRmlsdGVyc0NyaXRlcmlhKCkge1xyXG5cdFx0dGhpcy5fdXBkYXRlQWN0aXZlUXVlcnkoe30pO1xyXG5cdFx0dGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5uZXh0KG51bGwpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2XHJcblx0Km5nSWY9XCJyZXBvcnRzRGF0YSQgfCBhc3luYyBhcyByZXBvcnRzXCJcclxuXHRjbGFzcz1cIm5kZi1yZXBvcnRzX19jb250YWluZXJcIlxyXG5cdFtjbGFzcy5wYW5lbC1vcGVuZWRdPVwiaXNQYW5lbE9wZW5lZCAmJiBmaWx0ZXJzQ29uZmlnXCJcclxuXHRbZGlyXT1cImRpcmVjdGlvblwiXHJcblx0bmRmRmx1aWRIZWlnaHRcclxuPlxyXG5cdDxkaXYgY2xhc3M9XCJuZGYtcmVwb3J0c19fcGFuZWwgcHJpbnQ6aGlkZGVuXCIgKm5nSWY9XCIhIWZpbHRlcnNDb25maWc/LmZpZWxkcz8ubGVuZ3RoXCI+XHJcblx0XHQ8YXBwLWZpbHRlcnMtcGFuZWxcclxuXHRcdFx0W2ZpZWxkc109XCJmaWx0ZXJzQ29uZmlnPy5maWVsZHNcIlxyXG5cdFx0XHRbYWdncmVnYXRpb25zXT1cImFnZ3JlZ2F0aW9uc1wiXHJcblx0XHRcdChmaWx0ZXJDaGFuZ2VkKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFthY3RpdmVRdWVyeV09XCJhY3RpdmVGaWx0ZXJzUXVlcnkkIHwgYXN5bmNcIlxyXG5cdFx0XHRjbGFzcz1cIm5kZi1yZXBvcnRzX19maWx0ZXJzXCJcclxuICAgICAgW2N1c3RvbVRlbXBsYXRlUmVmXT1cImZpbHRlckN1c3RvbVRlbXBsYXRlXCJcclxuXHRcdD48L2FwcC1maWx0ZXJzLXBhbmVsPlxyXG5cdDwvZGl2PlxyXG5cclxuXHQ8ZGl2IGNsYXNzPVwibmRmLXJlcG9ydHNfX2NvbnRlbnRcIiAoc2Nyb2xsZWQpPVwib25Db250ZW50U2Nyb2xsKCRldmVudClcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJuZGYtcmVwb3J0c19faGVhZGVyIGZsZXggcHQtNCBwcmludDpoaWRkZW5cIj5cclxuXHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIj5cclxuXHRcdFx0XHQ8bWF0LWljb24+IGZpbHRlcl9hbHQ8L21hdC1pY29uPlxyXG5cdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0PGFwcC1lZGl0b3ItYnV0dG9uXHJcblx0XHRcdFx0Km5nSWY9XCJqc29uRWRpdG9yRW5hYmxlZCAmJiByZXBvcnRzS2V5XCJcclxuXHRcdFx0XHRba2V5XT1cInJlcG9ydHNLZXlcIlxyXG5cdFx0XHRcdFt0eXBlXT1cImVkaXRvclR5cGVcIlxyXG5cdFx0XHQ+PC9hcHAtZWRpdG9yLWJ1dHRvbj5cclxuXHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKm5nSWY9XCJjb25maWc/Lm9wdGlvbnM/LnByaW50XCIgY2xhc3M9XCJwcmludC1idXR0b25cIiAoY2xpY2spPVwicHJpbnRBbGwoKVwiPlxyXG5cdFx0XHRcdDxtYXQtaWNvbj4gcHJpbnQ8L21hdC1pY29uPlxyXG5cdFx0XHQ8L2J1dHRvbj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PG1hdC1zcGlubmVyICpuZ0lmPVwiaXNMb2FkaW5nUmVzdWx0XCIgY2xhc3M9XCJtdC01IG14LWF1dG9cIiBbZGlhbWV0ZXJdPVwiNDhcIj48L21hdC1zcGlubmVyPlxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJyZXBvcnRzLWdyaWRcIiAqbmdJZj1cIiFpc0xvYWRpbmdSZXN1bHRcIj5cclxuXHRcdFx0PGFwcC1uZGYtcmVwb3J0XHJcblx0XHRcdFx0Km5nRm9yPVwibGV0IGNvbmZpZyBvZiByZXBvcnRDb25maWcuaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcblx0XHRcdFx0W2NvbmZpZ109XCJjb25maWdcIlxyXG5cdFx0XHRcdFtkYXRhXT1cInJlcG9ydHM/LnJlc3BvbnNlXCJcclxuXHRcdFx0XHRbY3JpdGVyaWFdPVwiZmlsdGVyc1BhcmFtcyQgfCBhc3luY1wiXHJcblx0XHRcdFx0W2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxyXG5cdFx0XHRcdFthdHRyLmRhdGEtd2lkdGhdPVwiY29uZmlnPy5sYXlvdXQ/LndpZHRoIHx8IDRcIlxyXG5cdFx0XHRcdFthdHRyLmRhdGEtaGVpZ2h0XT1cImNvbmZpZz8ubGF5b3V0Py5oZWlnaHQgfHwgJ2F1dG8nXCJcclxuXHRcdFx0XHRbYXR0ci5kYXRhLXN0YXJ0LWNvbHVtbl09XCJjb25maWc/LmxheW91dD8uY29sdW1uUG9zaXRpb24gfHwgJ2F1dG8nXCJcclxuXHRcdFx0XHRbYXR0ci5kYXRhLXN0YXJ0LXJvd109XCJjb25maWc/LmxheW91dD8ucm93UG9zaXRpb24gfHwgJ2F1dG8nXCJcclxuXHRcdFx0XHRbY2xhc3Mud2lkZV09XCJjb25maWc/LmxheW91dD8ud2lkdGggPj0gNlwiXHJcbiAgICAgICAgW3N0eWxlXT1cImNvbmZpZz8ubGF5b3V0Py5zdHlsZVwiXHJcblx0XHRcdFx0Y2xhc3M9XCJyZXBvcnRzLWdyaWRfX2l0ZW0ge3sgY29uZmlnPy5sYXlvdXQ/LnN0eWxlQ2xhc3MgfX0gXCJcclxuXHRcdFx0XHQob25OYXZpZ2F0ZSk9XCJvbk5hdmlnYXRlKCRldmVudClcIlxyXG5cdFx0XHRcdChvbk9wZW4pPVwib3BlblJlcG9ydERldGFpbHMoJGV2ZW50LCBjb25maWcpXCJcclxuXHRcdFx0PjwvYXBwLW5kZi1yZXBvcnQ+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2XHJcblx0XHRjbGFzcz1cIm5kZi1yZXBvcnRzX19kZXRhaWxzIHByaW50OmhpZGRlblwiXHJcblx0XHRbY2xhc3Mub3BlbmVkXT1cInNob3dEZXRhaWxzXCJcclxuXHRcdFtAc2xpZGVJbk91dF09XCJzaG93RGV0YWlscyA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcclxuXHRcdChAc2xpZGVJbk91dC5kb25lKT1cIm9uRGV0YWlsc0FuaW1hdGlvbkVuZCgkZXZlbnQpXCJcclxuXHQ+XHJcblx0XHQ8YXBwLW5kZi10YWJsZVxyXG5cdFx0XHQqbmdJZj1cInJlcG9ydERldGFpbHMkIHwgYXN5bmMgYXMgcmVwb3J0XCJcclxuXHRcdFx0W2NvbmZpZ109XCJyZXBvcnQuY29uZmlnXCJcclxuXHRcdFx0W2FjdGl2ZVF1ZXJ5XT1cImFjdGl2ZUZpbHRlcnNRdWVyeSQgfCBhc3luY1wiXHJcblx0XHRcdFtjdXN0b21Dcml0ZXJpYV09XCJkZXRhaWxzRmlsdGVyc1BhcmFtcyQgfCBhc3luY1wiXHJcblx0XHQ+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSBzZWFyY2hUYWJsZVRlbXBsYXRlIGxldC10b2dnbGU9XCJ0b2dnbGVQYW5lbFwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJuZGYtcmVwb3J0c19fZGV0YWlsc19faGVhZGVyIGZsZXggZ2FwLTJcIiA+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvZ2dsZS1idXR0b25cIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cclxuXHRcdFx0XHRcdFx0PG1hdC1pY29uPiBmaWx0ZXJfYWx0PC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2xvc2VEZXRhaWxzUGFuZWwoKVwiPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWljb24+IGNsb3NlPC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxoMz5cclxuXHRcdFx0XHRcdHt7IHJlcG9ydC5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdDwvaDM+XHJcblx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8L2FwcC1uZGYtdGFibGU+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuIl19
|
|
410
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NvbnRhaW5lcnMvbmRmLXJlcG9ydHMvbmRmLXJlcG9ydHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFLTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsUUFBUSxFQUNSLElBQUksRUFDSixTQUFTLEVBRVQsRUFBRSxFQUNGLGFBQWEsR0FDZCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0s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LFxyXG4gIHN0YXRlLFxyXG4gIHN0eWxlLFxyXG4gIHRyYW5zaXRpb24sXHJcbiAgdHJpZ2dlcixcclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgY29tYmluZUxhdGVzdCxcclxuICBmb3JrSm9pbixcclxuICBmcm9tLFxyXG4gIGZyb21FdmVudCxcclxuICBPYnNlcnZhYmxlLFxyXG4gIG9mLFxyXG4gIFJlcGxheVN1YmplY3QsXHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgZmlsdGVyLFxyXG4gIGZpbmFsaXplLFxyXG4gIG1hcCxcclxuICBzd2l0Y2hNYXAsXHJcbiAgdGFrZVVudGlsLFxyXG4gIHRhcCxcclxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERlc3Ryb3lTdWJqZWN0LCBGbHVpZEhlaWdodERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBBcGlSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBOREZfRURJVE9SX1RZUEUgfSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtY29uZmlnLWVkaXRvci9jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG4gIEFnZ3JlZ2F0aW9uUmVzcG9uc2UsXHJcbiAgQ1VTVE9NX1RFTVBMQVRFLFxyXG4gIEZpZWxkQ29uZmlnTW9kZWwsXHJcbiAgRmlsdGVyUXVlcnlTZXJ2aWNlLFxyXG4gIEZpbHRlcnNNYXBwZXJTZXJ2aWNlLFxyXG4gIEZvcm1RdWVyeU1vZGVsLFxyXG59IGZyb20gJy4uLy4uLy4uLy4uL25kZi1maWx0ZXJzJztcclxuaW1wb3J0IHsgTmRmVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi90YWJsZXMnO1xyXG5pbXBvcnQge1xyXG4gIEVNUFRZX0NPTlRFTlRfVEVNUExBVEUsXHJcbiAgSEVBREVSX1BBTkVMX1RFTVBMQVRFLFxyXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQge1xyXG4gIENyaXRlcmlhTW9kZWwsXHJcbiAgTmRmUmVwb3J0c0NvbmZpZyxcclxuICBSZXBvcnRDb25maWdNb2RlbCxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gIENoYXJ0TWFuYWdlclNlcnZpY2UsXHJcbiAgTmRmUmVwb3J0c1NlcnZpY2UsXHJcbiAgUmVwb3J0Q29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgUmVwb3J0c0hvb2tzU2VydmljZSxcclxuICBSZXBvcnRzU3RhdGVTZXJ2aWNlLFxyXG4gIFJlcG9ydFRyYW5zZm9ybVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBtYXBUb05kZlRhYmxlQ29uZmlnLCBwcmVwYXJlTmRmVGFibGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcbmV4cG9ydCBjb25zdCBzbGlkZUFuaW1hdGlvbiA9IHRyaWdnZXIoJ3NsaWRlSW5PdXQnLCBbXHJcbiAgc3RhdGUoXHJcbiAgICAnY2xvc2VkJyxcclxuICAgIHN0eWxlKHtcclxuICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh2YXIoLS1uZGYtcmVwb3J0cy1kZXRhaWxzLXRyYW5zbGF0ZVgsIC0xMDAlKSknLFxyXG4gICAgfSlcclxuICApLFxyXG4gIHN0YXRlKCdvcGVuJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSksXHJcbiAgdHJhbnNpdGlvbignY2xvc2VkIDw9PiBvcGVuJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnKSksXHJcbl0pO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbmRmLXJlcG9ydHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZGYtcmVwb3J0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbmRmLXJlcG9ydHMuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ25kZi1yZXBvcnRzJyxcclxuICAgICdbZGlyXSc6ICdkaXJlY3Rpb24nLFxyXG4gIH0sXHJcbiAgYW5pbWF0aW9uczogW3NsaWRlQW5pbWF0aW9uXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5kZlJlcG9ydHNDb21wb25lbnRcclxuICBleHRlbmRzIERlc3Ryb3lTdWJqZWN0XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzXHJcbntcclxuICBAVmlld0NoaWxkKEZsdWlkSGVpZ2h0RGlyZWN0aXZlKSBmbHVpZERpcmVjdGl2ZTogRmx1aWRIZWlnaHREaXJlY3RpdmU7XHJcbiAgX2lzSGVpZ2h0VXBkYXRlZCA9IGZhbHNlO1xyXG4gIGRpcmVjdGlvbjogRGlyZWN0aW9uID0gJ3J0bCc7XHJcbiAgaXNQYW5lbE9wZW5lZCA9IGZhbHNlO1xyXG4gIGlzTG9hZGluZ1Jlc3VsdCA9IGZhbHNlO1xyXG4gIHJlcG9ydHNEYXRhJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIGlzRXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlUXVlcnlTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcclxuICAgIHByZXZpb3VzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gICAgY3VycmVudDogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICB9PihudWxsKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlRmlsdGVyc1F1ZXJ5U3ViID0gbmV3IFJlcGxheVN1YmplY3Q8Rm9ybVF1ZXJ5TW9kZWw+KCk7XHJcbiAgcmVhZG9ubHkgYWN0aXZlRmlsdGVyc1F1ZXJ5JCA9IHRoaXMuX2FjdGl2ZUZpbHRlcnNRdWVyeVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmRmUmVwb3J0c0NvbmZpZz4obnVsbCk7XHJcbiAgcmVhZG9ubHkgcmVwb3J0Q29uZmlnJCA9IHRoaXMuX2NvbmZpZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnNDcml0ZXJpYVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENyaXRlcmlhTW9kZWw+KFxyXG4gICAgbnVsbFxyXG4gICk7XHJcbiAgcmVhZG9ubHkgZmlsdGVyc1BhcmFtcyQgPSB0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF90cmlnZ2VyRmlsdGVyc1N1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RldGFpbHNGaWx0ZXJzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q3JpdGVyaWFNb2RlbD4oXHJcbiAgICBudWxsXHJcbiAgKTtcclxuICByZWFkb25seSBkZXRhaWxzRmlsdGVyc1BhcmFtcyQgPSB0aGlzLl9kZXRhaWxzRmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgX3JlcG9ydERldGFpbHNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7XHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICAgIGNvbmZpZzogTmRmVGFibGVDb25maWc7XHJcbiAgfT4obnVsbCk7XHJcblxyXG4gIGdldCBhY3RpdmVRdWVyeSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVRdWVyeVN1Yi5nZXRWYWx1ZSgpPy5jdXJyZW50O1xyXG4gIH1cclxuXHJcbiAgcmVwb3J0RGV0YWlscyQgPSB0aGlzLl9yZXBvcnREZXRhaWxzU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgYWdncmVnYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBBZ2dyZWdhdGlvblJlc3BvbnNlPjtcclxuXHJcbiAgZ2V0IHNob3dEZXRhaWxzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGlzRGV0YWlsc09wZW5lZCA9IGZhbHNlO1xyXG5cclxuICBnZXQgZmlsdGVyc0NvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uZmlsdGVycztcclxuICB9XHJcblxyXG4gIGdldCByZXBvcnRDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LnJlcG9ydHM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBqc29uRWRpdG9yRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlcG9ydHNLZXk6IHN0cmluZztcclxuICBlZGl0b3JUeXBlID0gTkRGX0VESVRPUl9UWVBFLlJFUE9SVFM7XHJcblxyXG4gIEBJbnB1dCgpIG5hdmlnYXRlUm91dGU6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGxvYWRDb25kaXRpb246ICguLi5hcmdzOiBhbnlbXSkgPT4gYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBfaXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2NvbmZpZzogTmRmUmVwb3J0c0NvbmZpZztcclxuICBASW5wdXQoKSBzZXQgY29uZmlnKGNvbmZpZzogTmRmUmVwb3J0c0NvbmZpZykge1xyXG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbmZpZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25maWdTdWJqZWN0LmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgb25RdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChDVVNUT01fVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcclxuICBmaWx0ZXJDdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKEhFQURFUl9QQU5FTF9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIGhlYWRlclBhbmVsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoRU1QVFlfQ09OVEVOVF9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIGVtcHR5Q29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICB0cmFja0J5Rm4gPSAoXzogbnVtYmVyLCByZXBvcnQ6IFJlcG9ydENvbmZpZ01vZGVsKSA9PiB7XHJcbiAgICByZXR1cm4gcmVwb3J0LmlkO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZpbHRlcnNNYXBwZXI6IEZpbHRlcnNNYXBwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbmRmUmVwb3J0c1NlcnZpY2U6IE5kZlJlcG9ydHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhcnRIZWxwZXJTZXJ2aWNlOiBDaGFydE1hbmFnZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNmb3JtU2VydmljZTogUmVwb3J0VHJhbnNmb3JtU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9maWx0ZXJRdWVyeVNlcnZpY2U6IEZpbHRlclF1ZXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX3N0YXRlU2VydmljZTogUmVwb3J0c1N0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NvbmZpZ3VyYXRpb25TZXJ2aWNlOiBSZXBvcnRDb25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIF9yZXBvcnRzSG9va3NTZXJ2aWNlOiBSZXBvcnRzSG9va3NTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2VcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IHJlcy5sYW5nID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVwb3J0c0RhdGEkID0gdGhpcy5fcHJlcGFyZVJlcG9ydHMoKTtcclxuICAgIHRoaXMuX2hhbmRsZUtleWJvYXJkRXZlbnQoKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVcGRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLl90cmlnZ2VyRmlsdGVyc1N1Yi5uZXh0KHRydWUpO1xyXG4gIH07XHJcblxyXG4gIHJlc2V0RmlsdGVycyA9ICgpID0+IHtcclxuICAgIHRoaXMuX3Jlc2V0UXVlcnlBbmRGaWx0ZXJzQ3JpdGVyaWEoKTtcclxuICB9O1xyXG5cclxuICBjYWxsTG9hZENvbmRpdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmxvYWRDb25kaXRpb24gJiYgdHlwZW9mIHRoaXMubG9hZENvbmRpdGlvbiA9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvYWRDb25kaXRpb24odGhpcy5hY3RpdmVRdWVyeSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHJlcG9ydHNLZXkgPSBjaGFuZ2VzLnJlcG9ydHNLZXk/LmN1cnJlbnRWYWx1ZTtcclxuICAgIGNvbnN0IGNvbmZpZyA9IGNoYW5nZXMuY29uZmlnPy5jdXJyZW50VmFsdWU7XHJcblxyXG4gICAgaWYgKHJlcG9ydHNLZXkgJiYgY29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnWW91IGNhbm5vdCBzZXQgYm90aCByZXBvcnRzS2V5IGFuZCByZXBvcnRzIENvbmZpZyBhdCB0aGUgc2FtZSB0aW1lLidcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuX2luaXRSZXBvcnRzQ29uZmlnKGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHJlcG9ydHNLZXkpIHtcclxuICAgICAgdGhpcy5fbG9hZFJlcG9ydHNDb25maWcocmVwb3J0c0tleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk5hdmlnYXRlKGRhdGE6IHsgcmVwb3J0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0pIHtcclxuICAgIGNvbnN0IHJlcG9ydCA9IGRhdGE/LnJlcG9ydDtcclxuICAgIGNvbnN0IF9jdXN0b21Sb3V0ZSA9IHJlcG9ydC5uYXZpZ2F0ZT8ucm91dGUgfHwgW107XHJcbiAgICAvLyBsZXQgcm91dGUgPSBbUk1TX0JBU0UucmVwbGFjZSgvXFwvJC8sICcnKV07XHJcbiAgICBsZXQgcm91dGUgPSB0aGlzLm5hdmlnYXRlUm91dGU7XHJcbiAgICBpZiAoISFfY3VzdG9tUm91dGUubGVuZ3RoKSB7XHJcbiAgICAgIHJvdXRlID0gWy4uLnJvdXRlLCAuLi5fY3VzdG9tUm91dGVdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XHJcbiAgICBpZiAocmVwb3J0Lm5hdmlnYXRlPy5pbmNsdWRlUGFyYW1zID8/IHRydWUpIHtcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlUXVlcnkgfHwge30pLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9maWx0ZXJRdWVyeVNlcnZpY2UuZW5jb2RlUXVlcnkodGhpcy5hY3RpdmVRdWVyeSk7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zWydmaWx0ZXJzJ10gPSBkYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShyb3V0ZSwgeyBxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfSkudGhlbigoKSA9PiB7fSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVQYW5lbCgpIHtcclxuICAgIHRoaXMuaXNQYW5lbE9wZW5lZCA9ICF0aGlzLmlzUGFuZWxPcGVuZWQ7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fY2hhcnRIZWxwZXJTZXJ2aWNlLnJlc2l6ZUNoYXJ0cygpO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIHByaW50QWxsKCkge1xyXG4gICAgd2luZG93LnByaW50KCk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJDaGFuZ2VkID0gKGNyaXRlcmlhOiBSZWNvcmQ8YW55LCBhbnk+KSA9PiB7XHJcbiAgICBpZiAoXy5pc0VxdWFsKHRoaXMuYWN0aXZlUXVlcnksIGNyaXRlcmlhKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uUXVlcnlDaGFuZ2UuZW1pdChjcml0ZXJpYSk7XHJcbiAgICB0aGlzLl91cGRhdGVBY3RpdmVRdWVyeShjcml0ZXJpYSk7XHJcbiAgICBjb25zdCBfZGF0ZSA9IHRoaXMuX3ByZXBhcmVNYXBwZWRRdWVyeShjcml0ZXJpYSwgdGhpcy5maWx0ZXJzQ29uZmlnLm1vZGUpO1xyXG4gICAgdGhpcy5fZmlsdGVyc0NyaXRlcmlhU3ViamVjdC5uZXh0KF9kYXRlKTtcclxuICB9O1xyXG5cclxuICBvbkNvbnRlbnRTY3JvbGwoaXNTY3JvbGxpbmc6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0YXRlU2VydmljZS5vbkNvbnRlbnRTY3JvbGwoaXNTY3JvbGxpbmcpO1xyXG5cclxuICAgIGlmIChpc1Njcm9sbGluZyAmJiAhdGhpcy5faXNIZWlnaHRVcGRhdGVkKSB7XHJcbiAgICAgIHRoaXMuX2lzSGVpZ2h0VXBkYXRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZmx1aWREaXJlY3RpdmUuc2NoZWR1bGVTZXRIZWlnaHQoMTAwKTtcclxuICAgIH0gZWxzZSBpZiAoIWlzU2Nyb2xsaW5nICYmIHRoaXMuX2lzSGVpZ2h0VXBkYXRlZCkge1xyXG4gICAgICB0aGlzLl9pc0hlaWdodFVwZGF0ZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5mbHVpZERpcmVjdGl2ZS5zY2hlZHVsZVNldEhlaWdodCgxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlblJlcG9ydERldGFpbHMoXHJcbiAgICBjcml0ZXJpYU1vZGVsOiBDcml0ZXJpYU1vZGVsLFxyXG4gICAgcmVwb3J0Q29uZmlnOiBSZXBvcnRDb25maWdNb2RlbFxyXG4gICkge1xyXG4gICAgaWYgKCFyZXBvcnRDb25maWc/LmRldGFpbHM/LmVuYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuX2ZpbHRlcnNDcml0ZXJpYVN1YmplY3QuZ2V0VmFsdWUoKTtcclxuICAgIHRoaXMuX2RldGFpbHNGaWx0ZXJzU3ViamVjdC5uZXh0KHBhcmFtcyk7XHJcblxyXG4gICAgdGhpcy5pc1BhbmVsT3BlbmVkID0gZmFsc2U7XHJcbiAgICBjb25zdCBzb3VyY2UgPSByZXBvcnRDb25maWc/LmRldGFpbHM/LnNvdXJjZTtcclxuICAgIGNvbnN0IGNvbmZpZyQgPVxyXG4gICAgICBzb3VyY2UgJiYgdHlwZW9mIHNvdXJjZSA9PT0gJ3N0cmluZydcclxuICAgICAgICA/IHRoaXMuX2NvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldFRhYmxlQ29uZmlndXJhdGlvbihzb3VyY2UpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghIWRhdGE/Lm9wdGlvbnM/LmZpbHRlcnM/LmZpZWxkcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIF8ubWVyZ2UoZGF0YSwge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICBmaWx0ZXJzOiBwcmVwYXJlTmRmVGFibGVGaWx0ZXJzKFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE/Lm9wdGlvbnM/LmZpbHRlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVxyXG4gICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICA6IG9mKG1hcFRvTmRmVGFibGVDb25maWcodGhpcy5jb25maWcsIHJlcG9ydENvbmZpZy5kZXRhaWxzKSk7XHJcblxyXG4gICAgY29uZmlnJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydERldGFpbHNTdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgICAgY29uZmlnLFxyXG4gICAgICAgICAgbGFiZWw6IHJlcG9ydENvbmZpZy5sYWJlbCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsb3NlRGV0YWlsc1BhbmVsKCkge1xyXG4gICAgdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QubmV4dChudWxsKTtcclxuICB9XHJcblxyXG4gIG9uRGV0YWlsc0FuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcclxuICAgIHRoaXMuaXNEZXRhaWxzT3BlbmVkID0gZXZlbnQudG9TdGF0ZSA9PT0gJ29wZW4nO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgdGhpcy5fY2hhcnRIZWxwZXJTZXJ2aWNlLmRlc3Ryb3lBbGwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZUNyaXRlcmlhUGF5bG9hZChcclxuICAgIGNyaXRlcmlhOiBSZWNvcmQ8YW55LCBhbnk+LFxyXG4gICAgZmllbGRzOiBGaWVsZENvbmZpZ01vZGVsW10gPSB0aGlzLmZpbHRlcnNDb25maWcuZmllbGRzXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyc01hcHBlci5wcmVwYXJlUGF5bG9hZChmaWVsZHMsIGNyaXRlcmlhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNyaXRlcmlhKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgIGFjY1trZXldID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiB2YWx1ZTtcclxuICAgICAgcmV0dXJuIGFjYztcclxuICAgIH0sIHt9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVSZXBvcnRzKCkge1xyXG4gICAgdGhpcy5pc0xvYWRpbmdSZXN1bHQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLmZpbHRlcnNQYXJhbXMkLFxyXG4gICAgICB0aGlzLnJlcG9ydENvbmZpZyQsXHJcbiAgICAgIHRoaXMuX3RyaWdnZXJGaWx0ZXJzU3ViLFxyXG4gICAgXSkucGlwZShcclxuICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcCgoW2NyaXRlcmlhLCBjb25maWddKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNvbmZpZz8ucmVxdWVzdDtcclxuICAgICAgICBpZiAoIXJlcXVlc3QpIHtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IF9wYXlsb2FkID0gY3JpdGVyaWE7XHJcbiAgICAgICAgaWYgKCFjcml0ZXJpYSAmJiAhIWNvbmZpZy5hY3RpdmVRdWVyeSkge1xyXG4gICAgICAgICAgX3BheWxvYWQgPSB0aGlzLnByZXBhcmVDcml0ZXJpYVBheWxvYWQoY29uZmlnLmFjdGl2ZVF1ZXJ5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGEkID0gZnJvbShcclxuICAgICAgICAgIHRoaXMuX3JlcG9ydHNIb29rc1NlcnZpY2UuZXhlY3V0ZUJlZm9yZVN1Ym1pdCh7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuX25kZlJlcG9ydHNTZXJ2aWNlLnByZXBhcmVSZXF1ZXN0KHJlcXVlc3QsIGNyaXRlcmlhKSxcclxuICAgICAgICAgICAgcmVxdWVzdCxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IHRoaXMuX25kZlJlcG9ydHNTZXJ2aWNlLmdldERhdGEocmVxdWVzdCwgcmVzKSksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHJlcG9ydHM6IEFwaVJlc3BvbnNlTW9kZWwpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybVNlcnZpY2UucHJlcGFyZURhdGEocmVwb3J0cywgY29uZmlnKTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oW29mKGNvbmZpZyksIGRhdGEkXSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBtYXAoKFtjb25maWcsIHJlc3BvbnNlXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVBZ2dyZWdhdGlvbnMocmVzcG9uc2U/LmFnZ3JlZ2F0aW9ucyk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNvbmZpZyxcclxuICAgICAgICAgIHJlc3BvbnNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlS2V5Ym9hcmRFdmVudCgpIHtcclxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2tleWRvd24nKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5zaG93RGV0YWlsc1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VEZXRhaWxzUGFuZWwoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZU1hcHBlZFF1ZXJ5KFxyXG4gICAgY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4sXHJcbiAgICBtb2RlOiAncGF5bG9hZCcgfCAncGFyYW1zJ1xyXG4gICkge1xyXG4gICAgcmV0dXJuIG1vZGUgPT0gJ3BheWxvYWQnXHJcbiAgICAgID8gdGhpcy5wcmVwYXJlQ3JpdGVyaWFQYXlsb2FkKGNyaXRlcmlhKVxyXG4gICAgICA6IHtcclxuICAgICAgICAgIHBhcmFtczogdGhpcy5fc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhKSxcclxuICAgICAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlQWN0aXZlUXVlcnkocXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHRoaXMuX2FjdGl2ZVF1ZXJ5U3ViLm5leHQoe1xyXG4gICAgICBwcmV2aW91czogdGhpcy5hY3RpdmVRdWVyeSxcclxuICAgICAgY3VycmVudDogcXVlcnksXHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2FjdGl2ZUZpbHRlcnNRdWVyeVN1Yi5uZXh0KHtcclxuICAgICAgcXVlcnksXHJcbiAgICAgIGVtaXRFdmVudDogZmFsc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVBZ2dyZWdhdGlvbnMoYWdncmVnYXRpb25zOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgJiYgdGhpcy5hZ2dyZWdhdGlvbnMpIHtcclxuICAgICAgdGhpcy5hZ2dyZWdhdGlvbnMgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlbG9hZFN0cmF0ZWd5ID0gdGhpcy5jb25maWc/LmZpbHRlcnM/LnJlbG9hZD8uc3RyYXRlZ3k7XHJcblxyXG4gICAgaWYgKHRoaXMuYWdncmVnYXRpb25zICYmIHJlbG9hZFN0cmF0ZWd5ID09PSAnbmV2ZXInKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5hZ2dyZWdhdGlvbnMgJiYgcmVsb2FkU3RyYXRlZ3kgPT09ICdvbkNoYW5nZScpIHtcclxuICAgICAgaWYgKHRoaXMuX3Nob3VsZFJlbG9hZE9uQ2hhbmdlKCkpIHtcclxuICAgICAgICB0aGlzLl91cGRhdGVBZ2dyZWdhdGlvbnMoYWdncmVnYXRpb25zKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlQWdncmVnYXRpb25zKGFnZ3JlZ2F0aW9ucyk7XHJcbiAgICB0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3VsZFJlbG9hZE9uQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5maWx0ZXJzPy5yZWxvYWQ/LnN0cmF0ZWd5ICE9PSAnb25DaGFuZ2UnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0cmlnZ2VyRmllbGRzID0gdGhpcy5jb25maWc/LmZpbHRlcnM/LnJlbG9hZD8udHJpZ2dlckZpZWxkcztcclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodHJpZ2dlckZpZWxkcykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbGlkRmllbGRzID0gdHJpZ2dlckZpZWxkcy5maWx0ZXIoQm9vbGVhbik7XHJcbiAgICBpZiAoIXZhbGlkRmllbGRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYWN0aXZhdGVkUXVlcnkgPSB0aGlzLl9hY3RpdmVRdWVyeVN1Yi5nZXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LmN1cnJlbnQgfHwge307XHJcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LnByZXZpb3VzIHx8IHt9O1xyXG5cclxuICAgIGNvbnN0IGNoYW5nZWRLZXlzID0gdGhpcy5fZ2V0Q2hhbmdlZEtleXMocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKTtcclxuXHJcbiAgICByZXR1cm4gdmFsaWRGaWVsZHMuc29tZSgoZmllbGQpID0+IGNoYW5nZWRLZXlzLmluY2x1ZGVzKGZpZWxkKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRDaGFuZ2VkS2V5cyhcclxuICAgIHByZXZpb3VzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG4gICAgY3VycmVudDogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGFsbEtleXMgPSBfLnVuaW9uKF8ua2V5cyhwcmV2aW91cyksIF8ua2V5cyhjdXJyZW50KSk7XHJcbiAgICByZXR1cm4gYWxsS2V5cy5maWx0ZXIoKGtleSkgPT4gIV8uaXNFcXVhbChwcmV2aW91c1trZXldLCBjdXJyZW50W2tleV0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZUFnZ3JlZ2F0aW9ucyhhZ2dyZWdhdGlvbnM6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5hZ2dyZWdhdGlvbnMgPSBfLmNsb25lRGVlcChhZ2dyZWdhdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tDb25maWdDaGFuZ2UodmFsdWU6IE5kZlJlcG9ydHNDb25maWcpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlUXVlcnksIC4uLmNvbmZpZyB9ID0gdmFsdWU7XHJcbiAgICBjb25zdCB7IGFjdGl2ZVF1ZXJ5OiBhcSwgLi4uY3VycmVudENvbmZpZyB9ID1cclxuICAgICAgdGhpcy5fY29uZmlnU3ViamVjdC5nZXRWYWx1ZSgpIHx8IHt9O1xyXG5cclxuICAgIHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCA9ICFfLmlzRXF1YWwoY3VycmVudENvbmZpZywgY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRSZXBvcnRzQ29uZmlnKGtleTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uU2VydmljZVxyXG4gICAgICAuZ2V0UmVwb3J0c0NvbmZpZ3VyYXRpb24oa2V5KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xyXG4gICAgICAgIGlmIChjb25maWcpIHtcclxuICAgICAgICAgIHRoaXMuX2luaXRSZXBvcnRzQ29uZmlnKGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRSZXBvcnRzQ29uZmlnKGNvbmZpZzogTmRmUmVwb3J0c0NvbmZpZykge1xyXG4gICAgY29uc3QgdmFsdWUgPSBfLmNsb25lRGVlcChjb25maWcpO1xyXG4gICAgdGhpcy5fY2hlY2tDb25maWdDaGFuZ2UodmFsdWUpO1xyXG4gICAgdGhpcy5fY29uZmlnU3ViamVjdC5uZXh0KHZhbHVlKTtcclxuICAgIGlmICh2YWx1ZT8uYWN0aXZlUXVlcnkgJiYgISFPYmplY3Qua2V5cyh2YWx1ZT8uYWN0aXZlUXVlcnkpLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLl91cGRhdGVBY3RpdmVRdWVyeSh2YWx1ZT8uYWN0aXZlUXVlcnkpO1xyXG4gICAgICB0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0Lm5leHQoXHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZU1hcHBlZFF1ZXJ5KHZhbHVlPy5hY3RpdmVRdWVyeSwgdGhpcy5maWx0ZXJzQ29uZmlnLm1vZGUpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmFjdGl2ZVF1ZXJ5IHx8IE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlUXVlcnkpLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuX3Jlc2V0UXVlcnlBbmRGaWx0ZXJzQ3JpdGVyaWEoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNQYW5lbE9wZW5lZCA9ICEhY29uZmlnPy5maWx0ZXJzLnZpc2libGU7XHJcbiAgICB0aGlzLmlzRGV0YWlsc09wZW5lZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5fcmVwb3J0RGV0YWlsc1N1YmplY3QubmV4dChudWxsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc2V0UXVlcnlBbmRGaWx0ZXJzQ3JpdGVyaWEoKSB7XHJcbiAgICB0aGlzLl91cGRhdGVBY3RpdmVRdWVyeSh7fSk7XHJcbiAgICB0aGlzLl9maWx0ZXJzQ3JpdGVyaWFTdWJqZWN0Lm5leHQobnVsbCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cIm5kZi1yZXBvcnRzX19jb250YWluZXJcIlxyXG4gIFtjbGFzcy5wYW5lbC1vcGVuZWRdPVwiaXNQYW5lbE9wZW5lZCAmJiBmaWx0ZXJzQ29uZmlnXCJcclxuICBbZGlyXT1cImRpcmVjdGlvblwiXHJcbiAgbmRmRmx1aWRIZWlnaHRcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYWJzb2x1dGUgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgbG9hZGluZy1yZXN1bHRcIlxyXG4gICAgKm5nSWY9XCJpc0xvYWRpbmdSZXN1bHQgJiYgY2FsbExvYWRDb25kaXRpb24oKVwiXHJcbiAgPlxyXG4gICAgPG1hdC1zcGlubmVyIGNsYXNzPVwibXQtNSBteC1hdXRvXCIgW2RpYW1ldGVyXT1cIjQ4XCI+PC9tYXQtc3Bpbm5lcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm5kZi1yZXBvcnRzX19wYW5lbCBwcmludDpoaWRkZW5cIj5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyUGFuZWxUZW1wbGF0ZVwiXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcbiAgICAgICAgJGltcGxpY2l0OiBhZ2dyZWdhdGlvbnMsXHJcbiAgICAgICAgZmlsdGVyQ2hhbmdlZDogZmlsdGVyQ2hhbmdlZCxcclxuICAgICAgICBhY3RpdmVRdWVyeTogYWN0aXZlUXVlcnksXHJcbiAgICAgICAgdHJpZ2dlclVwZGF0ZTogdHJpZ2dlclVwZGF0ZSxcclxuICAgICAgICByZXNldDogcmVzZXRGaWx0ZXJzLFxyXG4gICAgICAgIGNvbmZpZzogY29uZmlnXHJcbiAgICAgIH1cIlxyXG4gICAgPjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxhcHAtZmlsdGVycy1wYW5lbFxyXG4gICAgICAqbmdJZj1cIiEhZmlsdGVyc0NvbmZpZz8uZmllbGRzPy5sZW5ndGggJiYgY2FsbExvYWRDb25kaXRpb24oKVwiXHJcbiAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc0NvbmZpZz8uZmllbGRzXCJcclxuICAgICAgW2FnZ3JlZ2F0aW9uc109XCJhZ2dyZWdhdGlvbnNcIlxyXG4gICAgICAoZmlsdGVyQ2hhbmdlZCk9XCJmaWx0ZXJDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICBbYWN0aXZlUXVlcnldPVwiYWN0aXZlRmlsdGVyc1F1ZXJ5JCB8IGFzeW5jXCJcclxuICAgICAgY2xhc3M9XCJuZGYtcmVwb3J0c19fZmlsdGVyc1wiXHJcbiAgICAgIFtjdXN0b21UZW1wbGF0ZVJlZl09XCJmaWx0ZXJDdXN0b21UZW1wbGF0ZVwiXHJcbiAgICA+PC9hcHAtZmlsdGVycy1wYW5lbD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhbGxMb2FkQ29uZGl0aW9uKCk7IGVsc2UgZW1wdHlDb250ZW50XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibmRmLXJlcG9ydHNfX2NvbnRlbnRcIlxyXG4gICAgICAoc2Nyb2xsZWQpPVwib25Db250ZW50U2Nyb2xsKCRldmVudClcIlxyXG4gICAgICAqbmdJZj1cInJlcG9ydHNEYXRhJCB8IGFzeW5jIGFzIHJlcG9ydHNcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibmRmLXJlcG9ydHNfX2hlYWRlciBmbGV4IHB0LTQgcHJpbnQ6aGlkZGVuXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cInRvZ2dsZS1idXR0b25cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtaWNvbj4gZmlsdGVyX2FsdDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGFwcC1lZGl0b3ItYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImpzb25FZGl0b3JFbmFibGVkICYmIHJlcG9ydHNLZXlcIlxyXG4gICAgICAgICAgW2tleV09XCJyZXBvcnRzS2V5XCJcclxuICAgICAgICAgIFt0eXBlXT1cImVkaXRvclR5cGVcIlxyXG4gICAgICAgID48L2FwcC1lZGl0b3ItYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxyXG4gICAgICAgICAgKm5nSWY9XCJjb25maWc/Lm9wdGlvbnM/LnByaW50XCJcclxuICAgICAgICAgIGNsYXNzPVwicHJpbnQtYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJwcmludEFsbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWljb24+IHByaW50PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVwb3J0cy1ncmlkXCIgKm5nSWY9XCIhaXNMb2FkaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgPGFwcC1uZGYtcmVwb3J0XHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29uZmlnIG9mIHJlcG9ydENvbmZpZy5pdGVtczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgICAgICAgIFtkYXRhXT1cInJlcG9ydHM/LnJlc3BvbnNlXCJcclxuICAgICAgICAgIFtjcml0ZXJpYV09XCJmaWx0ZXJzUGFyYW1zJCB8IGFzeW5jXCJcclxuICAgICAgICAgIFtkaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCJcclxuICAgICAgICAgIFthdHRyLmRhdGEtd2lkdGhdPVwiY29uZmlnPy5sYXlvdXQ/LndpZHRoIHx8IDRcIlxyXG4gICAgICAgICAgW2F0dHIuZGF0YS1oZWlnaHRdPVwiY29uZmlnPy5sYXlvdXQ/LmhlaWdodCB8fCAnYXV0bydcIlxyXG4gICAgICAgICAgW2F0dHIuZGF0YS1zdGFydC1jb2x1bW5dPVwiY29uZmlnPy5sYXlvdXQ/LmNvbHVtblBvc2l0aW9uIHx8ICdhdXRvJ1wiXHJcbiAgICAgICAgICBbYXR0ci5kYXRhLXN0YXJ0LXJvd109XCJjb25maWc/LmxheW91dD8ucm93UG9zaXRpb24gfHwgJ2F1dG8nXCJcclxuICAgICAgICAgIFtjbGFzcy53aWRlXT1cImNvbmZpZz8ubGF5b3V0Py53aWR0aCA+PSA2XCJcclxuICAgICAgICAgIFtzdHlsZV09XCJjb25maWc/LmxheW91dD8uc3R5bGVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJyZXBvcnRzLWdyaWRfX2l0ZW0ge3sgY29uZmlnPy5sYXlvdXQ/LnN0eWxlQ2xhc3MgfX0gXCJcclxuICAgICAgICAgIChvbk5hdmlnYXRlKT1cIm9uTmF2aWdhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAob25PcGVuKT1cIm9wZW5SZXBvcnREZXRhaWxzKCRldmVudCwgY29uZmlnKVwiXHJcbiAgICAgICAgPjwvYXBwLW5kZi1yZXBvcnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJuZGYtcmVwb3J0c19fZGV0YWlscyBwcmludDpoaWRkZW5cIlxyXG4gICAgW2NsYXNzLm9wZW5lZF09XCJzaG93RGV0YWlsc1wiXHJcbiAgICBbQHNsaWRlSW5PdXRdPVwic2hvd0RldGFpbHMgPyAnb3BlbicgOiAnY2xvc2VkJ1wiXHJcbiAgICAoQHNsaWRlSW5PdXQuZG9uZSk9XCJvbkRldGFpbHNBbmltYXRpb25FbmQoJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPGFwcC1uZGYtdGFibGVcclxuICAgICAgKm5nSWY9XCJyZXBvcnREZXRhaWxzJCB8IGFzeW5jIGFzIHJlcG9ydFwiXHJcbiAgICAgIFtjb25maWddPVwicmVwb3J0LmNvbmZpZ1wiXHJcbiAgICAgIFthY3RpdmVRdWVyeV09XCJhY3RpdmVGaWx0ZXJzUXVlcnkkIHwgYXN5bmNcIlxyXG4gICAgICBbY3VzdG9tQ3JpdGVyaWFdPVwiZGV0YWlsc0ZpbHRlcnNQYXJhbXMkIHwgYXN5bmNcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgc2VhcmNoVGFibGVUZW1wbGF0ZSBsZXQtdG9nZ2xlPVwidG9nZ2xlUGFuZWxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmRmLXJlcG9ydHNfX2RldGFpbHNfX2hlYWRlciBmbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvZ2dsZS1idXR0b25cIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPiBmaWx0ZXJfYWx0PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJjbG9zZS1idXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VEZXRhaWxzUGFuZWwoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj4gY2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGgzPlxyXG4gICAgICAgICAge3sgcmVwb3J0LmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvYXBwLW5kZi10YWJsZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2VtcHR5Q29udGVudD5cclxuICA8ZGl2IGNsYXNzPVwibmRmLXJlcG9ydHNfX2NvbnRlbnQgZmxleCBpdGVtcy1jZW50ZXIgZmxleC1ncm93LTFcIj5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlDb250ZW50VGVtcGxhdGUgfHwgZGVmYXVsdEVtcHR5Q29udGVudFwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRFbXB0eUNvbnRlbnQ+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLWRhdGEgbXQtMjZcIj5cclxuICAgIHt7ICdub0RhdGEnIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
package/esm2015/lib/components/reports/ndf-reports/directives/empty-content-template.directive.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Directive, InjectionToken } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export const EMPTY_CONTENT_TEMPLATE = new InjectionToken('EmptyContentTemplateDirective');
|
|
4
|
+
export class EmptyContentTemplateDirective {
|
|
5
|
+
constructor(template) {
|
|
6
|
+
this.template = template;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
EmptyContentTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EmptyContentTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
EmptyContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: EmptyContentTemplateDirective, selector: "[emptyContentTemplate]", providers: [
|
|
11
|
+
{
|
|
12
|
+
provide: EMPTY_CONTENT_TEMPLATE,
|
|
13
|
+
useExisting: EmptyContentTemplateDirective,
|
|
14
|
+
},
|
|
15
|
+
], ngImport: i0 });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EmptyContentTemplateDirective, decorators: [{
|
|
17
|
+
type: Directive,
|
|
18
|
+
args: [{
|
|
19
|
+
selector: '[emptyContentTemplate]',
|
|
20
|
+
providers: [
|
|
21
|
+
{
|
|
22
|
+
provide: EMPTY_CONTENT_TEMPLATE,
|
|
23
|
+
useExisting: EmptyContentTemplateDirective,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktY29udGVudC10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvZGlyZWN0aXZlcy9lbXB0eS1jb250ZW50LXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFFdkUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLElBQUksY0FBYyxDQUNoQiwrQkFBK0IsQ0FDaEMsQ0FBQztBQVdKLE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFBRyxDQUFDOzsySEFEdEMsNkJBQTZCOytHQUE3Qiw2QkFBNkIsaURBUDdCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFdBQVcsRUFBRSw2QkFBNkI7U0FDM0M7S0FDRjs0RkFFVSw2QkFBNkI7a0JBVHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcsK0JBQStCO3lCQUMzQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY29uc3QgRU1QVFlfQ09OVEVOVF9URU1QTEFURSA9XHJcbiAgbmV3IEluamVjdGlvblRva2VuPEVtcHR5Q29udGVudFRlbXBsYXRlRGlyZWN0aXZlPihcclxuICAgICdFbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSdcclxuICApO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZW1wdHlDb250ZW50VGVtcGxhdGVdJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRU1QVFlfQ09OVEVOVF9URU1QTEFURSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IEVtcHR5Q29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW1wdHlDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge31cclxufVxyXG4iXX0=
|
package/esm2015/lib/components/reports/ndf-reports/directives/header-panel-template.directive.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Directive, InjectionToken } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export const HEADER_PANEL_TEMPLATE = new InjectionToken('HeaderPanelTemplateDirective');
|
|
4
|
+
export class HeaderPanelTemplateDirective {
|
|
5
|
+
constructor(template) {
|
|
6
|
+
this.template = template;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
HeaderPanelTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HeaderPanelTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
HeaderPanelTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: HeaderPanelTemplateDirective, selector: "[headerPanelTemplate]", providers: [
|
|
11
|
+
{
|
|
12
|
+
provide: HEADER_PANEL_TEMPLATE,
|
|
13
|
+
useExisting: HeaderPanelTemplateDirective,
|
|
14
|
+
},
|
|
15
|
+
], ngImport: i0 });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HeaderPanelTemplateDirective, decorators: [{
|
|
17
|
+
type: Directive,
|
|
18
|
+
args: [{
|
|
19
|
+
selector: '[headerPanelTemplate]',
|
|
20
|
+
providers: [
|
|
21
|
+
{
|
|
22
|
+
provide: HEADER_PANEL_TEMPLATE,
|
|
23
|
+
useExisting: HeaderPanelTemplateDirective,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXBhbmVsLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9kaXJlY3RpdmVzL2hlYWRlci1wYW5lbC10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBRXZFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUNoQyxJQUFJLGNBQWMsQ0FDaEIsOEJBQThCLENBQy9CLENBQUM7QUFXSixNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUcsQ0FBQzs7MEhBRHRDLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLGdEQVA1QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixXQUFXLEVBQUUsNEJBQTRCO1NBQzFDO0tBQ0Y7NEZBRVUsNEJBQTRCO2tCQVR4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLDhCQUE4Qjt5QkFDMUM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEhFQURFUl9QQU5FTF9URU1QTEFURSA9XHJcbiAgbmV3IEluamVjdGlvblRva2VuPEhlYWRlclBhbmVsVGVtcGxhdGVEaXJlY3RpdmU+KFxyXG4gICAgJ0hlYWRlclBhbmVsVGVtcGxhdGVEaXJlY3RpdmUnXHJcbiAgKTtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2hlYWRlclBhbmVsVGVtcGxhdGVdJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogSEVBREVSX1BBTkVMX1RFTVBMQVRFLFxyXG4gICAgICB1c2VFeGlzdGluZzogSGVhZGVyUGFuZWxUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlclBhbmVsVGVtcGxhdGVEaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge31cclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
export * from './empty-content-template.directive';
|
|
2
|
+
export * from './header-panel-template.directive';
|
|
1
3
|
export * from './scrollable-div.directive';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZW1wdHktY29udGVudC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci1wYW5lbC10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbGFibGUtZGl2LmRpcmVjdGl2ZSc7XHJcbiJdfQ==
|