@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
|
@@ -79,14 +79,13 @@ Color.transparent = function () {
|
|
|
79
79
|
// @dynamic
|
|
80
80
|
export class ColorScale {
|
|
81
81
|
constructor(colorArray, options) {
|
|
82
|
-
this.colorArray = colorArray;
|
|
83
82
|
options = options || {};
|
|
84
83
|
// reserved last colors for value > max
|
|
85
84
|
const nbIntervalBeforeUpper = !options.upperMax ? colorArray.length : (colorArray.length - 1);
|
|
86
85
|
this._min = options.min || 0;
|
|
87
86
|
this._max = options.max || nbIntervalBeforeUpper;
|
|
88
87
|
this._rangeSize = Math.round((this._max - this._min) / nbIntervalBeforeUpper);
|
|
89
|
-
this._legendItems = this.
|
|
88
|
+
this._legendItems = this.computeLegendItems(colorArray);
|
|
90
89
|
}
|
|
91
90
|
static default() {
|
|
92
91
|
return ColorScale.custom(25);
|
|
@@ -110,15 +109,21 @@ export class ColorScale {
|
|
|
110
109
|
};
|
|
111
110
|
}
|
|
112
111
|
getValueColor(value) {
|
|
113
|
-
|
|
114
|
-
return this.colorArray[index];
|
|
112
|
+
return this.getLegendForValue(value).color;
|
|
115
113
|
}
|
|
116
|
-
|
|
117
|
-
|
|
114
|
+
getLegendForValue(value) {
|
|
115
|
+
const index = Math.floor(value * (this._legendItems.length - 1) / this._max);
|
|
116
|
+
return this._legendItems[index];
|
|
117
|
+
}
|
|
118
|
+
getLegendAtIndex(index) {
|
|
119
|
+
return this._legendItems[index];
|
|
120
|
+
}
|
|
121
|
+
computeLegendItems(colorArray) {
|
|
122
|
+
return colorArray.map((color, index) => {
|
|
118
123
|
const start = index * this._rangeSize;
|
|
119
124
|
const end = start + this._rangeSize;
|
|
120
125
|
return {
|
|
121
|
-
color,
|
|
126
|
+
color: new Color(color),
|
|
122
127
|
label: (end < this._max) ? `${start.toLocaleString()} - ${end.toLocaleString()}` : ` >= ${start}`
|
|
123
128
|
};
|
|
124
129
|
});
|
|
@@ -127,12 +132,10 @@ export class ColorScale {
|
|
|
127
132
|
ColorScale.custom = (count, options) => {
|
|
128
133
|
options = options || {};
|
|
129
134
|
return new ColorScale(linearColorGradientWithIntermediate(count, {
|
|
130
|
-
opacity: options.opacity,
|
|
131
135
|
startColor: options.startColor || undefined,
|
|
132
136
|
mainColor: options.mainColor || undefined,
|
|
133
137
|
mainColorIndex: isNotNil(options.mainColorIndex) ? options.mainColorIndex : undefined,
|
|
134
|
-
endColor: options.endColor || undefined
|
|
135
|
-
format: options.format
|
|
138
|
+
endColor: options.endColor || undefined
|
|
136
139
|
}), options);
|
|
137
140
|
};
|
|
138
141
|
// Fill colorsMap
|
|
@@ -140,28 +143,6 @@ Object.getOwnPropertyNames(rgbArrayMap)
|
|
|
140
143
|
.forEach((key) => {
|
|
141
144
|
colorsMap[key] = new Color(rgbArrayMap[key], 1, key);
|
|
142
145
|
});
|
|
143
|
-
// Internal function
|
|
144
|
-
function state2side(state) {
|
|
145
|
-
switch (state) {
|
|
146
|
-
case 0:
|
|
147
|
-
return 0;
|
|
148
|
-
case 1:
|
|
149
|
-
return -1;
|
|
150
|
-
case 2:
|
|
151
|
-
return 0;
|
|
152
|
-
case 3:
|
|
153
|
-
return 1;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
const SCALE_OPTIONS_DEFAULT = {
|
|
157
|
-
startColor: rgbArrayMap.red,
|
|
158
|
-
startStates: [0, 2, 3],
|
|
159
|
-
startStepsFn: (defaultStateSize) => [
|
|
160
|
-
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
161
|
-
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
162
|
-
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
163
|
-
]
|
|
164
|
-
};
|
|
165
146
|
/**
|
|
166
147
|
* Internal function, that create a colors scale, using iteration
|
|
167
148
|
*
|
|
@@ -174,34 +155,26 @@ const SCALE_OPTIONS_DEFAULT = {
|
|
|
174
155
|
function linearColorGradientWithIntermediate(count, options) {
|
|
175
156
|
options = options || {};
|
|
176
157
|
// From [0,1]
|
|
177
|
-
options.opacity = (options.opacity > 0 && options.opacity < 1) ? options.opacity : 1;
|
|
178
158
|
options.startColor = options.startColor || [255, 255, 190]; // default start = creme
|
|
179
159
|
options.mainColorIndex = options.mainColorIndex && options.mainColorIndex < count - 1 ? options.mainColorIndex : count - 1;
|
|
180
160
|
options.endColor = options.endColor || [255, 0, 0]; // default main = red
|
|
181
|
-
options.format = options.format || 'rgb';
|
|
182
161
|
if (!options.mainColor) {
|
|
183
162
|
return linearColorGradient(count, {
|
|
184
|
-
opacity: options.opacity,
|
|
185
163
|
startColor: options.startColor,
|
|
186
|
-
endColor: options.endColor
|
|
187
|
-
format: options.format
|
|
164
|
+
endColor: options.endColor
|
|
188
165
|
});
|
|
189
166
|
}
|
|
190
167
|
else {
|
|
191
168
|
// Step 1: startColor -> mainColor
|
|
192
169
|
const result = linearColorGradient(options.mainColorIndex + 1, {
|
|
193
|
-
opacity: options.opacity,
|
|
194
170
|
startColor: options.startColor,
|
|
195
|
-
endColor: options.mainColor
|
|
196
|
-
format: options.format
|
|
171
|
+
endColor: options.mainColor
|
|
197
172
|
});
|
|
198
173
|
// Step 2: mainColor -> endColor
|
|
199
174
|
if (options.mainColorIndex < count - 1) {
|
|
200
175
|
return result.concat(linearColorGradient(count - options.mainColorIndex, {
|
|
201
|
-
opacity: options.opacity,
|
|
202
176
|
startColor: options.mainColor,
|
|
203
|
-
endColor: options.endColor
|
|
204
|
-
format: options.format
|
|
177
|
+
endColor: options.endColor
|
|
205
178
|
}));
|
|
206
179
|
}
|
|
207
180
|
else {
|
|
@@ -212,10 +185,8 @@ function linearColorGradientWithIntermediate(count, options) {
|
|
|
212
185
|
function linearColorGradient(count, options) {
|
|
213
186
|
options = options || {};
|
|
214
187
|
// From [0,1]
|
|
215
|
-
options.opacity = (options.opacity > 0 && options.opacity < 1) ? options.opacity : 1;
|
|
216
188
|
options.startColor = options.startColor || [255, 255, 255]; // default start = white
|
|
217
189
|
options.endColor = options.endColor || [255, 0, 0]; // default end = red
|
|
218
|
-
options.format = options.format || 'rgb';
|
|
219
190
|
const result = [];
|
|
220
191
|
const color = options.startColor.slice(); // copy the start color
|
|
221
192
|
const delta = [
|
|
@@ -232,23 +203,6 @@ function linearColorGradient(count, options) {
|
|
|
232
203
|
// Force last color = end color
|
|
233
204
|
result.push(options.endColor.slice());
|
|
234
205
|
// Output as array
|
|
235
|
-
if (options.format === 'array') {
|
|
236
|
-
return result;
|
|
237
|
-
}
|
|
238
|
-
// Output as rgb(r,g,b) string
|
|
239
|
-
if (options.format === 'rgb') {
|
|
240
|
-
if (options.opacity >= 1) {
|
|
241
|
-
return result.map(color => 'rgb(' + color.join(',') + ')');
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
return result.map(color => 'rgba(' + color.concat(options.opacity).join(',') + ')');
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
// Output as hex
|
|
248
|
-
// TODO
|
|
249
|
-
// return result.map(color => {
|
|
250
|
-
// return "rgb(" + color.join(',') + ")";
|
|
251
|
-
// });
|
|
252
206
|
return result;
|
|
253
207
|
}
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZ3JhcGgvZ3JhcGgtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBUzdDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLEdBQUc7SUFDbEIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdEIsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDMUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDckIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdkIsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUM7Q0FDbEIsQ0FBQztBQUVGLDhCQUE4QjtBQUM5QixNQUFNLFNBQVMsR0FBNkIsRUFBRSxDQUFDO0FBRy9DOztHQUVHO0FBQ0gsV0FBVztBQUNYLE1BQU0sT0FBTyxLQUFLO0lBNEJoQixZQUNVLFNB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dGVudCI6WyJpbXBvcnQge1ByZWRlZmluZWRDb2xvcnN9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7aXNOaWwsIGlzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbG9yTmFtZSA9IFByZWRlZmluZWRDb2xvcnMgfFxuICAnd2hpdGUnXG4gIHwgJ3JlZCdcbiAgfCAnZ3JlZW4nXG4gIHwgJ2JsdWUnO1xuXG5cbi8qKlxuICogRGVmaW5lIGhlcmUgdGhlbWUgY29sb3JzXG4gKi9cbmNvbnN0IHJnYkFycmF5TWFwID0ge1xuICB3aGl0ZTogWzI1NSwgMjU1LCAyNTVdLFxuICBwcmltYXJ5OiBbMjAsIDY3LCAxNDVdLCAvLyBva1xuICBzZWNvbmRhcnk6IFsxMTcsIDE5NiwgMjUzXSwgLy8gb2tcbiAgdGVydGlhcnk6IFs5MSwgOTQsIDI0NF0sIC8vIG9rXG4gIGRhbmdlcjogWzI0NSwgNjEsIDYxXSwgLy8gb2tcbiAgbGlnaHQ6IFsyNDQsIDI0NSwgMjQ4XSwgLy8gb2tcbiAgbWVkaXVtOiBbMTUyLCAxNTQsIDE2Ml0sIC8vIG9rXG4gIGRhcms6IFszNCwgMzYsIDQwXSwgLy8gb2tcbiAgcmVkOiBbMjU1LCAwLCAwXSxcbiAgZ3JlZW46IFswLCAyNTUsIDBdLFxuICBibHVlOiBbMCwgMCwgMjU1XVxufTtcblxuLy8gRmlsbCBhIG1hcCBvZiBDb2xvciBvYmplY3RzXG5jb25zdCBjb2xvcnNNYXA6IHsgW2tleTogc3RyaW5nXTogQ29sb3IgfSA9IHt9O1xuXG5cbi8qKlxuICogVXNlZnVsIGNsYXNzIGZvciBjb2xvciBjb252ZXJzaW9uXG4gKi9cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQ29sb3Ige1xuXG4gIC8vIEhlbHBlciBtZXRob2QsIHRvIHJldHJpZXZlIGEgY29sb3JcbiAgc3RhdGljIGdldChuYW1lOiBDb2xvck5hbWUpOiBDb2xvciB7XG4gICAgcmV0dXJuIGNvbG9yc01hcFtuYW1lXSBhcyBDb2xvcjtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZVJnYmEocmdiYTogc3RyaW5nKTogQ29sb3J8bnVsbHtcbiAgICAgIGlmICghcmdiYSB8fCAoIXJnYmEuc3RhcnRzV2l0aCgncmdiKCcpICYmICFyZ2JhLnN0YXJ0c1dpdGgoJ3JnYmEoJykpKSByZXR1cm4gbnVsbDtcblxuICAgICAgLy8gUGFyc2UgcGFydHNcbiAgICAgIGNvbnN0IHBhcnRzID0gcmdiYVxuICAgICAgICAucmVwbGFjZSgncmdiKCcsICcnKVxuICAgICAgICAucmVwbGFjZSgncmdiYSgnLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJyknLCAnJylcbiAgICAgICAgLnNwbGl0KCcsJyk7XG5cbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgJiYgcGFydHMubGVuZ3RoICE9PSA0KSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIG5ldyBDb2xvcihbK3BhcnRzWzBdLCArcGFydHNbMV0sICtwYXJ0c1syXV0sXG4gICAgICAgIHBhcnRzLmxlbmd0aCA9PT0gNCAmJiArcGFydHNbM10gfHwgMSxcbiAgICAgICAgJ2N1c3RvbScpO1xuICB9XG5cbiAgc3RhdGljIHRyYW5zcGFyZW50ID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBDb2xvcihbMCwwLDBdLCAwLCAndHJhbnNsdWNlbnQnKTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yZ2JBcnJheTogbnVtYmVyW10sXG4gICAgcHJpdmF0ZSBfb3BhY2l0eT86IG51bWJlcixcbiAgICBwcml2YXRlIF9uYW1lOiBzdHJpbmcgPSAnY3VzdG9tJ1xuICApIHtcbiAgfVxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICB9XG4gIGdldCBvcGFjaXR5KCk6IG51bWJlcntcbiAgICByZXR1cm4gaXNOb3ROaWwodGhpcy5fb3BhY2l0eSkgPyB0aGlzLl9vcGFjaXR5IDogMTtcbiAgfVxuICBnZXQgcmdiKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fcmdiQXJyYXk7XG4gIH1cblxuICBnZXQgcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yZ2JBcnJheVswXTtcbiAgfVxuXG4gIGdldCBnKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JnYkFycmF5WzFdO1xuICB9XG5cbiAgZ2V0IGIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcmdiQXJyYXlbMl07XG4gIH1cblxuICByZ2JhKG9wYWNpdHk/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIG9wYWNpdHkgPSBpc05vdE5pbChvcGFjaXR5KSA/IG9wYWNpdHkgOiB0aGlzLl9vcGFjaXR5O1xuICAgIGlmIChpc05pbChvcGFjaXR5KSB8fCBvcGFjaXR5IDwgMCB8fCBvcGFjaXR5ID4gMSkge1xuICAgICAgcmV0dXJuICdyZ2IoJyArIHRoaXMuX3JnYkFycmF5LmpvaW4oJywnKSArICcpJztcbiAgICB9XG4gICAgcmV0dXJuICdyZ2JhKCcgKyB0aGlzLl9yZ2JBcnJheS5qb2luKCcsJykgKyAnLCcgKyBvcGFjaXR5ICsgJyknO1xuICB9XG5cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENvbG9yR3JhZGllbnRPcHRpb25zIHtcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgc3RhcnRDb2xvcj86IG51bWJlcltdO1xuICBtYWluQ29sb3I/OiBudW1iZXJbXTtcbiAgbWFpbkNvbG9ySW5kZXg/OiBudW1iZXI7XG4gIGVuZENvbG9yPzogbnVtYmVyW107XG4gIGZvcm1hdD86ICdyZ2InfCdoZXgnfCdhcnJheSc7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvclNjYWxlT3B0aW9ucyBleHRlbmRzIENvbG9yR3JhZGllbnRPcHRpb25ze1xuICBtaW4/OiBudW1iZXI7XG4gIG1heD86IG51bWJlcjtcbiAgdXBwZXJNYXg/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ29sb3JTY2FsZUxlZ2VuZEl0ZW0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ29sb3JTY2FsZUxlZ2VuZCB7XG4gIGl0ZW1zOiBDb2xvclNjYWxlTGVnZW5kSXRlbVtdO1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3IgY29sb3JzIHNjYWxlXG4gKi9cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQ29sb3JTY2FsZSB7XG5cbiAgc3RhdGljIGN1c3RvbSA9IChjb3VudDogbnVtYmVyLCBvcHRpb25zPzogQ29sb3JTY2FsZU9wdGlvbnMpID0+IHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICByZXR1cm4gbmV3IENvbG9yU2NhbGUoXG4gICAgICBsaW5lYXJDb2xvckdyYWRpZW50V2l0aEludGVybWVkaWF0ZShjb3VudCwge1xuICAgICAgICBvcGFjaXR5OiBvcHRpb25zLm9wYWNpdHksXG4gICAgICAgIHN0YXJ0Q29sb3I6IG9wdGlvbnMuc3RhcnRDb2xvciB8fCB1bmRlZmluZWQsXG4gICAgICAgIG1haW5Db2xvcjogb3B0aW9ucy5tYWluQ29sb3IgfHwgdW5kZWZpbmVkLFxuICAgICAgICBtYWluQ29sb3JJbmRleDogaXNOb3ROaWwob3B0aW9ucy5tYWluQ29sb3JJbmRleCkgPyBvcHRpb25zLm1haW5Db2xvckluZGV4IDogdW5kZWZpbmVkLFxuICAgICAgICBlbmRDb2xvcjogb3B0aW9ucy5lbmRDb2xvciB8fCB1bmRlZmluZWQsXG4gICAgICAgIGZvcm1hdDogb3B0aW9ucy5mb3JtYXRcbiAgICAgIH0pIGFzIHN0cmluZ1tdLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHQoKSB7XG4gICAgcmV0dXJuIENvbG9yU2NhbGUuY3VzdG9tKDI1KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBhcnJheSB3aXRoIHRoZSBnaXZlbiBjb2xvclxuICAgKiovXG4gIHN0YXRpYyBmaXgobGVuZ3RoPzogbnVtYmVyLCBjb2xvck5hbWU/OiBDb2xvck5hbWUpOiBhbnlbXSB7XG4gICAgcmV0dXJuIEFycmF5LmFwcGx5KG51bGwsIEFycmF5KGxlbmd0aCB8fCAyNSkpXG4gICAgICAubWFwKFN0cmluZy5wcm90b3R5cGUudmFsdWVPZiwgQ29sb3IuZ2V0KGNvbG9yTmFtZSB8fCAncHJpbWFyeScpLnJnYmEoMC41KSk7XG4gIH1cblxuICBwcml2YXRlIF9taW46IG51bWJlcjtcbiAgcHJpdmF0ZSBfbWF4OiBudW1iZXI7XG4gIHByaXZhdGUgX3JhbmdlU2l6ZTogbnVtYmVyO1xuICBwcml2YXRlIF9sZWdlbmRJdGVtczogQ29sb3JTY2FsZUxlZ2VuZEl0ZW1bXTtcblxuICBnZXQgbWluKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgfVxuICBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29sb3JBcnJheTogc3RyaW5nW10sIG9wdGlvbnM/OiBDb2xvclNjYWxlT3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIC8vIHJlc2VydmVkIGxhc3QgY29sb3JzIGZvciB2YWx1ZSA+IG1heFxuICAgIGNvbnN0IG5iSW50ZXJ2YWxCZWZvcmVVcHBlciA9ICFvcHRpb25zLnVwcGVyTWF4ID8gY29sb3JBcnJheS5sZW5ndGggOiAoY29sb3JBcnJheS5sZW5ndGggLSAxKTtcbiAgICB0aGlzLl9taW4gPSBvcHRpb25zLm1pbiB8fCAwO1xuICAgIHRoaXMuX21heCA9IG9wdGlvbnMubWF4IHx8IG5iSW50ZXJ2YWxCZWZvcmVVcHBlcjtcbiAgICB0aGlzLl9yYW5nZVNpemUgPSBNYXRoLnJvdW5kKCh0aGlzLl9tYXggLSB0aGlzLl9taW4pIC8gbmJJbnRlcnZhbEJlZm9yZVVwcGVyKTtcbiAgICB0aGlzLl9sZWdlbmRJdGVtcyA9IHRoaXMuY29tcHV0ZUxlZ2VuZCgpO1xuICB9XG5cbiAgZ2V0IGxlZ2VuZCgpOiBDb2xvclNjYWxlTGVnZW5kIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IHRoaXMuX2xlZ2VuZEl0ZW1zXG4gICAgfTtcbiAgfVxuXG4gIGdldFZhbHVlQ29sb3IodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgaW5kZXggPSBNYXRoLmZsb29yKHZhbHVlICogKHRoaXMuY29sb3JBcnJheS5sZW5ndGggLSAxKSAvIHRoaXMuX21heCk7XG4gICAgcmV0dXJuIHRoaXMuY29sb3JBcnJheVtpbmRleF07XG4gIH1cblxuICBwcm90ZWN0ZWQgY29tcHV0ZUxlZ2VuZCgpOiBDb2xvclNjYWxlTGVnZW5kSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5jb2xvckFycmF5Lm1hcCgoY29sb3IsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzdGFydCA9IGluZGV4ICogdGhpcy5fcmFuZ2VTaXplO1xuICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLl9yYW5nZVNpemU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcixcbiAgICAgICAgbGFiZWw6IChlbmQgPCB0aGlzLl9tYXgpID8gYCR7c3RhcnQudG9Mb2NhbGVTdHJpbmcoKX0gLSAke2VuZC50b0xvY2FsZVN0cmluZygpfWAgOiBgID49ICR7c3RhcnR9YFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxufVxuXG5cbi8vIEZpbGwgY29sb3JzTWFwXG5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyZ2JBcnJheU1hcClcbiAgLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbG9yc01hcFtrZXldID0gbmV3IENvbG9yKHJnYkFycmF5TWFwW2tleV0sIDEsIGtleSk7XG4gIH0pO1xuXG4vLyBJbnRlcm5hbCBmdW5jdGlvblxuZnVuY3Rpb24gc3RhdGUyc2lkZShzdGF0ZSkge1xuICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmV0dXJuIDA7XG4gICAgY2FzZSAxOlxuICAgICAgcmV0dXJuIC0xO1xuICAgIGNhc2UgMjpcbiAgICAgIHJldHVybiAwO1xuICAgIGNhc2UgMzpcbiAgICAgIHJldHVybiAxO1xuICB9XG59XG5cblxuY29uc3QgU0NBTEVfT1BUSU9OU19ERUZBVUxUID0ge1xuICBzdGFydENvbG9yOiByZ2JBcnJheU1hcC5yZWQsXG4gIHN0YXJ0U3RhdGVzOiBbMCwgMiwgM10sIC8vIFI9a2VlcCwgVj1rZWVwLCBCPWluY3JlYXNlXG4gIHN0YXJ0U3RlcHNGbjogKGRlZmF1bHRTdGF0ZVNpemU6IG51bWJlcikgPT4gW1xuICAgICAgTWF0aC5yb3VuZCgocmdiQXJyYXlNYXAucmVkWzBdIC0gNTApIC8gZGVmYXVsdFN0YXRlU2l6ZSksXG4gICAgICBNYXRoLnJvdW5kKCgyNTUgLSByZ2JBcnJheU1hcC5yZWRbMV0pIC8gZGVmYXVsdFN0YXRlU2l6ZSksXG4gICAgICBNYXRoLnJvdW5kKCgyNTUgLSByZ2JBcnJheU1hcC5yZWRbMl0pIC8gZGVmYXVsdFN0YXRlU2l6ZSlcbiAgICBdXG59O1xuXG4vKipcbiAqIEludGVybmFsIGZ1bmN0aW9uLCB0aGF0IGNyZWF0ZSBhIGNvbG9ycyBzY2FsZSwgdXNpbmcgaXRlcmF0aW9uXG4gKlxuICogQHBhcmFtIGNvdW50XG4gKiBAcGFyYW0gb3BhY2l0eVxuICogQHBhcmFtIHN0YXJ0Q29sb3JcbiAqIEBwYXJhbSBzdGFydFN0YXRlXG4gKiBAcmV0dXJuc1xuICovXG5mdW5jdGlvbiBsaW5lYXJDb2xvckdyYWRpZW50V2l0aEludGVybWVkaWF0ZShjb3VudDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz86IENvbG9yR3JhZGllbnRPcHRpb25zKTogYW55W10ge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAvLyBGcm9tIFswLDFdXG4gIG9wdGlvbnMub3BhY2l0eSA9IChvcHRpb25zLm9wYWNpdHkgPiAwICYmIG9wdGlvbnMub3BhY2l0eSA8IDEpID8gb3B0aW9ucy5vcGFjaXR5IDogMTtcbiAgb3B0aW9ucy5zdGFydENvbG9yID0gb3B0aW9ucy5zdGFydENvbG9yIHx8IFsyNTUsIDI1NSwgMTkwXTsgLy8gZGVmYXVsdCBzdGFydCA9IGNyZW1lXG4gIG9wdGlvbnMubWFpbkNvbG9ySW5kZXggPSBvcHRpb25zLm1haW5Db2xvckluZGV4ICYmIG9wdGlvbnMubWFpbkNvbG9ySW5kZXggPCBjb3VudCAtIDEgPyBvcHRpb25zLm1haW5Db2xvckluZGV4IDogY291bnQgLSAxO1xuICBvcHRpb25zLmVuZENvbG9yID0gb3B0aW9ucy5lbmRDb2xvciB8fCBbMjU1LCAwLCAwXTsgLy8gZGVmYXVsdCBtYWluID0gcmVkXG4gIG9wdGlvbnMuZm9ybWF0ID0gb3B0aW9ucy5mb3JtYXQgfHwgJ3JnYic7XG5cbiAgaWYgKCFvcHRpb25zLm1haW5Db2xvcikge1xuICAgIHJldHVybiBsaW5lYXJDb2xvckdyYWRpZW50KGNvdW50LCB7XG4gICAgICBvcGFjaXR5OiBvcHRpb25zLm9wYWNpdHksXG4gICAgICBzdGFydENvbG9yOiBvcHRpb25zLnN0YXJ0Q29sb3IsXG4gICAgICBlbmRDb2xvcjogb3B0aW9ucy5lbmRDb2xvcixcbiAgICAgIGZvcm1hdDogb3B0aW9ucy5mb3JtYXRcbiAgICB9KTtcbiAgfVxuXG4gIGVsc2Uge1xuICAgIC8vIFN0ZXAgMTogc3RhcnRDb2xvciAtPiBtYWluQ29sb3JcbiAgICBjb25zdCByZXN1bHQgPSBsaW5lYXJDb2xvckdyYWRpZW50KG9wdGlvbnMubWFpbkNvbG9ySW5kZXggKyAxLCB7XG4gICAgICBvcGFjaXR5OiBvcHRpb25zLm9wYWNpdHksXG4gICAgICBzdGFydENvbG9yOiBvcHRpb25zLnN0YXJ0Q29sb3IsXG4gICAgICBlbmRDb2xvcjogb3B0aW9ucy5tYWluQ29sb3IsXG4gICAgICBmb3JtYXQ6IG9wdGlvbnMuZm9ybWF0XG4gICAgfSk7XG5cbiAgICAvLyBTdGVwIDI6IG1haW5Db2xvciAtPiBlbmRDb2xvclxuICAgIGlmIChvcHRpb25zLm1haW5Db2xvckluZGV4IDwgY291bnQgLSAxKSB7XG4gICAgICByZXR1cm4gcmVzdWx0LmNvbmNhdChcbiAgICAgICAgbGluZWFyQ29sb3JHcmFkaWVudChjb3VudCAtIG9wdGlvbnMubWFpbkNvbG9ySW5kZXgsIHtcbiAgICAgICAgICBvcGFjaXR5OiBvcHRpb25zLm9wYWNpdHksXG4gICAgICAgICAgc3RhcnRDb2xvcjogb3B0aW9ucy5tYWluQ29sb3IsXG4gICAgICAgICAgZW5kQ29sb3I6IG9wdGlvbnMuZW5kQ29sb3IsXG4gICAgICAgICAgZm9ybWF0OiBvcHRpb25zLmZvcm1hdFxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbGluZWFyQ29sb3JHcmFkaWVudChjb3VudDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPzogQ29sb3JHcmFkaWVudE9wdGlvbnMpOiBhbnlbXSB7XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgLy8gRnJvbSBbMCwxXVxuICBvcHRpb25zLm9wYWNpdHkgPSAob3B0aW9ucy5vcGFjaXR5ID4gMCAmJiBvcHRpb25zLm9wYWNpdHkgPCAxKSA/IG9wdGlvbnMub3BhY2l0eSA6IDE7XG4gIG9wdGlvbnMuc3RhcnRDb2xvciA9IG9wdGlvbnMuc3RhcnRDb2xvciB8fCBbMjU1LCAyNTUsIDI1NV07IC8vIGRlZmF1bHQgc3RhcnQgPSB3aGl0ZVxuICBvcHRpb25zLmVuZENvbG9yID0gb3B0aW9ucy5lbmRDb2xvciB8fCBbMjU1LCAwLCAwXTsgLy8gZGVmYXVsdCBlbmQgPSByZWRcbiAgb3B0aW9ucy5mb3JtYXQgPSBvcHRpb25zLmZvcm1hdCB8fCAncmdiJztcblxuICBjb25zdCByZXN1bHQ6IG51bWJlcltdW10gPSBbXTtcbiAgY29uc3QgY29sb3IgPSBvcHRpb25zLnN0YXJ0Q29sb3Iuc2xpY2UoKTsgLy8gY29weSB0aGUgc3RhcnQgY29sb3JcbiAgY29uc3QgZGVsdGEgPSBbXG4gICAgTWF0aC5yb3VuZCgob3B0aW9ucy5lbmRDb2xvclswXSAtIG9wdGlvbnMuc3RhcnRDb2xvclswXSkgLyBjb3VudCksXG4gICAgTWF0aC5yb3VuZCgob3B0aW9ucy5lbmRDb2xvclsxXSAtIG9wdGlvbnMuc3RhcnRDb2xvclsxXSkgLyBjb3VudCksXG4gICAgTWF0aC5yb3VuZCgob3B0aW9ucy5lbmRDb2xvclsyXSAtIG9wdGlvbnMuc3RhcnRDb2xvclsyXSkgLyBjb3VudClcbiAgXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50IC0gMTsgaSsrKSB7XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCAzOyBqKyspIHtcbiAgICAgIGNvbG9yW2pdICs9IGRlbHRhW2pdO1xuICAgIH1cbiAgICByZXN1bHQucHVzaChjb2xvci5zbGljZSgpKTtcbiAgfVxuXG4gIC8vIEZvcmNlIGxhc3QgY29sb3IgPSBlbmQgY29sb3JcbiAgcmVzdWx0LnB1c2gob3B0aW9ucy5lbmRDb2xvci5zbGljZSgpKTtcblxuICAvLyBPdXRwdXQgYXMgYXJyYXlcbiAgaWYgKG9wdGlvbnMuZm9ybWF0ID09PSAnYXJyYXknKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vIE91dHB1dCBhcyByZ2IocixnLGIpIHN0cmluZ1xuICBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdyZ2InKSB7XG4gICAgaWYgKG9wdGlvbnMub3BhY2l0eSA+PSAxKSB7XG4gICAgICByZXR1cm4gcmVzdWx0Lm1hcChjb2xvciA9PiAncmdiKCcgKyBjb2xvci5qb2luKCcsJykgKyAnKScpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVzdWx0Lm1hcChjb2xvciA9PiAncmdiYSgnICsgY29sb3IuY29uY2F0KG9wdGlvbnMub3BhY2l0eSkuam9pbignLCcpICsgJyknKTtcbiAgICB9XG4gIH1cblxuICAvLyBPdXRwdXQgYXMgaGV4XG4gIC8vIFRPRE9cbiAgLy8gcmV0dXJuIHJlc3VsdC5tYXAoY29sb3IgPT4ge1xuICAvLyAgIHJldHVybiBcInJnYihcIiArIGNvbG9yLmpvaW4oJywnKSArIFwiKVwiO1xuICAvLyB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZ3JhcGgvZ3JhcGgtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBVTdDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLEdBQUc7SUFDbEIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdEIsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDMUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDckIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdkIsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUM7Q0FDbEIsQ0FBQztBQUVGLDhCQUE4QjtBQUM5QixNQUFNLFNBQVMsR0FBNkIsRUFBRSxDQUFDO0FBRy9DOztHQUVHO0FBQ0gsV0FBVztBQUNYLE1BQU0sT0FBTyxLQUFLO0lBNEJoQixZQUNVLFNB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LENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDNUI7SUFFRCwrQkFBK0I7SUFDL0IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFdEMsa0JBQWtCO0lBQ2xCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ByZWRlZmluZWRDb2xvcnN9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7aXNOaWwsIGlzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtoZXhUb1JnYiwgaGV4VG9SZ2JBcnJheSwgcmdiQXJyYXlUb0hleH0gZnJvbSAnLi9jb2xvcnMudXRpbHMnO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbG9yTmFtZSA9IFByZWRlZmluZWRDb2xvcnMgfFxuICAnd2hpdGUnXG4gIHwgJ3JlZCdcbiAgfCAnZ3JlZW4nXG4gIHwgJ2JsdWUnO1xuXG5cbi8qKlxuICogRGVmaW5lIGhlcmUgdGhlbWUgY29sb3JzXG4gKi9cbmNvbnN0IHJnYkFycmF5TWFwID0ge1xuICB3aGl0ZTogWzI1NSwgMjU1LCAyNTVdLFxuICBwcmltYXJ5OiBbMjAsIDY3LCAxNDVdLCAvLyBva1xuICBzZWNvbmRhcnk6IFsxMTcsIDE5NiwgMjUzXSwgLy8gb2tcbiAgdGVydGlhcnk6IFs5MSwgOTQsIDI0NF0sIC8vIG9rXG4gIGRhbmdlcjogWzI0NSwgNjEsIDYxXSwgLy8gb2tcbiAgbGlnaHQ6IFsyNDQsIDI0NSwgMjQ4XSwgLy8gb2tcbiAgbWVkaXVtOiBbMTUyLCAxNTQsIDE2Ml0sIC8vIG9rXG4gIGRhcms6IFszNCwgMzYsIDQwXSwgLy8gb2tcbiAgcmVkOiBbMjU1LCAwLCAwXSxcbiAgZ3JlZW46IFswLCAyNTUsIDBdLFxuICBibHVlOiBbMCwgMCwgMjU1XVxufTtcblxuLy8gRmlsbCBhIG1hcCBvZiBDb2xvciBvYmplY3RzXG5jb25zdCBjb2xvcnNNYXA6IHsgW2tleTogc3RyaW5nXTogQ29sb3IgfSA9IHt9O1xuXG5cbi8qKlxuICogVXNlZnVsIGNsYXNzIGZvciBjb2xvciBjb252ZXJzaW9uXG4gKi9cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQ29sb3Ige1xuXG4gIC8vIEhlbHBlciBtZXRob2QsIHRvIHJldHJpZXZlIGEgY29sb3JcbiAgc3RhdGljIGdldChuYW1lOiBDb2xvck5hbWUpOiBDb2xvciB7XG4gICAgcmV0dXJuIGNvbG9yc01hcFtuYW1lXSBhcyBDb2xvcjtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZVJnYmEocmdiYTogc3RyaW5nKTogQ29sb3J8bnVsbHtcbiAgICAgIGlmICghcmdiYSB8fCAoIXJnYmEuc3RhcnRzV2l0aCgncmdiKCcpICYmICFyZ2JhLnN0YXJ0c1dpdGgoJ3JnYmEoJykpKSByZXR1cm4gbnVsbDtcblxuICAgICAgLy8gUGFyc2UgcGFydHNcbiAgICAgIGNvbnN0IHBhcnRzID0gcmdiYVxuICAgICAgICAucmVwbGFjZSgncmdiKCcsICcnKVxuICAgICAgICAucmVwbGFjZSgncmdiYSgnLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJyknLCAnJylcbiAgICAgICAgLnNwbGl0KCcsJyk7XG5cbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgJiYgcGFydHMubGVuZ3RoICE9PSA0KSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIG5ldyBDb2xvcihbK3BhcnRzWzBdLCArcGFydHNbMV0sICtwYXJ0c1syXV0sXG4gICAgICAgIHBhcnRzLmxlbmd0aCA9PT0gNCAmJiArcGFydHNbM10gfHwgMSxcbiAgICAgICAgJ2N1c3RvbScpO1xuICB9XG5cbiAgc3RhdGljIHRyYW5zcGFyZW50ID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBDb2xvcihbMCwwLDBdLCAwLCAndHJhbnNsdWNlbnQnKTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yZ2JBcnJheTogbnVtYmVyW10sXG4gICAgcHJpdmF0ZSBfb3BhY2l0eT86IG51bWJlcixcbiAgICBwcml2YXRlIF9uYW1lOiBzdHJpbmcgPSAnY3VzdG9tJ1xuICApIHtcbiAgfVxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICB9XG4gIGdldCBvcGFjaXR5KCk6IG51bWJlcntcbiAgICByZXR1cm4gaXNOb3ROaWwodGhpcy5fb3BhY2l0eSkgPyB0aGlzLl9vcGFjaXR5IDogMTtcbiAgfVxuICBnZXQgcmdiKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fcmdiQXJyYXk7XG4gIH1cblxuICBnZXQgcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yZ2JBcnJheVswXTtcbiAgfVxuXG4gIGdldCBnKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JnYkFycmF5WzFdO1xuICB9XG5cbiAgZ2V0IGIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcmdiQXJyYXlbMl07XG4gIH1cblxuICByZ2JhKG9wYWNpdHk/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIG9wYWNpdHkgPSBpc05vdE5pbChvcGFjaXR5KSA/IG9wYWNpdHkgOiB0aGlzLl9vcGFjaXR5O1xuICAgIGlmIChpc05pbChvcGFjaXR5KSB8fCBvcGFjaXR5IDwgMCB8fCBvcGFjaXR5ID4gMSkge1xuICAgICAgcmV0dXJuICdyZ2IoJyArIHRoaXMuX3JnYkFycmF5LmpvaW4oJywnKSArICcpJztcbiAgICB9XG4gICAgcmV0dXJuICdyZ2JhKCcgKyB0aGlzLl9yZ2JBcnJheS5qb2luKCcsJykgKyAnLCcgKyBvcGFjaXR5ICsgJyknO1xuICB9XG5cbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENvbG9yR3JhZGllbnRPcHRpb25zIHtcbiAgc3RhcnRDb2xvcj86IG51bWJlcltdO1xuICBtYWluQ29sb3I/OiBudW1iZXJbXTtcbiAgbWFpbkNvbG9ySW5kZXg/OiBudW1iZXI7XG4gIGVuZENvbG9yPzogbnVtYmVyW107XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvclNjYWxlT3B0aW9ucyBleHRlbmRzIENvbG9yR3JhZGllbnRPcHRpb25zIHtcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG4gIHVwcGVyTWF4PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENvbG9yU2NhbGVMZWdlbmRJdGVtIHtcbiAgbGFiZWw6IHN0cmluZ3xudW1iZXJbXTtcbiAgY29sb3I6IENvbG9yO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ29sb3JTY2FsZUxlZ2VuZCB7XG4gIGl0ZW1zOiBDb2xvclNjYWxlTGVnZW5kSXRlbVtdO1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3IgY29sb3JzIHNjYWxlXG4gKi9cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQ29sb3JTY2FsZSB7XG5cbiAgc3RhdGljIGN1c3RvbSA9IChjb3VudDogbnVtYmVyLCBvcHRpb25zPzogQ29sb3JTY2FsZU9wdGlvbnMpID0+IHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICByZXR1cm4gbmV3IENvbG9yU2NhbGUoXG4gICAgICBsaW5lYXJDb2xvckdyYWRpZW50V2l0aEludGVybWVkaWF0ZShjb3VudCwge1xuICAgICAgICBzdGFydENvbG9yOiBvcHRpb25zLnN0YXJ0Q29sb3IgfHwgdW5kZWZpbmVkLFxuICAgICAgICBtYWluQ29sb3I6IG9wdGlvbnMubWFpbkNvbG9yIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgbWFpbkNvbG9ySW5kZXg6IGlzTm90TmlsKG9wdGlvbnMubWFpbkNvbG9ySW5kZXgpID8gb3B0aW9ucy5tYWluQ29sb3JJbmRleCA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW5kQ29sb3I6IG9wdGlvbnMuZW5kQ29sb3IgfHwgdW5kZWZpbmVkXG4gICAgICB9KSxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0KCkge1xuICAgIHJldHVybiBDb2xvclNjYWxlLmN1c3RvbSgyNSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgYXJyYXkgd2l0aCB0aGUgZ2l2ZW4gY29sb3JcbiAgICoqL1xuICBzdGF0aWMgZml4KGxlbmd0aD86IG51bWJlciwgY29sb3JOYW1lPzogQ29sb3JOYW1lKTogYW55W10ge1xuICAgIHJldHVybiBBcnJheS5hcHBseShudWxsLCBBcnJheShsZW5ndGggfHwgMjUpKVxuICAgICAgLm1hcChTdHJpbmcucHJvdG90eXBlLnZhbHVlT2YsIENvbG9yLmdldChjb2xvck5hbWUgfHwgJ3ByaW1hcnknKS5yZ2JhKDAuNSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWluOiBudW1iZXI7XG4gIHByaXZhdGUgX21heDogbnVtYmVyO1xuICBwcml2YXRlIF9yYW5nZVNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSBfbGVnZW5kSXRlbXM6IENvbG9yU2NhbGVMZWdlbmRJdGVtW107XG5cbiAgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW47XG4gIH1cbiAgZ2V0IG1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tYXg7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb2xvckFycmF5OiBudW1iZXJbXVtdLCBvcHRpb25zPzogQ29sb3JTY2FsZU9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAvLyByZXNlcnZlZCBsYXN0IGNvbG9ycyBmb3IgdmFsdWUgPiBtYXhcbiAgICBjb25zdCBuYkludGVydmFsQmVmb3JlVXBwZXIgPSAhb3B0aW9ucy51cHBlck1heCA/IGNvbG9yQXJyYXkubGVuZ3RoIDogKGNvbG9yQXJyYXkubGVuZ3RoIC0gMSk7XG4gICAgdGhpcy5fbWluID0gb3B0aW9ucy5taW4gfHwgMDtcbiAgICB0aGlzLl9tYXggPSBvcHRpb25zLm1heCB8fCBuYkludGVydmFsQmVmb3JlVXBwZXI7XG4gICAgdGhpcy5fcmFuZ2VTaXplID0gTWF0aC5yb3VuZCgodGhpcy5fbWF4IC0gdGhpcy5fbWluKSAvIG5iSW50ZXJ2YWxCZWZvcmVVcHBlcik7XG4gICAgdGhpcy5fbGVnZW5kSXRlbXMgPSB0aGlzLmNvbXB1dGVMZWdlbmRJdGVtcyhjb2xvckFycmF5KTtcbiAgfVxuXG4gIGdldCBsZWdlbmQoKTogQ29sb3JTY2FsZUxlZ2VuZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1zOiB0aGlzLl9sZWdlbmRJdGVtc1xuICAgIH07XG4gIH1cblxuICBnZXRWYWx1ZUNvbG9yKHZhbHVlOiBudW1iZXIpOiBDb2xvciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGVnZW5kRm9yVmFsdWUodmFsdWUpLmNvbG9yO1xuICB9XG5cbiAgZ2V0TGVnZW5kRm9yVmFsdWUodmFsdWU6IG51bWJlcik6IENvbG9yU2NhbGVMZWdlbmRJdGVtIHtcbiAgICBjb25zdCBpbmRleCA9IE1hdGguZmxvb3IodmFsdWUgKiAodGhpcy5fbGVnZW5kSXRlbXMubGVuZ3RoIC0gMSkgLyB0aGlzLl9tYXgpO1xuICAgIHJldHVybiB0aGlzLl9sZWdlbmRJdGVtc1tpbmRleF07XG4gIH1cblxuICBnZXRMZWdlbmRBdEluZGV4KGluZGV4OiBudW1iZXIpOiBDb2xvclNjYWxlTGVnZW5kSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuX2xlZ2VuZEl0ZW1zW2luZGV4XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wdXRlTGVnZW5kSXRlbXMoY29sb3JBcnJheTogbnVtYmVyW11bXSk6IENvbG9yU2NhbGVMZWdlbmRJdGVtW10ge1xuICAgIHJldHVybiBjb2xvckFycmF5Lm1hcCgoY29sb3IsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzdGFydCA9IGluZGV4ICogdGhpcy5fcmFuZ2VTaXplO1xuICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLl9yYW5nZVNpemU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogbmV3IENvbG9yKGNvbG9yKSxcbiAgICAgICAgbGFiZWw6IChlbmQgPCB0aGlzLl9tYXgpID8gYCR7c3RhcnQudG9Mb2NhbGVTdHJpbmcoKX0gLSAke2VuZC50b0xvY2FsZVN0cmluZygpfWAgOiBgID49ICR7c3RhcnR9YFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxufVxuXG5cbi8vIEZpbGwgY29sb3JzTWFwXG5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyZ2JBcnJheU1hcClcbiAgLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbG9yc01hcFtrZXldID0gbmV3IENvbG9yKHJnYkFycmF5TWFwW2tleV0sIDEsIGtleSk7XG4gIH0pO1xuXG5cbi8qKlxuICogSW50ZXJuYWwgZnVuY3Rpb24sIHRoYXQgY3JlYXRlIGEgY29sb3JzIHNjYWxlLCB1c2luZyBpdGVyYXRpb25cbiAqXG4gKiBAcGFyYW0gY291bnRcbiAqIEBwYXJhbSBvcGFjaXR5XG4gKiBAcGFyYW0gc3RhcnRDb2xvclxuICogQHBhcmFtIHN0YXJ0U3RhdGVcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGxpbmVhckNvbG9yR3JhZGllbnRXaXRoSW50ZXJtZWRpYXRlKGNvdW50OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPzogQ29sb3JHcmFkaWVudE9wdGlvbnMpOiBudW1iZXJbXVtdIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgLy8gRnJvbSBbMCwxXVxuICBvcHRpb25zLnN0YXJ0Q29sb3IgPSBvcHRpb25zLnN0YXJ0Q29sb3IgfHwgWzI1NSwgMjU1LCAxOTBdOyAvLyBkZWZhdWx0IHN0YXJ0ID0gY3JlbWVcbiAgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA9IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggJiYgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA8IGNvdW50IC0gMSA/IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggOiBjb3VudCAtIDE7XG4gIG9wdGlvbnMuZW5kQ29sb3IgPSBvcHRpb25zLmVuZENvbG9yIHx8IFsyNTUsIDAsIDBdOyAvLyBkZWZhdWx0IG1haW4gPSByZWRcblxuICBpZiAoIW9wdGlvbnMubWFpbkNvbG9yKSB7XG4gICAgcmV0dXJuIGxpbmVhckNvbG9yR3JhZGllbnQoY291bnQsIHtcbiAgICAgIHN0YXJ0Q29sb3I6IG9wdGlvbnMuc3RhcnRDb2xvcixcbiAgICAgIGVuZENvbG9yOiBvcHRpb25zLmVuZENvbG9yXG4gICAgfSk7XG4gIH1cblxuICBlbHNlIHtcbiAgICAvLyBTdGVwIDE6IHN0YXJ0Q29sb3IgLT4gbWFpbkNvbG9yXG4gICAgY29uc3QgcmVzdWx0ID0gbGluZWFyQ29sb3JHcmFkaWVudChvcHRpb25zLm1haW5Db2xvckluZGV4ICsgMSwge1xuICAgICAgc3RhcnRDb2xvcjogb3B0aW9ucy5zdGFydENvbG9yLFxuICAgICAgZW5kQ29sb3I6IG9wdGlvbnMubWFpbkNvbG9yXG4gICAgfSk7XG5cbiAgICAvLyBTdGVwIDI6IG1haW5Db2xvciAtPiBlbmRDb2xvclxuICAgIGlmIChvcHRpb25zLm1haW5Db2xvckluZGV4IDwgY291bnQgLSAxKSB7XG4gICAgICByZXR1cm4gcmVzdWx0LmNvbmNhdChcbiAgICAgICAgbGluZWFyQ29sb3JHcmFkaWVudChjb3VudCAtIG9wdGlvbnMubWFpbkNvbG9ySW5kZXgsIHtcbiAgICAgICAgICBzdGFydENvbG9yOiBvcHRpb25zLm1haW5Db2xvcixcbiAgICAgICAgICBlbmRDb2xvcjogb3B0aW9ucy5lbmRDb2xvclxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbGluZWFyQ29sb3JHcmFkaWVudChjb3VudDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPzogQ29sb3JHcmFkaWVudE9wdGlvbnMpOiBhbnlbXSB7XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgLy8gRnJvbSBbMCwxXVxuICBvcHRpb25zLnN0YXJ0Q29sb3IgPSBvcHRpb25zLnN0YXJ0Q29sb3IgfHwgWzI1NSwgMjU1LCAyNTVdOyAvLyBkZWZhdWx0IHN0YXJ0ID0gd2hpdGVcbiAgb3B0aW9ucy5lbmRDb2xvciA9IG9wdGlvbnMuZW5kQ29sb3IgfHwgWzI1NSwgMCwgMF07IC8vIGRlZmF1bHQgZW5kID0gcmVkXG5cbiAgY29uc3QgcmVzdWx0OiBudW1iZXJbXVtdID0gW107XG4gIGNvbnN0IGNvbG9yID0gb3B0aW9ucy5zdGFydENvbG9yLnNsaWNlKCk7IC8vIGNvcHkgdGhlIHN0YXJ0IGNvbG9yXG4gIGNvbnN0IGRlbHRhID0gW1xuICAgIE1hdGgucm91bmQoKG9wdGlvbnMuZW5kQ29sb3JbMF0gLSBvcHRpb25zLnN0YXJ0Q29sb3JbMF0pIC8gY291bnQpLFxuICAgIE1hdGgucm91bmQoKG9wdGlvbnMuZW5kQ29sb3JbMV0gLSBvcHRpb25zLnN0YXJ0Q29sb3JbMV0pIC8gY291bnQpLFxuICAgIE1hdGgucm91bmQoKG9wdGlvbnMuZW5kQ29sb3JbMl0gLSBvcHRpb25zLnN0YXJ0Q29sb3JbMl0pIC8gY291bnQpXG4gIF07XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudCAtIDE7IGkrKykge1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgMzsgaisrKSB7XG4gICAgICBjb2xvcltqXSArPSBkZWx0YVtqXTtcbiAgICB9XG4gICAgcmVzdWx0LnB1c2goY29sb3Iuc2xpY2UoKSk7XG4gIH1cblxuICAvLyBGb3JjZSBsYXN0IGNvbG9yID0gZW5kIGNvbG9yXG4gIHJlc3VsdC5wdXNoKG9wdGlvbnMuZW5kQ29sb3Iuc2xpY2UoKSk7XG5cbiAgLy8gT3V0cHV0IGFzIGFycmF5XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
|
@@ -49,9 +49,9 @@ export class ComponentDirtyGuard {
|
|
|
49
49
|
return false;
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
ComponentDirtyGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
53
|
-
ComponentDirtyGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
52
|
+
ComponentDirtyGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ComponentDirtyGuard, deps: [{ token: i1.TranslateService }, { token: i2.AlertController }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
53
|
+
ComponentDirtyGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ComponentDirtyGuard });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ComponentDirtyGuard, decorators: [{
|
|
55
55
|
type: Injectable
|
|
56
56
|
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.AlertController }]; } });
|
|
57
57
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWRpcnR5Lmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZ3VhcmQvY29tcG9uZW50LWRpcnR5Lmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJekMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7OztBQVVqQyxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQ1ksU0FBMkIsRUFDM0IsU0FBMEI7UUFEMUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFKOUIsVUFBSyxHQUFHLEtBQUssQ0FBQztJQU10QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFtQixFQUFFLFlBQW9DLEVBQUUsWUFBaUMsRUFBRSxTQUErQjtRQUcvSSxNQUFNLEtBQUssR0FBRyxTQUFTLEVBQUUsS0FBSyxDQUFDO1FBQy9CLE1BQU0sS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDL0IsSUFBSSxHQUFHLEdBQUc7WUFDUixTQUFTLEVBQUUsQ0FBQyxLQUFLO1lBQ2pCLElBQUksRUFBRSxLQUFLO1NBQ1osQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0RBQWdELEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3pGO1FBRUQsSUFBSSxLQUFLLEVBQUU7WUFDVCxtQkFBbUI7WUFDbkIsR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7U0FDakY7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFekUsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDWixJQUFJLElBQUksQ0FBQyxLQUFLO29CQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1YsSUFBSSxJQUFJLENBQUMsS0FBSzt3QkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7b0JBQzlFLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxJQUFJLENBQUMsS0FBSztvQkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0JBQ3pELElBQUksS0FBSztvQkFDUCxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDdEI7WUFFRCxtQkFBbUI7WUFDbkIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELG9CQUFvQjtRQUNwQixPQUFPLEtBQUssQ0FBQztJQUVmLENBQUM7O2dIQXBEVSxtQkFBbUI7b0hBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuRGVhY3RpdmF0ZSwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0FsZXJ0Q29udHJvbGxlcn0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtBbGVydHN9IGZyb20gJy4uL2FsZXJ0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuTGVhdmUge1xuICBkaXJ0eTogYm9vbGVhbjtcbiAgdmFsaWQ6IGJvb2xlYW47XG4gIHNhdmUoZXZlbnQ/OiBFdmVudCwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8Ym9vbGVhbj47XG4gIGNhbmNlbChldmVudD86IEV2ZW50KTogUHJvbWlzZTx2b2lkPjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudERpcnR5R3VhcmQgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPENhbkxlYXZlPiB7XG5cbiAgcHJpdmF0ZSBkZWJ1ZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFsZXJ0Q3RybDogQWxlcnRDb250cm9sbGVyLFxuICApIHtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBDYW5MZWF2ZSwgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOlxuICAgIFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHtcblxuICAgIGNvbnN0IGRpcnR5ID0gY29tcG9uZW50Py5kaXJ0eTtcbiAgICBjb25zdCB2YWxpZCA9IGNvbXBvbmVudD8udmFsaWQ7XG4gICAgbGV0IGNhbiA9IHtcbiAgICAgIGNvbmZpcm1lZDogIWRpcnR5LFxuICAgICAgc2F2ZTogZmFsc2UsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBbZGlydHktZ3VhcmRdIGNhbkRlYWN0aXZhdGUgY29tcG9uZW50IGRpcnR5OiAke2RpcnR5fSwgdmFsaWQ6ICR7dmFsaWR9YCk7XG4gICAgfVxuXG4gICAgaWYgKGRpcnR5KSB7XG4gICAgICAvLyBBc2sgY29uZmlybWF0aW9uXG4gICAgICBjYW4gPSBhd2FpdCBBbGVydHMuYXNrU2F2ZUJlZm9yZUFjdGlvbih0aGlzLmFsZXJ0Q3RybCwgdGhpcy50cmFuc2xhdGUsIHt2YWxpZH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZGlydHktZ3VhcmRdIGNvbmZpcm06ICR7Y2FuLmNvbmZpcm1lZH1gKTtcblxuICAgIGlmIChjYW4uY29uZmlybWVkKSB7XG4gICAgICBpZiAoY2FuLnNhdmUpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoYFtkaXJ0eS1ndWFyZF0gZG8gc2F2ZWApO1xuICAgICAgICBjb25zdCBzYXZlZCA9IGF3YWl0IGNvbXBvbmVudC5zYXZlKCk7XG4gICAgICAgIGlmICghc2F2ZWQpIHtcbiAgICAgICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2RpcnR5LWd1YXJkXSBzYXZlIGZhaWxlZCwgY2FuY2VsIGRlYWN0aXZhdGVgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZGlydHktZ3VhcmRdIGRvIGNhbmNlbGApO1xuICAgICAgICBpZiAoZGlydHkpXG4gICAgICAgICAgY29tcG9uZW50LmNhbmNlbCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBBbGxvdyBkZWFjdGl2YXRlXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBDYW5jZWwgZGVhY3RpdmF0ZVxuICAgIHJldHVybiBmYWxzZTtcblxuICB9XG5cblxufVxuIl19
|
|
@@ -36,9 +36,9 @@ export class AppHelpModal {
|
|
|
36
36
|
this.cd.markForCheck();
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
AppHelpModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
40
|
-
AppHelpModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
39
|
+
AppHelpModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: AppHelpModal, deps: [{ token: i0.Injector }, { token: i1.ModalController }, { token: i2.PlatformService }, { token: i3.LocalSettingsService }, { token: i4.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
AppHelpModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: AppHelpModal, selector: "app-help-modal", inputs: { title: "title", showError: "showError", markdownContent: "markdownContent", markdownUrl: "markdownUrl" }, ngImport: i0, template: "<app-modal-toolbar color=\"light\"\n [title]=\"title|translate\"\n (cancel)=\"close($event)\"\n [showSpinner]=\"loading\">\n</app-modal-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <!-- error -->\n <ion-item *ngIf=\"error && showError\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <markdown *ngIf=\"markdownContent; else useDocUrl\"\n [data]=\"markdownContent\"\n (ready)=\"markAsLoaded()\"\n emoji>\n </markdown>\n\n <ng-template #useDocUrl>\n <markdown *ngIf=\"markdownUrl\"\n [src]=\"markdownUrl\"\n (load)=\"markAsLoaded()\"\n (error)=\"onLoadError($event)\"\n emoji></markdown>\n </ng-template>\n\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"close()\">{{'COMMON.BTN_CLOSE'|translate}}</ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n\n\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i6.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "component", type: i7.ModalToolbarComponent, selector: "app-modal-toolbar", inputs: ["modalName", "title", "color", "showSpinner", "canValidate", "validateIcon"], outputs: ["cancel", "validate"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: AppHelpModal, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
43
|
args: [{ selector: 'app-help-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<app-modal-toolbar color=\"light\"\n [title]=\"title|translate\"\n (cancel)=\"close($event)\"\n [showSpinner]=\"loading\">\n</app-modal-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <!-- error -->\n <ion-item *ngIf=\"error && showError\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error|translate\"></ion-label>\n </ion-item>\n\n <markdown *ngIf=\"markdownContent; else useDocUrl\"\n [data]=\"markdownContent\"\n (ready)=\"markAsLoaded()\"\n emoji>\n </markdown>\n\n <ng-template #useDocUrl>\n <markdown *ngIf=\"markdownUrl\"\n [src]=\"markdownUrl\"\n (load)=\"markAsLoaded()\"\n (error)=\"onLoadError($event)\"\n emoji></markdown>\n </ng-template>\n\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"close()\">{{'COMMON.BTN_CLOSE'|translate}}</ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n\n\n" }]
|
|
44
44
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.ModalController }, { type: i2.PlatformService }, { type: i3.LocalSettingsService }, { type: i4.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { title: [{
|
|
@@ -11,9 +11,9 @@ export class HotkeysDialogComponent {
|
|
|
11
11
|
ngOnInit() {
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
HotkeysDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
15
|
-
HotkeysDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
14
|
+
HotkeysDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: HotkeysDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
HotkeysDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: HotkeysDialogComponent, selector: "ng-component", ngImport: i0, template: "<table>\n <tbody>\n <tr *ngFor=\"let keys of hotkeys\">\n <td>{{ keys[1] | translate }}</td>\n\n <td class=\"text-right\">\n <kbd>{{ keys[0] }}</kbd>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host table{border-collapse:collapse;width:100%;margin-bottom:1rem;color:#212529}:host th{font-weight:500;text-align:left;vertical-align:bottom;padding:.75rem;border-top:1px solid #dee2e6;border-bottom:2px solid #dee2e6}:host td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6;padding-left:0}:host kbd{margin-right:6px;background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px #c6cbd1;color:#444d56;display:inline-block;font-size:12px;line-height:10px;padding:3px 5px;vertical-align:middle}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: HotkeysDialogComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
18
18
|
args: [{ template: "<table>\n <tbody>\n <tr *ngFor=\"let keys of hotkeys\">\n <td>{{ keys[1] | translate }}</td>\n\n <td class=\"text-right\">\n <kbd>{{ keys[0] }}</kbd>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host table{border-collapse:collapse;width:100%;margin-bottom:1rem;color:#212529}:host th{font-weight:500;text-align:left;vertical-align:bottom;padding:.75rem;border-top:1px solid #dee2e6;border-bottom:2px solid #dee2e6}:host td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6;padding-left:0}:host kbd{margin-right:6px;background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px #c6cbd1;color:#444d56;display:inline-block;font-size:12px;line-height:10px;padding:3px 5px;vertical-align:middle}\n"] }]
|
|
19
19
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -70,9 +70,9 @@ export class Hotkeys {
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
Hotkeys.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
74
|
-
Hotkeys.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
73
|
+
Hotkeys.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: Hotkeys, deps: [{ token: i1.EventManager }, { token: i2.MatDialog }, { token: DOCUMENT }, { token: i3.ModalController }, { token: i3.PopoverController }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
74
|
+
Hotkeys.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: Hotkeys, providedIn: 'root' });
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: Hotkeys, decorators: [{
|
|
76
76
|
type: Injectable,
|
|
77
77
|
args: [{
|
|
78
78
|
providedIn: 'root'
|
|
@@ -9,17 +9,17 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
import * as i1 from "@ngx-translate/core";
|
|
10
10
|
export class SharedHotkeysModule {
|
|
11
11
|
}
|
|
12
|
-
SharedHotkeysModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
13
|
-
SharedHotkeysModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
12
|
+
SharedHotkeysModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: SharedHotkeysModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
SharedHotkeysModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: SharedHotkeysModule, declarations: [HotkeysDialogComponent], imports: [CommonModule,
|
|
14
14
|
MatCommonModule,
|
|
15
15
|
MatDialogModule, i1.TranslateModule], exports: [HotkeysDialogComponent] });
|
|
16
|
-
SharedHotkeysModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
16
|
+
SharedHotkeysModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: SharedHotkeysModule, providers: [
|
|
17
17
|
Hotkeys
|
|
18
18
|
], imports: [CommonModule,
|
|
19
19
|
MatCommonModule,
|
|
20
20
|
MatDialogModule,
|
|
21
21
|
TranslateModule.forChild()] });
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: SharedHotkeysModule, decorators: [{
|
|
23
23
|
type: NgModule,
|
|
24
24
|
args: [{
|
|
25
25
|
imports: [
|
|
@@ -243,9 +243,9 @@ export class AppImageGalleryComponent {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
|
-
AppImageGalleryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
247
|
-
AppImageGalleryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: AppImageGalleryComponent, selector: "app-image-gallery", inputs: { debug: "debug", readOnly: "readOnly", disabled: "disabled", showToolbar: "showToolbar", mobile: "mobile", mode: "mode", confirmBeforeDelete: "confirmBeforeDelete", dataSource: "dataSource" }, viewQueries: [{ propertyName: "slides", first: true, predicate: ["slides"], descendants: true }, { propertyName: "zoomModal", first: true, predicate: ["zoomModal"], descendants: true }], ngImport: i0, template: "\n\n<ion-toolbar color=\"light\" *ngIf=\"showToolbar\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"!readOnly && !mobile && enabled\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"add()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <ion-buttons slot=\"end\">\n <!-- Toggle view mode -->\n <ion-segment (ionChange)=\"toggleViewMode($event)\" color=\"accent\"\n [value]=\"_colSize\">\n <ion-segment-button value=\"mosaic\">\n <mat-icon>view_module</mat-icon>\n </ion-segment-button>\n <ion-segment-button value=\"list\">\n <mat-icon>view_list</mat-icon>\n </ion-segment-button>\n </ion-segment>\n </ion-buttons>\n</ion-toolbar>\n\n<ion-content>\n <div *ngIf=\"mobile && zoomActive\" class=\"backdrop\" [style.opacity]=\"zoomScale\"></div>\n\n <ion-grid>\n <ion-row>\n <ion-col *ngFor=\"let row of rows; index as index\" [size]=\"_colSize\">\n <ion-card #card class=\"image-card\" (click)=\"clickRow(row, index)\"\n tappable\n @fadeInAnimation>\n <ng-container *ngIf=\"row|propertyGet: 'currentData'; let image\">\n <ion-slides #slides class=\"image-slide\" [options]=\"sliderOpts\" >\n <ion-slide>\n <div class=\"swiper-zoom-container\"\n (touchstart)=\"touchStart(card)\"\n (touchend)=\"touchEnd(card)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n\n <!-- title -->\n <ion-item lines=\"none\" color=\"light\" *ngIf=\"image.title || (!mobile && !readOnly)\">\n <ion-label *ngIf=\"image.title\">{{image.title}}</ion-label>\n <button mat-icon-button *ngIf=\"!readOnly\" slot=\"end\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n [disabled]=\"disabled\"\n (click)=\"delete($event, row)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ion-item>\n </ng-container>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n</ion-content>\n\n<!-- FAB button: add -->\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\"\n *ngIf=\"!readOnly && mobile\"\n [class.cdk-visually-hidden]=\"disabled\"\n @fadeInOutAnimation>\n\n <ion-fab-button color=\"tertiary\" (click)=\"add($event)\">\n <ion-icon name=\"camera\"></ion-icon>\n <ion-icon name=\"add\" class=\"icon-secondary\" style=\"left: 33px; top: 9px; font-size: 20px;\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n\n<!-- Zoom modal -->\n<ion-modal #zoomModal class=\"stack-modal zoom-modal\">\n <ng-template>\n <ion-content>\n <!-- zoom button -->\n <div class=\"top-buttons\" *ngIf=\"!mobile\">\n <ion-button (click)=\"zoom(modalSlides, true)\" color=\"light\">\n <ion-icon slot=\"icon-only\" name=\"add\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"zoom(modalSlides, false)\" color=\"light\">\n <ion-icon name=\"remove\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n <!-- navigation side buttons next/back -->\n <ng-container *ngIf=\"!mobile && (rows|isArrayLength:{greaterThan: 1})\">\n <div class=\"side-buttons prev\"\n (click)=\"slidePrev(modalSlides)\">\n <ion-icon name=\"chevron-back\"></ion-icon>\n </div>\n <div class=\"side-buttons next\"\n (click)=\"slideNext(modalSlides)\">\n <ion-icon name=\"chevron-forward\"></ion-icon>\n </div>\n </ng-container>\n <ion-slides #modalSlides [options]=\"modalSliderOpts\" >\n <ion-slide *ngFor=\"let row of rows; last as last\">\n <div class=\"swiper-zoom-container\" *ngIf=\"row|propertyGet: 'currentData'; let image\"\n (ngInit)=\"last && initModalSlides(modalSlides)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n </ion-content>\n\n <ion-footer>\n <ion-toolbar color=\"light\">\n <ion-row>\n <ion-col size=\"4\" class=\"ion-text-start\">\n <ion-button (click)=\"deleteFromModal($event, modalSlides)\" fill=\"clear\" color=\"danger\">\n <mat-icon slot=\"start\">delete</mat-icon>\n {{'COMMON.BTN_DELETE'|translate}}\n </ion-button>\n </ion-col>\n <ion-col size=\"4\">\n </ion-col>\n <ion-col size=\"4\" class=\"ion-text-end\">\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\" fill=\"clear\" *ngIf=\"mobile; else desktop\">\n <ion-icon slot=\"start\" name=\"close\"></ion-icon>\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n <ng-template #desktop>\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\">\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n", styles: ["mat-toolbar,.mat-toolbar-single-row{padding:0;height:42px}.image-slide,.image-card{overflow:visible}.image-card{z-index:9}.backdrop{height:100vh;width:100vw;background:black;position:absolute;z-index:10}.zoom-modal{-webkit-user-select:none;user-select:none}.zoom-modal .top-buttons{z-index:14;position:absolute;display:inline-grid;right:var(--ion-padding-start, 8px);top:var(--ion-padding-start, 8px)}.zoom-modal .side-buttons{--side-buttons-width: 120px;--side-buttons-margin: calc(var(--side-buttons-width) / 3);z-index:13;position:absolute;top:0;bottom:0;width:var(--side-buttons-width)}.zoom-modal .side-buttons ion-icon{top:50%;color:#fff;font-size:2.5rem;position:absolute;opacity:0;transition-duration:.15s;transition-timing-function:ease-in}.zoom-modal .side-buttons:hover{cursor:pointer}.zoom-modal .side-buttons:hover ion-icon{opacity:1}.zoom-modal .side-buttons.prev{left:0}.zoom-modal .side-buttons.prev ion-icon{left:var(--side-buttons-margin)}.zoom-modal .side-buttons.next{right:0}.zoom-modal .side-buttons.next ion-icon{right:var(--side-buttons-margin)}.zoom-modal ion-slides{height:100%;background:black}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonFab, selector: "ion-fab", inputs: ["activated", "edge", "horizontal", "vertical"] }, { kind: "component", type: i2.IonFabButton, selector: "ion-fab-button", inputs: ["activated", "closeIcon", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "show", "size", "target", "translucent", "type"] }, { kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i2.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "component", type: i2.IonSlide, selector: "ion-slide" }, { kind: "component", type: i2.IonSlides, selector: "ion-slides", inputs: ["mode", "options", "pager", "scrollbar"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal", inputs: ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "event", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "swipeToClose", "translucent", "trigger"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.NgInitDirective, selector: "[ngInit]", outputs: ["ngInit"] }, { kind: "pipe", type: i8.PropertyGetPipe, name: "propertyGet" }, { kind: "pipe", type: i9.ArrayLengthPipe, name: "isArrayLength" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [fadeInAnimation, fadeInOutAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
246
|
+
AppImageGalleryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: AppImageGalleryComponent, deps: [{ token: i1.ImageService }, { token: i2.Platform }, { token: i2.AlertController }, { token: i3.TranslateService }, { token: i0.ChangeDetectorRef }, { token: ENVIRONMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
247
|
+
AppImageGalleryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: AppImageGalleryComponent, selector: "app-image-gallery", inputs: { debug: "debug", readOnly: "readOnly", disabled: "disabled", showToolbar: "showToolbar", mobile: "mobile", mode: "mode", confirmBeforeDelete: "confirmBeforeDelete", dataSource: "dataSource" }, viewQueries: [{ propertyName: "slides", first: true, predicate: ["slides"], descendants: true }, { propertyName: "zoomModal", first: true, predicate: ["zoomModal"], descendants: true }], ngImport: i0, template: "\n\n<ion-toolbar color=\"light\" *ngIf=\"showToolbar\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"!readOnly && !mobile && enabled\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"add()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <ion-buttons slot=\"end\">\n <!-- Toggle view mode -->\n <ion-segment (ionChange)=\"toggleViewMode($event)\" color=\"accent\"\n [value]=\"_colSize\">\n <ion-segment-button value=\"mosaic\">\n <mat-icon>view_module</mat-icon>\n </ion-segment-button>\n <ion-segment-button value=\"list\">\n <mat-icon>view_list</mat-icon>\n </ion-segment-button>\n </ion-segment>\n </ion-buttons>\n</ion-toolbar>\n\n<ion-content>\n <div *ngIf=\"mobile && zoomActive\" class=\"backdrop\" [style.opacity]=\"zoomScale\"></div>\n\n <ion-grid>\n <ion-row>\n <ion-col *ngFor=\"let row of rows; index as index\" [size]=\"_colSize\">\n <ion-card #card class=\"image-card\" (click)=\"clickRow(row, index)\"\n tappable\n @fadeInAnimation>\n <ng-container *ngIf=\"row|propertyGet: 'currentData'; let image\">\n <ion-slides #slides class=\"image-slide\" [options]=\"sliderOpts\" >\n <ion-slide>\n <div class=\"swiper-zoom-container\"\n (touchstart)=\"touchStart(card)\"\n (touchend)=\"touchEnd(card)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n\n <!-- title -->\n <ion-item lines=\"none\" color=\"light\" *ngIf=\"image.title || (!mobile && !readOnly)\">\n <ion-label *ngIf=\"image.title\">{{image.title}}</ion-label>\n <button mat-icon-button *ngIf=\"!readOnly\" slot=\"end\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n [disabled]=\"disabled\"\n (click)=\"delete($event, row)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ion-item>\n </ng-container>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n</ion-content>\n\n<!-- FAB button: add -->\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\"\n *ngIf=\"!readOnly && mobile\"\n [class.cdk-visually-hidden]=\"disabled\"\n @fadeInOutAnimation>\n\n <ion-fab-button color=\"tertiary\" (click)=\"add($event)\">\n <ion-icon name=\"camera\"></ion-icon>\n <ion-icon name=\"add\" class=\"icon-secondary\" style=\"left: 33px; top: 9px; font-size: 20px;\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n\n<!-- Zoom modal -->\n<ion-modal #zoomModal class=\"stack-modal zoom-modal\">\n <ng-template>\n <ion-content>\n <!-- zoom button -->\n <div class=\"top-buttons\" *ngIf=\"!mobile\">\n <ion-button (click)=\"zoom(modalSlides, true)\" color=\"light\">\n <ion-icon slot=\"icon-only\" name=\"add\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"zoom(modalSlides, false)\" color=\"light\">\n <ion-icon name=\"remove\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n <!-- navigation side buttons next/back -->\n <ng-container *ngIf=\"!mobile && (rows|isArrayLength:{greaterThan: 1})\">\n <div class=\"side-buttons prev\"\n (click)=\"slidePrev(modalSlides)\">\n <ion-icon name=\"chevron-back\"></ion-icon>\n </div>\n <div class=\"side-buttons next\"\n (click)=\"slideNext(modalSlides)\">\n <ion-icon name=\"chevron-forward\"></ion-icon>\n </div>\n </ng-container>\n <ion-slides #modalSlides [options]=\"modalSliderOpts\" >\n <ion-slide *ngFor=\"let row of rows; last as last\">\n <div class=\"swiper-zoom-container\" *ngIf=\"row|propertyGet: 'currentData'; let image\"\n (ngInit)=\"last && initModalSlides(modalSlides)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n </ion-content>\n\n <ion-footer>\n <ion-toolbar color=\"light\">\n <ion-row>\n <ion-col size=\"4\" class=\"ion-text-start\">\n <ion-button (click)=\"deleteFromModal($event, modalSlides)\" fill=\"clear\" color=\"danger\">\n <mat-icon slot=\"start\">delete</mat-icon>\n {{'COMMON.BTN_DELETE'|translate}}\n </ion-button>\n </ion-col>\n <ion-col size=\"4\">\n </ion-col>\n <ion-col size=\"4\" class=\"ion-text-end\">\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\" fill=\"clear\" *ngIf=\"mobile; else desktop\">\n <ion-icon slot=\"start\" name=\"close\"></ion-icon>\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n <ng-template #desktop>\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\">\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n", styles: ["mat-toolbar,.mat-toolbar-single-row{padding:0;height:42px}.image-slide,.image-card{overflow:visible}.image-card{z-index:9}.backdrop{height:100vh;width:100vw;background:black;position:absolute;z-index:10}.zoom-modal{-webkit-user-select:none;user-select:none}.zoom-modal .top-buttons{z-index:14;position:absolute;display:inline-grid;right:var(--ion-padding-start, 8px);top:var(--ion-padding-start, 8px)}.zoom-modal .side-buttons{--side-buttons-width: 120px;--side-buttons-margin: calc(var(--side-buttons-width) / 3);z-index:13;position:absolute;top:0;bottom:0;width:var(--side-buttons-width)}.zoom-modal .side-buttons ion-icon{top:50%;color:#fff;font-size:2.5rem;position:absolute;opacity:0;transition-duration:.15s;transition-timing-function:ease-in}.zoom-modal .side-buttons:hover{cursor:pointer}.zoom-modal .side-buttons:hover ion-icon{opacity:1}.zoom-modal .side-buttons.prev{left:0}.zoom-modal .side-buttons.prev ion-icon{left:var(--side-buttons-margin)}.zoom-modal .side-buttons.next{right:0}.zoom-modal .side-buttons.next ion-icon{right:var(--side-buttons-margin)}.zoom-modal ion-slides{height:100%;background:black}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonFab, selector: "ion-fab", inputs: ["activated", "edge", "horizontal", "vertical"] }, { kind: "component", type: i2.IonFabButton, selector: "ion-fab-button", inputs: ["activated", "closeIcon", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "show", "size", "target", "translucent", "type"] }, { kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: i2.IonSegmentButton, selector: "ion-segment-button", inputs: ["disabled", "layout", "mode", "type", "value"] }, { kind: "component", type: i2.IonSlide, selector: "ion-slide" }, { kind: "component", type: i2.IonSlides, selector: "ion-slides", inputs: ["mode", "options", "pager", "scrollbar"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i2.IonModal, selector: "ion-modal", inputs: ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "event", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "swipeToClose", "translucent", "trigger"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i7.NgInitDirective, selector: "[ngInit]", outputs: ["ngInit"] }, { kind: "pipe", type: i8.PropertyGetPipe, name: "propertyGet" }, { kind: "pipe", type: i9.ArrayLengthPipe, name: "isArrayLength" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [fadeInAnimation, fadeInOutAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: AppImageGalleryComponent, decorators: [{
|
|
249
249
|
type: Component,
|
|
250
250
|
args: [{ selector: 'app-image-gallery', animations: [fadeInAnimation, fadeInOutAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "\n\n<ion-toolbar color=\"light\" *ngIf=\"showToolbar\">\n <!-- Add -->\n <button mat-icon-button\n *ngIf=\"!readOnly && !mobile && enabled\"\n [title]=\"'COMMON.BTN_ADD'|translate\"\n (click)=\"add()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <ion-buttons slot=\"end\">\n <!-- Toggle view mode -->\n <ion-segment (ionChange)=\"toggleViewMode($event)\" color=\"accent\"\n [value]=\"_colSize\">\n <ion-segment-button value=\"mosaic\">\n <mat-icon>view_module</mat-icon>\n </ion-segment-button>\n <ion-segment-button value=\"list\">\n <mat-icon>view_list</mat-icon>\n </ion-segment-button>\n </ion-segment>\n </ion-buttons>\n</ion-toolbar>\n\n<ion-content>\n <div *ngIf=\"mobile && zoomActive\" class=\"backdrop\" [style.opacity]=\"zoomScale\"></div>\n\n <ion-grid>\n <ion-row>\n <ion-col *ngFor=\"let row of rows; index as index\" [size]=\"_colSize\">\n <ion-card #card class=\"image-card\" (click)=\"clickRow(row, index)\"\n tappable\n @fadeInAnimation>\n <ng-container *ngIf=\"row|propertyGet: 'currentData'; let image\">\n <ion-slides #slides class=\"image-slide\" [options]=\"sliderOpts\" >\n <ion-slide>\n <div class=\"swiper-zoom-container\"\n (touchstart)=\"touchStart(card)\"\n (touchend)=\"touchEnd(card)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n\n <!-- title -->\n <ion-item lines=\"none\" color=\"light\" *ngIf=\"image.title || (!mobile && !readOnly)\">\n <ion-label *ngIf=\"image.title\">{{image.title}}</ion-label>\n <button mat-icon-button *ngIf=\"!readOnly\" slot=\"end\"\n [title]=\"'COMMON.BTN_DELETE'|translate\"\n [disabled]=\"disabled\"\n (click)=\"delete($event, row)\">\n <mat-icon>delete</mat-icon>\n </button>\n </ion-item>\n </ng-container>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n</ion-content>\n\n<!-- FAB button: add -->\n<ion-fab slot=\"fixed\" vertical=\"bottom\" horizontal=\"end\"\n *ngIf=\"!readOnly && mobile\"\n [class.cdk-visually-hidden]=\"disabled\"\n @fadeInOutAnimation>\n\n <ion-fab-button color=\"tertiary\" (click)=\"add($event)\">\n <ion-icon name=\"camera\"></ion-icon>\n <ion-icon name=\"add\" class=\"icon-secondary\" style=\"left: 33px; top: 9px; font-size: 20px;\"></ion-icon>\n </ion-fab-button>\n</ion-fab>\n\n<!-- Zoom modal -->\n<ion-modal #zoomModal class=\"stack-modal zoom-modal\">\n <ng-template>\n <ion-content>\n <!-- zoom button -->\n <div class=\"top-buttons\" *ngIf=\"!mobile\">\n <ion-button (click)=\"zoom(modalSlides, true)\" color=\"light\">\n <ion-icon slot=\"icon-only\" name=\"add\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"zoom(modalSlides, false)\" color=\"light\">\n <ion-icon name=\"remove\" slot=\"icon-only\"></ion-icon>\n </ion-button>\n </div>\n <!-- navigation side buttons next/back -->\n <ng-container *ngIf=\"!mobile && (rows|isArrayLength:{greaterThan: 1})\">\n <div class=\"side-buttons prev\"\n (click)=\"slidePrev(modalSlides)\">\n <ion-icon name=\"chevron-back\"></ion-icon>\n </div>\n <div class=\"side-buttons next\"\n (click)=\"slideNext(modalSlides)\">\n <ion-icon name=\"chevron-forward\"></ion-icon>\n </div>\n </ng-container>\n <ion-slides #modalSlides [options]=\"modalSliderOpts\" >\n <ion-slide *ngFor=\"let row of rows; last as last\">\n <div class=\"swiper-zoom-container\" *ngIf=\"row|propertyGet: 'currentData'; let image\"\n (ngInit)=\"last && initModalSlides(modalSlides)\">\n <img [src]=\"image.url||image.dataUrl\">\n </div>\n </ion-slide>\n </ion-slides>\n </ion-content>\n\n <ion-footer>\n <ion-toolbar color=\"light\">\n <ion-row>\n <ion-col size=\"4\" class=\"ion-text-start\">\n <ion-button (click)=\"deleteFromModal($event, modalSlides)\" fill=\"clear\" color=\"danger\">\n <mat-icon slot=\"start\">delete</mat-icon>\n {{'COMMON.BTN_DELETE'|translate}}\n </ion-button>\n </ion-col>\n <ion-col size=\"4\">\n </ion-col>\n <ion-col size=\"4\" class=\"ion-text-end\">\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\" fill=\"clear\" *ngIf=\"mobile; else desktop\">\n <ion-icon slot=\"start\" name=\"close\"></ion-icon>\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n <ng-template #desktop>\n <ion-button (click)=\"zoomModal.dismiss()\" color=\"tertiary\">\n {{'COMMON.BTN_CLOSE'|translate}}\n </ion-button>\n </ng-template>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n", styles: ["mat-toolbar,.mat-toolbar-single-row{padding:0;height:42px}.image-slide,.image-card{overflow:visible}.image-card{z-index:9}.backdrop{height:100vh;width:100vw;background:black;position:absolute;z-index:10}.zoom-modal{-webkit-user-select:none;user-select:none}.zoom-modal .top-buttons{z-index:14;position:absolute;display:inline-grid;right:var(--ion-padding-start, 8px);top:var(--ion-padding-start, 8px)}.zoom-modal .side-buttons{--side-buttons-width: 120px;--side-buttons-margin: calc(var(--side-buttons-width) / 3);z-index:13;position:absolute;top:0;bottom:0;width:var(--side-buttons-width)}.zoom-modal .side-buttons ion-icon{top:50%;color:#fff;font-size:2.5rem;position:absolute;opacity:0;transition-duration:.15s;transition-timing-function:ease-in}.zoom-modal .side-buttons:hover{cursor:pointer}.zoom-modal .side-buttons:hover ion-icon{opacity:1}.zoom-modal .side-buttons.prev{left:0}.zoom-modal .side-buttons.prev ion-icon{left:var(--side-buttons-margin)}.zoom-modal .side-buttons.next{right:0}.zoom-modal .side-buttons.next ion-icon{right:var(--side-buttons-margin)}.zoom-modal ion-slides{height:100%;background:black}\n"] }]
|
|
251
251
|
}], ctorParameters: function () { return [{ type: i1.ImageService }, { type: i2.Platform }, { type: i2.AlertController }, { type: i3.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i10.Environment, decorators: [{
|
|
@@ -9,8 +9,8 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
import * as i1 from "@ngx-translate/core";
|
|
10
10
|
export class ImageGalleryModule {
|
|
11
11
|
}
|
|
12
|
-
ImageGalleryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
13
|
-
ImageGalleryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
12
|
+
ImageGalleryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
ImageGalleryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryModule, declarations: [
|
|
14
14
|
// Components
|
|
15
15
|
AppImageGalleryComponent], imports: [CommonModule,
|
|
16
16
|
IonicModule,
|
|
@@ -18,12 +18,12 @@ ImageGalleryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
|
|
|
18
18
|
SharedPipesModule, i1.TranslateModule], exports: [
|
|
19
19
|
// Components
|
|
20
20
|
AppImageGalleryComponent] });
|
|
21
|
-
ImageGalleryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
21
|
+
ImageGalleryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryModule, imports: [CommonModule,
|
|
22
22
|
IonicModule,
|
|
23
23
|
SharedMaterialModule,
|
|
24
24
|
SharedPipesModule,
|
|
25
25
|
TranslateModule.forChild()] });
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryModule, decorators: [{
|
|
27
27
|
type: NgModule,
|
|
28
28
|
args: [{
|
|
29
29
|
imports: [
|
|
@@ -81,9 +81,9 @@ export class ImageAttachmentService extends StartableService {
|
|
|
81
81
|
return ImageAttachmentFilter.fromObject(filter);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
ImageAttachmentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
85
|
-
ImageAttachmentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
84
|
+
ImageAttachmentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageAttachmentService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
85
|
+
ImageAttachmentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageAttachmentService });
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageAttachmentService, decorators: [{
|
|
87
87
|
type: Injectable
|
|
88
88
|
}], ctorParameters: function () { return [{ type: i1.Platform }]; } });
|
|
89
89
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5zZXJ2aWNlLnRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9pbWFnZS9nYWxsZXJ5L3Rlc3RpbmcvZ2FsbGVyeS5zZXJ2aWNlLnRlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFHM0UsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLFdBQVcsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUU5RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOENBQThDLENBQUM7OztBQUcxRSxXQUFXO0FBRVgsSUFBYSxlQUFlLEdBQTVCLE1BQWEsZUFBZ0IsU0FBUSxNQUF1QjtJQUE1RDs7UUFJRSxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBQ3ZCLFFBQUcsR0FBVyxJQUFJLENBQUM7UUFDbkIsVUFBSyxHQUFXLElBQUksQ0FBQztJQVF2QixDQUFDO0lBTkMsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FB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LEdBQUcsUUFBUTtTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQTJCLEVBQUUsSUFBVTtRQUNyRCxNQUFNLFVBQVUsR0FBRyxDQUFDLFFBQVEsSUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU8scUJBQXFCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7O21IQXpEVSxzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtTb3J0RGlyZWN0aW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N0YXJ0YWJsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0YXJ0YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7RW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLCBJRW50aXRpZXNTZXJ2aWNlLCBMb2FkUmVzdWx0fSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge2lzTmlsLCBpc05vdE5pbH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7RW50aXR5LCBFbnRpdHlVdGlsc30gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtFbnRpdHlDbGFzc30gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQge0ltYWdlfSBmcm9tICcuLi8uLi9pbWFnZS5tb2RlbCc7XG5pbXBvcnQge0VudGl0eUZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9maWx0ZXIubW9kZWwnO1xuXG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ0ltYWdlQXR0YWNobWVudFZPJyB9KVxuZXhwb3J0IGNsYXNzIEltYWdlQXR0YWNobWVudCBleHRlbmRzIEVudGl0eTxJbWFnZUF0dGFjaG1lbnQ+IGltcGxlbWVudHMgSW1hZ2Uge1xuXG4gIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpID0+IEltYWdlQXR0YWNobWVudDtcblxuICBkYXRhVXJsOiBzdHJpbmcgPSBudWxsO1xuICB1cmw6IHN0cmluZyA9IG51bGw7XG4gIHRpdGxlOiBzdHJpbmcgPSBudWxsO1xuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy51cmwgPSBzb3VyY2UudXJsO1xuICAgIHRoaXMuZGF0YVVybCA9IHNvdXJjZS5kYXRhVXJsO1xuICAgIHRoaXMudGl0bGUgPSBzb3VyY2UudGl0bGU7XG4gIH1cbn1cblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7IHR5cGVuYW1lOiAnSW1hZ2VBdHRhY2htZW50RmlsdGVyVk8nIH0pXG5leHBvcnQgY2xhc3MgSW1hZ2VBdHRhY2htZW50RmlsdGVyIGV4dGVuZHMgRW50aXR5RmlsdGVyPEltYWdlQXR0YWNobWVudEZpbHRlciwgSW1hZ2VBdHRhY2htZW50PiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gSW1hZ2VBdHRhY2htZW50RmlsdGVyO1xuXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbWFnZUF0dGFjaG1lbnRTZXJ2aWNlIGV4dGVuZHMgU3RhcnRhYmxlU2VydmljZVxuICBpbXBsZW1lbnRzIElFbnRpdGllc1NlcnZpY2U8SW1hZ2VBdHRhY2htZW50LCBJbWFnZUF0dGFjaG1lbnRGaWx0ZXI+IHtcblxuICAkaW1hZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPEltYWdlQXR0YWNobWVudD5bXT4oW1xuICAgIHtpZDogMCwgdXJsOiAnaHR0cHM6Ly90ZXN0LnN1bWFyaXMubmV0L2Fzc2V0cy9pbWcvYmcvcmF5LTEuanBnJywgdGl0bGU6ICdyYXkgIzEnfSxcbiAgICB7aWQ6IDEsIHVybDogJ2h0dHBzOi8vdGVzdC5zdW1hcmlzLm5ldC9hc3NldHMvaW1nL2JnL3JheS0yLmpwZycsIHRpdGxlOiAncmF5ICMyJ31cbiAgXSk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybVxuICApIHtcbiAgICBzdXBlcihwbGF0Zm9ybSk7XG4gICAgY29uc29sZS5kZWJ1ZygnW2dhbGxlcnktdGVzdGluZy1zZXJ2aWNlXSBDcmVhdGUgc2VydmljZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5nT25TdGFydCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHdhdGNoQWxsKG9mZnNldDogbnVtYmVyLCBzaXplOiBudW1iZXIsIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sIGZpbHRlcj86IEltYWdlQXR0YWNobWVudEZpbHRlciwgb3B0cz86IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyAmIHsgcXVlcnk/OiBhbnkgfSk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxJbWFnZUF0dGFjaG1lbnQ+PiB7XG4gICAgY29uc29sZS5kZWJ1ZygnW2dhbGxlcnktdGVzdGluZy1zZXJ2aWNlXSBXYXRjaGluZyBpbWFnZXMuLi4nKTtcbiAgICByZXR1cm4gdGhpcy4kaW1hZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGltYWdlcyA9PiB7XG4gICAgICAgICAgbGV0IGRhdGEgPSAoaW1hZ2VzIHx8IFtdKS5tYXAoSW1hZ2VBdHRhY2htZW50LmZyb21PYmplY3QpO1xuXG4gICAgICAgICAgZGF0YSA9IEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcblxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoYFtnYWxsZXJ5LXRlc3Rpbmctc2VydmljZV0gTG9hZGVkICR7ZGF0YS5sZW5ndGh9IGltYWdlcy4uLmApO1xuXG4gICAgICAgICAgcmV0dXJuIHtkYXRhLCB0b3RhbDogZGF0YS5sZW5ndGh9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVBbGwoZW50aXRpZXM6IEltYWdlQXR0YWNobWVudFtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tnYWxsZXJ5LXNlcnZpY2UtdGVzdGluZ10gU2F2aW5nIGltYWdlcy4uLicgKyBKU09OLnN0cmluZ2lmeShlbnRpdGllcykpO1xuICAgIGlmICghZW50aXRpZXMpIHJldHVybiBbXTtcblxuICAgIGxldCBjdXJyZW50SWQgPSB0aGlzLiRpbWFnZXMudmFsdWUucmVkdWNlKChyZXMsIGltYWdlKSA9PiBNYXRoLm1heChyZXMsICtpbWFnZT8uaWQgfHwgMCksIDApO1xuICAgIGVudGl0aWVzLmZpbHRlcihpdGVtID0+IGlzTmlsKGl0ZW0uaWQpKVxuICAgICAgLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0uaWQgPSArK2N1cnJlbnRJZDtcbiAgICB9KTtcbiAgICB0aGlzLiRpbWFnZXMubmV4dChbXG4gICAgICAuLi50aGlzLiRpbWFnZXMudmFsdWUsXG4gICAgICAuLi5lbnRpdGllc1xuICAgIF0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKGVudGl0aWVzOiBJbWFnZUF0dGFjaG1lbnRbXSwgb3B0cz86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZGVsZXRlZElkcyA9IChlbnRpdGllc3x8W10pLm1hcChpdGVtID0+IGl0ZW0uaWQpLmZpbHRlcihpc05vdE5pbCk7XG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gKHRoaXMuJGltYWdlcy52YWx1ZSkuZmlsdGVyKGl0ZW0gPT4gIWRlbGV0ZWRJZHMuaW5jbHVkZXMoaXRlbS5pZCkpO1xuICAgIHRoaXMuJGltYWdlcy5uZXh0KGZpbHRlcmVkRGF0YSk7XG4gIH1cblxuICBhc0ZpbHRlcihmaWx0ZXI6IGFueSkge1xuICAgIHJldHVybiBJbWFnZUF0dGFjaG1lbnRGaWx0ZXIuZnJvbU9iamVjdChmaWx0ZXIpO1xuICB9XG59XG4iXX0=
|
|
@@ -20,11 +20,11 @@ export class GalleryTestPage {
|
|
|
20
20
|
this._subscription.unsubscribe();
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
GalleryTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
24
|
-
GalleryTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
23
|
+
GalleryTestPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: GalleryTestPage, deps: [{ token: i1.ImageAttachmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
+
GalleryTestPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: GalleryTestPage, selector: "app-gallery-test-page", providers: [
|
|
25
25
|
{ provide: ImageAttachmentService, useClass: ImageAttachmentService }
|
|
26
26
|
], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Image gallery</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <app-image-gallery [dataSource]=\"dataSource\">\n </app-image-gallery>\n</ion-content>\n", dependencies: [{ kind: "component", type: i2.IonBackButton, selector: "ion-back-button", inputs: ["color", "defaultHref", "disabled", "icon", "mode", "routerAnimation", "text", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.IonBackButtonDelegate, selector: "ion-back-button", inputs: ["defaultHref", "routerAnimation"] }, { kind: "component", type: i3.AppImageGalleryComponent, selector: "app-image-gallery", inputs: ["debug", "readOnly", "disabled", "showToolbar", "mobile", "mode", "confirmBeforeDelete", "dataSource"] }] });
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: GalleryTestPage, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
29
|
args: [{ selector: 'app-gallery-test-page', providers: [
|
|
30
30
|
{ provide: ImageAttachmentService, useClass: ImageAttachmentService }
|
|
@@ -17,21 +17,21 @@ const routes = [
|
|
|
17
17
|
];
|
|
18
18
|
export class ImageGalleryTestingModule {
|
|
19
19
|
}
|
|
20
|
-
ImageGalleryTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
21
|
-
ImageGalleryTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
20
|
+
ImageGalleryTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
21
|
+
ImageGalleryTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, declarations: [
|
|
22
22
|
// Components
|
|
23
23
|
GalleryTestPage], imports: [CommonModule,
|
|
24
24
|
IonicModule,
|
|
25
25
|
ImageGalleryModule, i1.TranslateModule, i2.RouterModule, i1.TranslateModule], exports: [RouterModule,
|
|
26
26
|
// Components
|
|
27
27
|
GalleryTestPage] });
|
|
28
|
-
ImageGalleryTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
28
|
+
ImageGalleryTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, imports: [CommonModule,
|
|
29
29
|
IonicModule,
|
|
30
30
|
ImageGalleryModule,
|
|
31
31
|
TranslateModule.forChild(),
|
|
32
32
|
RouterModule.forChild(routes),
|
|
33
33
|
TranslateModule.forChild(), RouterModule] });
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: ImageGalleryTestingModule, decorators: [{
|
|
35
35
|
type: NgModule,
|
|
36
36
|
args: [{
|
|
37
37
|
imports: [
|