@sumaris-net/ngx-components 2.0.0-rc1 → 2.0.0-rc4
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/doc/changelog.md +50 -0
- package/esm2020/public_api.mjs +9 -5
- package/esm2020/src/app/admin/admin-routing.module.mjs +5 -5
- package/esm2020/src/app/admin/admin.module.mjs +13 -28
- package/esm2020/src/app/admin/services/person.service.mjs +3 -3
- package/esm2020/src/app/admin/services/validator/person.validator.mjs +3 -3
- package/esm2020/src/app/admin/users/list/users.mjs +33 -27
- package/esm2020/src/app/admin/users/list/users.module.mjs +58 -0
- package/esm2020/src/app/core/about/modal-about.mjs +3 -3
- package/esm2020/src/app/core/account/account.mjs +3 -3
- package/esm2020/src/app/core/auth/form/form-auth.mjs +3 -3
- package/esm2020/src/app/core/auth/modal/modal-auth.mjs +3 -3
- package/esm2020/src/app/core/core.module.mjs +6 -6
- package/esm2020/src/app/core/core.testing.module.mjs +26 -12
- package/esm2020/src/app/core/form/editor.class.mjs +129 -62
- package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +25 -10
- package/esm2020/src/app/core/form/entity-editor.class.mjs +10 -33
- package/esm2020/src/app/core/form/entity-metadata.component.mjs +3 -3
- package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +3 -3
- package/esm2020/src/app/core/form/form.class.mjs +10 -4
- package/esm2020/src/app/core/form/form.utils.mjs +39 -4
- package/esm2020/src/app/core/form/list.form.mjs +7 -6
- package/esm2020/src/app/core/form/properties/properties.form.mjs +129 -0
- package/esm2020/src/app/core/form/properties/property.validator.mjs +23 -0
- package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +90 -0
- package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +39 -0
- package/esm2020/src/app/core/graphql/graphql.module.mjs +4 -4
- package/esm2020/src/app/core/graphql/graphql.service.mjs +3 -3
- package/esm2020/src/app/core/graphql/graphql.utils.mjs +2 -2
- package/esm2020/src/app/core/home/home.mjs +3 -3
- package/esm2020/src/app/core/icon/icon.component.mjs +5 -5
- package/esm2020/src/app/core/icon/icon.module.mjs +4 -4
- package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +3 -3
- package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +4 -4
- package/esm2020/src/app/core/menu/menu.component.mjs +3 -3
- package/esm2020/src/app/core/menu/menu.module.mjs +4 -4
- package/esm2020/src/app/core/menu/menu.service.mjs +3 -3
- package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
- package/esm2020/src/app/core/peer/select-peer.modal.mjs +3 -3
- package/esm2020/src/app/core/peer/select-peer.module.mjs +4 -4
- package/esm2020/src/app/core/register/confirm/confirm.mjs +3 -3
- package/esm2020/src/app/core/register/form/form-register.mjs +3 -3
- package/esm2020/src/app/core/register/modal/modal-register.mjs +3 -3
- package/esm2020/src/app/core/register/register.module.mjs +4 -4
- package/esm2020/src/app/core/services/account.service.mjs +5 -5
- package/esm2020/src/app/core/services/auth-guard.service.mjs +3 -3
- package/esm2020/src/app/core/services/base-entity-service.class.mjs +8 -9
- package/esm2020/src/app/core/services/base-graphql-service.class.mjs +3 -3
- package/esm2020/src/app/core/services/config.service.mjs +5 -5
- package/esm2020/src/app/core/services/crypto.service.mjs +3 -3
- package/esm2020/src/app/core/services/local-settings.service.mjs +3 -3
- package/esm2020/src/app/core/services/model/peer.model.mjs +3 -3
- package/esm2020/src/app/core/services/model/referential.model.mjs +11 -3
- package/esm2020/src/app/core/services/network.service.mjs +21 -28
- package/esm2020/src/app/core/services/pipes/account.pipes.mjs +8 -8
- package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
- package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
- package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
- package/esm2020/src/app/core/services/platform.service.mjs +3 -3
- package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +3 -3
- package/esm2020/src/app/core/services/testing/referential.validator.mjs +3 -3
- package/esm2020/src/app/core/services/validator/account.validator.mjs +3 -3
- package/esm2020/src/app/core/services/validator/base.validator.class.mjs +3 -3
- package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
- package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +3 -3
- package/esm2020/src/app/core/settings/settings.page.mjs +4 -4
- package/esm2020/src/app/core/table/actions-column.component.mjs +9 -9
- package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +74 -65
- package/esm2020/src/app/core/table/memory-table.class.mjs +3 -3
- package/esm2020/src/app/core/table/table-select-columns.component.mjs +3 -3
- package/esm2020/src/app/core/table/table.class.mjs +223 -208
- package/esm2020/src/app/core/table/table.utils.mjs +1 -1
- package/esm2020/src/app/core/table/testing/table.testing.mjs +5 -5
- package/esm2020/src/app/core/table/testing/table.testing.module.mjs +4 -4
- package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +3 -3
- package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +4 -4
- package/esm2020/src/app/core/text-popover/text-form.component.mjs +3 -3
- package/esm2020/src/app/core/text-popover/text-popover.component.mjs +3 -3
- package/esm2020/src/app/shared/audio/audio.mjs +4 -4
- package/esm2020/src/app/shared/audio/audio.testing.mjs +3 -3
- package/esm2020/src/app/shared/audio/audio.testing.module.mjs +4 -4
- package/esm2020/src/app/shared/capacitor/keyboard.mjs +3 -3
- package/esm2020/src/app/shared/debug/debug.component.mjs +39 -0
- package/esm2020/src/app/shared/debug/debug.module.mjs +44 -0
- package/esm2020/src/app/shared/directives/autofocus.directive.mjs +6 -6
- package/esm2020/src/app/shared/directives/autotitle.directive.mjs +3 -3
- package/esm2020/src/app/shared/directives/directives.module.mjs +4 -4
- package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
- package/esm2020/src/app/shared/directives/ng-var.directive.mjs +3 -3
- package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
- package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
- package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
- package/esm2020/src/app/shared/events.mjs +2 -2
- package/esm2020/src/app/shared/file/file.service.mjs +5 -5
- package/esm2020/src/app/shared/form/field.component.mjs +10 -7
- package/esm2020/src/app/shared/form/loading-spinner.mjs +3 -3
- package/esm2020/src/app/shared/forms.mjs +21 -2
- package/esm2020/src/app/shared/functions.mjs +23 -10
- package/esm2020/src/app/shared/gesture/gesture-config.mjs +3 -3
- package/esm2020/src/app/shared/graph/graph-colors.mjs +17 -63
- package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +3 -3
- package/esm2020/src/app/shared/help/help.modal.mjs +3 -3
- package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
- package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
- package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
- package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
- package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
- package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
- package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
- package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
- package/esm2020/src/app/shared/image/image.module.mjs +4 -4
- package/esm2020/src/app/shared/image/image.service.mjs +3 -3
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +8 -10
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
- package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
- package/esm2020/src/app/shared/material/badge/badge.directive.mjs +157 -0
- package/esm2020/src/app/shared/material/badge/badge.module.mjs +32 -0
- package/esm2020/src/app/shared/material/badge/badge.test.mjs +26 -0
- package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +4 -4
- package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +3 -3
- package/esm2020/src/app/shared/material/chips/chips.module.mjs +4 -4
- package/esm2020/src/app/shared/material/chips/material.chips.mjs +11 -13
- package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
- package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +4 -4
- package/esm2020/src/app/shared/material/datetime/material.date.mjs +79 -83
- package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +5 -5
- package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +95 -77
- package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +5 -5
- package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +5 -5
- package/esm2020/src/app/shared/material/duration/duration.module.mjs +4 -4
- package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
- package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +3 -3
- package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
- package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
- package/esm2020/src/app/shared/material/material.animations.mjs +1 -1
- package/esm2020/src/app/shared/material/material.module.mjs +10 -10
- package/esm2020/src/app/shared/material/material.testing.module.mjs +24 -12
- package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
- package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +3 -3
- package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +5 -5
- package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +3 -3
- package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
- package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
- package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +4 -4
- package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
- package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
- package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
- package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +3 -3
- package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +4 -4
- package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
- package/esm2020/src/app/shared/observables.mjs +29 -22
- package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +48 -27
- package/esm2020/src/app/shared/pipes/colors.pipe.mjs +3 -3
- package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
- package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +4 -4
- package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
- package/esm2020/src/app/shared/pipes/duration.pipe.mjs +4 -4
- package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +3 -3
- package/esm2020/src/app/shared/pipes/form.pipes.mjs +18 -18
- package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +4 -4
- package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
- package/esm2020/src/app/shared/pipes/maps.pipe.mjs +12 -12
- package/esm2020/src/app/shared/pipes/math.pipes.mjs +12 -12
- package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
- package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +4 -4
- package/esm2020/src/app/shared/pipes/pipes.module.mjs +10 -6
- package/esm2020/src/app/shared/pipes/property.pipes.mjs +7 -7
- package/esm2020/src/app/shared/pipes/string.pipes.mjs +15 -15
- package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
- package/esm2020/src/app/shared/services/entity-service.class.mjs +1 -13
- package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +127 -43
- package/esm2020/src/app/shared/services/progress-bar.service.mjs +3 -3
- package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +119 -0
- package/esm2020/src/app/shared/services/startable-service.class.mjs +42 -31
- package/esm2020/src/app/shared/services/storage/storage.service.mjs +3 -3
- package/esm2020/src/app/shared/services/translate-context.service.mjs +3 -3
- package/esm2020/src/app/shared/shared-routing.module.mjs +7 -7
- package/esm2020/src/app/shared/shared.module.mjs +4 -4
- package/esm2020/src/app/shared/shared.testing.module.mjs +4 -4
- package/esm2020/src/app/shared/testing/observable.test.mjs +96 -0
- package/esm2020/src/app/shared/testing/tests.page.mjs +3 -3
- package/esm2020/src/app/shared/toast/toast.testing.mjs +10 -11
- package/esm2020/src/app/shared/toast/toast.testing.module.mjs +4 -4
- package/esm2020/src/app/shared/toast/toasts.mjs +38 -15
- package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +5 -5
- package/esm2020/src/app/shared/toolbar/toolbar.mjs +9 -9
- package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +4 -4
- package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
- package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
- package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
- package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +3 -3
- package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
- package/esm2020/src/app/social/job/job.module.mjs +9 -9
- package/esm2020/src/app/social/job/job.service.mjs +27 -15
- package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +210 -0
- package/esm2020/src/app/social/job/progression/job-progression.list.mjs +3 -3
- package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +33 -31
- package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +27 -5
- package/esm2020/src/app/social/job/testing/job.testing.module.mjs +4 -4
- package/esm2020/src/app/social/message/message.form.mjs +3 -3
- package/esm2020/src/app/social/message/message.modal.mjs +3 -3
- package/esm2020/src/app/social/message/message.module.mjs +4 -4
- package/esm2020/src/app/social/message/message.service.mjs +3 -3
- package/esm2020/src/app/social/social.module.mjs +5 -5
- package/esm2020/src/app/social/social.testing.module.mjs +4 -4
- package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +28 -17
- package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +6 -6
- package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +6 -6
- package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
- package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
- package/esm2020/src/app/social/user-event/user-event.module.mjs +9 -9
- package/esm2020/src/app/social/user-event/user-event.service.mjs +5 -5
- package/esm2020/src/app/vendor.mjs +6 -1
- package/fesm2015/sumaris-net.ngx-components.mjs +2692 -1945
- package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
- package/fesm2020/sumaris-net.ngx-components.mjs +2512 -1718
- package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +6 -2
- package/public_api.d.ts +8 -4
- package/src/app/admin/admin.module.d.ts +4 -8
- package/src/app/admin/users/list/users.d.ts +1 -0
- package/src/app/admin/users/list/users.module.d.ts +14 -0
- package/src/app/core/core.module.d.ts +1 -1
- package/src/app/core/core.testing.module.d.ts +2 -1
- package/src/app/core/form/editor.class.d.ts +20 -6
- package/src/app/core/form/entity-editor-modal.class.d.ts +13 -4
- package/src/app/core/form/entity-editor.class.d.ts +4 -11
- package/src/app/core/form/form.class.d.ts +2 -0
- package/src/app/core/form/form.utils.d.ts +28 -2
- package/src/app/core/form/{properties.form.d.ts → properties/properties.form.d.ts} +13 -13
- package/src/app/core/form/properties/property.validator.d.ts +13 -0
- package/src/app/core/form/properties/testing/properties-form.test.d.ts +19 -0
- package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
- package/src/app/core/services/model/referential.model.d.ts +6 -1
- package/src/app/core/services/network.service.d.ts +6 -8
- package/src/app/core/table/entities-table-datasource.class.d.ts +22 -15
- package/src/app/core/table/table.class.d.ts +37 -47
- package/src/app/core/table/table.utils.d.ts +2 -1
- package/src/app/shared/debug/debug.component.d.ts +13 -0
- package/src/app/shared/debug/debug.module.d.ts +12 -0
- package/src/app/shared/events.d.ts +4 -4
- package/src/app/shared/form/field.component.d.ts +4 -1
- package/src/app/shared/forms.d.ts +8 -1
- package/src/app/shared/functions.d.ts +9 -4
- package/src/app/shared/graph/graph-colors.d.ts +8 -8
- package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +1 -1
- package/src/app/shared/material/badge/badge.directive.d.ts +28 -0
- package/src/app/shared/material/badge/badge.module.d.ts +10 -0
- package/src/app/shared/material/badge/badge.test.d.ts +12 -0
- package/src/app/shared/material/datetime/material.date.d.ts +12 -13
- package/src/app/shared/material/datetime/material.datetime.d.ts +14 -14
- package/src/app/shared/material/material.module.d.ts +2 -2
- package/src/app/shared/material/material.testing.module.d.ts +10 -9
- package/src/app/shared/observables.d.ts +1 -1
- package/src/app/shared/pipes/arrays.pipe.d.ts +12 -2
- package/src/app/shared/pipes/pipes.module.d.ts +1 -1
- package/src/app/shared/services/entity-service.class.d.ts +0 -11
- package/src/app/shared/services/memory-entity-service.class.d.ts +20 -6
- package/src/app/shared/services/startable-observable-service.class.d.ts +33 -0
- package/src/app/shared/services/startable-service.class.d.ts +12 -9
- package/src/app/shared/testing/observable.test.d.ts +25 -0
- package/src/app/shared/toast/toast.testing.d.ts +3 -5
- package/src/app/shared/toast/toasts.d.ts +5 -2
- package/src/app/social/job/job.module.d.ts +2 -2
- package/src/app/social/job/job.service.d.ts +10 -2
- package/src/app/social/job/progression/{job-progression.component.d.ts → job-progression.icon.d.ts} +5 -5
- package/src/app/social/job/testing/job-progression.testing.d.ts +7 -4
- package/src/app/social/job/testing/job-progression.testing.service.d.ts +4 -0
- package/src/app/social/social.module.d.ts +1 -1
- package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +8 -5
- package/src/app/social/user-event/testing/user-event.testing.d.ts +2 -2
- package/src/app/social/user-event/user-event.module.d.ts +1 -1
- package/src/app/social/user-event/user-event.service.d.ts +1 -1
- package/src/app/vendor.d.ts +2 -0
- package/src/theme/_ionic.globals.scss +4 -0
- package/src/theme/_material.globals.scss +3 -1
- package/src/theme/_material.scss +29 -4
- package/src/theme/_mixins.scss +3 -3
- package/src/theme/_ngx-components.scss +26 -0
- package/esm2020/src/app/core/form/properties.form.mjs +0 -126
- package/esm2020/src/app/shared/material/badge/badge-icon.directive.mjs +0 -143
- package/esm2020/src/app/shared/material/badge/badge-icon.module.mjs +0 -32
- package/esm2020/src/app/shared/material/badge/badge-icon.test.mjs +0 -27
- package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -201
- package/src/app/shared/material/badge/badge-icon.directive.d.ts +0 -30
- package/src/app/shared/material/badge/badge-icon.module.d.ts +0 -10
- package/src/app/shared/material/badge/badge-icon.test.d.ts +0 -12
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';
|
|
2
|
-
import { JobProgressionServiceToken } from '../job.service';
|
|
3
|
-
import { JobProgression } from '../job.model';
|
|
4
|
-
import { Subscription } from 'rxjs';
|
|
5
|
-
import { arraySize, isNil, toBoolean, toNumber } from '../../../shared/functions';
|
|
6
|
-
import { filter, map } from 'rxjs/operators';
|
|
7
|
-
import { JobProgressionList } from './job-progression.list';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@ionic/angular";
|
|
10
|
-
import * as i2 from "@angular/common";
|
|
11
|
-
import * as i3 from "@angular/material/icon";
|
|
12
|
-
import * as i4 from "@angular/material/button";
|
|
13
|
-
import * as i5 from "@angular/material/progress-spinner";
|
|
14
|
-
import * as i6 from "@angular/material/badge";
|
|
15
|
-
import * as i7 from "@ngx-translate/core";
|
|
16
|
-
export class JobProgressionComponent {
|
|
17
|
-
constructor(jobProgressionService, popoverController, cd) {
|
|
18
|
-
this.jobProgressionService = jobProgressionService;
|
|
19
|
-
this.popoverController = popoverController;
|
|
20
|
-
this.cd = cd;
|
|
21
|
-
this.debug = false;
|
|
22
|
-
this.titleI18n = 'SOCIAL.JOB.PROGRESSION.TITLE';
|
|
23
|
-
this.jobFinished = new EventEmitter();
|
|
24
|
-
this.disabled = true;
|
|
25
|
-
this.color = 'accent';
|
|
26
|
-
this.mode = 'determinate';
|
|
27
|
-
this.value = 0;
|
|
28
|
-
this.jobProgressions = [];
|
|
29
|
-
this._subscriptions = new Subscription();
|
|
30
|
-
this._subscriptionsById = {};
|
|
31
|
-
this._logPrefix = '[job-progression] ';
|
|
32
|
-
}
|
|
33
|
-
ngOnInit() {
|
|
34
|
-
if (isNil(this.jobProgressionService)) {
|
|
35
|
-
console.warn(`${this._logPrefix}No service injected`);
|
|
36
|
-
}
|
|
37
|
-
// parse options
|
|
38
|
-
this.autoHide = toBoolean(this.options?.autoHide, false);
|
|
39
|
-
this.visible = !this.autoHide;
|
|
40
|
-
this.autoHideDelay = toNumber(this.options?.autoHideDelay, 1000);
|
|
41
|
-
this.autoRemove = toBoolean(this.options?.autoRemove, true);
|
|
42
|
-
this.autoRemoveDelay = toNumber(this.options?.autoRemoveDelay, 1000);
|
|
43
|
-
}
|
|
44
|
-
addJob(id) {
|
|
45
|
-
if (isNil(this.jobProgressionService)) {
|
|
46
|
-
console.warn(`${this._logPrefix}No service injected. Can't add a job`);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (!!this.getProgression(id)) {
|
|
50
|
-
console.warn(`${this._logPrefix}Job (id=${id}) already present`);
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (this.debug) {
|
|
54
|
-
console.debug(`${this._logPrefix}Add job id=${id}`);
|
|
55
|
-
}
|
|
56
|
-
// Adding empty job progression
|
|
57
|
-
const progression = new JobProgression(id);
|
|
58
|
-
this.jobProgressions.push(progression);
|
|
59
|
-
this.disabled = false;
|
|
60
|
-
const sub = this.jobProgressionService.listenChanges(id)
|
|
61
|
-
.pipe(filter(progression => {
|
|
62
|
-
if (id !== progression.id) {
|
|
63
|
-
console.error(`${this._logPrefix}Job progression (id=${progression.id}) doesn't match expected job (id=${id})`);
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
return true;
|
|
67
|
-
}), map(progression => {
|
|
68
|
-
// Ensure visible
|
|
69
|
-
this.visible = true;
|
|
70
|
-
// Get current progression object
|
|
71
|
-
const currentProgression = this.getProgression(id);
|
|
72
|
-
if (!currentProgression) {
|
|
73
|
-
// add it if absent
|
|
74
|
-
this.jobProgressions.push(progression);
|
|
75
|
-
if (this.debug) {
|
|
76
|
-
console.debug(`${this._logPrefix}Progression added id=${id}`, progression);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
// update current
|
|
81
|
-
Object.assign(currentProgression, progression);
|
|
82
|
-
if (this.debug) {
|
|
83
|
-
console.debug(`${this._logPrefix}Progression updated id=${id}`, progression);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return progression;
|
|
87
|
-
}))
|
|
88
|
-
.subscribe(progression => {
|
|
89
|
-
// update value
|
|
90
|
-
this.updateValue();
|
|
91
|
-
// job finished
|
|
92
|
-
if (progression.total > 0 && progression.current == progression.total) {
|
|
93
|
-
if (this.debug) {
|
|
94
|
-
console.debug(`${this._logPrefix}Finished job id=${progression.id}`);
|
|
95
|
-
}
|
|
96
|
-
// emit event
|
|
97
|
-
this.jobFinished.emit(progression.id);
|
|
98
|
-
if (this.autoRemove) {
|
|
99
|
-
setTimeout(() => {
|
|
100
|
-
this.removeJob(progression.id);
|
|
101
|
-
// If last job
|
|
102
|
-
if (this.autoHide && !this.jobProgressions?.length) {
|
|
103
|
-
setTimeout(async () => {
|
|
104
|
-
this._listPopover?.dismiss();
|
|
105
|
-
this.visible = false;
|
|
106
|
-
this.markForCheck();
|
|
107
|
-
}, this.autoHideDelay);
|
|
108
|
-
}
|
|
109
|
-
}, this.autoRemoveDelay);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
this._subscriptionsById[id] = sub;
|
|
114
|
-
this._subscriptions.add(sub);
|
|
115
|
-
}
|
|
116
|
-
removeJob(id) {
|
|
117
|
-
if (this.debug) {
|
|
118
|
-
console.debug(`${this._logPrefix}Remove job id=${id}`);
|
|
119
|
-
}
|
|
120
|
-
const sub = this._subscriptionsById[id];
|
|
121
|
-
if (sub) {
|
|
122
|
-
this._subscriptions.remove(sub);
|
|
123
|
-
sub.unsubscribe();
|
|
124
|
-
}
|
|
125
|
-
const progression = this.getProgression(id);
|
|
126
|
-
if (progression) {
|
|
127
|
-
this.jobProgressions.splice(this.jobProgressions.indexOf(progression), 1);
|
|
128
|
-
}
|
|
129
|
-
this.updateValue();
|
|
130
|
-
}
|
|
131
|
-
getProgression(id) {
|
|
132
|
-
return this.jobProgressions.find(progression => progression.id === id);
|
|
133
|
-
}
|
|
134
|
-
updateValue() {
|
|
135
|
-
if (this.debug) {
|
|
136
|
-
console.debug(`${this._logPrefix}Updating value`);
|
|
137
|
-
}
|
|
138
|
-
let value = 0;
|
|
139
|
-
const nbProgression = arraySize(this.jobProgressions);
|
|
140
|
-
let allIndeterminate = nbProgression > 0;
|
|
141
|
-
this.jobProgressions.forEach(progression => {
|
|
142
|
-
const indeterminate = progression.total === 0;
|
|
143
|
-
allIndeterminate = allIndeterminate && indeterminate;
|
|
144
|
-
if (!indeterminate) {
|
|
145
|
-
value = value + progression.current * 100 / progression.total;
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
this.value = nbProgression > 0 ? value / nbProgression : 0;
|
|
149
|
-
this.mode = allIndeterminate ? 'indeterminate' : 'determinate';
|
|
150
|
-
if (this.debug) {
|
|
151
|
-
console.debug(`${this._logPrefix}Setting value=${this.value}, mode=${this.mode}`);
|
|
152
|
-
}
|
|
153
|
-
this.markForCheck();
|
|
154
|
-
}
|
|
155
|
-
async showList(event) {
|
|
156
|
-
this._listPopover = await this.popoverController.create({
|
|
157
|
-
component: JobProgressionList,
|
|
158
|
-
componentProps: {
|
|
159
|
-
titleI18n: this.titleI18n,
|
|
160
|
-
jobProgressions: this.jobProgressions
|
|
161
|
-
},
|
|
162
|
-
backdropDismiss: true,
|
|
163
|
-
keyboardClose: true,
|
|
164
|
-
event,
|
|
165
|
-
translucent: true,
|
|
166
|
-
cssClass: 'popover-large'
|
|
167
|
-
});
|
|
168
|
-
await this._listPopover.present();
|
|
169
|
-
await this._listPopover.onDidDismiss();
|
|
170
|
-
this._listPopover = undefined;
|
|
171
|
-
}
|
|
172
|
-
markForCheck() {
|
|
173
|
-
this.cd.markForCheck();
|
|
174
|
-
}
|
|
175
|
-
ngOnDestroy() {
|
|
176
|
-
if (this.debug) {
|
|
177
|
-
console.debug(`${this._logPrefix}Destroying`);
|
|
178
|
-
}
|
|
179
|
-
this._subscriptions.unsubscribe();
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
JobProgressionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobProgressionComponent, deps: [{ token: JobProgressionServiceToken, optional: true }, { token: i1.PopoverController }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
-
JobProgressionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: JobProgressionComponent, selector: "app-job-progression", inputs: { debug: "debug", titleI18n: "titleI18n", options: "options" }, outputs: { jobFinished: "jobFinished" }, ngImport: i0, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *ngIf=\"visible\"\n (click)=\"showList($event)\"\n>\n <mat-icon\n [matBadge]=\"jobProgressions?.length\"\n [matBadgeHidden]=\"!jobProgressions?.length\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n >{{ disabled || jobProgressions?.length ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *ngIf=\"jobProgressions?.length\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode\"\n [value]=\"value\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n\n", styles: [".floating-spinner{position:absolute;top:6px;left:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.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"] }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i6.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: JobProgressionComponent, decorators: [{
|
|
185
|
-
type: Component,
|
|
186
|
-
args: [{ selector: 'app-job-progression', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #button\n mat-icon-button\n [title]=\"titleI18n | translate\"\n [disabled]=\"disabled\"\n *ngIf=\"visible\"\n (click)=\"showList($event)\"\n>\n <mat-icon\n [matBadge]=\"jobProgressions?.length\"\n [matBadgeHidden]=\"!jobProgressions?.length\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n >{{ disabled || jobProgressions?.length ? 'schedule' : 'task_alt' }}\n </mat-icon>\n <mat-spinner\n #spinner\n *ngIf=\"jobProgressions?.length\"\n class=\"floating-spinner\"\n [color]=\"color\"\n [mode]=\"mode\"\n [value]=\"value\"\n diameter=\"30\"\n strokeWidth=\"3\"\n ></mat-spinner>\n</button>\n\n", styles: [".floating-spinner{position:absolute;top:6px;left:5px}\n"] }]
|
|
187
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
188
|
-
type: Optional
|
|
189
|
-
}, {
|
|
190
|
-
type: Inject,
|
|
191
|
-
args: [JobProgressionServiceToken]
|
|
192
|
-
}] }, { type: i1.PopoverController }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { debug: [{
|
|
193
|
-
type: Input
|
|
194
|
-
}], titleI18n: [{
|
|
195
|
-
type: Input
|
|
196
|
-
}], options: [{
|
|
197
|
-
type: Input
|
|
198
|
-
}], jobFinished: [{
|
|
199
|
-
type: Output
|
|
200
|
-
}] } });
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXByb2dyZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL2pvYi9wcm9ncmVzc2lvbi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvam9iL3Byb2dyZXNzaW9uL2pvYi1wcm9ncmVzc2lvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4SixPQUFPLEVBQTBCLDBCQUEwQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBNkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0FBZXZGLE1BQU0sT0FBTyx1QkFBdUI7SUF3QmxDLFlBQzRELHFCQUE2QyxFQUM3RixpQkFBb0MsRUFDcEMsRUFBcUI7UUFGMkIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUM3RixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBekJ4QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsY0FBUyxHQUFHLDhCQUE4QixDQUFDO1FBRTFD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QkE0QkE7MkZESGEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOzswQkEyQjVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMEJBQTBCOzRHQXZCdkMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBQcm9ncmVzc1NwaW5uZXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBJSm9iUHJvZ3Jlc3Npb25TZXJ2aWNlLCBKb2JQcm9ncmVzc2lvblNlcnZpY2VUb2tlbiB9IGZyb20gJy4uL2pvYi5zZXJ2aWNlJztcbmltcG9ydCB7IEpvYlByb2dyZXNzaW9uIH0gZnJvbSAnLi4vam9iLm1vZGVsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT2JqZWN0TWFwIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7IGFycmF5U2l6ZSwgaXNOaWwsIHRvQm9vbGVhbiwgdG9OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBKb2JQcm9ncmVzc2lvbkxpc3QsIEpvYlByb2dyZXNzaW9uTGlzdE9wdGlvbnMgfSBmcm9tICcuL2pvYi1wcm9ncmVzc2lvbi5saXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9ncmVzc2lvbk9wdGlvbnMge1xuICBhdXRvSGlkZTogYm9vbGVhbjtcbiAgYXV0b0hpZGVEZWxheTogbnVtYmVyO1xuICBhdXRvUmVtb3ZlOiBib29sZWFuO1xuICBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWpvYi1wcm9ncmVzc2lvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9qb2ItcHJvZ3Jlc3Npb24uY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBKb2JQcm9ncmVzc2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoKSB0aXRsZUkxOG4gPSAnU09DSUFMLkpPQi5QUk9HUkVTU0lPTi5USVRMRSc7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IEpvYlByb2dyZXNzaW9uT3B0aW9ucztcbiAgQE91dHB1dCgpIGpvYkZpbmlzaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgZGlzYWJsZWQgPSB0cnVlO1xuICBjb2xvcjogVGhlbWVQYWxldHRlID0gJ2FjY2VudCc7XG4gIG1vZGU6IFByb2dyZXNzU3Bpbm5lck1vZGUgPSAnZGV0ZXJtaW5hdGUnO1xuICB2YWx1ZSA9IDA7XG4gIGpvYlByb2dyZXNzaW9uczogSm9iUHJvZ3Jlc3Npb25bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBhdXRvSGlkZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGF1dG9IaWRlRGVsYXk6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGF1dG9SZW1vdmU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBhdXRvUmVtb3ZlRGVsYXk6IG51bWJlcjtcblxuICBwcml2YXRlIF9saXN0UG9wb3ZlcjogSFRNTElvblBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zQnlJZDogT2JqZWN0TWFwPFN1YnNjcmlwdGlvbj4gPSB7fTtcbiAgcHJpdmF0ZSBfbG9nUHJlZml4ID0gJ1tqb2ItcHJvZ3Jlc3Npb25dICc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChKb2JQcm9ncmVzc2lvblNlcnZpY2VUb2tlbikgcHJvdGVjdGVkIGpvYlByb2dyZXNzaW9uU2VydmljZTogSUpvYlByb2dyZXNzaW9uU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChpc05pbCh0aGlzLmpvYlByb2dyZXNzaW9uU2VydmljZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgJHt0aGlzLl9sb2dQcmVmaXh9Tm8gc2VydmljZSBpbmplY3RlZGApO1xuICAgIH1cbiAgICAvLyBwYXJzZSBvcHRpb25zXG4gICAgdGhpcy5hdXRvSGlkZSA9IHRvQm9vbGVhbih0aGlzLm9wdGlvbnM/LmF1dG9IaWRlLCBmYWxzZSk7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMuYXV0b0hpZGU7XG4gICAgdGhpcy5hdXRvSGlkZURlbGF5ID0gdG9OdW1iZXIodGhpcy5vcHRpb25zPy5hdXRvSGlkZURlbGF5LCAxMDAwKTtcbiAgICB0aGlzLmF1dG9SZW1vdmUgPSB0b0Jvb2xlYW4odGhpcy5vcHRpb25zPy5hdXRvUmVtb3ZlLCB0cnVlKTtcbiAgICB0aGlzLmF1dG9SZW1vdmVEZWxheSA9IHRvTnVtYmVyKHRoaXMub3B0aW9ucz8uYXV0b1JlbW92ZURlbGF5LCAxMDAwKTtcbiAgfVxuXG4gIGFkZEpvYihpZDogbnVtYmVyKSB7XG4gICAgaWYgKGlzTmlsKHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1ObyBzZXJ2aWNlIGluamVjdGVkLiBDYW4ndCBhZGQgYSBqb2JgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISF0aGlzLmdldFByb2dyZXNzaW9uKGlkKSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgKGlkPSR7aWR9KSBhbHJlYWR5IHByZXNlbnRgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fUFkZCBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgLy8gQWRkaW5nIGVtcHR5IGpvYiBwcm9ncmVzc2lvblxuICAgIGNvbnN0IHByb2dyZXNzaW9uID0gbmV3IEpvYlByb2dyZXNzaW9uKGlkKTtcbiAgICB0aGlzLmpvYlByb2dyZXNzaW9ucy5wdXNoKHByb2dyZXNzaW9uKTtcblxuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1YiA9IHRoaXMuam9iUHJvZ3Jlc3Npb25TZXJ2aWNlLmxpc3RlbkNoYW5nZXMoaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKHByb2dyZXNzaW9uID0+IHtcbiAgICAgICAgICBpZiAoaWQgIT09IHByb2dyZXNzaW9uLmlkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGAke3RoaXMuX2xvZ1ByZWZpeH1Kb2IgcHJvZ3Jlc3Npb24gKGlkPSR7cHJvZ3Jlc3Npb24uaWR9KSBkb2Vzbid0IG1hdGNoIGV4cGVjdGVkIGpvYiAoaWQ9JHtpZH0pYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKHByb2dyZXNzaW9uID0+IHtcbiAgICAgICAgICAvLyBFbnN1cmUgdmlzaWJsZVxuICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgLy8gR2V0IGN1cnJlbnQgcHJvZ3Jlc3Npb24gb2JqZWN0XG4gICAgICAgICAgY29uc3QgY3VycmVudFByb2dyZXNzaW9uID0gdGhpcy5nZXRQcm9ncmVzc2lvbihpZCk7XG4gICAgICAgICAgaWYgKCFjdXJyZW50UHJvZ3Jlc3Npb24pIHtcbiAgICAgICAgICAgIC8vIGFkZCBpdCBpZiBhYnNlbnRcbiAgICAgICAgICAgIHRoaXMuam9iUHJvZ3Jlc3Npb25zLnB1c2gocHJvZ3Jlc3Npb24pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9UHJvZ3Jlc3Npb24gYWRkZWQgaWQ9JHtpZH1gLCBwcm9ncmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBjdXJyZW50XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGN1cnJlbnRQcm9ncmVzc2lvbiwgcHJvZ3Jlc3Npb24pO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9UHJvZ3Jlc3Npb24gdXBkYXRlZCBpZD0ke2lkfWAsIHByb2dyZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHByb2dyZXNzaW9uO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShwcm9ncmVzc2lvbiA9PiB7XG4gICAgICAgIC8vIHVwZGF0ZSB2YWx1ZVxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG5cbiAgICAgICAgLy8gam9iIGZpbmlzaGVkXG4gICAgICAgIGlmIChwcm9ncmVzc2lvbi50b3RhbCA+IDAgJiYgcHJvZ3Jlc3Npb24uY3VycmVudCA9PSBwcm9ncmVzc2lvbi50b3RhbCkge1xuICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1GaW5pc2hlZCBqb2IgaWQ9JHtwcm9ncmVzc2lvbi5pZH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZW1pdCBldmVudFxuICAgICAgICAgIHRoaXMuam9iRmluaXNoZWQuZW1pdChwcm9ncmVzc2lvbi5pZCk7XG4gICAgICAgICAgaWYgKHRoaXMuYXV0b1JlbW92ZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlSm9iKHByb2dyZXNzaW9uLmlkKTtcbiAgICAgICAgICAgICAgLy8gSWYgbGFzdCBqb2JcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0hpZGUgJiYgIXRoaXMuam9iUHJvZ3Jlc3Npb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RQb3BvdmVyPy5kaXNtaXNzKCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSwgdGhpcy5hdXRvSGlkZURlbGF5KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdGhpcy5hdXRvUmVtb3ZlRGVsYXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zQnlJZFtpZF0gPSBzdWI7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoc3ViKTtcbiAgfVxuXG4gIHJlbW92ZUpvYihpZDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVJlbW92ZSBqb2IgaWQ9JHtpZH1gKTtcbiAgICB9XG4gICAgY29uc3Qgc3ViID0gdGhpcy5fc3Vic2NyaXB0aW9uc0J5SWRbaWRdO1xuICAgIGlmIChzdWIpIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucmVtb3ZlKHN1Yik7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgY29uc3QgcHJvZ3Jlc3Npb24gPSB0aGlzLmdldFByb2dyZXNzaW9uKGlkKTtcbiAgICBpZiAocHJvZ3Jlc3Npb24pIHtcbiAgICAgIHRoaXMuam9iUHJvZ3Jlc3Npb25zLnNwbGljZSh0aGlzLmpvYlByb2dyZXNzaW9ucy5pbmRleE9mKHByb2dyZXNzaW9uKSwgMSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgfVxuXG4gIGdldFByb2dyZXNzaW9uKGlkOiBudW1iZXIpOiBKb2JQcm9ncmVzc2lvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuam9iUHJvZ3Jlc3Npb25zLmZpbmQocHJvZ3Jlc3Npb24gPT4gcHJvZ3Jlc3Npb24uaWQgPT09IGlkKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKCkge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMuX2xvZ1ByZWZpeH1VcGRhdGluZyB2YWx1ZWApO1xuICAgIH1cbiAgICBsZXQgdmFsdWUgPSAwO1xuICAgIGNvbnN0IG5iUHJvZ3Jlc3Npb24gPSBhcnJheVNpemUodGhpcy5qb2JQcm9ncmVzc2lvbnMpO1xuICAgIGxldCBhbGxJbmRldGVybWluYXRlID0gbmJQcm9ncmVzc2lvbiA+IDA7XG5cbiAgICB0aGlzLmpvYlByb2dyZXNzaW9ucy5mb3JFYWNoKHByb2dyZXNzaW9uID0+IHtcbiAgICAgIGNvbnN0IGluZGV0ZXJtaW5hdGUgPSBwcm9ncmVzc2lvbi50b3RhbCA9PT0gMDtcbiAgICAgIGFsbEluZGV0ZXJtaW5hdGUgPSBhbGxJbmRldGVybWluYXRlICYmIGluZGV0ZXJtaW5hdGU7XG4gICAgICBpZiAoIWluZGV0ZXJtaW5hdGUpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZSArIHByb2dyZXNzaW9uLmN1cnJlbnQgKiAxMDAgLyBwcm9ncmVzc2lvbi50b3RhbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudmFsdWUgPSBuYlByb2dyZXNzaW9uID4gMCA/IHZhbHVlIC8gbmJQcm9ncmVzc2lvbiA6IDA7XG4gICAgdGhpcy5tb2RlID0gYWxsSW5kZXRlcm1pbmF0ZSA/ICdpbmRldGVybWluYXRlJyA6ICdkZXRlcm1pbmF0ZSc7XG4gICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYCR7dGhpcy5fbG9nUHJlZml4fVNldHRpbmcgdmFsdWU9JHt0aGlzLnZhbHVlfSwgbW9kZT0ke3RoaXMubW9kZX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgYXN5bmMgc2hvd0xpc3QoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5fbGlzdFBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcG92ZXJDb250cm9sbGVyLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IEpvYlByb2dyZXNzaW9uTGlzdCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiA8Sm9iUHJvZ3Jlc3Npb25MaXN0T3B0aW9ucz57XG4gICAgICAgIHRpdGxlSTE4bjogdGhpcy50aXRsZUkxOG4sXG4gICAgICAgIGpvYlByb2dyZXNzaW9uczogdGhpcy5qb2JQcm9ncmVzc2lvbnNcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgICBrZXlib2FyZENsb3NlOiB0cnVlLFxuICAgICAgZXZlbnQsXG4gICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICAgIGNzc0NsYXNzOiAncG9wb3Zlci1sYXJnZSdcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLl9saXN0UG9wb3Zlci5wcmVzZW50KCk7XG4gICAgYXdhaXQgdGhpcy5fbGlzdFBvcG92ZXIub25EaWREaXNtaXNzKCk7XG4gICAgdGhpcy5fbGlzdFBvcG92ZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLl9sb2dQcmVmaXh9RGVzdHJveWluZ2ApO1xuICAgIH1cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgI2J1dHRvblxuICBtYXQtaWNvbi1idXR0b25cbiAgW3RpdGxlXT1cInRpdGxlSTE4biB8IHRyYW5zbGF0ZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICpuZ0lmPVwidmlzaWJsZVwiXG4gIChjbGljayk9XCJzaG93TGlzdCgkZXZlbnQpXCJcbj5cbiAgPG1hdC1pY29uXG4gICAgW21hdEJhZGdlXT1cImpvYlByb2dyZXNzaW9ucz8ubGVuZ3RoXCJcbiAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiIWpvYlByb2dyZXNzaW9ucz8ubGVuZ3RoXCJcbiAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICBtYXRCYWRnZVNpemU9XCJzbWFsbFwiXG4gICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFib3ZlIGFmdGVyXCJcbiAgPnt7IGRpc2FibGVkIHx8IGpvYlByb2dyZXNzaW9ucz8ubGVuZ3RoID8gJ3NjaGVkdWxlJyA6ICd0YXNrX2FsdCcgfX1cbiAgPC9tYXQtaWNvbj5cbiAgPG1hdC1zcGlubmVyXG4gICAgI3NwaW5uZXJcbiAgICAqbmdJZj1cImpvYlByb2dyZXNzaW9ucz8ubGVuZ3RoXCJcbiAgICBjbGFzcz1cImZsb2F0aW5nLXNwaW5uZXJcIlxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgW21vZGVdPVwibW9kZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBkaWFtZXRlcj1cIjMwXCJcbiAgICBzdHJva2VXaWR0aD1cIjNcIlxuICA+PC9tYXQtc3Bpbm5lcj5cbjwvYnV0dG9uPlxuXG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { MatBadgeSize } from '@angular/material/badge';
|
|
3
|
-
import { AppColors } from '../../types';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare type MatBadgeFill = 'clear' | 'solid';
|
|
6
|
-
export declare class MatBadgeIconDirective implements OnInit, OnDestroy {
|
|
7
|
-
private el;
|
|
8
|
-
set size(value: MatBadgeSize);
|
|
9
|
-
get size(): MatBadgeSize;
|
|
10
|
-
set color(value: AppColors);
|
|
11
|
-
get color(): AppColors;
|
|
12
|
-
set fill(value: MatBadgeFill);
|
|
13
|
-
get fill(): MatBadgeFill;
|
|
14
|
-
set matIcon(icon: string);
|
|
15
|
-
set ionIcon(icon: string);
|
|
16
|
-
private _size;
|
|
17
|
-
private _color;
|
|
18
|
-
private _fill;
|
|
19
|
-
private _matIcon;
|
|
20
|
-
private _ionIcon;
|
|
21
|
-
private _html;
|
|
22
|
-
private _subscription;
|
|
23
|
-
private _$update;
|
|
24
|
-
constructor(el: ElementRef);
|
|
25
|
-
ngOnInit(): void;
|
|
26
|
-
ngOnDestroy(): void;
|
|
27
|
-
private updateView;
|
|
28
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MatBadgeIconDirective, never>;
|
|
29
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<MatBadgeIconDirective, "[matBadgeIcon], [ionBadgeIcon]", never, { "size": "matBadgeSize"; "color": "matBadgeColor"; "fill": "matBadgeFill"; "matIcon": "matBadgeIcon"; "ionIcon": "ionBadgeIcon"; }, {}, never, never, false>;
|
|
30
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./badge-icon.directive";
|
|
3
|
-
import * as i2 from "@angular/common";
|
|
4
|
-
import * as i3 from "@ionic/angular";
|
|
5
|
-
import * as i4 from "@angular/material/badge";
|
|
6
|
-
export declare class SharedMatBadgeIconModule {
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SharedMatBadgeIconModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedMatBadgeIconModule, [typeof i1.MatBadgeIconDirective], [typeof i2.CommonModule, typeof i3.IonicModule, typeof i4.MatBadgeModule], [typeof i1.MatBadgeIconDirective]>;
|
|
9
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<SharedMatBadgeIconModule>;
|
|
10
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
import { MatBadgeFill } from './badge-icon.directive';
|
|
3
|
-
import { MatBadgeSize } from '@angular/material/badge';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class MatBadgeIconTestPage {
|
|
6
|
-
$icon: BehaviorSubject<string>;
|
|
7
|
-
$size: BehaviorSubject<MatBadgeSize>;
|
|
8
|
-
$fill: BehaviorSubject<MatBadgeFill>;
|
|
9
|
-
$color: BehaviorSubject<string>;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MatBadgeIconTestPage, never>;
|
|
11
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MatBadgeIconTestPage, "mat-badge-icon-test", never, {}, {}, never, never, false>;
|
|
12
|
-
}
|