nuxeo-development-framework 3.8.1 → 3.8.3
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 +32267 -31027
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +2 -2
- package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +2 -2
- 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 +2 -2
- 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 +2 -2
- package/esm2015/lib/components/comments/services/comment-api.service.js +3 -3
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +3 -3
- package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +2 -2
- package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +2 -2
- package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +3 -3
- package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +3 -3
- package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +2 -2
- package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +2 -2
- package/esm2015/lib/components/cts-tags/services/tags-api.service.js +2 -2
- package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +6 -6
- package/esm2015/lib/components/custom-toastr/interfaces/toast-type.interface.js +1 -1
- package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +23 -11
- package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +2 -2
- package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +2 -2
- package/esm2015/lib/components/documents/services/document-templates.service.js +3 -3
- package/esm2015/lib/components/documents/services/documents.service.js +3 -3
- package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +2 -2
- package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +2 -2
- package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +3 -3
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +5 -5
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +3 -3
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +2 -2
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +4 -4
- package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +2 -2
- package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +2 -2
- package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +2 -2
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +3 -3
- package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +3 -3
- package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +3 -3
- package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-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/file-manger/components/clipboard/clipboard.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +2 -2
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +5 -5
- package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +4 -4
- package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +3 -3
- package/esm2015/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.js +78 -0
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +459 -301
- package/esm2015/lib/components/file-manger/file-manger.module.js +10 -5
- package/esm2015/lib/components/file-manger/models/file-manager-config.model.js +7 -0
- package/esm2015/lib/components/file-manger/models/index.js +4 -0
- package/esm2015/lib/components/file-manger/models/pagination-payload.mode.js +2 -0
- package/esm2015/lib/components/file-manger/models/pagination-response.model.js +6 -0
- package/esm2015/lib/components/latest-activity/services/activity-log.service.js +3 -3
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +2 -2
- package/esm2015/lib/components/notifications/components/base-list-notfications.component.js +154 -0
- package/esm2015/lib/components/notifications/components/base-notifications.component.js +35 -0
- package/esm2015/lib/components/notifications/components/index.js +7 -0
- package/esm2015/lib/components/notifications/components/notification-item/get-icon.pipe.js +44 -0
- package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +41 -129
- package/esm2015/lib/components/notifications/components/notification-source-select/notification-source-select.component.js +34 -0
- package/esm2015/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.js +26 -0
- package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +75 -165
- package/esm2015/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.js +59 -0
- package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +53 -175
- package/esm2015/lib/components/notifications/components/notifications-list/options.js +24 -0
- package/esm2015/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.js +43 -0
- package/esm2015/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.js +28 -0
- package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.js +30 -0
- package/esm2015/lib/components/notifications/components/notifications-settings/notifications-settings.component.js +163 -0
- package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.js +28 -0
- package/esm2015/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.js +158 -0
- package/esm2015/lib/components/notifications/constants/date.js +8 -0
- package/esm2015/lib/components/notifications/constants/index.js +5 -0
- package/esm2015/lib/components/notifications/constants/pagination.js +5 -0
- package/esm2015/lib/components/notifications/constants/panel.js +5 -0
- package/esm2015/lib/components/notifications/constants/status.js +10 -0
- package/esm2015/lib/components/notifications/containers/index.js +3 -0
- package/esm2015/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.js +98 -0
- package/esm2015/lib/components/notifications/containers/notifications-list-container/options.js +18 -0
- package/esm2015/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.js +67 -0
- package/esm2015/lib/components/notifications/directives/button.directive.js +28 -0
- package/esm2015/lib/components/notifications/directives/index.js +3 -0
- package/esm2015/lib/components/notifications/directives/notification.directive.js +28 -0
- package/esm2015/lib/components/notifications/index.js +2 -0
- package/esm2015/lib/components/notifications/models/common.js +2 -0
- package/esm2015/lib/components/notifications/models/index.js +11 -0
- package/esm2015/lib/components/notifications/models/notification-definition.model.js +2 -0
- package/esm2015/lib/components/notifications/models/notification-options.js +2 -0
- package/esm2015/lib/components/notifications/models/notification-setting.presenter.js +2 -0
- package/esm2015/lib/components/notifications/models/notification-subscription.model.js +2 -0
- package/esm2015/lib/components/notifications/models/notification.model.js +2 -0
- package/esm2015/lib/components/notifications/models/notifications-list-options.js +3 -0
- package/esm2015/lib/components/notifications/models/paging-response.model.js +2 -0
- package/esm2015/lib/components/notifications/models/params.model.js +2 -0
- package/esm2015/lib/components/notifications/models/vocabularies.js +2 -0
- package/esm2015/lib/components/notifications/notifications.module.js +80 -46
- package/esm2015/lib/components/notifications/public-api.js +9 -0
- package/esm2015/lib/components/notifications/services/index.js +2 -0
- package/esm2015/lib/components/notifications/services/listener.service.js +19 -0
- package/esm2015/lib/components/notifications/services/notifications.service.js +155 -0
- package/esm2015/lib/components/notifications/services/params.service.js +31 -0
- package/esm2015/lib/components/notifications/services/response.service.js +65 -0
- package/esm2015/lib/components/notifications/utilities/index.js +2 -0
- package/esm2015/lib/components/notifications/utilities/response.adapter.js +12 -0
- package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +3 -3
- package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +2 -2
- package/esm2015/lib/components/permissions/permission.service.js +2 -2
- package/esm2015/lib/components/permissions/permissions/permissions.component.js +3 -3
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +2 -2
- package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +2 -2
- package/esm2015/lib/components/table/table/table.component.js +3 -3
- package/esm2015/lib/components/{notifications → toasts}/components/notification-toast/notification-toast.component.js +8 -12
- package/esm2015/lib/components/toasts/index.js +2 -0
- package/esm2015/lib/components/toasts/public-api.js +3 -0
- package/esm2015/lib/components/toasts/toasts.module.js +19 -0
- package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +2 -2
- package/esm2015/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.js +2 -2
- package/esm2015/lib/core/adapters/adapter.service.js +1 -1
- package/esm2015/lib/core/core.module.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 +2 -0
- package/esm2015/lib/core/models/automation-response.model.js +2 -0
- package/esm2015/lib/core/models/base-response.models.js +2 -0
- package/esm2015/lib/core/models/index.js +5 -0
- package/esm2015/lib/core/services/callApi/call-api.service.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/initialization/initialization.service.js +1 -1
- package/esm2015/lib/core/services/nuxeo/nuxeo.service.js +3 -3
- package/esm2015/lib/core/services/translation/translation.service.js +3 -3
- 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 +2 -2
- package/esm2015/lib/directive/permissions/evaluators.service.js +2 -2
- package/esm2015/lib/directive/permissions/permissions.directive.js +2 -2
- package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +2 -2
- package/esm2015/lib/directive/rtl/set-rtl.directive.js +2 -2
- package/esm2015/lib/shared-services/dynamic-form.service.js +2 -2
- package/esm2015/lib/shared-services/file-manager.service.js +456 -222
- package/esm2015/lib/shared-services/global-admin.service.js +1 -1
- package/esm2015/lib/shared-services/mainfolder.service.js +3 -3
- package/esm2015/lib/shared-services/publishing-document.service.js +3 -3
- package/esm2015/lib/shared-services/recently-viewed.service.js +3 -3
- package/esm2015/lib/shared-services/shared-docs.service.js +3 -3
- package/esm2015/lib/shared-services/upload-file.service.js +2 -2
- package/esm2015/lib/shared-services/upload-managment.service.js +2 -2
- package/esm2015/lib/shared-services/user.service.js +3 -3
- package/esm2015/public-api.js +145 -149
- package/fesm2015/nuxeo-development-framework.js +24280 -23143
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/activities-log/activities-log/activities-log.service.d.ts +1 -1
- package/lib/components/attachment-item/attachment-item/attachment-item.component.d.ts +1 -1
- package/lib/components/comments/components/comment-item/comment-item.component.d.ts +1 -1
- package/lib/components/comments/components/comments-dashlet/comments-dashlet.component.d.ts +1 -1
- package/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.d.ts +1 -1
- package/lib/components/comments/services/comment-api.service.d.ts +2 -2
- package/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.d.ts +2 -2
- package/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.d.ts +1 -1
- package/lib/components/correspondence-relation/components/versions/versions.component.d.ts +1 -1
- package/lib/components/correspondence-relation/services/correspondence-realation.service.d.ts +2 -2
- package/lib/components/correspondence-relation/services/viewer-files.service.d.ts +2 -2
- package/lib/components/create-entity/create-entity/create-entity.component.d.ts +1 -1
- package/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.d.ts +1 -1
- package/lib/components/cts-tags/services/tags-api.service.d.ts +1 -1
- package/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.d.ts +1 -1
- package/lib/components/custom-toastr/interfaces/toast-type.interface.d.ts +1 -1
- package/lib/components/custom-toastr/services/custom-toastr.service.d.ts +8 -4
- package/lib/components/documents/components/attachments-list/attachments-list.component.d.ts +1 -1
- package/lib/components/documents/components/document-list/documents-list.component.d.ts +1 -1
- package/lib/components/documents/services/document-templates.service.d.ts +2 -2
- package/lib/components/documents/services/documents.service.d.ts +2 -2
- package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts +1 -1
- package/lib/components/dynamic-chart/services/chart-data.service.d.ts +1 -1
- package/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.d.ts +1 -1
- package/lib/components/dynamic-form/components/dynamic-form/form-builder.service.d.ts +1 -1
- package/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.d.ts +1 -1
- package/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.d.ts +1 -1
- package/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.d.ts +1 -1
- package/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.d.ts +4 -4
- package/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.d.ts +2 -2
- package/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.d.ts +1 -1
- package/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.d.ts +1 -1
- package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.d.ts +1 -1
- package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +3 -3
- package/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.d.ts +1 -1
- package/lib/components/dynamic-form/services/dynamic-form-update.service.d.ts +1 -1
- package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts +1 -1
- package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +2 -2
- package/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.d.ts +2 -2
- package/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.d.ts +2 -2
- package/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.d.ts +1 -1
- package/lib/components/dynamic-view/date-viewer/date-viewer.component.d.ts +1 -1
- package/lib/components/dynamic-view/department-viewer/department-viewer.component.d.ts +1 -1
- package/lib/components/file-manger/components/clipboard/clipboard.component.d.ts +1 -1
- package/lib/components/file-manger/components/create-modal/create-modal.component.d.ts +3 -3
- package/lib/components/file-manger/components/folder-modal/folder-modal.component.d.ts +1 -1
- package/lib/components/file-manger/components/scan-modal/scan-modal.component.d.ts +3 -3
- package/lib/components/file-manger/components/share-dialog/share-dialog.component.d.ts +3 -3
- package/lib/components/file-manger/components/sidepanel/sidepanel.component.d.ts +2 -2
- package/lib/components/file-manger/components/update-modal/update-modal.component.d.ts +2 -2
- package/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.d.ts +12 -0
- package/lib/components/file-manger/file-manager.abstract.d.ts +20 -8
- package/lib/components/file-manger/file-manger.module.d.ts +37 -36
- package/lib/components/file-manger/models/file-manager-config.model.d.ts +8 -0
- package/lib/components/file-manger/models/index.d.ts +3 -0
- package/lib/components/file-manger/models/pagination-payload.mode.d.ts +3 -0
- package/lib/components/file-manger/models/pagination-response.model.d.ts +30 -0
- package/lib/components/latest-activity/services/activity-log.service.d.ts +2 -2
- package/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.d.ts +1 -1
- package/lib/components/notifications/components/base-list-notfications.component.d.ts +40 -0
- package/lib/components/notifications/components/base-notifications.component.d.ts +20 -0
- package/lib/components/notifications/components/index.d.ts +6 -0
- package/lib/components/notifications/components/notification-item/get-icon.pipe.d.ts +8 -0
- package/lib/components/notifications/components/notification-item/notification-item.component.d.ts +21 -22
- package/lib/components/notifications/components/notification-source-select/notification-source-select.component.d.ts +12 -0
- package/lib/components/notifications/components/notification-status-toggle/notification-status-toggle.component.d.ts +8 -0
- package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +29 -30
- package/lib/components/notifications/components/notifications-date-select/notifications-date-select.component.d.ts +19 -0
- package/lib/components/notifications/components/notifications-list/notifications-list.component.d.ts +15 -54
- package/lib/components/notifications/components/notifications-list/options.d.ts +2 -0
- package/lib/components/notifications/components/notifications-list-actions/notifications-list-actions.component.d.ts +15 -0
- package/lib/components/notifications/components/notifications-settings/check-if-subscribed.pipe.d.ts +8 -0
- package/lib/components/notifications/components/notifications-settings/notifications-settings.adapter.d.ts +3 -0
- package/lib/components/notifications/components/notifications-settings/notifications-settings.component.d.ts +40 -0
- package/lib/components/notifications/components/notifications-sidebar/notifications-sidebar-content.d.ts +9 -0
- package/lib/components/notifications/components/notifications-sidebar/notifications-sidebar.component.d.ts +43 -0
- package/lib/components/notifications/constants/date.d.ts +7 -0
- package/lib/components/notifications/constants/index.d.ts +4 -0
- package/lib/components/notifications/constants/pagination.d.ts +4 -0
- package/lib/components/notifications/constants/panel.d.ts +4 -0
- package/lib/components/notifications/constants/status.d.ts +9 -0
- package/lib/components/notifications/containers/index.d.ts +2 -0
- package/lib/components/notifications/containers/notifications-list-container/notifications-list-container.component.d.ts +27 -0
- package/lib/components/notifications/containers/notifications-list-container/options.d.ts +2 -0
- package/lib/components/notifications/containers/notifications-settings-container/notifications-settings-container.component.d.ts +22 -0
- package/lib/components/notifications/directives/button.directive.d.ts +9 -0
- package/lib/components/notifications/directives/index.d.ts +2 -0
- package/lib/components/notifications/directives/notification.directive.d.ts +9 -0
- package/lib/components/notifications/index.d.ts +1 -0
- package/lib/components/notifications/models/common.d.ts +64 -0
- package/lib/components/notifications/models/index.d.ts +10 -0
- package/lib/components/notifications/models/notification-definition.model.d.ts +17 -0
- package/lib/components/notifications/models/notification-options.d.ts +7 -0
- package/lib/components/notifications/models/notification-setting.presenter.d.ts +24 -0
- package/lib/components/notifications/models/notification-subscription.model.d.ts +13 -0
- package/lib/components/notifications/models/notification.model.d.ts +16 -0
- package/lib/components/notifications/models/notifications-list-options.d.ts +34 -0
- package/lib/components/notifications/models/paging-response.model.d.ts +12 -0
- package/lib/components/notifications/models/params.model.d.ts +6 -0
- package/lib/components/notifications/models/vocabularies.d.ts +12 -0
- package/lib/components/notifications/notifications.module.d.ts +32 -16
- package/lib/components/notifications/public-api.d.ts +8 -0
- package/lib/components/notifications/services/index.d.ts +1 -0
- package/lib/components/notifications/services/listener.service.d.ts +8 -0
- package/lib/components/notifications/services/notifications.service.d.ts +55 -0
- package/lib/components/notifications/services/params.service.d.ts +19 -0
- package/lib/components/notifications/services/response.service.d.ts +19 -0
- package/lib/components/notifications/utilities/index.d.ts +1 -0
- package/lib/components/notifications/utilities/response.adapter.d.ts +3 -0
- package/lib/components/pdf-tron/pdftron/pdftron.component.d.ts +2 -2
- package/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.d.ts +1 -1
- package/lib/components/permissions/permission.service.d.ts +1 -1
- package/lib/components/permissions/permissions/permissions.component.d.ts +2 -2
- package/lib/components/select-users-by-department/select-users-by-departments/department-management.service.d.ts +1 -1
- package/lib/components/table/dynamic-column/dynamic-column.component.d.ts +1 -1
- package/lib/components/table/table/table.component.d.ts +2 -2
- package/lib/components/{notifications → toasts}/components/notification-toast/notification-toast.component.d.ts +2 -4
- package/lib/components/toasts/index.d.ts +1 -0
- package/lib/components/toasts/public-api.d.ts +2 -0
- package/lib/components/toasts/toasts.module.d.ts +8 -0
- package/lib/components/vocabulary/services/vocabulary-api.service.d.ts +1 -1
- package/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.d.ts +1 -1
- package/lib/core/models/api-response.model.d.ts +24 -0
- package/lib/core/models/automation-response.model.d.ts +24 -0
- package/lib/core/models/base-response.models.d.ts +12 -0
- package/lib/core/models/index.d.ts +4 -0
- package/lib/core/services/nuxeo/nuxeo.service.d.ts +1 -1
- package/lib/core/services/translation/translation.service.d.ts +3 -3
- package/lib/directive/app-has-role/app-has-role.directive.d.ts +1 -1
- package/lib/directive/permissions/evaluators.service.d.ts +1 -1
- package/lib/directive/permissions/permissions.directive.d.ts +1 -1
- package/lib/directive/rtl/set-dir-rtl.directive.d.ts +1 -1
- package/lib/directive/rtl/set-rtl.directive.d.ts +1 -1
- package/lib/shared-services/dynamic-form.service.d.ts +1 -1
- package/lib/shared-services/file-manager.service.d.ts +27 -19
- package/lib/shared-services/mainfolder.service.d.ts +2 -2
- package/lib/shared-services/publishing-document.service.d.ts +2 -2
- package/lib/shared-services/recently-viewed.service.d.ts +2 -2
- package/lib/shared-services/shared-docs.service.d.ts +2 -2
- package/lib/shared-services/upload-file.service.d.ts +1 -1
- package/lib/shared-services/upload-managment.service.d.ts +1 -1
- package/lib/shared-services/user.service.d.ts +2 -2
- package/package.json +1 -1
- package/public-api.d.ts +139 -143
- package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +0 -22
- package/esm2015/lib/components/notifications/notifications.service.js +0 -358
- package/lib/components/notifications/components/notification-options/notification-options.component.d.ts +0 -10
- package/lib/components/notifications/notifications.service.d.ts +0 -87
|
@@ -1,181 +1,91 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Inject, Input, Optional, Output, TemplateRef, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { map, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
4
|
+
import { PANEL_MODE } from '../../constants';
|
|
5
|
+
import { NOTIFICATION_ICON } from '../../directives';
|
|
6
|
+
import { NOTIFICATIONS_LIST_OPTIONS, } from '../../models';
|
|
7
|
+
import { BaseNotification } from '../base-notifications.component';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "
|
|
8
|
-
import * as i2 from "
|
|
9
|
-
import * as i3 from "
|
|
10
|
-
import * as i4 from "
|
|
11
|
-
import * as i5 from "@angular/
|
|
12
|
-
import * as i6 from "
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
9
|
+
import * as i1 from "@angular/material/menu";
|
|
10
|
+
import * as i2 from "../notifications-list/notifications-list.component";
|
|
11
|
+
import * as i3 from "../notifications-sidebar/notifications-sidebar.component";
|
|
12
|
+
import * as i4 from "@angular/common";
|
|
13
|
+
import * as i5 from "@angular/material/badge";
|
|
14
|
+
import * as i6 from "../notifications-sidebar/notifications-sidebar-content";
|
|
15
|
+
export class NotificationsButtonComponent extends BaseNotification {
|
|
16
|
+
constructor(inject, _options) {
|
|
17
|
+
super(inject);
|
|
18
|
+
this.inject = inject;
|
|
19
|
+
this._getCountSub = new BehaviorSubject(null);
|
|
20
|
+
this._showBadgeSub = new BehaviorSubject(false);
|
|
21
|
+
this.showBadge$ = this._showBadgeSub.asObservable();
|
|
22
|
+
this.isSidebarOpened = false;
|
|
23
|
+
this.styleClass = '';
|
|
24
|
+
this.badgeOptions = {
|
|
25
|
+
size: 'small',
|
|
26
|
+
color: 'warn',
|
|
27
|
+
position: 'before',
|
|
28
|
+
};
|
|
29
|
+
this.direction$ = this._translationService.isArabic$.pipe(map((isArabic) => (isArabic ? 'rtl' : 'ltr')));
|
|
30
|
+
this.sidebarPosition$ = this._translationService.isArabic$.pipe(map((isArabic) => (isArabic ? 'left' : 'right')));
|
|
27
31
|
this.listItemClick = new EventEmitter();
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
32
|
+
this.openSettings = new EventEmitter();
|
|
33
|
+
this.openNotifications = new EventEmitter();
|
|
34
|
+
this.newNotificationCount$ = this._getCountSub.pipe(switchMap((_) => this.notificationsService.getUnReadCount()), tap((count) => {
|
|
35
|
+
this._showBadgeSub.next(count > 0);
|
|
36
|
+
}), map((count) => (count >= 100 ? '99+' : count)));
|
|
37
|
+
this.panelMode = PANEL_MODE.sidebar;
|
|
38
|
+
this.panelModeEnum = PANEL_MODE;
|
|
39
|
+
if (_options === null || _options === void 0 ? void 0 : _options.panelMode) {
|
|
40
|
+
this.panelMode = _options.panelMode;
|
|
41
|
+
}
|
|
30
42
|
}
|
|
31
|
-
|
|
32
|
-
|
|
43
|
+
hideBadgeCount() {
|
|
44
|
+
this._showBadgeSub.next(false);
|
|
33
45
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
leaveAnimation: dir === 'rtl' ? slideOutRtl : slideOut,
|
|
41
|
-
component: NotificationsModalComponent,
|
|
42
|
-
showBackdrop: false
|
|
43
|
-
});
|
|
44
|
-
return await notificationsModal.present().then(() => {
|
|
45
|
-
this.notificationsService.resetCount();
|
|
46
|
-
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
*/
|
|
50
|
-
getNotifications() {
|
|
51
|
-
this.notificationsService.resetNotifications();
|
|
52
|
-
this.notificationsService.resetFilterParams();
|
|
53
|
-
this.notificationsService.showFilters = this.showFilters;
|
|
54
|
-
this.notificationsService.fetchNotifications().subscribe(() => {
|
|
55
|
-
this.notificationsService.resetCount();
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
ngOnInit() {
|
|
59
|
-
this.subscription = this.notificationsService.listenerObserver.subscribe((activity) => __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
let ar = yield this.translationService.isArabic
|
|
61
|
-
.pipe(first())
|
|
62
|
-
.toPromise();
|
|
63
|
-
let sourceType = activity.sourceType;
|
|
64
|
-
const isAssignmentOrApproval = sourceType === "approval" || sourceType === "assignment";
|
|
65
|
-
const correspondence = sourceType === "correspondence";
|
|
66
|
-
const assignment = sourceType === "assignment";
|
|
67
|
-
const approval = sourceType === "approval";
|
|
68
|
-
const memo = sourceType === "memo";
|
|
69
|
-
const general = sourceType === "general";
|
|
70
|
-
const id = memo ? activity.sourceId : activity.data.correspondenceId;
|
|
71
|
-
this.showToastr(activity, ar)
|
|
72
|
-
.onTap.pipe(take(1))
|
|
73
|
-
.subscribe(() => {
|
|
74
|
-
var _a;
|
|
75
|
-
this.notificationsService.updateStatus(activity, true);
|
|
76
|
-
if ((_a = activity.data) === null || _a === void 0 ? void 0 : _a.correspondenceId) {
|
|
77
|
-
this.router.navigate([
|
|
78
|
-
{
|
|
79
|
-
outlets: {
|
|
80
|
-
viewer: ["view", id],
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
], {
|
|
84
|
-
queryParams: Object.assign(Object.assign({ location: this.router.url }, (isAssignmentOrApproval && { approvalMode: true })), (assignment && {
|
|
85
|
-
assignmentId: activity.data.assignmentId,
|
|
86
|
-
})),
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
if (memo) {
|
|
90
|
-
this.router.navigate([{ outlets: { viewer: ["memo", id] } }], {
|
|
91
|
-
queryParams: { location: this.router.url },
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
this.toastrClick.next(activity);
|
|
95
|
-
});
|
|
96
|
-
this.ref.markForCheck();
|
|
97
|
-
}));
|
|
98
|
-
this.updater = this.notificationsService.update.subscribe((data) => {
|
|
99
|
-
this.ref.detectChanges();
|
|
46
|
+
markAllAsUnread() {
|
|
47
|
+
this.notificationsService
|
|
48
|
+
.markAllNewAsUnread()
|
|
49
|
+
.pipe(takeUntil(this.destroy$))
|
|
50
|
+
.subscribe((res) => {
|
|
51
|
+
this.hideBadgeCount();
|
|
100
52
|
});
|
|
101
|
-
// setTimeout(() => {
|
|
102
|
-
// this.showToastr({
|
|
103
|
-
// sendDate:"111",
|
|
104
|
-
// content:"test",
|
|
105
|
-
// data:{
|
|
106
|
-
// correspondenceId:"f9c36fe1-7054-4f81-a89b-096ad24a03b5"
|
|
107
|
-
// }
|
|
108
|
-
// }).onTap.pipe(take(1)).subscribe(() => {
|
|
109
|
-
// // this.notificationsService.updateStatus(activity, true);
|
|
110
|
-
// console.log("here")
|
|
111
|
-
// })
|
|
112
|
-
// }, 1000);
|
|
113
|
-
}
|
|
114
|
-
onListItemClick(event) {
|
|
115
|
-
this.listItemClick.next(event);
|
|
116
53
|
}
|
|
117
|
-
|
|
118
|
-
this.
|
|
119
|
-
this.updater.unsubscribe();
|
|
120
|
-
this.notificationsService.unsubscribe();
|
|
121
|
-
}
|
|
122
|
-
// test() {
|
|
123
|
-
// this.toastr.show(`dsssdsds`, 'here is the content of the notification ', {
|
|
124
|
-
// toastComponent: NotificationToastComponent,
|
|
125
|
-
// closeButton: true,
|
|
126
|
-
// // extendedTimeOut: 0,
|
|
127
|
-
// timeOut: 10000,
|
|
128
|
-
// // tapToDismiss: false,
|
|
129
|
-
// enableHtml: true,
|
|
130
|
-
// positionClass:
|
|
131
|
-
// this.translate.instant('dir') === 'rtl'
|
|
132
|
-
// ? 'toast-bottom-left'
|
|
133
|
-
// : 'toast-bottom-right',
|
|
134
|
-
// toastClass: 'notification-toast',
|
|
135
|
-
// });
|
|
136
|
-
// }
|
|
137
|
-
showToastr(activity, ar) {
|
|
138
|
-
let arContent;
|
|
139
|
-
let enContent;
|
|
140
|
-
activity.notificationContents.forEach((res) => {
|
|
141
|
-
if (res.lang === "AR") {
|
|
142
|
-
arContent = res.message;
|
|
143
|
-
}
|
|
144
|
-
if (res.lang === "EN") {
|
|
145
|
-
enContent = res.message;
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
const activeToast = this.toastr.show(`${this.TimeAgo.transform(activity.sendDate)}`, ar ? arContent : enContent, {
|
|
149
|
-
toastComponent: NotificationToastComponent,
|
|
150
|
-
closeButton: true,
|
|
151
|
-
timeOut: 10000,
|
|
152
|
-
enableHtml: true,
|
|
153
|
-
positionClass: this.translate.instant("dir") === "rtl"
|
|
154
|
-
? "toast-bottom-left"
|
|
155
|
-
: "toast-bottom-right",
|
|
156
|
-
toastClass: "notification-toast",
|
|
157
|
-
});
|
|
158
|
-
activeToast.toastRef.componentInstance.id = activity.data.correspondenceId;
|
|
159
|
-
return activeToast;
|
|
54
|
+
toggleSideBar(value = !this.isSidebarOpened) {
|
|
55
|
+
this.isSidebarOpened = value;
|
|
160
56
|
}
|
|
161
57
|
}
|
|
162
|
-
NotificationsButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsButtonComponent, deps: [{ token:
|
|
163
|
-
NotificationsButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationsButtonComponent, selector: "app-notifications-button", inputs: {
|
|
58
|
+
NotificationsButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsButtonComponent, deps: [{ token: i0.Injector }, { token: NOTIFICATIONS_LIST_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
NotificationsButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationsButtonComponent, selector: "app-notifications-button", inputs: { styleClass: "styleClass", badgeOptions: "badgeOptions" }, outputs: { listItemClick: "listItemClick", openSettings: "openSettings", openNotifications: "openNotifications" }, host: { classAttribute: "inline-flex justify-center items-center notification-button" }, queries: [{ propertyName: "customIconTemplate", first: true, predicate: NOTIFICATION_ICON, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<button\r\n *ngIf=\"panelMode === panelModeEnum.panel\"\r\n [matMenuTriggerFor]=\"notifications\"\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (menuOpened)=\"markAllAsUnread()\"\r\n>\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n</button>\r\n\r\n<mat-menu #notifications=\"matMenu\" class=\"notification-list-panel\">\r\n <ng-template matMenuContent>\r\n <app-notifications-list\r\n (itemClicked)=\"listItemClick.emit($event); notifications.closed.emit()\"\r\n (openSettings)=\"openSettings.emit($event); notifications.closed.emit()\"\r\n (openNotifications)=\"openNotifications.emit($event); notifications.closed.emit()\"\r\n (markAllRead)=\"hideBadgeCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n <div class=\"notification-list-panel__footer flex justify-center\">\r\n <ng-content select=\"[notifications-footer]\"></ng-content>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-container *ngIf=\"panelMode === panelModeEnum.sidebar\">\r\n <button\r\n [matBadge]=\"newNotificationCount$ | async\"\r\n [matBadgeHidden]=\"!(showBadge$ | async)\"\r\n [matBadgeSize]=\"badgeOptions.size\"\r\n [matBadgeColor]=\"badgeOptions.color\"\r\n [matBadgePosition]=\"badgeOptions.position\"\r\n [class]=\"styleClass\"\r\n (click)=\"toggleSideBar();markAllAsUnread()\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"customIconTemplate || defaultIconTemplate\">\r\n </ng-container>\r\n </button>\r\n <app-notifications-sidebar [(visible)]=\"isSidebarOpened\" [position]=\"sidebarPosition$ | async\">\r\n <ng-template appNotificationSidebarContent>\r\n <app-notifications-list\r\n class=\"notifications-sidebar\"\r\n (itemClicked)=\"listItemClick.emit($event);toggleSideBar(false)\"\r\n (openSettings)=\"openSettings.emit($event);toggleSideBar(false)\"\r\n (openNotifications)=\"openNotifications.emit($event);toggleSideBar(false)\"\r\n (markAllRead)=\"hideBadgeCount()\"\r\n ></app-notifications-list>\r\n </ng-template>\r\n </app-notifications-sidebar>\r\n</ng-container>\r\n\r\n<ng-template #defaultIconTemplate>\r\n <i class=\"bi bi-bell bell\"></i>\r\n</ng-template>\r\n", styles: [".notification-button{font-size:var(--not-btn-font-size, 1.5rem);width:var(--not-btn-width, 40px)}.notification-list-panel{--width: var(--nos-panel-width, min(80vw, 450px));width:var(--width);border-radius:var(--nos-panel-radius, 5px);overflow:hidden;-webkit-overflow-scrolling:touch;outline:0;background:var(--nos-panel-background, #fff)}.notification-list-panel.mat-menu-panel{max-width:var(--width);max-height:var(--nos-panel-max-height, var(--height))}.notification-list-panel__navigate-btn{background:var(--not-btn-background, transparent);border-radius:var(--not-btn-radius, 5px);padding:var(--not-btn-padding, .5rem 1rem);margin:var(--not-btn-margin, .5rem 0);color:var(--not-btn-color, currentColor);width:var(--not-btn-width, 90%)}.notification-list-panel__navigate-btn:hover{--not-btn-background: var(--not-btn-hover-background, #f0f0f0);--not-btn-color: var(--not-btn-hover-color);-webkit-text-decoration:var(--not-btn-decoration, none);text-decoration:var(--not-btn-decoration, none)}.notification-list-panel__navigate-btn:active{--not-btn-background: var(--not-btn-active-background, #e2e2e2);--not-btn-color: var(--not-btn-active-color)}.notifications-sidebar{--nto-list-header-padding: var(--sidebar-list-header-padding , 1rem);--nto-list-height: var(--sidebar-list-height , calc(100vh - 100px))}\n"], components: [{ type: i1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i2.NotificationsListComponent, selector: "app-notifications-list", outputs: ["openSettings", "openNotifications"] }, { type: i3.NotificationsSidebarComponent, selector: "app-notifications-sidebar", inputs: ["appendToBody", "clearOnCLose", "visible", "position"], outputs: ["visibleChange", "onShow", "onHide"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i5.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgePosition", "matBadgeSize", "matBadgeColor", "matBadgeOverlap", "matBadgeDescription", "matBadgeHidden", "matBadge"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { type: i6.NotificationSidebarContentDirective, selector: "[appNotificationSidebarContent]" }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
164
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsButtonComponent, decorators: [{
|
|
165
61
|
type: Component,
|
|
166
62
|
args: [{
|
|
167
|
-
selector:
|
|
168
|
-
templateUrl:
|
|
169
|
-
styleUrls: [
|
|
63
|
+
selector: 'app-notifications-button',
|
|
64
|
+
templateUrl: './notifications-button.component.html',
|
|
65
|
+
styleUrls: ['./notifications-button.component.scss'],
|
|
170
66
|
encapsulation: ViewEncapsulation.None,
|
|
67
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
68
|
+
host: {
|
|
69
|
+
class: 'inline-flex justify-center items-center notification-button',
|
|
70
|
+
},
|
|
171
71
|
}]
|
|
172
|
-
}], ctorParameters: function () { return [{ type:
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
72
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: undefined, decorators: [{
|
|
73
|
+
type: Optional
|
|
74
|
+
}, {
|
|
75
|
+
type: Inject,
|
|
76
|
+
args: [NOTIFICATIONS_LIST_OPTIONS]
|
|
77
|
+
}] }]; }, propDecorators: { styleClass: [{
|
|
177
78
|
type: Input
|
|
178
|
-
}],
|
|
79
|
+
}], badgeOptions: [{
|
|
179
80
|
type: Input
|
|
81
|
+
}], listItemClick: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}], openSettings: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}], openNotifications: [{
|
|
86
|
+
type: Output
|
|
87
|
+
}], customIconTemplate: [{
|
|
88
|
+
type: ContentChild,
|
|
89
|
+
args: [NOTIFICATION_ICON, { read: TemplateRef, static: true }]
|
|
180
90
|
}] } });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1idXR0b24vbm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1idXR0b24vbm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUVoRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQVN2QyxNQUFNLE9BQU8sNEJBQTRCO0lBY3ZDLFlBQ1Msb0JBQTBDLEVBQzFDLFNBQTJCLEVBQzNCLE1BQXFCLEVBQ3JCLE9BQW9CLEVBQ3BCLE1BQWMsRUFDYixHQUFzQixFQUN0QixrQkFBc0M7UUFOdkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsV0FBTSxHQUFOLE1B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Q0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFM0UsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7MEhBdktVLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLG1PQzNCekMsMjdCQWVjOzRGRFlELDRCQUE0QjtrQkFOeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsdUNBQXVDO29CQUNwRCxTQUFTLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztvQkFDcEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDO3NSQVNDLFdBQVc7c0JBRFYsTUFBTTtnQkFHUCxhQUFhO3NCQURaLE1BQU07Z0JBRUUsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNDLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZlVG9hc3QsIFRvYXN0clNlcnZpY2UgfSBmcm9tIFwibmd4LXRvYXN0clwiO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSBcInJ4anMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VcIjtcclxuaW1wb3J0IHsgVGltZUFnb1BpcGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vcGlwZXMvdGltZS1hZ28ucGlwZVwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gXCIuLi8uLi9ub3RpZmljYXRpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uVG9hc3RDb21wb25lbnQgfSBmcm9tIFwiLi4vbm90aWZpY2F0aW9uLXRvYXN0L25vdGlmaWNhdGlvbi10b2FzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1ub3RpZmljYXRpb25zLWJ1dHRvblwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vbm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vbm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZ2V0IG5vdGlmaWNhdGlvbnNDb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLm5vdGlmaWNhdGlvbnNDb3VudDtcclxuICB9XHJcblxyXG4gIHN1YnNjcmlwdGlvbjtcclxuICB1cGRhdGVyO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHRvYXN0ckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGxpc3RJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgY3VzdG9tTm90aWZpY2F0aW9uSWNvbiA9IG51bGw7XHJcbkBJbnB1dCgpIHNob3dGaWx0ZXJzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgcHVibGljIFRpbWVBZ286IFRpbWVBZ29QaXBlLFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZVxyXG4gICkge31cclxuICAvKlxyXG4gIGFzeW5jIG9wZW5Ob3RpZmljYXRpb25zKGV2ZW50KSB7XHJcbiAgICBjb25zdCBkaXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdkaXInKTtcclxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbnNNb2RhbCA9IGF3YWl0IHRoaXMubW9kYWxDb250cm9sbGVyLmNyZWF0ZSh7XHJcbiAgICAgIGNzc0NsYXNzOiAnc2lkZS1tb2RhbCBub3RpZmljYXRpb25zJyxcclxuICAgICAgZW50ZXJBbmltYXRpb246IGRpciA9PT0gJ3J0bCcgPyBzbGlkZUluUnRsIDogc2xpZGVJbixcclxuICAgICAgbGVhdmVBbmltYXRpb246IGRpciA9PT0gJ3J0bCcgPyBzbGlkZU91dFJ0bCA6IHNsaWRlT3V0LFxyXG4gICAgICBjb21wb25lbnQ6IE5vdGlmaWNhdGlvbnNNb2RhbENvbXBvbmVudCxcclxuICAgICAgc2hvd0JhY2tkcm9wOiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYXdhaXQgbm90aWZpY2F0aW9uc01vZGFsLnByZXNlbnQoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5yZXNldENvdW50KCk7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG4gICovXHJcbiAgZ2V0Tm90aWZpY2F0aW9ucygpIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UucmVzZXROb3RpZmljYXRpb25zKCk7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnJlc2V0RmlsdGVyUGFyYW1zKCk7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLnNob3dGaWx0ZXJzID0gdGhpcy5zaG93RmlsdGVycztcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5mZXRjaE5vdGlmaWNhdGlvbnMoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UucmVzZXRDb3VudCgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UubGlzdGVuZXJPYnNlcnZlci5zdWJzY3JpYmUoXHJcbiAgICAgIGFzeW5jIChhY3Rpdml0eSkgPT4ge1xyXG4gICAgICAgIGxldCBhciA9IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmlzQXJhYmljXHJcbiAgICAgICAgICAucGlwZShmaXJzdCgpKVxyXG4gICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGxldCBzb3VyY2VUeXBlID0gYWN0aXZpdHkuc291cmNlVHlwZTtcclxuICAgICAgICBjb25zdCBpc0Fzc2lnbm1lbnRPckFwcHJvdmFsOiBib29sZWFuID1cclxuICAgICAgICAgIHNvdXJjZVR5cGUgPT09IFwiYXBwcm92YWxcIiB8fCBzb3VyY2VUeXBlID09PSBcImFzc2lnbm1lbnRcIjtcclxuICAgICAgICBjb25zdCBjb3JyZXNwb25kZW5jZSA9IHNvdXJjZVR5cGUgPT09IFwiY29ycmVzcG9uZGVuY2VcIjtcclxuICAgICAgICBjb25zdCBhc3NpZ25tZW50ID0gc291cmNlVHlwZSA9PT0gXCJhc3NpZ25tZW50XCI7XHJcbiAgICAgICAgY29uc3QgYXBwcm92YWwgPSBzb3VyY2VUeXBlID09PSBcImFwcHJvdmFsXCI7XHJcbiAgICAgICAgY29uc3QgbWVtbyA9IHNvdXJjZVR5cGUgPT09IFwibWVtb1wiO1xyXG4gICAgICAgIGNvbnN0IGdlbmVyYWwgPSBzb3VyY2VUeXBlID09PSBcImdlbmVyYWxcIjtcclxuICAgICAgICBjb25zdCBpZCA9IG1lbW8gPyBhY3Rpdml0eS5zb3VyY2VJZCA6IGFjdGl2aXR5LmRhdGEuY29ycmVzcG9uZGVuY2VJZDtcclxuXHJcbiAgICAgICAgdGhpcy5zaG93VG9hc3RyKGFjdGl2aXR5LCBhcilcclxuICAgICAgICAgIC5vblRhcC5waXBlKHRha2UoMSkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS51cGRhdGVTdGF0dXMoYWN0aXZpdHksIHRydWUpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aXZpdHkuZGF0YT8uY29ycmVzcG9uZGVuY2VJZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxyXG4gICAgICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3V0bGV0czoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdmlld2VyOiBbXCJ2aWV3XCIsIGlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogdGhpcy5yb3V0ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLihpc0Fzc2lnbm1lbnRPckFwcHJvdmFsICYmIHsgYXBwcm92YWxNb2RlOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgIC4uLihhc3NpZ25tZW50ICYmIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnRJZDogYWN0aXZpdHkuZGF0YS5hc3NpZ25tZW50SWQsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAobWVtbykge1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7IG91dGxldHM6IHsgdmlld2VyOiBbXCJtZW1vXCIsIGlkXSB9IH1dLCB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogeyBsb2NhdGlvbjogdGhpcy5yb3V0ZXIudXJsIH0sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy50b2FzdHJDbGljay5uZXh0KGFjdGl2aXR5KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMudXBkYXRlciA9IHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UudXBkYXRlLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLnNob3dUb2FzdHIoe1xyXG4gICAgLy8gICAgIHNlbmREYXRlOlwiMTExXCIsXHJcbiAgICAvLyAgICAgY29udGVudDpcInRlc3RcIixcclxuICAgIC8vICAgICBkYXRhOntcclxuICAgIC8vICAgICAgIGNvcnJlc3BvbmRlbmNlSWQ6XCJmOWMzNmZlMS03MDU0LTRmODEtYTg5Yi0wOTZhZDI0YTAzYjVcIlxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSkub25UYXAucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgLy8gICAgIC8vIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UudXBkYXRlU3RhdHVzKGFjdGl2aXR5LCB0cnVlKTtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcImhlcmVcIilcclxuICAgIC8vICAgfSlcclxuICAgIC8vIH0sIDEwMDApO1xyXG4gIH1cclxuICBvbkxpc3RJdGVtQ2xpY2soZXZlbnQpe1xyXG4gICAgdGhpcy5saXN0SXRlbUNsaWNrLm5leHQoZXZlbnQpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnVwZGF0ZXIudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgLy8gdGVzdCgpIHtcclxuICAvLyAgIHRoaXMudG9hc3RyLnNob3coYGRzc3Nkc2RzYCwgJ2hlcmUgaXMgdGhlIGNvbnRlbnQgb2YgdGhlIG5vdGlmaWNhdGlvbiAnLCB7XHJcbiAgLy8gICAgIHRvYXN0Q29tcG9uZW50OiBOb3RpZmljYXRpb25Ub2FzdENvbXBvbmVudCxcclxuICAvLyAgICAgY2xvc2VCdXR0b246IHRydWUsXHJcbiAgLy8gICAgIC8vIGV4dGVuZGVkVGltZU91dDogMCxcclxuICAvLyAgICAgdGltZU91dDogMTAwMDAsXHJcbiAgLy8gICAgIC8vIHRhcFRvRGlzbWlzczogZmFsc2UsXHJcbiAgLy8gICAgIGVuYWJsZUh0bWw6IHRydWUsXHJcbiAgLy8gICAgIHBvc2l0aW9uQ2xhc3M6XHJcbiAgLy8gICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZGlyJykgPT09ICdydGwnXHJcbiAgLy8gICAgICAgICA/ICd0b2FzdC1ib3R0b20tbGVmdCdcclxuICAvLyAgICAgICAgIDogJ3RvYXN0LWJvdHRvbS1yaWdodCcsXHJcbiAgLy8gICAgIHRvYXN0Q2xhc3M6ICdub3RpZmljYXRpb24tdG9hc3QnLFxyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICBzaG93VG9hc3RyKGFjdGl2aXR5LCBhcik6IEFjdGl2ZVRvYXN0PGFueT4ge1xyXG4gICAgbGV0IGFyQ29udGVudDtcclxuICAgIGxldCBlbkNvbnRlbnQ7XHJcbiAgICBhY3Rpdml0eS5ub3RpZmljYXRpb25Db250ZW50cy5mb3JFYWNoKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcy5sYW5nID09PSBcIkFSXCIpIHtcclxuICAgICAgICBhckNvbnRlbnQgPSByZXMubWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzLmxhbmcgPT09IFwiRU5cIikge1xyXG4gICAgICAgIGVuQ29udGVudCA9IHJlcy5tZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGFjdGl2ZVRvYXN0ID0gdGhpcy50b2FzdHIuc2hvdyhcclxuICAgICAgYCR7dGhpcy5UaW1lQWdvLnRyYW5zZm9ybShhY3Rpdml0eS5zZW5kRGF0ZSl9YCxcclxuICAgICAgYXIgPyBhckNvbnRlbnQgOiBlbkNvbnRlbnQsXHJcbiAgICAgIHtcclxuICAgICAgICB0b2FzdENvbXBvbmVudDogTm90aWZpY2F0aW9uVG9hc3RDb21wb25lbnQsXHJcbiAgICAgICAgY2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgdGltZU91dDogMTAwMDAsXHJcbiAgICAgICAgZW5hYmxlSHRtbDogdHJ1ZSxcclxuICAgICAgICBwb3NpdGlvbkNsYXNzOlxyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImRpclwiKSA9PT0gXCJydGxcIlxyXG4gICAgICAgICAgICA/IFwidG9hc3QtYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICA6IFwidG9hc3QtYm90dG9tLXJpZ2h0XCIsXHJcbiAgICAgICAgdG9hc3RDbGFzczogXCJub3RpZmljYXRpb24tdG9hc3RcIixcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGFjdGl2ZVRvYXN0LnRvYXN0UmVmLmNvbXBvbmVudEluc3RhbmNlLmlkID0gYWN0aXZpdHkuZGF0YS5jb3JyZXNwb25kZW5jZUlkO1xyXG5cclxuICAgIHJldHVybiBhY3RpdmVUb2FzdDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibGFuZ01lbnVcIiBjbGFzcz1cIm5vdGlmaWNhdGlvblwiIChjbGljayk9XCJnZXROb3RpZmljYXRpb25zKClcIiBjbGFzcz1cInNlYXJjaC13cmFwcGVyXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbnNDb3VudCA+IDBcIj5cclxuICAgIDxzcGFuICpuZ0lmPVwiIWN1c3RvbU5vdGlmaWNhdGlvbkljb247ZWxzZSBjdXN0b21JY29uXCIgbWF0QmFkZ2VTaXplPVwic21hbGxcIiBtYXRCYWRnZT1cInt7IG5vdGlmaWNhdGlvbnNDb3VudCB9fVwiXHJcbiAgICAgIG1hdEJhZGdlQ29sb3I9XCJ3YXJuXCIgbWF0YmFkZ2Vwb3NpdGlvbj1cImJlZm9yZVwiIGNsYXNzPVwiYmkgYmktYmVsbCBiZWxsXCI+PC9zcGFuPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJub3RpZmljYXRpb25zQ291bnQgPT09IDBcIj5cclxuICAgIDxzcGFuICpuZ0lmPVwiIWN1c3RvbU5vdGlmaWNhdGlvbkljb247ZWxzZSBjdXN0b21JY29uXCIgY2xhc3M9XCJiaSBiaS1iZWxsIGJlbGxcIj48L3NwYW4+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG48bWF0LW1lbnUgY2xhc3M9XCJtYXQtbWVudS1wYW5lbCBteU1lbnUgbm90aWZpY2F0aW9uLWxpc3RcIiAjbGFuZ01lbnU9XCJtYXRNZW51XCI+XHJcbiAgPGFwcC1ub3RpZmljYXRpb25zLWxpc3QgW3Nob3dGaWx0ZXJzXT1cInNob3dGaWx0ZXJzXCIgKGxpc3RJdGVtQ2xpY2spPVwib25MaXN0SXRlbUNsaWNrKCRldmVudClcIj48L2FwcC1ub3RpZmljYXRpb25zLWxpc3Q+XHJcbjwvbWF0LW1lbnU+XHJcblxyXG48bmctdGVtcGxhdGUgI2N1c3RvbUljb24+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbU5vdGlmaWNhdGlvbkljb25cIj48L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1idXR0b24vbm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1idXR0b24vbm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBRU4sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUlMLDBCQUEwQixHQUUzQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7QUFZbkUsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGdCQUFn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dEJhLDRCQUE0QjtrQkFWeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsdUNBQXVDO29CQUNwRCxTQUFTLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztvQkFDcEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLDZEQUE2RDtxQkFDckU7aUJBQ0Y7OzBCQTJDSSxRQUFROzswQkFDUixNQUFNOzJCQUFDLDBCQUEwQjs0Q0FwQzNCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFjSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUdQLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0LFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUEFORUxfTU9ERSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IE5PVElGSUNBVElPTl9JQ09OIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7XHJcbiAgQmFkZ2VPcHRpb25zLFxyXG4gIE5vdGlmaWNhdGlvbk1vZGVsLFxyXG4gIE5vdGlmaWNhdGlvblBhbmVsTW9kZSxcclxuICBOT1RJRklDQVRJT05TX0xJU1RfT1BUSU9OUyxcclxuICBOb3RpZmljYXRpb25zTGlzdE9wdGlvbnMsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgQmFzZU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL2Jhc2Utbm90aWZpY2F0aW9ucy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbm90aWZpY2F0aW9ucy1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb25zLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9ucy1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnaW5saW5lLWZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIG5vdGlmaWNhdGlvbi1idXR0b24nLFxyXG4gIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZU5vdGlmaWNhdGlvbiB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZ2V0Q291bnRTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3dCYWRnZVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHJlYWRvbmx5IHNob3dCYWRnZSQgPSB0aGlzLl9zaG93QmFkZ2VTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGlzU2lkZWJhck9wZW5lZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgYmFkZ2VPcHRpb25zOiBCYWRnZU9wdGlvbnMgPSB7XHJcbiAgICBzaXplOiAnc21hbGwnLFxyXG4gICAgY29sb3I6ICd3YXJuJyxcclxuICAgIHBvc2l0aW9uOiAnYmVmb3JlJyxcclxuICB9O1xyXG5cclxuICBkaXJlY3Rpb24kID0gdGhpcy5fdHJhbnNsYXRpb25TZXJ2aWNlLmlzQXJhYmljJC5waXBlKFxyXG4gICAgbWFwKChpc0FyYWJpYykgPT4gKGlzQXJhYmljID8gJ3J0bCcgOiAnbHRyJykpXHJcbiAgKTtcclxuXHJcbiAgc2lkZWJhclBvc2l0aW9uJCA9IHRoaXMuX3RyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYyQucGlwZShcclxuICAgIG1hcCgoaXNBcmFiaWMpID0+IChpc0FyYWJpYyA/ICdsZWZ0JyA6ICdyaWdodCcpKVxyXG4gICk7XHJcblxyXG4gIEBPdXRwdXQoKSBsaXN0SXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxOb3RpZmljYXRpb25Nb2RlbD4oKTtcclxuICBAT3V0cHV0KCkgb3BlblNldHRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb3Blbk5vdGlmaWNhdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG5cclxuICBAQ29udGVudENoaWxkKE5PVElGSUNBVElPTl9JQ09OLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcclxuICBjdXN0b21JY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHJlYWRvbmx5IG5ld05vdGlmaWNhdGlvbkNvdW50JCA9IHRoaXMuX2dldENvdW50U3ViLnBpcGUoXHJcbiAgICBzd2l0Y2hNYXAoKF8pID0+IHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZ2V0VW5SZWFkQ291bnQoKSksXHJcbiAgICB0YXAoKGNvdW50KSA9PiB7XHJcbiAgICAgIHRoaXMuX3Nob3dCYWRnZVN1Yi5uZXh0KGNvdW50ID4gMCk7XHJcbiAgICB9KSxcclxuICAgIG1hcCgoY291bnQpID0+IChjb3VudCA+PSAxMDAgPyAnOTkrJyA6IGNvdW50KSlcclxuICApO1xyXG5cclxuICBwYW5lbE1vZGU6IE5vdGlmaWNhdGlvblBhbmVsTW9kZSA9IFBBTkVMX01PREUuc2lkZWJhcjtcclxuICBwYW5lbE1vZGVFbnVtID0gUEFORUxfTU9ERTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBpbmplY3Q6IEluamVjdG9yLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoTk9USUZJQ0FUSU9OU19MSVNUX09QVElPTlMpXHJcbiAgICBfb3B0aW9ucz86IE5vdGlmaWNhdGlvbnNMaXN0T3B0aW9uc1xyXG4gICkge1xyXG4gICAgc3VwZXIoaW5qZWN0KTtcclxuICAgIGlmIChfb3B0aW9ucz8ucGFuZWxNb2RlKSB7XHJcbiAgICAgIHRoaXMucGFuZWxNb2RlID0gX29wdGlvbnMucGFuZWxNb2RlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZUJhZGdlQ291bnQoKSB7XHJcbiAgICB0aGlzLl9zaG93QmFkZ2VTdWIubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBtYXJrQWxsQXNVbnJlYWQoKSB7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlXHJcbiAgICAgIC5tYXJrQWxsTmV3QXNVbnJlYWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlkZUJhZGdlQ291bnQoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgdG9nZ2xlU2lkZUJhcih2YWx1ZSA9ICF0aGlzLmlzU2lkZWJhck9wZW5lZCl7XHJcbiAgICB0aGlzLmlzU2lkZWJhck9wZW5lZCA9IHZhbHVlO1xyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uXHJcbiAgKm5nSWY9XCJwYW5lbE1vZGUgPT09IHBhbmVsTW9kZUVudW0ucGFuZWxcIlxyXG4gIFttYXRNZW51VHJpZ2dlckZvcl09XCJub3RpZmljYXRpb25zXCJcclxuICBbbWF0QmFkZ2VdPVwibmV3Tm90aWZpY2F0aW9uQ291bnQkIHwgYXN5bmNcIlxyXG4gIFttYXRCYWRnZUhpZGRlbl09XCIhKHNob3dCYWRnZSQgfCBhc3luYylcIlxyXG4gIFttYXRCYWRnZVNpemVdPVwiYmFkZ2VPcHRpb25zLnNpemVcIlxyXG4gIFttYXRCYWRnZUNvbG9yXT1cImJhZGdlT3B0aW9ucy5jb2xvclwiXHJcbiAgW21hdEJhZGdlUG9zaXRpb25dPVwiYmFkZ2VPcHRpb25zLnBvc2l0aW9uXCJcclxuICBbY2xhc3NdPVwic3R5bGVDbGFzc1wiXHJcbiAgKG1lbnVPcGVuZWQpPVwibWFya0FsbEFzVW5yZWFkKClcIlxyXG4+XHJcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21JY29uVGVtcGxhdGUgfHwgZGVmYXVsdEljb25UZW1wbGF0ZVwiPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2J1dHRvbj5cclxuXHJcbjxtYXQtbWVudSAjbm90aWZpY2F0aW9ucz1cIm1hdE1lbnVcIiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1saXN0LXBhbmVsXCI+XHJcbiAgPG5nLXRlbXBsYXRlIG1hdE1lbnVDb250ZW50PlxyXG4gICAgPGFwcC1ub3RpZmljYXRpb25zLWxpc3RcclxuICAgICAgKGl0ZW1DbGlja2VkKT1cImxpc3RJdGVtQ2xpY2suZW1pdCgkZXZlbnQpOyBub3RpZmljYXRpb25zLmNsb3NlZC5lbWl0KClcIlxyXG4gICAgICAob3BlblNldHRpbmdzKT1cIm9wZW5TZXR0aW5ncy5lbWl0KCRldmVudCk7IG5vdGlmaWNhdGlvbnMuY2xvc2VkLmVtaXQoKVwiXHJcbiAgICAgIChvcGVuTm90aWZpY2F0aW9ucyk9XCJvcGVuTm90aWZpY2F0aW9ucy5lbWl0KCRldmVudCk7IG5vdGlmaWNhdGlvbnMuY2xvc2VkLmVtaXQoKVwiXHJcbiAgICAgIChtYXJrQWxsUmVhZCk9XCJoaWRlQmFkZ2VDb3VudCgpXCJcclxuICAgID48L2FwcC1ub3RpZmljYXRpb25zLWxpc3Q+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWxpc3QtcGFuZWxfX2Zvb3RlciBmbGV4IGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbm90aWZpY2F0aW9ucy1mb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L21hdC1tZW51PlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhbmVsTW9kZSA9PT0gcGFuZWxNb2RlRW51bS5zaWRlYmFyXCI+XHJcbiAgPGJ1dHRvblxyXG4gICAgW21hdEJhZGdlXT1cIm5ld05vdGlmaWNhdGlvbkNvdW50JCB8IGFzeW5jXCJcclxuICAgIFttYXRCYWRnZUhpZGRlbl09XCIhKHNob3dCYWRnZSQgfCBhc3luYylcIlxyXG4gICAgW21hdEJhZGdlU2l6ZV09XCJiYWRnZU9wdGlvbnMuc2l6ZVwiXHJcbiAgICBbbWF0QmFkZ2VDb2xvcl09XCJiYWRnZU9wdGlvbnMuY29sb3JcIlxyXG4gICAgW21hdEJhZGdlUG9zaXRpb25dPVwiYmFkZ2VPcHRpb25zLnBvc2l0aW9uXCJcclxuICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcclxuICAgIChjbGljayk9XCJ0b2dnbGVTaWRlQmFyKCk7bWFya0FsbEFzVW5yZWFkKClcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tSWNvblRlbXBsYXRlIHx8IGRlZmF1bHRJY29uVGVtcGxhdGVcIj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxhcHAtbm90aWZpY2F0aW9ucy1zaWRlYmFyIFsodmlzaWJsZSldPVwiaXNTaWRlYmFyT3BlbmVkXCIgW3Bvc2l0aW9uXT1cInNpZGViYXJQb3NpdGlvbiQgfCBhc3luY1wiPlxyXG4gICAgPG5nLXRlbXBsYXRlIGFwcE5vdGlmaWNhdGlvblNpZGViYXJDb250ZW50PlxyXG4gICAgICA8YXBwLW5vdGlmaWNhdGlvbnMtbGlzdFxyXG4gICAgICAgIGNsYXNzPVwibm90aWZpY2F0aW9ucy1zaWRlYmFyXCJcclxuICAgICAgICAoaXRlbUNsaWNrZWQpPVwibGlzdEl0ZW1DbGljay5lbWl0KCRldmVudCk7dG9nZ2xlU2lkZUJhcihmYWxzZSlcIlxyXG4gICAgICAgIChvcGVuU2V0dGluZ3MpPVwib3BlblNldHRpbmdzLmVtaXQoJGV2ZW50KTt0b2dnbGVTaWRlQmFyKGZhbHNlKVwiXHJcbiAgICAgICAgKG9wZW5Ob3RpZmljYXRpb25zKT1cIm9wZW5Ob3RpZmljYXRpb25zLmVtaXQoJGV2ZW50KTt0b2dnbGVTaWRlQmFyKGZhbHNlKVwiXHJcbiAgICAgICAgKG1hcmtBbGxSZWFkKT1cImhpZGVCYWRnZUNvdW50KClcIlxyXG4gICAgICA+PC9hcHAtbm90aWZpY2F0aW9ucy1saXN0PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2FwcC1ub3RpZmljYXRpb25zLXNpZGViYXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SWNvblRlbXBsYXRlPlxyXG4gIDxpIGNsYXNzPVwiYmkgYmktYmVsbCBiZWxsXCI+PC9pPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import * as moment from 'moment';
|
|
3
|
+
import { FILTER_DATES_TYPE } from '../../constants';
|
|
4
|
+
import { BaseNotification } from '../base-notifications.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/button";
|
|
7
|
+
import * as i2 from "@angular/material/menu";
|
|
8
|
+
import * as i3 from "@angular/cdk/bidi";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "@ngx-translate/core";
|
|
11
|
+
export class NotificationsDateSelectComponent extends BaseNotification {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.dateChanged = new EventEmitter();
|
|
15
|
+
this.dates = this._prepareDateList();
|
|
16
|
+
}
|
|
17
|
+
_prepareDateList() {
|
|
18
|
+
return Object.entries(FILTER_DATES_TYPE).map(([key, value]) => ({ key, value }));
|
|
19
|
+
}
|
|
20
|
+
selectDate(date) {
|
|
21
|
+
this.selectedDate = date;
|
|
22
|
+
moment.locale('en');
|
|
23
|
+
this.dateChanged.emit(date
|
|
24
|
+
? {
|
|
25
|
+
min: this._getMinDate(date.key),
|
|
26
|
+
max: moment().format(),
|
|
27
|
+
}
|
|
28
|
+
: null);
|
|
29
|
+
}
|
|
30
|
+
_getMinDate(date) {
|
|
31
|
+
if (!date) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const dates = {
|
|
35
|
+
lastDay: [1, 'days'],
|
|
36
|
+
lastWeek: [1, 'weeks'],
|
|
37
|
+
lastMonth: [1, 'months'],
|
|
38
|
+
lastHalfYear: [6, 'months'],
|
|
39
|
+
lastYear: [1, 'years'],
|
|
40
|
+
};
|
|
41
|
+
const [amount, unit] = dates[date];
|
|
42
|
+
return moment().subtract(amount, unit).startOf('day').format();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
NotificationsDateSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsDateSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
+
NotificationsDateSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NotificationsDateSelectComponent, selector: "app-notifications-date-select", outputs: { dateChanged: "dateChanged" }, usesInheritance: true, ngImport: i0, template: "<span [dir]=\"direction$ | async\">\r\n <button\r\n (click)=\"$event.stopPropagation()\"\r\n class=\"date-select-button\"\r\n mat-stroked-button\r\n [matMenuTriggerFor]=\"datesMenu\"\r\n #filterTypeMenuTrigger=\"matMenuTrigger\"\r\n >\r\n <span>\r\n {{\r\n (selectedDate\r\n ? 'notifications.dates.' + selectedDate.key\r\n : 'notifications.dates.all'\r\n ) | translate\r\n }}\r\n </span>\r\n <span class=\"icon icon-chevron-down\"></span>\r\n </button>\r\n <mat-menu class=\"dates-select-menu\" #datesMenu=\"matMenu\">\r\n <span (click)=\"$event.stopPropagation()\">\r\n <button\r\n mat-menu-item\r\n class=\"dates-select-menu__option\"\r\n (click)=\"selectDate(null); datesMenu.closed.emit()\"\r\n >\r\n <span>{{ 'notifications.dates.all' | translate }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n *ngFor=\"let date of dates\"\r\n class=\"dates-select-menu__option\"\r\n (click)=\"selectDate(date); datesMenu.closed.emit()\"\r\n >\r\n <span>{{ 'notifications.dates.' + date.key | translate }}</span>\r\n </button>\r\n </span>\r\n </mat-menu>\r\n</span>\r\n", styles: [".dates-select-menu{box-shadow:var(--dates-select-menu-shadow, 0px 1px 4px -1px rgba(28, 52, 84, .26))}.dates-select-menu .mat-menu-content:not(:empty){padding:var(--dates-select-menu-padding, .5rem)}.dates-select-menu__option{background:var(--dates-select-option-background, transparent)!important;border-radius:var(--dates-select-option-radius, 4px);font-size:var(--dates-select-option-size, 14px);color:var(--dates-select-option-color, #28282d);height:var(--dates-select-option-height, 38px);line-height:var(--dates-select-option-line-height, 38px)}.dates-select-menu__option:hover{--dates-select-option-background: var(--dates-select-option-hover-background, #e6f7ff);--dates-select-option-color: var(--dates-select-option-hover-color, #005fdb)}.dates-select-menu__option .mat-icon{color:currentColor}\n"], components: [{ type: i1.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: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4.AsyncPipe, "translate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsDateSelectComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{
|
|
50
|
+
selector: 'app-notifications-date-select',
|
|
51
|
+
templateUrl: './notifications-date-select.component.html',
|
|
52
|
+
styleUrls: ['./notifications-date-select.component.scss'],
|
|
53
|
+
encapsulation: ViewEncapsulation.None,
|
|
54
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
55
|
+
}]
|
|
56
|
+
}], propDecorators: { dateChanged: [{
|
|
57
|
+
type: Output
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1kYXRlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvY29tcG9uZW50cy9ub3RpZmljYXRpb25zLWRhdGUtc2VsZWN0L25vdGlmaWNhdGlvbnMtZGF0ZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy1kYXRlLXNlbGVjdC9ub3RpZmljYXRpb25zLWRhdGUtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBUW5FLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxnQkFBZ0I7SUFQdEU7O1FBUVksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBZ0MsQ0FBQztRQUV6RSxVQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7S0FzQ2pDO0lBbENTLGdCQUFnQjtRQUN0QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUE4RDtRQUN2RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUNuQixJQUFJO1lBQ0YsQ0FBQyxDQUFDO2dCQUNFLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQy9CLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUU7YUFDdkI7WUFDSCxDQUFDLENBQUMsSUFBSSxDQUNULENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQW9DO1FBQ3RELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPO1NBQ1I7UUFDRCxNQUFNLEtBQUssR0FHUDtZQUNGLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUM7WUFDcEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztZQUN0QixTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO1lBQ3hCLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7WUFDM0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztTQUN2QixDQUFDO1FBQ0YsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqRSxDQUFDOzs4SEF4Q1UsZ0NBQWdDO2tIQUFoQyxnQ0FBZ0MscUlDbkI3Qyx3dENBc0NBOzRGRG5CYSxnQ0FBZ0M7a0JBUDVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsV0FBVyxFQUFFLDRDQUE0QztvQkFDekQsU0FBUyxFQUFFLENBQUMsNENBQTRDLENBQUM7b0JBQ3pELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBRVcsV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEZJTFRFUl9EQVRFU19UWVBFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRmlsdGVyRGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCYXNlTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vYmFzZS1ub3RpZmljYXRpb25zLmNvbXBvbmVudCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW5vdGlmaWNhdGlvbnMtZGF0ZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb25zLWRhdGUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb25zLWRhdGUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNEYXRlU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZU5vdGlmaWNhdGlvbiB7XHJcbiAgQE91dHB1dCgpIGRhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1pbjogc3RyaW5nOyBtYXg6IHN0cmluZyB9PigpO1xyXG5cclxuICBkYXRlcyA9IHRoaXMuX3ByZXBhcmVEYXRlTGlzdCgpO1xyXG5cclxuICBzZWxlY3RlZERhdGU6IEtleVZhbHVlPHN0cmluZywgRmlsdGVyRGF0ZVR5cGU+O1xyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlRGF0ZUxpc3QoKTogS2V5VmFsdWU8c3RyaW5nLCBGaWx0ZXJEYXRlVHlwZT5bXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoRklMVEVSX0RBVEVTX1RZUEUpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoeyBrZXksIHZhbHVlIH0pKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdERhdGUoZGF0ZTogS2V5VmFsdWU8a2V5b2YgdHlwZW9mIEZJTFRFUl9EQVRFU19UWVBFLCBGaWx0ZXJEYXRlVHlwZT4pIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcclxuICAgIG1vbWVudC5sb2NhbGUoJ2VuJyk7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2VkLmVtaXQoXHJcbiAgICAgIGRhdGVcclxuICAgICAgICA/IHtcclxuICAgICAgICAgICAgbWluOiB0aGlzLl9nZXRNaW5EYXRlKGRhdGUua2V5KSxcclxuICAgICAgICAgICAgbWF4OiBtb21lbnQoKS5mb3JtYXQoKSxcclxuICAgICAgICAgIH1cclxuICAgICAgICA6IG51bGxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRNaW5EYXRlKGRhdGU6IGtleW9mIHR5cGVvZiBGSUxURVJfREFURVNfVFlQRSkge1xyXG4gICAgaWYgKCFkYXRlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGRhdGVzOiBSZWNvcmQ8XHJcbiAgICAgIGtleW9mIHR5cGVvZiBGSUxURVJfREFURVNfVFlQRSxcclxuICAgICAgW251bWJlciwgbW9tZW50LkR1cmF0aW9uSW5wdXRBcmcyXVxyXG4gICAgPiA9IHtcclxuICAgICAgbGFzdERheTogWzEsICdkYXlzJ10sXHJcbiAgICAgIGxhc3RXZWVrOiBbMSwgJ3dlZWtzJ10sXHJcbiAgICAgIGxhc3RNb250aDogWzEsICdtb250aHMnXSxcclxuICAgICAgbGFzdEhhbGZZZWFyOiBbNiwgJ21vbnRocyddLFxyXG4gICAgICBsYXN0WWVhcjogWzEsICd5ZWFycyddLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IFthbW91bnQsIHVuaXRdID0gZGF0ZXNbZGF0ZV07XHJcbiAgICByZXR1cm4gbW9tZW50KCkuc3VidHJhY3QoYW1vdW50LCB1bml0KS5zdGFydE9mKCdkYXknKS5mb3JtYXQoKTtcclxuICB9XHJcbn1cclxuIiwiPHNwYW4gW2Rpcl09XCJkaXJlY3Rpb24kIHwgYXN5bmNcIj5cclxuICA8YnV0dG9uXHJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgIGNsYXNzPVwiZGF0ZS1zZWxlY3QtYnV0dG9uXCJcclxuICAgIG1hdC1zdHJva2VkLWJ1dHRvblxyXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImRhdGVzTWVudVwiXHJcbiAgICAjZmlsdGVyVHlwZU1lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIlxyXG4gID5cclxuICAgIDxzcGFuPlxyXG4gICAgICB7e1xyXG4gICAgICAgIChzZWxlY3RlZERhdGVcclxuICAgICAgICAgID8gJ25vdGlmaWNhdGlvbnMuZGF0ZXMuJyArIHNlbGVjdGVkRGF0ZS5rZXlcclxuICAgICAgICAgIDogJ25vdGlmaWNhdGlvbnMuZGF0ZXMuYWxsJ1xyXG4gICAgICAgICkgfCB0cmFuc2xhdGVcclxuICAgICAgfX1cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpY29uLWNoZXZyb24tZG93blwiPjwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgY2xhc3M9XCJkYXRlcy1zZWxlY3QtbWVudVwiICNkYXRlc01lbnU9XCJtYXRNZW51XCI+XHJcbiAgICA8c3BhbiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgY2xhc3M9XCJkYXRlcy1zZWxlY3QtbWVudV9fb3B0aW9uXCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShudWxsKTsgZGF0ZXNNZW51LmNsb3NlZC5lbWl0KClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4+e3sgJ25vdGlmaWNhdGlvbnMuZGF0ZXMuYWxsJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGRhdGUgb2YgZGF0ZXNcIlxyXG4gICAgICAgIGNsYXNzPVwiZGF0ZXMtc2VsZWN0LW1lbnVfX29wdGlvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoZGF0ZSk7IGRhdGVzTWVudS5jbG9zZWQuZW1pdCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuPnt7ICdub3RpZmljYXRpb25zLmRhdGVzLicgKyBkYXRlLmtleSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9zcGFuPlxyXG4iXX0=
|