@sumaris-net/ngx-components 1.23.8 → 2.0.0-rc1
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/build.md +2 -2
- package/esm2020/public_api.mjs +274 -0
- package/esm2020/public_test_api.mjs +46 -0
- package/esm2020/src/app/admin/admin-routing.module.mjs +41 -0
- package/esm2020/src/app/admin/admin.module.mjs +49 -0
- package/esm2020/src/app/admin/services/filter/person.filter.mjs +59 -0
- package/esm2020/src/app/admin/services/person.service.mjs +161 -0
- package/esm2020/src/app/admin/services/validator/person.validator.mjs +34 -0
- package/esm2020/src/app/admin/users/list/users.mjs +227 -0
- package/esm2020/src/app/core/about/modal-about.mjs +71 -0
- package/esm2020/src/app/core/account/account.mjs +230 -0
- package/esm2020/src/app/core/auth/form/form-auth.mjs +131 -0
- package/esm2020/src/app/core/auth/modal/modal-auth.mjs +72 -0
- package/esm2020/src/app/core/core.module.mjs +223 -0
- package/esm2020/src/app/core/core.testing.module.mjs +72 -0
- package/esm2020/src/app/core/form/editor.class.mjs +608 -0
- package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +406 -0
- package/esm2020/src/app/core/form/entity-editor.class.mjs +669 -0
- package/esm2020/src/app/core/form/entity-metadata.component.mjs +25 -0
- package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +71 -0
- package/esm2020/src/app/core/form/form.class.mjs +334 -0
- package/esm2020/src/app/core/form/form.utils.mjs +264 -0
- package/esm2020/src/app/core/form/list.form.mjs +221 -0
- package/esm2020/src/app/core/form/properties.form.mjs +126 -0
- package/esm2020/src/app/core/graphql/graphql.module.mjs +22 -0
- package/esm2020/src/app/core/graphql/graphql.service.mjs +730 -0
- package/esm2020/src/app/core/graphql/graphql.utils.mjs +117 -0
- package/esm2020/src/app/core/home/home.mjs +257 -0
- package/esm2020/src/app/core/icon/icon.component.mjs +41 -0
- package/esm2020/src/app/core/icon/icon.module.mjs +29 -0
- package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +337 -0
- package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +33 -0
- package/esm2020/src/app/core/menu/menu.component.mjs +317 -0
- package/{esm2015/src/app/core/menu/menu.model.js → esm2020/src/app/core/menu/menu.model.mjs} +0 -0
- package/esm2020/src/app/core/menu/menu.module.mjs +45 -0
- package/{esm2015/src/app/core/menu/menu.service.js → esm2020/src/app/core/menu/menu.service.mjs} +9 -7
- package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +27 -0
- package/esm2020/src/app/core/peer/select-peer.modal.mjs +130 -0
- package/esm2020/src/app/core/peer/select-peer.module.mjs +35 -0
- package/esm2020/src/app/core/register/confirm/confirm.mjs +81 -0
- package/esm2020/src/app/core/register/form/form-register.mjs +181 -0
- package/esm2020/src/app/core/register/modal/modal-register.mjs +52 -0
- package/esm2020/src/app/core/register/register.module.mjs +42 -0
- package/esm2020/src/app/core/services/account.service.mjs +1112 -0
- package/esm2020/src/app/core/services/auth-guard.service.mjs +71 -0
- package/esm2020/src/app/core/services/base-entity-service.class.mjs +433 -0
- package/esm2020/src/app/core/services/base-graphql-service.class.mjs +219 -0
- package/{esm2015/src/app/core/services/base58.js → esm2020/src/app/core/services/base58.mjs} +0 -0
- package/{esm2015/src/app/core/services/config/core.config.js → esm2020/src/app/core/services/config/core.config.mjs} +0 -0
- package/esm2020/src/app/core/services/config.service.mjs +354 -0
- package/{esm2015/src/app/core/services/crypto.service.js → esm2020/src/app/core/services/crypto.service.mjs} +7 -5
- package/{esm2015/src/app/core/services/errors.js → esm2020/src/app/core/services/errors.mjs} +0 -0
- package/esm2020/src/app/core/services/local-settings.service.mjs +442 -0
- package/esm2020/src/app/core/services/model/account.model.mjs +50 -0
- package/esm2020/src/app/core/services/model/config.model.mjs +89 -0
- package/esm2020/src/app/core/services/model/department.model.mjs +30 -0
- package/esm2020/src/app/core/services/model/entity.decorators.mjs +107 -0
- package/esm2020/src/app/core/services/model/entity.model.mjs +242 -0
- package/{esm2015/src/app/core/services/model/filter.model.js → esm2020/src/app/core/services/model/filter.model.mjs} +0 -0
- package/{esm2015/src/app/core/services/model/history.model.js → esm2020/src/app/core/services/model/history.model.mjs} +0 -0
- package/{esm2015/src/app/core/services/model/model.enum.js → esm2020/src/app/core/services/model/model.enum.mjs} +0 -0
- package/esm2020/src/app/core/services/model/peer.model.mjs +68 -0
- package/esm2020/src/app/core/services/model/person.model.mjs +83 -0
- package/esm2020/src/app/core/services/model/referential.model.mjs +145 -0
- package/esm2020/src/app/core/services/model/settings.model.mjs +75 -0
- package/esm2020/src/app/core/services/network.service.mjs +602 -0
- package/esm2020/src/app/core/services/network.utils.mjs +16 -0
- package/esm2020/src/app/core/services/pipes/account.pipes.mjs +38 -0
- package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +23 -0
- package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +23 -0
- package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +37 -0
- package/esm2020/src/app/core/services/platform.service.mjs +476 -0
- package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +422 -0
- package/esm2020/src/app/core/services/storage/entity-store.class.mjs +449 -0
- package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +23 -0
- package/esm2020/src/app/core/services/testing/referential.validator.mjs +45 -0
- package/esm2020/src/app/core/services/validator/account.validator.mjs +52 -0
- package/esm2020/src/app/core/services/validator/base.validator.class.mjs +47 -0
- package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +66 -0
- package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +29 -0
- package/esm2020/src/app/core/settings/settings.page.mjs +290 -0
- package/esm2020/src/app/core/table/actions-column.component.mjs +96 -0
- package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +385 -0
- package/esm2020/src/app/core/table/memory-table.class.mjs +53 -0
- package/esm2020/src/app/core/table/table-select-columns.component.mjs +43 -0
- package/esm2020/src/app/core/table/table.class.mjs +1654 -0
- package/{esm2015/src/app/core/table/table.utils.js → esm2020/src/app/core/table/table.utils.mjs} +0 -0
- package/esm2020/src/app/core/table/testing/table.testing.mjs +264 -0
- package/esm2020/src/app/core/table/testing/table.testing.module.mjs +38 -0
- package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +37 -0
- package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +45 -0
- package/esm2020/src/app/core/text-popover/text-form.component.mjs +84 -0
- package/esm2020/src/app/core/text-popover/text-popover.component.mjs +92 -0
- package/esm2020/src/app/shared/alerts.mjs +238 -0
- package/esm2020/src/app/shared/audio/audio.mjs +201 -0
- package/esm2020/src/app/shared/audio/audio.testing.mjs +31 -0
- package/esm2020/src/app/shared/audio/audio.testing.module.mjs +45 -0
- package/esm2020/src/app/shared/capacitor/keyboard.mjs +40 -0
- package/esm2020/src/app/shared/capacitor/plugins.mjs +9 -0
- package/{esm2015/src/app/shared/constants.js → esm2020/src/app/shared/constants.mjs} +2 -1
- package/esm2020/src/app/shared/dates.mjs +134 -0
- package/esm2020/src/app/shared/directives/autofocus.directive.mjs +92 -0
- package/esm2020/src/app/shared/directives/autotitle.directive.mjs +30 -0
- package/esm2020/src/app/shared/directives/directives.module.mjs +43 -0
- package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +53 -0
- package/esm2020/src/app/shared/directives/ng-var.directive.mjs +31 -0
- package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +59 -0
- package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +40 -0
- package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +17 -0
- package/esm2020/src/app/shared/events.mjs +64 -0
- package/esm2020/src/app/shared/file/csv.utils.mjs +74 -0
- package/esm2020/src/app/shared/file/file.service.mjs +117 -0
- package/esm2020/src/app/shared/file/file.utils.mjs +113 -0
- package/esm2020/src/app/shared/file/images.utils.mjs +161 -0
- package/{esm2015/src/app/shared/file/uri.utils.js → esm2020/src/app/shared/file/uri.utils.mjs} +0 -0
- package/{esm2015/src/app/shared/focusable.js → esm2020/src/app/shared/focusable.mjs} +0 -0
- package/esm2020/src/app/shared/form/field.component.mjs +241 -0
- package/{esm2015/src/app/shared/form/field.model.js → esm2020/src/app/shared/form/field.model.mjs} +1 -1
- package/esm2020/src/app/shared/form/loading-spinner.mjs +36 -0
- package/esm2020/src/app/shared/forms.mjs +355 -0
- package/esm2020/src/app/shared/functions.mjs +417 -0
- package/{esm2015/src/app/shared/gesture/gesture-config.js → esm2020/src/app/shared/gesture/gesture-config.mjs} +7 -5
- package/esm2020/src/app/shared/gesture/hammer.utils.mjs +2 -0
- package/{esm2015/src/app/shared/graph/colors.utils.js → esm2020/src/app/shared/graph/colors.utils.mjs} +0 -0
- package/esm2020/src/app/shared/graph/graph-colors.mjs +254 -0
- package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +57 -0
- package/esm2020/src/app/shared/help/help.modal.mjs +53 -0
- package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +23 -0
- package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +84 -0
- package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +42 -0
- package/esm2020/src/app/shared/http/http.utils.mjs +52 -0
- package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +279 -0
- package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +46 -0
- package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +27 -0
- package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +89 -0
- package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +33 -0
- package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +56 -0
- package/esm2020/src/app/shared/image/image.model.mjs +2 -0
- package/esm2020/src/app/shared/image/image.module.mjs +29 -0
- package/esm2020/src/app/shared/image/image.service.mjs +99 -0
- package/{esm2015/src/app/shared/inputs.js → esm2020/src/app/shared/inputs.mjs} +4 -4
- package/{esm2015/src/app/shared/interceptors/progess.interceptor.js → esm2020/src/app/shared/interceptors/progess.interceptor.mjs} +0 -0
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +47 -0
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +836 -0
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +78 -0
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +19 -0
- package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +205 -0
- package/esm2020/src/app/shared/material/badge/badge-icon.directive.mjs +143 -0
- package/esm2020/src/app/shared/material/badge/badge-icon.module.mjs +32 -0
- package/esm2020/src/app/shared/material/badge/badge-icon.test.mjs +27 -0
- package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +68 -0
- package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +253 -0
- package/esm2020/src/app/shared/material/chips/chips.module.mjs +76 -0
- package/esm2020/src/app/shared/material/chips/material.chips.mjs +692 -0
- package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +136 -0
- package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +91 -0
- package/esm2020/src/app/shared/material/datetime/material.date.mjs +392 -0
- package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +327 -0
- package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +416 -0
- package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +110 -0
- package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +111 -0
- package/esm2020/src/app/shared/material/duration/duration.module.mjs +67 -0
- package/{esm2015/src/app/shared/material/duration/duration.utils.js → esm2020/src/app/shared/material/duration/duration.utils.mjs} +0 -0
- package/esm2020/src/app/shared/material/duration/material.duration.mjs +257 -0
- package/esm2020/src/app/shared/material/latlong/latlong.utils.mjs +266 -0
- package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +381 -0
- package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +67 -0
- package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +74 -0
- package/{esm2015/src/app/shared/material/material.animations.js → esm2020/src/app/shared/material/material.animations.mjs} +0 -0
- package/esm2020/src/app/shared/material/material.module.mjs +224 -0
- package/{esm2015/src/app/shared/material/material.testing.module.js → esm2020/src/app/shared/material/material.testing.module.mjs} +68 -34
- package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +98 -0
- package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +80 -0
- package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +190 -0
- package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +17 -0
- package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +162 -0
- package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +37 -0
- package/{esm2015/src/app/shared/material/numpad/numpad.model.js → esm2020/src/app/shared/material/numpad/numpad.model.mjs} +1 -1
- package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +60 -0
- package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +46 -0
- package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +42 -0
- package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +22 -0
- package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +334 -0
- package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +51 -0
- package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +65 -0
- package/esm2020/src/app/shared/observables.mjs +96 -0
- package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +114 -0
- package/esm2020/src/app/shared/pipes/colors.pipe.mjs +23 -0
- package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +49 -0
- package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +42 -0
- package/{esm2015/src/app/shared/pipes/date-from-now.pipe.js → esm2020/src/app/shared/pipes/date-from-now.pipe.mjs} +13 -12
- package/{esm2015/src/app/shared/pipes/duration.pipe.js → esm2020/src/app/shared/pipes/duration.pipe.mjs} +13 -12
- package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +62 -0
- package/esm2020/src/app/shared/pipes/form.pipes.mjs +187 -0
- package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +48 -0
- package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +46 -0
- package/esm2020/src/app/shared/pipes/maps.pipe.mjs +63 -0
- package/esm2020/src/app/shared/pipes/math.pipes.mjs +59 -0
- package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +21 -0
- package/{esm2015/src/app/shared/pipes/number-format.pipe.js → esm2020/src/app/shared/pipes/number-format.pipe.mjs} +14 -9
- package/esm2020/src/app/shared/pipes/pipes.module.mjs +206 -0
- package/esm2020/src/app/shared/pipes/property.pipes.mjs +96 -0
- package/esm2020/src/app/shared/pipes/string.pipes.mjs +69 -0
- package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +43 -0
- package/esm2020/src/app/shared/platforms.mjs +49 -0
- package/esm2020/src/app/shared/services/entity-service.class.mjs +19 -0
- package/esm2020/src/app/shared/services/job.utils.mjs +92 -0
- package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +253 -0
- package/esm2020/src/app/shared/services/progress-bar.service.mjs +32 -0
- package/esm2020/src/app/shared/services/startable-service.class.mjs +94 -0
- package/esm2020/src/app/shared/services/storage/storage.service.mjs +132 -0
- package/esm2020/src/app/shared/services/storage/storage.utils.mjs +13 -0
- package/esm2020/src/app/shared/services/translate-context.service.mjs +81 -0
- package/esm2020/src/app/shared/services/validator-service.class.mjs +2 -0
- package/esm2020/src/app/shared/services.mjs +62 -0
- package/esm2020/src/app/shared/shared-routing.module.mjs +63 -0
- package/esm2020/src/app/shared/shared.module.mjs +208 -0
- package/esm2020/src/app/shared/shared.testing.module.mjs +76 -0
- package/esm2020/src/app/shared/testing/tests.page.mjs +33 -0
- package/esm2020/src/app/shared/toast/toast.testing.mjs +52 -0
- package/esm2020/src/app/shared/toast/toast.testing.module.mjs +45 -0
- package/esm2020/src/app/shared/toast/toasts.mjs +121 -0
- package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +58 -0
- package/esm2020/src/app/shared/toolbar/toolbar.mjs +226 -0
- package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +53 -0
- package/{esm2015/src/app/shared/types.js → esm2020/src/app/shared/types.mjs} +0 -0
- package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +57 -0
- package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +45 -0
- package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +97 -0
- package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +204 -0
- package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +20 -0
- package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +104 -0
- package/esm2020/src/app/shared/validator/validators.mjs +544 -0
- package/{esm2015/src/app/shared/version/versions.js → esm2020/src/app/shared/version/versions.mjs} +0 -0
- package/esm2020/src/app/social/job/job.model.mjs +26 -0
- package/esm2020/src/app/social/job/job.module.mjs +35 -0
- package/esm2020/src/app/social/job/job.service.mjs +59 -0
- package/esm2020/src/app/social/job/progression/job-progression.component.mjs +201 -0
- package/esm2020/src/app/social/job/progression/job-progression.list.mjs +22 -0
- package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +51 -0
- package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +33 -0
- package/esm2020/src/app/social/job/testing/job.testing.module.mjs +35 -0
- package/esm2020/src/app/social/message/message.form.mjs +81 -0
- package/esm2020/src/app/social/message/message.modal.mjs +93 -0
- package/esm2020/src/app/social/message/message.model.mjs +65 -0
- package/esm2020/src/app/social/message/message.module.mjs +35 -0
- package/esm2020/src/app/social/message/message.service.mjs +84 -0
- package/{esm2015/src/app/social/social.errors.js → esm2020/src/app/social/social.errors.mjs} +0 -0
- package/esm2020/src/app/social/social.module.mjs +47 -0
- package/esm2020/src/app/social/social.testing.module.mjs +51 -0
- package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +97 -0
- package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +212 -0
- package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +228 -0
- package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +107 -0
- package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +35 -0
- package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +111 -0
- package/esm2020/src/app/social/user-event/user-event.model.mjs +2 -0
- package/esm2020/src/app/social/user-event/user-event.module.mjs +39 -0
- package/esm2020/src/app/social/user-event/user-event.service.mjs +486 -0
- package/{esm2015/src/app/vendor.js → esm2020/src/app/vendor.mjs} +1 -1
- package/esm2020/src/environments/environment.class.mjs +5 -0
- package/esm2020/src/environments/environment.mjs +86 -0
- package/esm2020/sumaris-net.ngx-components.mjs +5 -0
- package/fesm2015/sumaris-net.ngx-components.mjs +32493 -0
- package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -0
- package/fesm2020/sumaris-net.ngx-components.mjs +31739 -0
- package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +25 -34
- package/public_api.d.ts +23 -28
- package/public_test_api.d.ts +37 -0
- package/resources/README.md +8 -0
- package/src/app/admin/admin-routing.module.d.ts +7 -0
- package/src/app/admin/admin.module.d.ts +11 -0
- package/src/app/admin/services/person.service.d.ts +3 -0
- package/src/app/admin/services/validator/person.validator.d.ts +8 -5
- package/src/app/admin/users/list/users.d.ts +10 -7
- package/src/app/core/about/modal-about.d.ts +3 -0
- package/src/app/core/account/account.d.ts +11 -8
- package/src/app/core/auth/form/form-auth.d.ts +6 -3
- package/src/app/core/auth/modal/modal-auth.d.ts +3 -0
- package/src/app/core/core.module.d.ts +36 -0
- package/src/app/core/core.testing.module.d.ts +9 -0
- package/src/app/core/form/editor.class.d.ts +7 -2
- package/src/app/core/form/entity-editor-modal.class.d.ts +7 -4
- package/src/app/core/form/entity-editor.class.d.ts +4 -1
- package/src/app/core/form/entity-metadata.component.d.ts +3 -0
- package/src/app/core/form/form-buttons-bar.component.d.ts +3 -0
- package/src/app/core/form/form.class.d.ts +12 -9
- package/src/app/core/form/form.utils.d.ts +4 -4
- package/src/app/core/form/list.form.d.ts +10 -7
- package/src/app/core/form/properties.form.d.ts +10 -7
- package/src/app/core/graphql/graphql.module.d.ts +5 -0
- package/src/app/core/graphql/graphql.service.d.ts +9 -2
- package/src/app/core/graphql/graphql.utils.d.ts +8 -0
- package/src/app/core/home/home.d.ts +4 -1
- package/src/app/core/icon/icon.component.d.ts +5 -2
- package/src/app/core/icon/icon.module.d.ts +7 -0
- package/src/app/core/install/install-upgrade-card.component.d.ts +5 -2
- package/src/app/core/install/install-upgrade-card.module.d.ts +10 -0
- package/src/app/core/menu/menu.component.d.ts +7 -5
- package/src/app/core/menu/menu.module.d.ts +8 -0
- package/src/app/core/menu/menu.service.d.ts +3 -0
- package/src/app/core/offline/update-offline-mode-card.component.d.ts +3 -0
- package/src/app/core/peer/select-peer.modal.d.ts +7 -4
- package/src/app/core/peer/select-peer.module.d.ts +9 -0
- package/src/app/core/register/confirm/confirm.d.ts +3 -0
- package/src/app/core/register/form/form-register.d.ts +10 -7
- package/src/app/core/register/modal/modal-register.d.ts +3 -0
- package/src/app/core/register/register.module.d.ts +12 -0
- package/src/app/core/services/account.service.d.ts +5 -2
- package/src/app/core/services/auth-guard.service.d.ts +3 -0
- package/src/app/core/services/base-entity-service.class.d.ts +3 -0
- package/src/app/core/services/base-graphql-service.class.d.ts +3 -0
- package/src/app/core/services/config.service.d.ts +4 -1
- package/src/app/core/services/crypto.service.d.ts +3 -0
- package/src/app/core/services/local-settings.service.d.ts +5 -1
- package/src/app/core/services/model/referential.model.d.ts +1 -1
- package/src/app/core/services/network.service.d.ts +6 -5
- package/src/app/core/services/pipes/account.pipes.d.ts +7 -0
- package/src/app/core/services/pipes/department-to-string.pipe.d.ts +4 -0
- package/src/app/core/services/pipes/person-to-string.pipe.d.ts +4 -0
- package/src/app/core/services/pipes/usage-mode.pipes.d.ts +7 -0
- package/src/app/core/services/platform.service.d.ts +22 -21
- package/src/app/core/services/storage/entities-storage.service.d.ts +5 -2
- package/src/app/core/services/storage/entity-store.class.d.ts +3 -3
- package/src/app/core/services/testing/referential.validator.d.ts +8 -5
- package/src/app/core/services/validator/account.validator.d.ts +6 -3
- package/src/app/core/services/validator/base.validator.class.d.ts +8 -5
- package/src/app/core/services/validator/local-settings.validator.d.ts +8 -5
- package/src/app/core/services/validator/user-settings.validator.d.ts +6 -3
- package/src/app/core/settings/settings.page.d.ts +8 -5
- package/src/app/core/table/actions-column.component.d.ts +3 -0
- package/src/app/core/table/entities-table-datasource.class.d.ts +11 -9
- package/src/app/core/table/memory-table.class.d.ts +3 -0
- package/src/app/core/table/table-select-columns.component.d.ts +4 -5
- package/src/app/core/table/table.class.d.ts +53 -34
- package/src/app/core/table/testing/table.testing.d.ts +13 -15
- package/src/app/core/table/testing/table.testing.module.d.ts +9 -0
- package/src/app/core/text-popover/testing/text-popover.testing.d.ts +4 -1
- package/src/app/core/text-popover/testing/text-popover.testing.module.d.ts +9 -0
- package/src/app/core/text-popover/text-form.component.d.ts +7 -4
- package/src/app/core/text-popover/text-popover.component.d.ts +3 -0
- package/src/app/shared/alerts.d.ts +4 -4
- package/src/app/shared/audio/audio.d.ts +20 -11
- package/src/app/shared/audio/audio.testing.d.ts +13 -0
- package/src/app/shared/audio/audio.testing.module.d.ts +11 -0
- package/src/app/shared/capacitor/keyboard.d.ts +16 -0
- package/src/app/shared/capacitor/plugins.d.ts +7 -0
- package/src/app/shared/constants.d.ts +1 -0
- package/src/app/shared/directives/autofocus.directive.d.ts +9 -7
- package/src/app/shared/directives/autotitle.directive.d.ts +3 -0
- package/src/app/shared/directives/directives.module.d.ts +10 -0
- package/src/app/shared/directives/drag-and-drop.directive.d.ts +3 -0
- package/src/app/shared/directives/ng-var.directive.d.ts +3 -0
- package/src/app/shared/directives/resizable/resizable.component.d.ts +3 -0
- package/src/app/shared/directives/resizable/resizable.directive.d.ts +3 -0
- package/src/app/shared/directives/resizable/resizable.module.d.ts +6 -0
- package/src/app/shared/file/file.service.d.ts +3 -0
- package/src/app/shared/file/file.utils.d.ts +1 -1
- package/src/app/shared/form/field.component.d.ts +9 -3
- package/src/app/shared/form/field.model.d.ts +2 -2
- package/src/app/shared/form/loading-spinner.d.ts +3 -0
- package/src/app/shared/forms.d.ts +12 -12
- package/src/app/shared/gesture/gesture-config.d.ts +3 -0
- package/src/app/shared/gesture/hammer.utils.d.ts +11 -11
- package/src/app/shared/guard/component-dirty.guard.d.ts +3 -0
- package/src/app/shared/help/help.modal.d.ts +4 -1
- package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +3 -0
- package/src/app/shared/hotkeys/hotkeys.service.d.ts +4 -1
- package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +9 -0
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +77 -0
- package/src/app/shared/image/gallery/image-gallery.module.d.ts +12 -0
- package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +12 -0
- package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +33 -0
- package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +15 -0
- package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +12 -0
- package/src/app/shared/image/image.model.d.ts +5 -0
- package/src/app/shared/image/image.module.d.ts +8 -0
- package/src/app/shared/image/image.service.d.ts +32 -0
- package/src/app/shared/inputs.d.ts +3 -3
- package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +36 -0
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +11 -40
- package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +19 -0
- package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +4 -0
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +12 -9
- package/src/app/shared/material/badge/badge-icon.directive.d.ts +6 -4
- package/src/app/shared/material/badge/badge-icon.module.d.ts +8 -0
- package/src/app/shared/material/badge/badge-icon.test.d.ts +4 -1
- package/src/app/shared/material/boolean/boolean.module.d.ts +17 -0
- package/src/app/shared/material/boolean/material.boolean.d.ts +7 -4
- package/src/app/shared/material/chips/chips.module.d.ts +19 -0
- package/src/app/shared/material/chips/material.chips.d.ts +11 -8
- package/src/app/shared/material/chips/testing/chips.test.d.ts +8 -5
- package/src/app/shared/material/datetime/datetime.module.d.ts +22 -0
- package/src/app/shared/material/datetime/material.date.d.ts +11 -9
- package/src/app/shared/material/datetime/material.dateshort.d.ts +10 -9
- package/src/app/shared/material/datetime/material.datetime.d.ts +13 -12
- package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +11 -9
- package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +11 -9
- package/src/app/shared/material/duration/duration.module.d.ts +16 -0
- package/src/app/shared/material/duration/material.duration.d.ts +8 -5
- package/src/app/shared/material/latlong/material.latlong.d.ts +8 -5
- package/src/app/shared/material/latlong/material.latlong.module.d.ts +17 -0
- package/src/app/shared/material/latlong/testing/latlong.test.d.ts +10 -7
- package/src/app/shared/material/material.module.d.ts +43 -0
- package/src/app/shared/material/material.testing.module.d.ts +19 -0
- package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +3 -0
- package/src/app/shared/material/numpad/numpad.component.d.ts +4 -1
- package/src/app/shared/material/numpad/numpad.container.d.ts +5 -2
- package/src/app/shared/material/numpad/numpad.content.d.ts +3 -0
- package/src/app/shared/material/numpad/numpad.directive.d.ts +4 -1
- package/src/app/shared/material/numpad/numpad.dom-service.d.ts +3 -0
- package/src/app/shared/material/numpad/numpad.model.d.ts +1 -1
- package/src/app/shared/material/numpad/numpad.module.d.ts +14 -0
- package/src/app/shared/material/numpad/testing/numpad.test.d.ts +7 -4
- package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +3 -0
- package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +3 -0
- package/src/app/shared/material/swipe/material.swipe.d.ts +6 -3
- package/src/app/shared/material/swipe/swipe.module.d.ts +13 -0
- package/src/app/shared/material/swipe/testing/swipe.test.d.ts +7 -4
- package/src/app/shared/pipes/arrays.pipe.d.ts +15 -0
- package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
- package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +4 -0
- package/src/app/shared/pipes/date-format.pipe.d.ts +4 -0
- package/src/app/shared/pipes/date-from-now.pipe.d.ts +4 -0
- package/src/app/shared/pipes/duration.pipe.d.ts +4 -0
- package/src/app/shared/pipes/file-size.pipe.d.ts +3 -0
- package/src/app/shared/pipes/form.pipes.d.ts +18 -5
- package/src/app/shared/pipes/highlight.pipe.d.ts +4 -0
- package/src/app/shared/pipes/latlong-format.pipe.d.ts +7 -0
- package/src/app/shared/pipes/maps.pipe.d.ts +10 -0
- package/src/app/shared/pipes/math.pipes.d.ts +10 -0
- package/src/app/shared/pipes/ng-init.pipe.d.ts +3 -0
- package/src/app/shared/pipes/number-format.pipe.d.ts +4 -0
- package/src/app/shared/pipes/pipes.module.d.ts +24 -0
- package/src/app/shared/pipes/property.pipes.d.ts +6 -0
- package/src/app/shared/pipes/string.pipes.d.ts +11 -0
- package/src/app/shared/pipes/translate-context.pipe.d.ts +7 -0
- package/src/app/shared/platforms.d.ts +1 -0
- package/src/app/shared/services/entity-service.class.d.ts +3 -0
- package/src/app/shared/services/memory-entity-service.class.d.ts +3 -0
- package/src/app/shared/services/progress-bar.service.d.ts +4 -1
- package/src/app/shared/services/storage/storage.service.d.ts +23 -0
- package/src/app/shared/services/storage/storage.utils.d.ts +19 -0
- package/src/app/shared/services/translate-context.service.d.ts +3 -0
- package/src/app/shared/services/validator-service.class.d.ts +2 -2
- package/src/app/shared/shared-routing.module.d.ts +7 -0
- package/src/app/shared/shared.module.d.ts +23 -0
- package/src/app/shared/shared.testing.module.d.ts +12 -0
- package/src/app/shared/testing/tests.page.d.ts +3 -0
- package/src/app/shared/toast/toast.testing.d.ts +3 -0
- package/src/app/shared/toast/toast.testing.module.d.ts +9 -0
- package/src/app/shared/toolbar/modal-toolbar.d.ts +5 -2
- package/src/app/shared/toolbar/toolbar.d.ts +9 -5
- package/src/app/shared/toolbar/toolbar.module.d.ts +15 -0
- package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +4 -1
- package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +9 -0
- package/src/app/shared/upload-file/upload-file-popover.component.d.ts +3 -0
- package/src/app/shared/upload-file/upload-file.component.d.ts +3 -0
- package/src/app/shared/validator/form-error-adapter.class.d.ts +3 -0
- package/src/app/shared/validator/validators.d.ts +9 -9
- package/src/app/social/job/job.module.d.ts +9 -0
- package/src/app/social/job/job.service.d.ts +3 -0
- package/src/app/social/job/progression/job-progression.component.d.ts +4 -1
- package/src/app/social/job/progression/job-progression.list.d.ts +3 -0
- package/src/app/social/job/testing/job-progression.testing.d.ts +3 -0
- package/src/app/social/job/testing/job-progression.testing.service.d.ts +3 -0
- package/src/app/social/job/testing/job.testing.module.d.ts +9 -0
- package/src/app/social/message/message.form.d.ts +5 -2
- package/src/app/social/message/message.modal.d.ts +5 -2
- package/src/app/social/message/message.module.d.ts +9 -0
- package/src/app/social/message/message.service.d.ts +3 -0
- package/src/app/social/social.module.d.ts +10 -0
- package/src/app/social/social.testing.module.d.ts +9 -0
- package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -1
- package/src/app/social/user-event/notification/user-event-notification.list.d.ts +7 -4
- package/src/app/social/user-event/testing/user-event.testing.d.ts +3 -0
- package/src/app/social/user-event/testing/user-event.testing.model.d.ts +1 -0
- package/src/app/social/user-event/testing/user-event.testing.module.d.ts +9 -0
- package/src/app/social/user-event/testing/user-event.testing.service.d.ts +5 -1
- package/src/app/social/user-event/user-event.model.d.ts +3 -2
- package/src/app/social/user-event/user-event.module.d.ts +10 -0
- package/src/app/social/user-event/user-event.service.d.ts +16 -11
- package/src/assets/audio/beep-notification.mp3 +0 -0
- package/src/assets/i18n/fr.json +9 -2
- package/src/environments/environment.class.d.ts +2 -0
- package/src/environments/environment.d.ts +1 -1
- package/src/theme/_icons.scss +1 -1
- package/src/theme/_material.globals.scss +29 -31
- package/src/theme/_material.scss +3 -2
- package/src/theme/_mixins.scss +4 -4
- package/src/theme/_ngx-components.scss +6 -0
- package/src/theme/_print.scss +24 -0
- package/bundles/sumaris-net.ngx-components.umd.js +0 -35297
- package/bundles/sumaris-net.ngx-components.umd.js.map +0 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +0 -25
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +0 -1
- package/esm2015/public_api.js +0 -244
- package/esm2015/src/app/admin/admin-routing.module.js +0 -34
- package/esm2015/src/app/admin/admin.module.js +0 -34
- package/esm2015/src/app/admin/services/filter/person.filter.js +0 -59
- package/esm2015/src/app/admin/services/person.service.js +0 -175
- package/esm2015/src/app/admin/services/validator/person.validator.js +0 -37
- package/esm2015/src/app/admin/users/list/users.js +0 -216
- package/esm2015/src/app/core/about/modal-about.js +0 -63
- package/esm2015/src/app/core/account/account.js +0 -240
- package/esm2015/src/app/core/auth/form/form-auth.js +0 -134
- package/esm2015/src/app/core/auth/modal/modal-auth.js +0 -78
- package/esm2015/src/app/core/core.module.js +0 -127
- package/esm2015/src/app/core/core.testing.module.js +0 -51
- package/esm2015/src/app/core/form/editor.class.js +0 -632
- package/esm2015/src/app/core/form/entity-editor-modal.class.js +0 -421
- package/esm2015/src/app/core/form/entity-editor.class.js +0 -696
- package/esm2015/src/app/core/form/entity-metadata.component.js +0 -22
- package/esm2015/src/app/core/form/form-buttons-bar.component.js +0 -63
- package/esm2015/src/app/core/form/form.class.js +0 -338
- package/esm2015/src/app/core/form/form.utils.js +0 -264
- package/esm2015/src/app/core/form/list.form.js +0 -219
- package/esm2015/src/app/core/form/properties.form.js +0 -119
- package/esm2015/src/app/core/graphql/graphql.module.js +0 -18
- package/esm2015/src/app/core/graphql/graphql.service.js +0 -734
- package/esm2015/src/app/core/graphql/graphql.utils.js +0 -107
- package/esm2015/src/app/core/home/home.js +0 -265
- package/esm2015/src/app/core/icon/icon.component.js +0 -32
- package/esm2015/src/app/core/icon/icon.module.js +0 -26
- package/esm2015/src/app/core/install/install-upgrade-card.component.js +0 -358
- package/esm2015/src/app/core/menu/menu.component.js +0 -329
- package/esm2015/src/app/core/menu/menu.module.js +0 -28
- package/esm2015/src/app/core/offline/update-offline-mode-card.component.js +0 -26
- package/esm2015/src/app/core/peer/select-peer.modal.js +0 -134
- package/esm2015/src/app/core/register/confirm/confirm.js +0 -86
- package/esm2015/src/app/core/register/form/form-register.js +0 -172
- package/esm2015/src/app/core/register/modal/modal-register.js +0 -55
- package/esm2015/src/app/core/services/account.service.js +0 -1165
- package/esm2015/src/app/core/services/auth-guard.service.js +0 -77
- package/esm2015/src/app/core/services/base-entity-service.class.js +0 -455
- package/esm2015/src/app/core/services/base-graphql-service.class.js +0 -221
- package/esm2015/src/app/core/services/config.service.js +0 -385
- package/esm2015/src/app/core/services/local-settings.service.js +0 -460
- package/esm2015/src/app/core/services/model/account.model.js +0 -50
- package/esm2015/src/app/core/services/model/config.model.js +0 -89
- package/esm2015/src/app/core/services/model/department.model.js +0 -30
- package/esm2015/src/app/core/services/model/entity.decorators.js +0 -104
- package/esm2015/src/app/core/services/model/entity.model.js +0 -245
- package/esm2015/src/app/core/services/model/peer.model.js +0 -68
- package/esm2015/src/app/core/services/model/person.model.js +0 -83
- package/esm2015/src/app/core/services/model/referential.model.js +0 -147
- package/esm2015/src/app/core/services/model/settings.model.js +0 -75
- package/esm2015/src/app/core/services/network.service.js +0 -639
- package/esm2015/src/app/core/services/network.utils.js +0 -19
- package/esm2015/src/app/core/services/pipes/account.pipes.js +0 -28
- package/esm2015/src/app/core/services/pipes/department-to-string.pipe.js +0 -18
- package/esm2015/src/app/core/services/pipes/person-to-string.pipe.js +0 -18
- package/esm2015/src/app/core/services/pipes/usage-mode.pipes.js +0 -27
- package/esm2015/src/app/core/services/platform.service.js +0 -549
- package/esm2015/src/app/core/services/storage/entities-storage.service.js +0 -452
- package/esm2015/src/app/core/services/storage/entity-store.class.js +0 -461
- package/esm2015/src/app/core/services/testing/referential-filter.model.js +0 -23
- package/esm2015/src/app/core/services/testing/referential.validator.js +0 -44
- package/esm2015/src/app/core/services/validator/account.validator.js +0 -55
- package/esm2015/src/app/core/services/validator/base.validator.class.js +0 -48
- package/esm2015/src/app/core/services/validator/local-settings.validator.js +0 -72
- package/esm2015/src/app/core/services/validator/user-settings.validator.js +0 -30
- package/esm2015/src/app/core/settings/settings.page.js +0 -305
- package/esm2015/src/app/core/table/actions-column.component.js +0 -74
- package/esm2015/src/app/core/table/entities-table-datasource.class.js +0 -389
- package/esm2015/src/app/core/table/memory-table.class.js +0 -59
- package/esm2015/src/app/core/table/table-select-columns.component.js +0 -44
- package/esm2015/src/app/core/table/table.class.js +0 -1651
- package/esm2015/src/app/core/table/testing/table.testing.js +0 -241
- package/esm2015/src/app/core/table/testing/table.testing.module.js +0 -26
- package/esm2015/src/app/core/text-popover/testing/text-popover.testing.js +0 -37
- package/esm2015/src/app/core/text-popover/testing/text-popover.testing.module.js +0 -33
- package/esm2015/src/app/core/text-popover/text-form.component.js +0 -72
- package/esm2015/src/app/core/text-popover/text-popover.component.js +0 -90
- package/esm2015/src/app/shared/alerts.js +0 -251
- package/esm2015/src/app/shared/audio/audio.js +0 -178
- package/esm2015/src/app/shared/dates.js +0 -134
- package/esm2015/src/app/shared/directives/autofocus.directive.js +0 -90
- package/esm2015/src/app/shared/directives/autotitle.directive.js +0 -27
- package/esm2015/src/app/shared/directives/directives.module.js +0 -30
- package/esm2015/src/app/shared/directives/drag-and-drop.directive.js +0 -43
- package/esm2015/src/app/shared/directives/ng-var.directive.js +0 -32
- package/esm2015/src/app/shared/directives/resizable/resizable.component.js +0 -54
- package/esm2015/src/app/shared/directives/resizable/resizable.directive.js +0 -34
- package/esm2015/src/app/shared/directives/resizable/resizable.module.js +0 -12
- package/esm2015/src/app/shared/events.js +0 -61
- package/esm2015/src/app/shared/file/csv.utils.js +0 -70
- package/esm2015/src/app/shared/file/file.service.js +0 -121
- package/esm2015/src/app/shared/file/file.utils.js +0 -116
- package/esm2015/src/app/shared/file/images.utils.js +0 -166
- package/esm2015/src/app/shared/form/field.component.js +0 -206
- package/esm2015/src/app/shared/form/loading-spinner.js +0 -24
- package/esm2015/src/app/shared/forms.js +0 -339
- package/esm2015/src/app/shared/functions.js +0 -418
- package/esm2015/src/app/shared/gesture/hammer.utils.js +0 -2
- package/esm2015/src/app/shared/graph/graph-colors.js +0 -256
- package/esm2015/src/app/shared/guard/component-dirty.guard.js +0 -61
- package/esm2015/src/app/shared/help/help.modal.js +0 -56
- package/esm2015/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.js +0 -20
- package/esm2015/src/app/shared/hotkeys/hotkeys.service.js +0 -91
- package/esm2015/src/app/shared/hotkeys/shared-hotkeys.module.js +0 -29
- package/esm2015/src/app/shared/http/http.utils.js +0 -57
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +0 -825
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.module.js +0 -46
- package/esm2015/src/app/shared/material/autocomplete/testing/autocomplete.test.js +0 -200
- package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +0 -135
- package/esm2015/src/app/shared/material/badge/badge-icon.module.js +0 -23
- package/esm2015/src/app/shared/material/badge/badge-icon.test.js +0 -17
- package/esm2015/src/app/shared/material/boolean/boolean.module.js +0 -41
- package/esm2015/src/app/shared/material/boolean/material.boolean.js +0 -223
- package/esm2015/src/app/shared/material/chips/chips.module.js +0 -45
- package/esm2015/src/app/shared/material/chips/material.chips.js +0 -636
- package/esm2015/src/app/shared/material/chips/testing/chips.test.js +0 -138
- package/esm2015/src/app/shared/material/datetime/datetime.module.js +0 -54
- package/esm2015/src/app/shared/material/datetime/material.date.js +0 -375
- package/esm2015/src/app/shared/material/datetime/material.dateshort.js +0 -316
- package/esm2015/src/app/shared/material/datetime/material.datetime.js +0 -398
- package/esm2015/src/app/shared/material/datetime/testing/mat-date-time.test.js +0 -110
- package/esm2015/src/app/shared/material/datetime/testing/mat-date.test.js +0 -108
- package/esm2015/src/app/shared/material/duration/duration.module.js +0 -40
- package/esm2015/src/app/shared/material/duration/material.duration.js +0 -246
- package/esm2015/src/app/shared/material/latlong/latlong.utils.js +0 -249
- package/esm2015/src/app/shared/material/latlong/material.latlong.js +0 -350
- package/esm2015/src/app/shared/material/latlong/material.latlong.module.js +0 -41
- package/esm2015/src/app/shared/material/latlong/testing/latlong.test.js +0 -70
- package/esm2015/src/app/shared/material/material.module.js +0 -93
- package/esm2015/src/app/shared/material/numpad/numpad.append-to-input.directive.js +0 -96
- package/esm2015/src/app/shared/material/numpad/numpad.component.js +0 -73
- package/esm2015/src/app/shared/material/numpad/numpad.container.js +0 -149
- package/esm2015/src/app/shared/material/numpad/numpad.content.js +0 -14
- package/esm2015/src/app/shared/material/numpad/numpad.directive.js +0 -148
- package/esm2015/src/app/shared/material/numpad/numpad.dom-service.js +0 -37
- package/esm2015/src/app/shared/material/numpad/numpad.module.js +0 -39
- package/esm2015/src/app/shared/material/numpad/testing/numpad.test.js +0 -44
- package/esm2015/src/app/shared/material/paginator/material.paginator-i18n.js +0 -44
- package/esm2015/src/app/shared/material/stepper/material.stepper-i18n.js +0 -24
- package/esm2015/src/app/shared/material/swipe/material.swipe.js +0 -308
- package/esm2015/src/app/shared/material/swipe/swipe.module.js +0 -33
- package/esm2015/src/app/shared/material/swipe/testing/swipe.test.js +0 -68
- package/esm2015/src/app/shared/observables.js +0 -99
- package/esm2015/src/app/shared/pipes/arrays.pipe.js +0 -92
- package/esm2015/src/app/shared/pipes/date-diff-duration.pipe.js +0 -50
- package/esm2015/src/app/shared/pipes/date-format.pipe.js +0 -43
- package/esm2015/src/app/shared/pipes/file-size.pipe.js +0 -58
- package/esm2015/src/app/shared/pipes/form.pipes.js +0 -177
- package/esm2015/src/app/shared/pipes/highlight.pipe.js +0 -43
- package/esm2015/src/app/shared/pipes/latlong-format.pipe.js +0 -36
- package/esm2015/src/app/shared/pipes/maps.pipe.js +0 -48
- package/esm2015/src/app/shared/pipes/math.pipes.js +0 -44
- package/esm2015/src/app/shared/pipes/ng-init.pipe.js +0 -18
- package/esm2015/src/app/shared/pipes/pipes.module.js +0 -115
- package/esm2015/src/app/shared/pipes/property.pipes.js +0 -98
- package/esm2015/src/app/shared/pipes/string.pipes.js +0 -53
- package/esm2015/src/app/shared/pipes/translate-context.pipe.js +0 -36
- package/esm2015/src/app/shared/platforms.js +0 -45
- package/esm2015/src/app/shared/services/entity-service.class.js +0 -17
- package/esm2015/src/app/shared/services/job.utils.js +0 -96
- package/esm2015/src/app/shared/services/memory-entity-service.class.js +0 -260
- package/esm2015/src/app/shared/services/progress-bar.service.js +0 -30
- package/esm2015/src/app/shared/services/startable-service.class.js +0 -98
- package/esm2015/src/app/shared/services/storage.utils.js +0 -41
- package/esm2015/src/app/shared/services/translate-context.service.js +0 -83
- package/esm2015/src/app/shared/services/validator-service.class.js +0 -2
- package/esm2015/src/app/shared/services.js +0 -61
- package/esm2015/src/app/shared/shared-routing.module.js +0 -54
- package/esm2015/src/app/shared/shared.module.js +0 -135
- package/esm2015/src/app/shared/shared.testing.module.js +0 -33
- package/esm2015/src/app/shared/testing/tests.page.js +0 -34
- package/esm2015/src/app/shared/toast/toast.testing.js +0 -39
- package/esm2015/src/app/shared/toast/toast.testing.module.js +0 -33
- package/esm2015/src/app/shared/toast/toasts.js +0 -119
- package/esm2015/src/app/shared/toolbar/modal-toolbar.js +0 -53
- package/esm2015/src/app/shared/toolbar/toolbar.js +0 -213
- package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.js +0 -59
- package/esm2015/src/app/shared/upload-file/testing/upload-file.testing.module.js +0 -33
- package/esm2015/src/app/shared/upload-file/upload-file-popover.component.js +0 -98
- package/esm2015/src/app/shared/upload-file/upload-file.component.js +0 -202
- package/esm2015/src/app/shared/upload-file/upload-file.model.js +0 -20
- package/esm2015/src/app/shared/validator/form-error-adapter.class.js +0 -99
- package/esm2015/src/app/shared/validator/validators.js +0 -537
- package/esm2015/src/app/social/job/job.model.js +0 -26
- package/esm2015/src/app/social/job/job.module.js +0 -25
- package/esm2015/src/app/social/job/job.service.js +0 -54
- package/esm2015/src/app/social/job/progression/job-progression.component.js +0 -200
- package/esm2015/src/app/social/job/progression/job-progression.list.js +0 -20
- package/esm2015/src/app/social/job/testing/job-progression.testing.js +0 -48
- package/esm2015/src/app/social/job/testing/job-progression.testing.service.js +0 -30
- package/esm2015/src/app/social/job/testing/job.testing.module.js +0 -25
- package/esm2015/src/app/social/message/message.form.js +0 -73
- package/esm2015/src/app/social/message/message.modal.js +0 -96
- package/esm2015/src/app/social/message/message.model.js +0 -65
- package/esm2015/src/app/social/message/message.module.js +0 -25
- package/esm2015/src/app/social/message/message.service.js +0 -87
- package/esm2015/src/app/social/social.module.js +0 -28
- package/esm2015/src/app/social/social.testing.module.js +0 -39
- package/esm2015/src/app/social/user-event/notification/user-event-notification.icon.js +0 -95
- package/esm2015/src/app/social/user-event/notification/user-event-notification.list.js +0 -203
- package/esm2015/src/app/social/user-event/testing/user-event.testing.js +0 -230
- package/esm2015/src/app/social/user-event/testing/user-event.testing.model.js +0 -103
- package/esm2015/src/app/social/user-event/testing/user-event.testing.module.js +0 -25
- package/esm2015/src/app/social/user-event/testing/user-event.testing.service.js +0 -117
- package/esm2015/src/app/social/user-event/user-event.model.js +0 -2
- package/esm2015/src/app/social/user-event/user-event.module.js +0 -27
- package/esm2015/src/app/social/user-event/user-event.service.js +0 -509
- package/esm2015/src/environments/environment.class.js +0 -5
- package/esm2015/src/environments/environment.js +0 -81
- package/esm2015/sumaris-net.ngx-components.js +0 -21
- package/fesm2015/sumaris-net.ngx-components.js +0 -29932
- package/fesm2015/sumaris-net.ngx-components.js.map +0 -1
- package/src/app/shared/services/storage.utils.d.ts +0 -13
- package/sumaris-net.ngx-components.d.ts +0 -20
- package/sumaris-net.ngx-components.metadata.json +0 -1
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { getPropertyByPathAsString, isNotEmptyArray, isNotNil, isNotNilOrBlank, matchUpperCase, propertiesPathComparator, startsWithUpperCase } from './functions';
|
|
3
|
-
export function suggestFromArray(items, value, opts) {
|
|
4
|
-
if (isNotNil(value) && typeof value === 'object')
|
|
5
|
-
return { data: [value] };
|
|
6
|
-
value = (typeof value === 'string' && value !== '*') && value.toUpperCase() || undefined;
|
|
7
|
-
const keys = opts && (opts.searchAttribute && [opts.searchAttribute] || opts.searchAttributes) || ['label'];
|
|
8
|
-
if (!items) {
|
|
9
|
-
return { data: [], total: 0 };
|
|
10
|
-
}
|
|
11
|
-
// Filter items
|
|
12
|
-
let filteredItems = items;
|
|
13
|
-
if (isNotNilOrBlank(value)) {
|
|
14
|
-
// If wildcard, search using regexp
|
|
15
|
-
if (value.indexOf('*') !== -1) {
|
|
16
|
-
value = value.replace(/[*]+/g, '.*');
|
|
17
|
-
filteredItems = filteredItems.filter(v => keys.findIndex(key => matchUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
18
|
-
}
|
|
19
|
-
// Else (no wildcard), search using startsWith
|
|
20
|
-
else {
|
|
21
|
-
filteredItems = filteredItems.filter(v => keys.findIndex(key => startsWithUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
// Exclude ids
|
|
25
|
-
if (isNotEmptyArray(opts === null || opts === void 0 ? void 0 : opts.excludedIds)) {
|
|
26
|
-
filteredItems = filteredItems.filter(v => !opts.excludedIds.includes(+v['id']));
|
|
27
|
-
}
|
|
28
|
-
// Sort
|
|
29
|
-
if (!opts || opts.skipSort !== true) {
|
|
30
|
-
// Make to copy input items, before sorting (if not yet already done)
|
|
31
|
-
if (filteredItems === items)
|
|
32
|
-
filteredItems = filteredItems.slice();
|
|
33
|
-
// Sort by keys
|
|
34
|
-
filteredItems.sort(propertiesPathComparator(keys));
|
|
35
|
-
}
|
|
36
|
-
const total = filteredItems.length || 0;
|
|
37
|
-
// Pagination (truncate if need)
|
|
38
|
-
let pageData = filteredItems;
|
|
39
|
-
if (opts) {
|
|
40
|
-
if ((opts.offset || 0) > 0) {
|
|
41
|
-
pageData = pageData.slice(opts.offset);
|
|
42
|
-
}
|
|
43
|
-
if (isNotNil(opts.size) && pageData.length > opts.size) {
|
|
44
|
-
pageData = pageData.slice(0, opts.size);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const result = {
|
|
48
|
-
data: pageData,
|
|
49
|
-
total
|
|
50
|
-
};
|
|
51
|
-
// Add fetch more capability, if total was fetched
|
|
52
|
-
const nextOffset = (opts && opts.offset || 0) + pageData.length;
|
|
53
|
-
if (nextOffset < total) {
|
|
54
|
-
result.fetchMore = (_) => __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
return suggestFromArray(filteredItems, undefined /*OPTIMISATION: already applied*/, Object.assign(Object.assign({}, opts), { offset: nextOffset, skipSort: true, excludedIds: undefined // OPTIMISATION: already filtered
|
|
56
|
-
}));
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
return result;
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsUUFBUSxFQUNSLGVBQWUsRUFDZixjQUFjLEVBQ2Qsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNwQixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLFVBQVUsZ0JBQWdCLENBQVUsS0FBVSxFQUFFLEtBQVUsRUFBRSxJQU9qRTtJQUNDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFBRSxPQUFPLEVBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQztJQUV6RSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxTQUFTLENBQUM7SUFFekYsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTVHLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUM7S0FDN0I7SUFFRCxlQUFlO0lBQ2YsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzFCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBRTFCLG1DQUFtQztRQUNuQyxJQUFLLEtBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLEtBQUssR0FBSSxLQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkk7UUFDRCw4Q0FBOEM7YUFDekM7WUFDSCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hJO0tBQ0Y7SUFFRCxjQUFjO0lBQ2QsSUFBSSxlQUFlLENBQUMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFdBQVcsQ0FBQyxFQUFFO1FBQ3RDLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakY7SUFFRCxPQUFPO0lBQ1AsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtRQUVuQyxxRUFBcUU7UUFDckUsSUFBSSxhQUFhLEtBQUssS0FBSztZQUFFLGFBQWEsR0FBRyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbkUsZUFBZTtRQUNmLGFBQWEsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNwRDtJQUVELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBRXhDLGdDQUFnQztJQUNoQyxJQUFJLFFBQVEsR0FBRyxhQUFhLENBQUM7SUFDN0IsSUFBSSxJQUFJLEVBQUU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN0RCxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pDO0tBQ0Y7SUFFRCxNQUFNLE1BQU0sR0FBa0I7UUFDNUIsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLO0tBQ04sQ0FBQztJQUVGLGtEQUFrRDtJQUNsRCxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDaEUsSUFBSSxVQUFVLEdBQUcsS0FBSyxFQUFFO1FBQ3RCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBTyxDQUFDLEVBQUUsRUFBRTtZQUFDLE9BQUEsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxpQ0FBaUMsa0NBRXBHLElBQUksS0FDUCxNQUFNLEVBQUUsVUFBVSxFQUNsQixRQUFRLEVBQUUsSUFBSSxFQUNkLFdBQVcsRUFBRSxTQUFTLENBQUMsaUNBQWlDO2dCQUN4RCxDQUFBO1VBQUEsQ0FBQztLQUNOO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9hZFJlc3VsdH0gZnJvbSAnLi9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1xuICBnZXRQcm9wZXJ0eUJ5UGF0aEFzU3RyaW5nLFxuICBpc05vdEVtcHR5QXJyYXksXG4gIGlzTm90TmlsLFxuICBpc05vdE5pbE9yQmxhbmssXG4gIG1hdGNoVXBwZXJDYXNlLFxuICBwcm9wZXJ0aWVzUGF0aENvbXBhcmF0b3IsXG4gIHN0YXJ0c1dpdGhVcHBlckNhc2Vcbn0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc3VnZ2VzdEZyb21BcnJheTxUID0gYW55PihpdGVtczogVFtdLCB2YWx1ZTogYW55LCBvcHRzPzoge1xuICBvZmZzZXQ/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG4gIHNlYXJjaEF0dHJpYnV0ZT86IHN0cmluZztcbiAgc2VhcmNoQXR0cmlidXRlcz86IHN0cmluZ1tdO1xuICBleGNsdWRlZElkcz86IG51bWJlcltdO1xuICBza2lwU29ydD86IGJvb2xlYW47XG59KTogTG9hZFJlc3VsdDxUPiB7XG4gIGlmIChpc05vdE5pbCh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JykgcmV0dXJuIHtkYXRhOiBbdmFsdWVdfTtcblxuICB2YWx1ZSA9ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlICE9PSAnKicpICYmIHZhbHVlLnRvVXBwZXJDYXNlKCkgfHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGtleXMgPSBvcHRzICYmIChvcHRzLnNlYXJjaEF0dHJpYnV0ZSAmJiBbb3B0cy5zZWFyY2hBdHRyaWJ1dGVdIHx8IG9wdHMuc2VhcmNoQXR0cmlidXRlcykgfHwgWydsYWJlbCddO1xuXG4gIGlmICghaXRlbXMpIHtcbiAgICByZXR1cm4ge2RhdGE6IFtdLCB0b3RhbDogMH07XG4gIH1cblxuICAvLyBGaWx0ZXIgaXRlbXNcbiAgbGV0IGZpbHRlcmVkSXRlbXMgPSBpdGVtcztcbiAgaWYgKGlzTm90TmlsT3JCbGFuayh2YWx1ZSkpIHtcblxuICAgIC8vIElmIHdpbGRjYXJkLCBzZWFyY2ggdXNpbmcgcmVnZXhwXG4gICAgaWYgKCh2YWx1ZSBhcyBzdHJpbmcpLmluZGV4T2YoJyonKSAhPT0gLTEpIHtcbiAgICAgIHZhbHVlID0gKHZhbHVlIGFzIHN0cmluZykucmVwbGFjZSgvWypdKy9nLCAnLionKTtcbiAgICAgIGZpbHRlcmVkSXRlbXMgPSBmaWx0ZXJlZEl0ZW1zLmZpbHRlcih2ID0+IGtleXMuZmluZEluZGV4KGtleSA9PiBtYXRjaFVwcGVyQ2FzZShnZXRQcm9wZXJ0eUJ5UGF0aEFzU3RyaW5nKHYsIGtleSksIHZhbHVlKSkgIT09IC0xKTtcbiAgICB9XG4gICAgLy8gRWxzZSAobm8gd2lsZGNhcmQpLCBzZWFyY2ggdXNpbmcgc3RhcnRzV2l0aFxuICAgIGVsc2Uge1xuICAgICAgZmlsdGVyZWRJdGVtcyA9IGZpbHRlcmVkSXRlbXMuZmlsdGVyKHYgPT4ga2V5cy5maW5kSW5kZXgoa2V5ID0+IHN0YXJ0c1dpdGhVcHBlckNhc2UoZ2V0UHJvcGVydHlCeVBhdGhBc1N0cmluZyh2LCBrZXkpLCB2YWx1ZSkpICE9PSAtMSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRXhjbHVkZSBpZHNcbiAgaWYgKGlzTm90RW1wdHlBcnJheShvcHRzPy5leGNsdWRlZElkcykpIHtcbiAgICBmaWx0ZXJlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcy5maWx0ZXIodiA9PiAhb3B0cy5leGNsdWRlZElkcy5pbmNsdWRlcygrdlsnaWQnXSkpO1xuICB9XG5cbiAgLy8gU29ydFxuICBpZiAoIW9wdHMgfHwgb3B0cy5za2lwU29ydCAhPT0gdHJ1ZSkge1xuXG4gICAgLy8gTWFrZSB0byBjb3B5IGlucHV0IGl0ZW1zLCBiZWZvcmUgc29ydGluZyAoaWYgbm90IHlldCBhbHJlYWR5IGRvbmUpXG4gICAgaWYgKGZpbHRlcmVkSXRlbXMgPT09IGl0ZW1zKSBmaWx0ZXJlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcy5zbGljZSgpO1xuXG4gICAgLy8gU29ydCBieSBrZXlzXG4gICAgZmlsdGVyZWRJdGVtcy5zb3J0KHByb3BlcnRpZXNQYXRoQ29tcGFyYXRvcihrZXlzKSk7XG4gIH1cblxuICBjb25zdCB0b3RhbCA9IGZpbHRlcmVkSXRlbXMubGVuZ3RoIHx8IDA7XG5cbiAgLy8gUGFnaW5hdGlvbiAodHJ1bmNhdGUgaWYgbmVlZClcbiAgbGV0IHBhZ2VEYXRhID0gZmlsdGVyZWRJdGVtcztcbiAgaWYgKG9wdHMpIHtcbiAgICBpZiAoKG9wdHMub2Zmc2V0IHx8IDApID4gMCkge1xuICAgICAgcGFnZURhdGEgPSBwYWdlRGF0YS5zbGljZShvcHRzLm9mZnNldCk7XG4gICAgfVxuICAgIGlmIChpc05vdE5pbChvcHRzLnNpemUpICYmIHBhZ2VEYXRhLmxlbmd0aCA+IG9wdHMuc2l6ZSkge1xuICAgICAgcGFnZURhdGEgPSBwYWdlRGF0YS5zbGljZSgwLCBvcHRzLnNpemUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogTG9hZFJlc3VsdDxUPiA9IHtcbiAgICBkYXRhOiBwYWdlRGF0YSxcbiAgICB0b3RhbFxuICB9O1xuXG4gIC8vIEFkZCBmZXRjaCBtb3JlIGNhcGFiaWxpdHksIGlmIHRvdGFsIHdhcyBmZXRjaGVkXG4gIGNvbnN0IG5leHRPZmZzZXQgPSAob3B0cyAmJiBvcHRzLm9mZnNldCB8fCAwKSArIHBhZ2VEYXRhLmxlbmd0aDtcbiAgaWYgKG5leHRPZmZzZXQgPCB0b3RhbCkge1xuICAgIHJlc3VsdC5mZXRjaE1vcmUgPSBhc3luYyAoXykgPT4gc3VnZ2VzdEZyb21BcnJheShmaWx0ZXJlZEl0ZW1zLCB1bmRlZmluZWQgLypPUFRJTUlTQVRJT046IGFscmVhZHkgYXBwbGllZCovLFxuICAgICAge1xuICAgICAgICAuLi5vcHRzLFxuICAgICAgICBvZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgIHNraXBTb3J0OiB0cnVlLCAvLyBPUFRJTUlTQVRJT046IGFscmVhZHkgc29ydGVkXG4gICAgICAgIGV4Y2x1ZGVkSWRzOiB1bmRlZmluZWQgLy8gT1BUSU1JU0FUSU9OOiBhbHJlYWR5IGZpbHRlcmVkXG4gICAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Injectable, NgModule } from '@angular/core';
|
|
2
|
-
import { RouteReuseStrategy, RouterModule } from '@angular/router';
|
|
3
|
-
import { IonicRouteStrategy } from '@ionic/angular';
|
|
4
|
-
import { ComponentDirtyGuard } from './guard/component-dirty.guard';
|
|
5
|
-
export class CustomReuseStrategy extends IonicRouteStrategy {
|
|
6
|
-
/**
|
|
7
|
-
* Force to reuse the route when:
|
|
8
|
-
* - path change from [/new] -> [/:id]
|
|
9
|
-
* - or path change from [/new] -> [/new?id=:id]
|
|
10
|
-
* @param future
|
|
11
|
-
* @param curr
|
|
12
|
-
*/
|
|
13
|
-
shouldReuseRoute(future, curr) {
|
|
14
|
-
const result = super.shouldReuseRoute(future, curr);
|
|
15
|
-
// Is sam route config
|
|
16
|
-
if (!result && future.routeConfig && future.routeConfig === curr.routeConfig) {
|
|
17
|
-
// Read the parameter name, where id is stored
|
|
18
|
-
const pathIdParam = future.routeConfig.data && future.routeConfig.data.pathIdParam || 'id';
|
|
19
|
-
// Read the current route id
|
|
20
|
-
const currId = curr.params[pathIdParam] === 'new'
|
|
21
|
-
? (curr.queryParams[pathIdParam] || curr.queryParams['id'] || 'new') // e.g. path like '/new/?id=<ID>'
|
|
22
|
-
: curr.params[pathIdParam]; // e.g. path like '/<ID>'
|
|
23
|
-
// Read the future route id
|
|
24
|
-
const futureId = future.params[pathIdParam] === 'new'
|
|
25
|
-
? (future.queryParams[pathIdParam] || future.queryParams['id'] || 'new') // e.g. path like '/new/?id=<ID>'
|
|
26
|
-
: future.params[pathIdParam]; // e.g. path like '/<ID>'
|
|
27
|
-
// Reuse if same ID, but never when 'new' expected
|
|
28
|
-
return futureId !== 'new' && currId !== 'new'
|
|
29
|
-
&& futureId === currId;
|
|
30
|
-
}
|
|
31
|
-
return result;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
CustomReuseStrategy.decorators = [
|
|
35
|
-
{ type: Injectable }
|
|
36
|
-
];
|
|
37
|
-
export class SharedRoutingModule {
|
|
38
|
-
constructor() {
|
|
39
|
-
console.debug('[shared-routing] Creating module...');
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
SharedRoutingModule.decorators = [
|
|
43
|
-
{ type: NgModule, args: [{
|
|
44
|
-
imports: [
|
|
45
|
-
RouterModule
|
|
46
|
-
],
|
|
47
|
-
providers: [
|
|
48
|
-
{ provide: RouteReuseStrategy, useClass: CustomReuseStrategy },
|
|
49
|
-
{ provide: ComponentDirtyGuard, useClass: ComponentDirtyGuard }
|
|
50
|
-
]
|
|
51
|
-
},] }
|
|
52
|
-
];
|
|
53
|
-
SharedRoutingModule.ctorParameters = () => [];
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBeUIsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFJbEUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQUV6RDs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsQ0FBQyxNQUE4QixFQUFFLElBQTRCO1FBQzNFLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFcEQsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDNUUsOENBQThDO1lBQzlDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUM7WUFFM0YsNEJBQTRCO1lBQzVCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSztnQkFDL0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLGlDQUFpQztnQkFDdEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7WUFFdkQsMkJBQTJCO1lBQzNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSztnQkFDbkQsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLGlDQUFpQztnQkFDMUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7WUFFekQsa0RBQWtEO1lBQ2xELE9BQU8sUUFBUSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssS0FBSzttQkFDeEMsUUFBUSxLQUFLLE1BQU0sQ0FBRTtTQUMzQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OztZQWxDRixVQUFVOztBQThDWCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCO1FBQ0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OztZQWJGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtpQkFDYjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO29CQUM5RCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7aUJBQ2hFO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVSZXVzZVN0cmF0ZWd5LCBSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0lvbmljUm91dGVTdHJhdGVneX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtDb21wb25lbnREaXJ0eUd1YXJkfSBmcm9tICcuL2d1YXJkL2NvbXBvbmVudC1kaXJ0eS5ndWFyZCc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEN1c3RvbVJldXNlU3RyYXRlZ3kgZXh0ZW5kcyBJb25pY1JvdXRlU3RyYXRlZ3kge1xuXG4gIC8qKlxuICAgKiBGb3JjZSB0byByZXVzZSB0aGUgcm91dGUgd2hlbjpcbiAgICogIC0gcGF0aCBjaGFuZ2UgZnJvbSBbL25ld10gLT4gWy86aWRdXG4gICAqICAtIG9yIHBhdGggY2hhbmdlIGZyb20gWy9uZXddIC0+IFsvbmV3P2lkPTppZF1cbiAgICogQHBhcmFtIGZ1dHVyZVxuICAgKiBAcGFyYW0gY3VyclxuICAgKi9cbiAgc2hvdWxkUmV1c2VSb3V0ZShmdXR1cmU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGN1cnI6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXN1bHQgPSBzdXBlci5zaG91bGRSZXVzZVJvdXRlKGZ1dHVyZSwgY3Vycik7XG5cbiAgICAvLyBJcyBzYW0gcm91dGUgY29uZmlnXG4gICAgaWYgKCFyZXN1bHQgJiYgZnV0dXJlLnJvdXRlQ29uZmlnICYmIGZ1dHVyZS5yb3V0ZUNvbmZpZyA9PT0gY3Vyci5yb3V0ZUNvbmZpZykge1xuICAgICAgLy8gUmVhZCB0aGUgcGFyYW1ldGVyIG5hbWUsIHdoZXJlIGlkIGlzIHN0b3JlZFxuICAgICAgY29uc3QgcGF0aElkUGFyYW0gPSBmdXR1cmUucm91dGVDb25maWcuZGF0YSAmJiBmdXR1cmUucm91dGVDb25maWcuZGF0YS5wYXRoSWRQYXJhbSB8fCAnaWQnO1xuXG4gICAgICAvLyBSZWFkIHRoZSBjdXJyZW50IHJvdXRlIGlkXG4gICAgICBjb25zdCBjdXJySWQgPSBjdXJyLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGN1cnIucXVlcnlQYXJhbXNbcGF0aElkUGFyYW1dIHx8IGN1cnIucXVlcnlQYXJhbXNbJ2lkJ10gfHwgJ25ldycpIC8vIGUuZy4gcGF0aCBsaWtlICcvbmV3Lz9pZD08SUQ+J1xuICAgICAgICA6IGN1cnIucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZWFkIHRoZSBmdXR1cmUgcm91dGUgaWRcbiAgICAgIGNvbnN0IGZ1dHVyZUlkID0gZnV0dXJlLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGZ1dHVyZS5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0gfHwgZnV0dXJlLnF1ZXJ5UGFyYW1zWydpZCddIHx8ICduZXcnKSAvLyBlLmcuIHBhdGggbGlrZSAnL25ldy8/aWQ9PElEPidcbiAgICAgICAgOiBmdXR1cmUucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZXVzZSBpZiBzYW1lIElELCBidXQgbmV2ZXIgd2hlbiAnbmV3JyBleHBlY3RlZFxuICAgICAgcmV0dXJuIGZ1dHVyZUlkICE9PSAnbmV3JyAmJiBjdXJySWQgIT09ICduZXcnXG4gICAgICAgICYmIGZ1dHVyZUlkID09PSBjdXJySWQgO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IFJvdXRlUmV1c2VTdHJhdGVneSwgdXNlQ2xhc3M6IEN1c3RvbVJldXNlU3RyYXRlZ3kgfSxcbiAgICB7IHByb3ZpZGU6IENvbXBvbmVudERpcnR5R3VhcmQsIHVzZUNsYXNzOiBDb21wb25lbnREaXJ0eUd1YXJkIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRSb3V0aW5nTW9kdWxlIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbc2hhcmVkLXJvdXRpbmddIENyZWF0aW5nIG1vZHVsZS4uLicpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { SharedMaterialModule } from './material/material.module';
|
|
4
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
-
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
6
|
-
import { IonicModule } from '@ionic/angular';
|
|
7
|
-
import { DateFormatPipe } from './pipes/date-format.pipe';
|
|
8
|
-
import { DateFromNowPipe } from './pipes/date-from-now.pipe';
|
|
9
|
-
import { ToolbarComponent } from './toolbar/toolbar';
|
|
10
|
-
import { TextMaskModule } from 'angular2-text-mask';
|
|
11
|
-
import { MatPaginatorIntl } from '@angular/material/paginator';
|
|
12
|
-
import { MatPaginatorI18n } from './material/paginator/material.paginator-i18n';
|
|
13
|
-
import { ProgressBarService } from './services/progress-bar.service';
|
|
14
|
-
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
15
|
-
import { ProgressInterceptor } from './interceptors/progess.interceptor';
|
|
16
|
-
import { ColorPickerModule } from 'ngx-color-picker';
|
|
17
|
-
import { AppFormField } from './form/field.component';
|
|
18
|
-
import { AudioProvider } from './audio/audio';
|
|
19
|
-
import { FullscreenOverlayContainer, Overlay, OverlayContainer } from '@angular/cdk/overlay';
|
|
20
|
-
import { SharedHotkeysModule } from './hotkeys/shared-hotkeys.module';
|
|
21
|
-
import { FileService } from './file/file.service';
|
|
22
|
-
import { ModalToolbarComponent } from './toolbar/modal-toolbar';
|
|
23
|
-
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
24
|
-
import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MAT_AUTOCOMPLETE_SCROLL_STRATEGY } from '@angular/material/autocomplete';
|
|
25
|
-
import { MAT_SELECT_SCROLL_STRATEGY } from '@angular/material/select';
|
|
26
|
-
import { SharedDirectivesModule } from './directives/directives.module';
|
|
27
|
-
import { SharedPipesModule } from './pipes/pipes.module';
|
|
28
|
-
import { AppLoadingSpinner } from './form/loading-spinner';
|
|
29
|
-
import { DateDiffDurationPipe } from './pipes/date-diff-duration.pipe';
|
|
30
|
-
import { LatitudeFormatPipe, LatLongFormatPipe, LongitudeFormatPipe } from './pipes/latlong-format.pipe';
|
|
31
|
-
import { HighlightPipe } from './pipes/highlight.pipe';
|
|
32
|
-
import { NumberFormatPipe } from './pipes/number-format.pipe';
|
|
33
|
-
import { MarkdownModule } from 'ngx-markdown';
|
|
34
|
-
import { AppHelpModal } from './help/help.modal';
|
|
35
|
-
import { ENVIRONMENT } from '../../environments/environment.class';
|
|
36
|
-
import { TranslateContextService } from './services/translate-context.service';
|
|
37
|
-
import { MatStepperIntl } from '@angular/material/stepper';
|
|
38
|
-
import { MatStepperI18n } from './material/stepper/material.stepper-i18n';
|
|
39
|
-
import { UploadFileComponent } from './upload-file/upload-file.component';
|
|
40
|
-
import { UploadFilePopover } from './upload-file/upload-file-popover.component';
|
|
41
|
-
import { SharedTestsPage } from './testing/tests.page';
|
|
42
|
-
export function scrollFactory(overlay) {
|
|
43
|
-
return () => overlay.scrollStrategies.close();
|
|
44
|
-
}
|
|
45
|
-
export class SharedModule {
|
|
46
|
-
static forRoot(environment) {
|
|
47
|
-
console.debug('[shared] Creating module (root)');
|
|
48
|
-
return {
|
|
49
|
-
ngModule: SharedModule,
|
|
50
|
-
providers: [
|
|
51
|
-
{ provide: ENVIRONMENT, useValue: environment },
|
|
52
|
-
ProgressBarService,
|
|
53
|
-
AudioProvider,
|
|
54
|
-
FileService,
|
|
55
|
-
TranslateContextService,
|
|
56
|
-
// Export Pipes as providers
|
|
57
|
-
DateFormatPipe,
|
|
58
|
-
DateFromNowPipe,
|
|
59
|
-
DateDiffDurationPipe,
|
|
60
|
-
LatLongFormatPipe,
|
|
61
|
-
LatitudeFormatPipe,
|
|
62
|
-
LongitudeFormatPipe,
|
|
63
|
-
HighlightPipe,
|
|
64
|
-
NumberFormatPipe,
|
|
65
|
-
{ provide: OverlayContainer, useClass: FullscreenOverlayContainer },
|
|
66
|
-
{ provide: HTTP_INTERCEPTORS, useClass: ProgressInterceptor, multi: true, deps: [ProgressBarService] },
|
|
67
|
-
{ provide: MatPaginatorIntl, useClass: MatPaginatorI18n, deps: [TranslateService] },
|
|
68
|
-
{ provide: MatStepperIntl, useClass: MatStepperI18n, deps: [TranslateService] },
|
|
69
|
-
// FIXME: try to force a custom overlay for autocomplete, because of there is a bug when using inside an ionic modal
|
|
70
|
-
//{ provide: Overlay, useClass: Overlay},
|
|
71
|
-
{ provide: MAT_AUTOCOMPLETE_SCROLL_STRATEGY, useFactory: scrollFactory, deps: [Overlay] },
|
|
72
|
-
{ provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, useValue: {
|
|
73
|
-
autoActiveFirstOption: true
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
{ provide: MAT_SELECT_SCROLL_STRATEGY, useFactory: scrollFactory, deps: [Overlay] }
|
|
77
|
-
]
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
SharedModule.decorators = [
|
|
82
|
-
{ type: NgModule, args: [{
|
|
83
|
-
imports: [
|
|
84
|
-
CommonModule,
|
|
85
|
-
IonicModule,
|
|
86
|
-
ReactiveFormsModule,
|
|
87
|
-
TranslateModule,
|
|
88
|
-
ColorPickerModule,
|
|
89
|
-
TextMaskModule,
|
|
90
|
-
DragDropModule,
|
|
91
|
-
MarkdownModule,
|
|
92
|
-
// Sub modules
|
|
93
|
-
SharedMaterialModule,
|
|
94
|
-
SharedDirectivesModule,
|
|
95
|
-
SharedPipesModule,
|
|
96
|
-
SharedHotkeysModule
|
|
97
|
-
],
|
|
98
|
-
declarations: [
|
|
99
|
-
// Components
|
|
100
|
-
ToolbarComponent,
|
|
101
|
-
ModalToolbarComponent,
|
|
102
|
-
AppFormField,
|
|
103
|
-
AppLoadingSpinner,
|
|
104
|
-
AppHelpModal,
|
|
105
|
-
UploadFileComponent,
|
|
106
|
-
UploadFilePopover,
|
|
107
|
-
SharedTestsPage,
|
|
108
|
-
],
|
|
109
|
-
exports: [
|
|
110
|
-
CommonModule,
|
|
111
|
-
IonicModule,
|
|
112
|
-
TranslateModule,
|
|
113
|
-
ReactiveFormsModule,
|
|
114
|
-
ColorPickerModule,
|
|
115
|
-
TextMaskModule,
|
|
116
|
-
DragDropModule,
|
|
117
|
-
MarkdownModule,
|
|
118
|
-
// Sub-modules
|
|
119
|
-
SharedMaterialModule,
|
|
120
|
-
SharedDirectivesModule,
|
|
121
|
-
SharedPipesModule,
|
|
122
|
-
SharedHotkeysModule,
|
|
123
|
-
// Components
|
|
124
|
-
ToolbarComponent,
|
|
125
|
-
ModalToolbarComponent,
|
|
126
|
-
AppFormField,
|
|
127
|
-
AppLoadingSpinner,
|
|
128
|
-
AppHelpModal,
|
|
129
|
-
UploadFileComponent,
|
|
130
|
-
UploadFilePopover,
|
|
131
|
-
SharedTestsPage
|
|
132
|
-
]
|
|
133
|
-
},] }
|
|
134
|
-
];
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FB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QXNCO29CQUN0QixpQkFBaUI7b0JBQ2pCLG1CQUFtQjtvQkFFbkIsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLHFCQUFxQjtvQkFDckIsWUFBWTtvQkFDWixpQkFBaUI7b0JBQ2pCLFlBQVk7b0JBQ1osbUJBQW1CO29CQUNuQixpQkFBaUI7b0JBQ2pCLGVBQWU7aUJBQ2hCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTaGFyZWRNYXRlcmlhbE1vZHVsZX0gZnJvbSAnLi9tYXRlcmlhbC9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0RhdGVGb3JtYXRQaXBlfSBmcm9tICcuL3BpcGVzL2RhdGUtZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHtEYXRlRnJvbU5vd1BpcGV9IGZyb20gJy4vcGlwZXMvZGF0ZS1mcm9tLW5vdy5waXBlJztcbmltcG9ydCB7VG9vbGJhckNvbXBvbmVudH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXInO1xuaW1wb3J0IHtUZXh0TWFza01vZHVsZX0gZnJvbSAnYW5ndWxhcjItdGV4dC1tYXNrJztcbmltcG9ydCB7TWF0UGFnaW5hdG9ySW50bH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7TWF0UGFnaW5hdG9ySTE4bn0gZnJvbSAnLi9tYXRlcmlhbC9wYWdpbmF0b3IvbWF0ZXJpYWwucGFnaW5hdG9yLWkxOG4nO1xuaW1wb3J0IHtQcm9ncmVzc0JhclNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvcHJvZ3Jlc3MtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtIVFRQX0lOVEVSQ0VQVE9SU30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtQcm9ncmVzc0ludGVyY2VwdG9yfSBmcm9tICcuL2ludGVyY2VwdG9ycy9wcm9nZXNzLmludGVyY2VwdG9yJztcbmltcG9ydCB7Q29sb3JQaWNrZXJNb2R1bGV9IGZyb20gJ25neC1jb2xvci1waWNrZXInO1xuaW1wb3J0IHtBcHBGb3JtRmllbGR9IGZyb20gJy4vZm9ybS9maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtBdWRpb1Byb3ZpZGVyfSBmcm9tICcuL2F1ZGlvL2F1ZGlvJztcbmltcG9ydCB7Q2xvc2VTY3JvbGxTdHJhdGVneSwgRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXIsIE92ZXJsYXksIE92ZXJsYXlDb250YWluZXJ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7U2hhcmVkSG90a2V5c01vZHVsZX0gZnJvbSAnLi9ob3RrZXlzL3NoYXJlZC1ob3RrZXlzLm1vZHVsZSc7XG5pbXBvcnQge0ZpbGVTZXJ2aWNlfSBmcm9tICcuL2ZpbGUvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7TW9kYWxUb29sYmFyQ29tcG9uZW50fSBmcm9tICcuL3Rvb2xiYXIvbW9kYWwtdG9vbGJhcic7XG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7TUFUX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlMsIE1BVF9BVVRPQ09NUExFVEVfU0NST0xMX1NUUkFURUdZfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtNQVRfU0VMRUNUX1NDUk9MTF9TVFJBVEVHWX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7U2hhcmVkRGlyZWN0aXZlc01vZHVsZX0gZnJvbSAnLi9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlJztcbmltcG9ydCB7U2hhcmVkUGlwZXNNb2R1bGV9IGZyb20gJy4vcGlwZXMvcGlwZXMubW9kdWxlJztcbmltcG9ydCB7QXBwTG9hZGluZ1NwaW5uZXJ9IGZyb20gJy4vZm9ybS9sb2FkaW5nLXNwaW5uZXInO1xuaW1wb3J0IHtEYXRlRGlmZkR1cmF0aW9uUGlwZX0gZnJvbSAnLi9waXBlcy9kYXRlLWRpZmYtZHVyYXRpb24ucGlwZSc7XG5pbXBvcnQge0xhdGl0dWRlRm9ybWF0UGlwZSwgTGF0TG9uZ0Zvcm1hdFBpcGUsIExvbmdpdHVkZUZvcm1hdFBpcGV9IGZyb20gJy4vcGlwZXMvbGF0bG9uZy1mb3JtYXQucGlwZSc7XG5pbXBvcnQge0hpZ2hsaWdodFBpcGV9IGZyb20gJy4vcGlwZXMvaGlnaGxpZ2h0LnBpcGUnO1xuaW1wb3J0IHtOdW1iZXJGb3JtYXRQaXBlfSBmcm9tICcuL3BpcGVzL251bWJlci1mb3JtYXQucGlwZSc7XG5pbXBvcnQge01hcmtkb3duTW9kdWxlfSBmcm9tICduZ3gtbWFya2Rvd24nO1xuaW1wb3J0IHtBcHBIZWxwTW9kYWx9IGZyb20gJy4vaGVscC9oZWxwLm1vZGFsJztcbmltcG9ydCB7RW52aXJvbm1lbnQsIEVOVklST05NRU5UfSBmcm9tICcuLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuaW1wb3J0IHtUcmFuc2xhdGVDb250ZXh0U2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy90cmFuc2xhdGUtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7TWF0U3RlcHBlckludGx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHtNYXRTdGVwcGVySTE4bn0gZnJvbSAnLi9tYXRlcmlhbC9zdGVwcGVyL21hdGVyaWFsLnN0ZXBwZXItaTE4bic7XG5pbXBvcnQge1VwbG9hZEZpbGVDb21wb25lbnR9IGZyb20gJy4vdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7VXBsb2FkRmlsZVBvcG92ZXJ9IGZyb20gJy4vdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUtcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHtTaGFyZWRUZXN0c1BhZ2V9IGZyb20gJy4vdGVzdGluZy90ZXN0cy5wYWdlJztcblxuXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsRmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gQ2xvc2VTY3JvbGxTdHJhdGVneSB7XG4gIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcbiAgICBUZXh0TWFza01vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBNYXJrZG93bk1vZHVsZSxcblxuICAgIC8vIFN1YiBtb2R1bGVzXG4gICAgU2hhcmVkTWF0ZXJpYWxNb2R1bGUsXG4gICAgU2hhcmVkRGlyZWN0aXZlc01vZHVsZSxcbiAgICBTaGFyZWRQaXBlc01vZHVsZSxcbiAgICBTaGFyZWRIb3RrZXlzTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC8vIENvbXBvbmVudHNcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIE1vZGFsVG9vbGJhckNvbXBvbmVudCxcbiAgICBBcHBGb3JtRmllbGQsXG4gICAgQXBwTG9hZGluZ1NwaW5uZXIsXG4gICAgQXBwSGVscE1vZGFsLFxuICAgIFVwbG9hZEZpbGVDb21wb25lbnQsXG4gICAgVXBsb2FkRmlsZVBvcG92ZXIsXG4gICAgU2hhcmVkVGVzdHNQYWdlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENvbG9yUGlja2VyTW9kdWxlLFxuICAgIFRleHRNYXNrTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIE1hcmtkb3duTW9kdWxlLFxuXG4gICAgLy8gU3ViLW1vZHVsZXNcbiAgICBTaGFyZWRNYXRlcmlhbE1vZHVsZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZEhvdGtleXNNb2R1bGUsXG5cbiAgICAvLyBDb21wb25lbnRzXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBNb2RhbFRvb2xiYXJDb21wb25lbnQsXG4gICAgQXBwRm9ybUZpZWxkLFxuICAgIEFwcExvYWRpbmdTcGlubmVyLFxuICAgIEFwcEhlbHBNb2RhbCxcbiAgICBVcGxvYWRGaWxlQ29tcG9uZW50LFxuICAgIFVwbG9hZEZpbGVQb3BvdmVyLFxuICAgIFNoYXJlZFRlc3RzUGFnZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZE1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoZW52aXJvbm1lbnQ6IEVudmlyb25tZW50KTogTW9kdWxlV2l0aFByb3ZpZGVyczxTaGFyZWRNb2R1bGU+IHtcbiAgICBjb25zb2xlLmRlYnVnKCdbc2hhcmVkXSBDcmVhdGluZyBtb2R1bGUgKHJvb3QpJyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFNoYXJlZE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuXG4gICAgICAgIHsgcHJvdmlkZTogRU5WSVJPTk1FTlQsIHVzZVZhbHVlOiBlbnZpcm9ubWVudCB9LFxuXG4gICAgICAgIFByb2dyZXNzQmFyU2VydmljZSxcbiAgICAgICAgQXVkaW9Qcm92aWRlcixcbiAgICAgICAgRmlsZVNlcnZpY2UsXG4gICAgICAgIFRyYW5zbGF0ZUNvbnRleHRTZXJ2aWNlLFxuXG4gICAgICAgIC8vIEV4cG9ydCBQaXBlcyBhcyBwcm92aWRlcnNcbiAgICAgICAgRGF0ZUZvcm1hdFBpcGUsXG4gICAgICAgIERhdGVGcm9tTm93UGlwZSxcbiAgICAgICAgRGF0ZURpZmZEdXJhdGlvblBpcGUsXG4gICAgICAgIExhdExvbmdGb3JtYXRQaXBlLFxuICAgICAgICBMYXRpdHVkZUZvcm1hdFBpcGUsXG4gICAgICAgIExvbmdpdHVkZUZvcm1hdFBpcGUsXG4gICAgICAgIEhpZ2hsaWdodFBpcGUsXG4gICAgICAgIE51bWJlckZvcm1hdFBpcGUsXG5cbiAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5Q29udGFpbmVyLCB1c2VDbGFzczogRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXIgfSxcbiAgICAgICAgeyBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUywgdXNlQ2xhc3M6IFByb2dyZXNzSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlLCBkZXBzOiBbUHJvZ3Jlc3NCYXJTZXJ2aWNlXSB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1hdFBhZ2luYXRvckludGwsIHVzZUNsYXNzOiBNYXRQYWdpbmF0b3JJMThuLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNYXRTdGVwcGVySW50bCwgdXNlQ2xhc3M6IE1hdFN0ZXBwZXJJMThuLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV0gfSxcblxuICAgICAgICAvLyBGSVhNRTogdHJ5IHRvIGZvcmNlIGEgY3VzdG9tIG92ZXJsYXkgZm9yIGF1dG9jb21wbGV0ZSwgYmVjYXVzZSBvZiB0aGVyZSBpcyBhIGJ1ZyB3aGVuIHVzaW5nIGluc2lkZSBhbiBpb25pYyBtb2RhbFxuICAgICAgICAvL3sgcHJvdmlkZTogT3ZlcmxheSwgdXNlQ2xhc3M6IE92ZXJsYXl9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9BVVRPQ09NUExFVEVfU0NST0xMX1NUUkFURUdZLCB1c2VGYWN0b3J5OiBzY3JvbGxGYWN0b3J5LCBkZXBzOiBbT3ZlcmxheV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUywgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgIGF1dG9BY3RpdmVGaXJzdE9wdGlvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfU0VMRUNUX1NDUk9MTF9TVFJBVEVHWSwgdXNlRmFjdG9yeTogc2Nyb2xsRmFjdG9yeSwgZGVwczogW092ZXJsYXldIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { MaterialTestingModule, SHARED_MATERIAL_TESTING_PAGES } from './material/material.testing.module';
|
|
4
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
-
import { ToastTestingModule } from './toast/toast.testing.module';
|
|
6
|
-
import { UploadFileTestingModule } from './upload-file/testing/upload-file.testing.module';
|
|
7
|
-
export const SHARED_TESTING_PAGES = [
|
|
8
|
-
...SHARED_MATERIAL_TESTING_PAGES,
|
|
9
|
-
{ label: 'Shared other components', divider: true },
|
|
10
|
-
{ label: 'Toast', page: '/testing/shared/toast' },
|
|
11
|
-
{ label: 'File upload', page: '/testing/shared/upload-file' }
|
|
12
|
-
];
|
|
13
|
-
export class SharedTestingModule {
|
|
14
|
-
}
|
|
15
|
-
SharedTestingModule.decorators = [
|
|
16
|
-
{ type: NgModule, args: [{
|
|
17
|
-
imports: [
|
|
18
|
-
CommonModule,
|
|
19
|
-
TranslateModule.forChild(),
|
|
20
|
-
// Testing sub-modules
|
|
21
|
-
MaterialTestingModule,
|
|
22
|
-
ToastTestingModule,
|
|
23
|
-
UploadFileTestingModule
|
|
24
|
-
],
|
|
25
|
-
exports: [
|
|
26
|
-
// Testing sub-modules
|
|
27
|
-
MaterialTestingModule,
|
|
28
|
-
ToastTestingModule,
|
|
29
|
-
UploadFileTestingModule
|
|
30
|
-
]
|
|
31
|
-
},] }
|
|
32
|
-
];
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLnRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLnRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUd6RixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBa0I7SUFDakQsR0FBRyw2QkFBNkI7SUFFaEMsRUFBQyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztJQUNqRCxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFDO0lBQy9DLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsNkJBQTZCLEVBQUM7Q0FDNUQsQ0FBQztBQW1CRixNQUFNLE9BQU8sbUJBQW1COzs7WUFqQi9CLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixlQUFlLENBQUMsUUFBUSxFQUFFO29CQUUxQixzQkFBc0I7b0JBQ3RCLHFCQUFxQjtvQkFDckIsa0JBQWtCO29CQUNsQix1QkFBdUI7aUJBQ3hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxzQkFBc0I7b0JBQ3RCLHFCQUFxQjtvQkFDckIsa0JBQWtCO29CQUNsQix1QkFBdUI7aUJBQ3hCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtNYXRlcmlhbFRlc3RpbmdNb2R1bGUsIFNIQVJFRF9NQVRFUklBTF9URVNUSU5HX1BBR0VTfSBmcm9tICcuL21hdGVyaWFsL21hdGVyaWFsLnRlc3RpbmcubW9kdWxlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7VG9hc3RUZXN0aW5nTW9kdWxlfSBmcm9tICcuL3RvYXN0L3RvYXN0LnRlc3RpbmcubW9kdWxlJztcbmltcG9ydCB7VXBsb2FkRmlsZVRlc3RpbmdNb2R1bGV9IGZyb20gJy4vdXBsb2FkLWZpbGUvdGVzdGluZy91cGxvYWQtZmlsZS50ZXN0aW5nLm1vZHVsZSc7XG5pbXBvcnQge1Rlc3RpbmdQYWdlfSBmcm9tICcuL3Rlc3RpbmcvdGVzdHMucGFnZSc7XG5cbmV4cG9ydCBjb25zdCBTSEFSRURfVEVTVElOR19QQUdFUzogVGVzdGluZ1BhZ2VbXSA9IFtcbiAgLi4uU0hBUkVEX01BVEVSSUFMX1RFU1RJTkdfUEFHRVMsXG5cbiAge2xhYmVsOiAnU2hhcmVkIG90aGVyIGNvbXBvbmVudHMnLCBkaXZpZGVyOiB0cnVlfSxcbiAge2xhYmVsOiAnVG9hc3QnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL3RvYXN0J30sXG4gIHtsYWJlbDogJ0ZpbGUgdXBsb2FkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC91cGxvYWQtZmlsZSd9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuXG4gICAgLy8gVGVzdGluZyBzdWItbW9kdWxlc1xuICAgIE1hdGVyaWFsVGVzdGluZ01vZHVsZSxcbiAgICBUb2FzdFRlc3RpbmdNb2R1bGUsXG4gICAgVXBsb2FkRmlsZVRlc3RpbmdNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIC8vIFRlc3Rpbmcgc3ViLW1vZHVsZXNcbiAgICBNYXRlcmlhbFRlc3RpbmdNb2R1bGUsXG4gICAgVG9hc3RUZXN0aW5nTW9kdWxlLFxuICAgIFVwbG9hZEZpbGVUZXN0aW5nTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkVGVzdGluZ01vZHVsZSB7XG59XG4iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, Inject, InjectionToken, Optional } from '@angular/core';
|
|
3
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
-
export const APP_TESTING_PAGES = new InjectionToken('testingPages');
|
|
6
|
-
export class SharedTestsPage {
|
|
7
|
-
constructor(route, router, translate, pages) {
|
|
8
|
-
this.route = route;
|
|
9
|
-
this.router = router;
|
|
10
|
-
this.translate = translate;
|
|
11
|
-
this.pages = pages;
|
|
12
|
-
console.info('[testing] Loaded tests pages:', pages);
|
|
13
|
-
}
|
|
14
|
-
openPage(page) {
|
|
15
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
return this.router.navigate([page], {
|
|
17
|
-
relativeTo: this.route
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
SharedTestsPage.decorators = [
|
|
23
|
-
{ type: Component, args: [{
|
|
24
|
-
selector: 'app-tests-page',
|
|
25
|
-
template: "\n<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>Tests</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list *ngIf=\"pages?.length\">\n\n <ng-container *ngFor=\"let item of pages\">\n\n <ion-item-divider *ngIf=\"item.divider; else link\">{{item.label}}</ion-item-divider>\n\n <ng-template #link>\n <ion-item tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n </ng-template>\n </ng-container>\n </ion-list>\n\n</ion-content>\n"
|
|
26
|
-
},] }
|
|
27
|
-
];
|
|
28
|
-
SharedTestsPage.ctorParameters = () => [
|
|
29
|
-
{ type: ActivatedRoute },
|
|
30
|
-
{ type: Router },
|
|
31
|
-
{ type: TranslateService },
|
|
32
|
-
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
|
|
33
|
-
];
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdHMucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3Rlc3RpbmcvdGVzdHMucGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBUXJELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFnQixjQUFjLENBQUMsQ0FBQztBQU1uRixNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUNjLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxTQUEyQixFQUNTLEtBQW9CO1FBSHhELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNTLFVBQUssR0FBTCxLQUFLLENBQWU7UUFFcEUsT0FBTyxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUssUUFBUSxDQUFDLElBQUk7O1lBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ3ZCLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTs7O1lBbkJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixzcEJBQWdDO2FBQ2pDOzs7WUFkTyxjQUFjO1lBQUUsTUFBTTtZQUN0QixnQkFBZ0I7d0NBb0JqQixRQUFRLFlBQUksTUFBTSxTQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGVzdGluZ1BhZ2Uge1xuICBsYWJlbDogc3RyaW5nO1xuICBwYWdlPzogc3RyaW5nO1xuICBkaXZpZGVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IEFQUF9URVNUSU5HX1BBR0VTID0gbmV3IEluamVjdGlvblRva2VuPFRlc3RpbmdQYWdlW10+KCd0ZXN0aW5nUGFnZXMnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlc3RzLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVzdHMucGFnZS5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRUZXN0c1BhZ2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcbiAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9URVNUSU5HX1BBR0VTKSBwdWJsaWMgcGFnZXM6IFRlc3RpbmdQYWdlW11cbiAgICApIHtcbiAgICBjb25zb2xlLmluZm8oJ1t0ZXN0aW5nXSBMb2FkZWQgdGVzdHMgcGFnZXM6JywgcGFnZXMpO1xuICB9XG5cbiAgYXN5bmMgb3BlblBhZ2UocGFnZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGFnZV0sIHtcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGVcbiAgICB9KTtcbiAgfVxufVxuXG4iXX0=
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { ToastController } from '@ionic/angular';
|
|
3
|
-
import { Toasts } from './toasts';
|
|
4
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
-
export class ToastTestingPage {
|
|
6
|
-
constructor(toastController, translate) {
|
|
7
|
-
this.toastController = toastController;
|
|
8
|
-
this.translate = translate;
|
|
9
|
-
this.defaultOptions = {
|
|
10
|
-
showCloseButton: false
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
showToast(opts) {
|
|
14
|
-
return Toasts.show(this.toastController, this.translate, Object.assign(Object.assign(Object.assign({}, this.defaultOptions), { message: 'This is a message' }), opts));
|
|
15
|
-
}
|
|
16
|
-
showInfo(opts) {
|
|
17
|
-
return this.showToast(Object.assign({ type: 'info', message: 'This is a info text !' }, opts));
|
|
18
|
-
}
|
|
19
|
-
showWarning(opts) {
|
|
20
|
-
return this.showToast(Object.assign({ type: 'warning', message: 'This is a warning text !' }, opts));
|
|
21
|
-
}
|
|
22
|
-
showError(opts) {
|
|
23
|
-
return this.showToast(Object.assign({ type: 'error', message: 'This is a error text !' }, opts));
|
|
24
|
-
}
|
|
25
|
-
toggleCloseButton() {
|
|
26
|
-
this.defaultOptions.showCloseButton = !this.defaultOptions.showCloseButton;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
ToastTestingPage.decorators = [
|
|
30
|
-
{ type: Component, args: [{
|
|
31
|
-
selector: 'toast-testing',
|
|
32
|
-
template: "<ion-toolbar color=\"primary\">\n <ion-title>Toasts</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <p>Toast examples:</p>\n\n <ion-button (click)=\"showToast()\" color=\"dark\">\n default\n </ion-button>\n\n <ion-button (click)=\"showInfo({duration: 100000})\" color=\"secondary\">\n info\n </ion-button>\n\n <ion-button (click)=\"showWarning()\" color=\"accent\">\n warning\n </ion-button>\n\n <ion-button (click)=\"showError()\" color=\"danger\">\n error\n </ion-button>\n\n <br/>\n\n\n <ion-list>\n\n\n <ion-item>\n <ion-checkbox slot=\"start\" [value]=\"defaultOptions.showCloseButton\" (ionChange)=\"toggleCloseButton()\"></ion-checkbox>\n <ion-label>Close button ?</ion-label>\n </ion-item>\n </ion-list>\n\n\n</ion-content>\n"
|
|
33
|
-
},] }
|
|
34
|
-
];
|
|
35
|
-
ToastTestingPage.ctorParameters = () => [
|
|
36
|
-
{ type: ToastController },
|
|
37
|
-
{ type: TranslateService }
|
|
38
|
-
];
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3RvYXN0L3RvYXN0LnRlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFtQixNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFNckQsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUNVLGVBQWdDLEVBQ2hDLFNBQTJCO1FBRDNCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQU41QixtQkFBYyxHQUFxQjtZQUMxQyxlQUFlLEVBQUUsS0FBSztTQUN2QixDQUFDO0lBTUYsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUF1QjtRQUMvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxnREFDbEQsSUFBSSxDQUFDLGNBQWMsS0FDdEIsT0FBTyxFQUFFLG1CQUFtQixLQUN6QixJQUFJLEVBQ1AsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBdUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxpQkFDbkIsSUFBSSxFQUFFLE1BQU0sRUFDWixPQUFPLEVBQUUsdUJBQXVCLElBQzdCLElBQUksRUFDUCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUF1QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLGlCQUNuQixJQUFJLEVBQUUsU0FBUyxFQUNmLE9BQU8sRUFBRSwwQkFBMEIsSUFDaEMsSUFBSSxFQUNQLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQXVCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsaUJBQ25CLElBQUksRUFBRSxPQUFPLEVBQ2IsT0FBTyxFQUFFLHdCQUF3QixJQUM5QixJQUFJLEVBQ1AsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQzdFLENBQUM7OztZQWxERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLDB5QkFBaUM7YUFDbEM7OztZQVBPLGVBQWU7WUFFZixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RvYXN0Q29udHJvbGxlcn0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtTaG93VG9hc3RPcHRpb25zLCBUb2FzdHN9IGZyb20gJy4vdG9hc3RzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvYXN0LXRlc3RpbmcnLFxuICB0ZW1wbGF0ZVVybDogJ3RvYXN0LnRlc3RpbmcuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RUZXN0aW5nUGFnZSAge1xuXG4gIHJlYWRvbmx5IGRlZmF1bHRPcHRpb25zOiBTaG93VG9hc3RPcHRpb25zID0ge1xuICAgIHNob3dDbG9zZUJ1dHRvbjogZmFsc2VcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgc2hvd1RvYXN0KG9wdHM/OiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgcmV0dXJuIFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgLi4udGhpcy5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIG1lc3NhZ2U6ICdUaGlzIGlzIGEgbWVzc2FnZScsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBzaG93SW5mbyhvcHRzPzogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgcmV0dXJuIHRoaXMuc2hvd1RvYXN0KHtcbiAgICAgdHlwZTogJ2luZm8nLFxuICAgICBtZXNzYWdlOiAnVGhpcyBpcyBhIGluZm8gdGV4dCAhJyxcbiAgICAgLi4ub3B0c1xuICAgfSk7XG4gIH1cblxuICBzaG93V2FybmluZyhvcHRzPzogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnNob3dUb2FzdCh7XG4gICAgICB0eXBlOiAnd2FybmluZycsXG4gICAgICBtZXNzYWdlOiAnVGhpcyBpcyBhIHdhcm5pbmcgdGV4dCAhJyxcbiAgICAgIC4uLm9wdHNcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dFcnJvcihvcHRzPzogU2hvd1RvYXN0T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnNob3dUb2FzdCh7XG4gICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ1RoaXMgaXMgYSBlcnJvciB0ZXh0ICEnLFxuICAgICAgLi4ub3B0c1xuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlQ2xvc2VCdXR0b24oKSB7XG4gICAgdGhpcy5kZWZhdWx0T3B0aW9ucy5zaG93Q2xvc2VCdXR0b24gPSAhdGhpcy5kZWZhdWx0T3B0aW9ucy5zaG93Q2xvc2VCdXR0b247XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { RouterModule } from '@angular/router';
|
|
3
|
-
import { IonicModule } from '@ionic/angular';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
-
import { ToastTestingPage } from './toast.testing';
|
|
7
|
-
const routes = [
|
|
8
|
-
{
|
|
9
|
-
path: 'toast',
|
|
10
|
-
pathMatch: 'full',
|
|
11
|
-
component: ToastTestingPage
|
|
12
|
-
}
|
|
13
|
-
];
|
|
14
|
-
export class ToastTestingModule {
|
|
15
|
-
}
|
|
16
|
-
ToastTestingModule.decorators = [
|
|
17
|
-
{ type: NgModule, args: [{
|
|
18
|
-
imports: [
|
|
19
|
-
CommonModule,
|
|
20
|
-
IonicModule,
|
|
21
|
-
TranslateModule.forChild(),
|
|
22
|
-
RouterModule.forChild(routes)
|
|
23
|
-
],
|
|
24
|
-
declarations: [
|
|
25
|
-
ToastTestingPage
|
|
26
|
-
],
|
|
27
|
-
exports: [
|
|
28
|
-
RouterModule,
|
|
29
|
-
ToastTestingPage
|
|
30
|
-
]
|
|
31
|
-
},] }
|
|
32
|
-
];
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QudGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b2FzdC90b2FzdC50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLE1BQU07UUFDakIsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QjtDQUNGLENBQUM7QUFpQkYsTUFBTSxPQUFPLGtCQUFrQjs7O1lBZjlCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLGVBQWUsQ0FBQyxRQUFRLEVBQUU7b0JBQzFCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2lCQUM5QjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osZ0JBQWdCO2lCQUNqQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixnQkFBZ0I7aUJBQ2pCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyTW9kdWxlLCBSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7VG9hc3RUZXN0aW5nUGFnZX0gZnJvbSAnLi90b2FzdC50ZXN0aW5nJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAndG9hc3QnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIGNvbXBvbmVudDogVG9hc3RUZXN0aW5nUGFnZVxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRvYXN0VGVzdGluZ1BhZ2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJvdXRlck1vZHVsZSxcbiAgICBUb2FzdFRlc3RpbmdQYWdlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RUZXN0aW5nTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { createAnimation, IonicSafeString } from '@ionic/angular';
|
|
3
|
-
import { isEmptyArray, isNotNil } from '../functions';
|
|
4
|
-
const TOAST_MAX_HEIGHT_PX = 75;
|
|
5
|
-
const TOAST_MAX_STACK_SIZE = 4;
|
|
6
|
-
export class Toasts {
|
|
7
|
-
static show(toastController, translate, opts) {
|
|
8
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
9
|
-
if (!toastController || !translate) {
|
|
10
|
-
console.error('Missing required argument \'toastController\' or \'translate\'');
|
|
11
|
-
if (opts.message instanceof IonicSafeString)
|
|
12
|
-
console.info('[toasts] message: ' + (translate && translate.instant(opts.message.value) || opts.message.value));
|
|
13
|
-
else if (typeof opts.message === 'string')
|
|
14
|
-
console.info('[toasts] message: ' + (translate && translate.instant(opts.message, opts.messageParams) || opts.message));
|
|
15
|
-
return Promise.resolve({});
|
|
16
|
-
}
|
|
17
|
-
this.counter++; // Increment toast counter
|
|
18
|
-
let currentOffset = this.stackSize;
|
|
19
|
-
if (this.stackSize < TOAST_MAX_STACK_SIZE) {
|
|
20
|
-
this.stackSize++; // Increment stack offset
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
this.stackSize = 1; // Reset the stack
|
|
24
|
-
currentOffset = 0;
|
|
25
|
-
}
|
|
26
|
-
const updateCounters = () => {
|
|
27
|
-
// Decrease counter
|
|
28
|
-
this.counter--;
|
|
29
|
-
// If all toast closed: reset the stack offset
|
|
30
|
-
if (this.counter === 0) {
|
|
31
|
-
this.stackSize = 0;
|
|
32
|
-
}
|
|
33
|
-
// If current toast is the last one, decrease the offset
|
|
34
|
-
else if (this.stackSize == currentOffset + 1) {
|
|
35
|
-
this.stackSize--;
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
const message = opts.message && opts.message instanceof IonicSafeString ? opts.message.value : opts.message;
|
|
39
|
-
const i18nKeys = [message];
|
|
40
|
-
if (opts.header)
|
|
41
|
-
i18nKeys.push(opts.header);
|
|
42
|
-
let closeButton;
|
|
43
|
-
if (opts.showCloseButton) {
|
|
44
|
-
opts.buttons = opts.buttons || [];
|
|
45
|
-
const buttonIndex = opts.buttons
|
|
46
|
-
.map(b => typeof b === 'object' && b || undefined)
|
|
47
|
-
.filter(isNotNil)
|
|
48
|
-
.findIndex(b => b.role === 'close');
|
|
49
|
-
if (buttonIndex !== -1) {
|
|
50
|
-
closeButton = opts.buttons[buttonIndex];
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
closeButton = { role: 'close' };
|
|
54
|
-
opts.buttons.push(closeButton);
|
|
55
|
-
}
|
|
56
|
-
closeButton.text = closeButton.text || 'COMMON.BTN_OK';
|
|
57
|
-
i18nKeys.push(closeButton.text);
|
|
58
|
-
}
|
|
59
|
-
// Read CSS
|
|
60
|
-
const cssArray = opts.cssClass && typeof opts.cssClass === 'string' && opts.cssClass.split(',') || opts.cssClass || [];
|
|
61
|
-
// Add 'error' class, if need
|
|
62
|
-
if (opts.type) {
|
|
63
|
-
switch (opts.type) {
|
|
64
|
-
case 'error':
|
|
65
|
-
opts.header = 'ERROR';
|
|
66
|
-
cssArray.push('danger');
|
|
67
|
-
break;
|
|
68
|
-
case 'warning':
|
|
69
|
-
cssArray.push('accent');
|
|
70
|
-
break;
|
|
71
|
-
case 'info':
|
|
72
|
-
cssArray.push('secondary');
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
opts.cssClass = cssArray;
|
|
77
|
-
const translations = translate.instant(i18nKeys);
|
|
78
|
-
if (opts.messageParams) {
|
|
79
|
-
translations[message] = translate.instant(message, opts.messageParams);
|
|
80
|
-
}
|
|
81
|
-
if (closeButton) {
|
|
82
|
-
closeButton.text = translations[closeButton.text];
|
|
83
|
-
}
|
|
84
|
-
// Retrieve the toast position
|
|
85
|
-
const position = opts.position || (opts.mode === 'ios' ? 'bottom' : 'top');
|
|
86
|
-
if (!opts.enterAnimation && position !== 'middle') {
|
|
87
|
-
// Compute positions, using the stack offset
|
|
88
|
-
const direction = position === 'top' ? 1 : -1;
|
|
89
|
-
const start = (currentOffset) * TOAST_MAX_HEIGHT_PX - direction * TOAST_MAX_HEIGHT_PX;
|
|
90
|
-
const end = direction * (currentOffset) * TOAST_MAX_HEIGHT_PX;
|
|
91
|
-
opts.enterAnimation = (baseEl, opts) => createAnimation()
|
|
92
|
-
.addElement(baseEl.querySelector('.toast-wrapper'))
|
|
93
|
-
.duration(250)
|
|
94
|
-
.fromTo('transform', `translateY(${start}px)`, `translateY(${end}px)`)
|
|
95
|
-
.fromTo('opacity', '0', '1');
|
|
96
|
-
}
|
|
97
|
-
const toast = yield toastController.create(Object.assign(Object.assign({
|
|
98
|
-
// Default values
|
|
99
|
-
position, duration: opts.showCloseButton ? 10000 : 4000 }, opts), { message: translations[message], header: opts.header && translations[opts.header] || undefined }));
|
|
100
|
-
if (opts.onWillPresent)
|
|
101
|
-
opts.onWillPresent(toast);
|
|
102
|
-
yield toast.present();
|
|
103
|
-
if (isEmptyArray(opts.buttons)) {
|
|
104
|
-
// Not need to wait dismiss (no 'await')
|
|
105
|
-
toast.onDidDismiss().then(updateCounters);
|
|
106
|
-
return null; // no result
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
// Wait for button result
|
|
110
|
-
const result = yield toast.onDidDismiss();
|
|
111
|
-
updateCounters();
|
|
112
|
-
return result;
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
Toasts.counter = 0;
|
|
118
|
-
Toasts.stackSize = 0;
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdG9hc3QvdG9hc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLGVBQWUsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRixPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUVwRCxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQztBQVMvQixNQUFNLE9BQU8sTUFBTTtJQUlqQixNQUFNLENBQU8sSUFBSSxDQUNmLGVBQWdDLEVBQ2hDLFNBQTJCLEVBQzNCLElBQXNCOztZQUV0QixJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7Z0JBQ2hGLElBQUksSUFBSSxDQUFDLE9BQU8sWUFBWSxlQUFlO29CQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztxQkFDeEosSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUTtvQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ25LLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM1QjtZQUVE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Q0FBQzthQUNmO1FBQ0gsQ0FBQztLQUFBOztBQW5JTSxjQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQ1osZ0JBQVMsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUFuaW1hdGlvbiwgSW9uaWNTYWZlU3RyaW5nLCBUb2FzdENvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge092ZXJsYXlFdmVudERldGFpbCwgVG9hc3RPcHRpb25zfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQge1RvYXN0QnV0dG9ufSBmcm9tICdAaW9uaWMvY29yZS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QtaW50ZXJmYWNlJztcbmltcG9ydCB7aXNFbXB0eUFycmF5LCBpc05vdE5pbH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuY29uc3QgVE9BU1RfTUFYX0hFSUdIVF9QWCA9IDc1O1xuY29uc3QgVE9BU1RfTUFYX1NUQUNLX1NJWkUgPSA0O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2hvd1RvYXN0T3B0aW9ucyBleHRlbmRzIFRvYXN0T3B0aW9ucyB7XG4gIHR5cGU/OiAnZXJyb3InfCd3YXJuaW5nJ3wnaW5mbyc7XG4gIG1lc3NhZ2VQYXJhbXM/OiBhbnk7XG4gIHNob3dDbG9zZUJ1dHRvbj86IGJvb2xlYW47XG4gIG9uV2lsbFByZXNlbnQ/OiAodG9hc3Q6IEhUTUxJb25Ub2FzdEVsZW1lbnQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBUb2FzdHMge1xuICBzdGF0aWMgY291bnRlciA9IDA7XG4gIHN0YXRpYyBzdGFja1NpemUgPSAwO1xuXG4gIHN0YXRpYyBhc3luYyBzaG93PFQgPSBhbnk+KFxuICAgIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBvcHRzOiBTaG93VG9hc3RPcHRpb25zXG4gICk6IFByb21pc2U8T3ZlcmxheUV2ZW50RGV0YWlsPFQ+PiB7XG4gICAgaWYgKCF0b2FzdENvbnRyb2xsZXIgfHwgIXRyYW5zbGF0ZSkge1xuICAgICAgY29uc29sZS5lcnJvcignTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCBcXCd0b2FzdENvbnRyb2xsZXJcXCcgb3IgXFwndHJhbnNsYXRlXFwnJyk7XG4gICAgICBpZiAob3B0cy5tZXNzYWdlIGluc3RhbmNlb2YgSW9uaWNTYWZlU3RyaW5nKSBjb25zb2xlLmluZm8oJ1t0b2FzdHNdIG1lc3NhZ2U6ICcgKyAodHJhbnNsYXRlICYmIHRyYW5zbGF0ZS5pbnN0YW50KG9wdHMubWVzc2FnZS52YWx1ZSkgfHwgb3B0cy5tZXNzYWdlLnZhbHVlKSk7XG4gICAgICBlbHNlIGlmICh0eXBlb2Ygb3B0cy5tZXNzYWdlID09PSAnc3RyaW5nJykgY29uc29sZS5pbmZvKCdbdG9hc3RzXSBtZXNzYWdlOiAnICsgKHRyYW5zbGF0ZSAmJiB0cmFuc2xhdGUuaW5zdGFudChvcHRzLm1lc3NhZ2UsIG9wdHMubWVzc2FnZVBhcmFtcykgfHwgb3B0cy5tZXNzYWdlKSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG5cbiAgICB0aGlzLmNvdW50ZXIrKzsgLy8gSW5jcmVtZW50IHRvYXN0IGNvdW50ZXJcbiAgICBsZXQgY3VycmVudE9mZnNldCA9IHRoaXMuc3RhY2tTaXplO1xuICAgIGlmICh0aGlzLnN0YWNrU2l6ZSA8IFRPQVNUX01BWF9TVEFDS19TSVpFKSB7XG4gICAgICB0aGlzLnN0YWNrU2l6ZSsrOyAvLyBJbmNyZW1lbnQgc3RhY2sgb2Zmc2V0XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zdGFja1NpemUgPSAxOyAvLyBSZXNldCB0aGUgc3RhY2tcbiAgICAgIGN1cnJlbnRPZmZzZXQgPSAwO1xuICAgIH1cbiAgICBjb25zdCB1cGRhdGVDb3VudGVycyA9ICgpID0+IHtcbiAgICAgIC8vIERlY3JlYXNlIGNvdW50ZXJcbiAgICAgIHRoaXMuY291bnRlci0tO1xuICAgICAgLy8gSWYgYWxsIHRvYXN0IGNsb3NlZDogcmVzZXQgdGhlIHN0YWNrIG9mZnNldFxuICAgICAgaWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xuICAgICAgICB0aGlzLnN0YWNrU2l6ZSA9IDA7XG4gICAgICB9XG4gICAgICAvLyBJZiBjdXJyZW50IHRvYXN0IGlzIHRoZSBsYXN0IG9uZSwgZGVjcmVhc2UgdGhlIG9mZnNldFxuICAgICAgZWxzZSBpZiAodGhpcy5zdGFja1NpemUgPT0gY3VycmVudE9mZnNldCArIDEpe1xuICAgICAgICB0aGlzLnN0YWNrU2l6ZS0tO1xuICAgICAgfVxuICAgIH07XG5cblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBvcHRzLm1lc3NhZ2UgJiYgb3B0cy5tZXNzYWdlIGluc3RhbmNlb2YgSW9uaWNTYWZlU3RyaW5nID8gb3B0cy5tZXNzYWdlLnZhbHVlIDogb3B0cy5tZXNzYWdlIGFzIHN0cmluZztcbiAgICBjb25zdCBpMThuS2V5cyA9IFttZXNzYWdlXTtcbiAgICBpZiAob3B0cy5oZWFkZXIpIGkxOG5LZXlzLnB1c2gob3B0cy5oZWFkZXIpO1xuXG4gICAgbGV0IGNsb3NlQnV0dG9uOiBUb2FzdEJ1dHRvbjtcbiAgICBpZiAob3B0cy5zaG93Q2xvc2VCdXR0b24pIHtcbiAgICAgIG9wdHMuYnV0dG9ucyA9IG9wdHMuYnV0dG9ucyB8fCBbXTtcbiAgICAgIGNvbnN0IGJ1dHRvbkluZGV4ID0gb3B0cy5idXR0b25zXG4gICAgICAgIC5tYXAoYiA9PiB0eXBlb2YgYiA9PT0gJ29iamVjdCcgJiYgYiBhcyBUb2FzdEJ1dHRvbiB8fCB1bmRlZmluZWQpXG4gICAgICAgIC5maWx0ZXIoaXNOb3ROaWwpXG4gICAgICAgIC5maW5kSW5kZXgoYiA9PiBiLnJvbGUgPT09ICdjbG9zZScpO1xuICAgICAgaWYgKGJ1dHRvbkluZGV4ICE9PSAtMSkge1xuICAgICAgICBjbG9zZUJ1dHRvbiA9IG9wdHMuYnV0dG9uc1tidXR0b25JbmRleF0gYXMgVG9hc3RCdXR0b247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUJ1dHRvbiA9IHtyb2xlOiAnY2xvc2UnfTtcbiAgICAgICAgb3B0cy5idXR0b25zLnB1c2goY2xvc2VCdXR0b24pO1xuICAgICAgfVxuICAgICAgY2xvc2VCdXR0b24udGV4dCA9IGNsb3NlQnV0dG9uLnRleHQgfHwgJ0NPTU1PTi5CVE5fT0snO1xuICAgICAgaTE4bktleXMucHVzaChjbG9zZUJ1dHRvbi50ZXh0KTtcbiAgICB9XG5cbiAgICAvLyBSZWFkIENTU1xuICAgIGNvbnN0IGNzc0FycmF5ID0gb3B0cy5jc3NDbGFzcyAmJiB0eXBlb2Ygb3B0cy5jc3NDbGFzcyA9PT0gJ3N0cmluZycgJiYgb3B0cy5jc3NDbGFzcy5zcGxpdCgnLCcpIHx8IChvcHRzLmNzc0NsYXNzIGFzIEFycmF5PHN0cmluZz4pIHx8IFtdO1xuXG4gICAgLy8gQWRkICdlcnJvcicgY2xhc3MsIGlmIG5lZWRcbiAgICBpZiAob3B0cy50eXBlKSB7XG4gICAgICBzd2l0Y2ggKG9wdHMudHlwZSkge1xuICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgb3B0cy5oZWFkZXIgPSAnRVJST1InO1xuICAgICAgICAgIGNzc0FycmF5LnB1c2goJ2RhbmdlcicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICBjc3NBcnJheS5wdXNoKCdhY2NlbnQnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgY3NzQXJyYXkucHVzaCgnc2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgb3B0cy5jc3NDbGFzcyA9IGNzc0FycmF5O1xuXG4gICAgY29uc3QgdHJhbnNsYXRpb25zID0gdHJhbnNsYXRlLmluc3RhbnQoaTE4bktleXMpO1xuICAgIGlmIChvcHRzLm1lc3NhZ2VQYXJhbXMpIHtcbiAgICAgIHRyYW5zbGF0aW9uc1ttZXNzYWdlXSA9IHRyYW5zbGF0ZS5pbnN0YW50KG1lc3NhZ2UsIG9wdHMubWVzc2FnZVBhcmFtcyk7XG4gICAgfVxuXG4gICAgaWYgKGNsb3NlQnV0dG9uKSB7XG4gICAgICBjbG9zZUJ1dHRvbi50ZXh0ID0gdHJhbnNsYXRpb25zW2Nsb3NlQnV0dG9uLnRleHRdO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIHRoZSB0b2FzdCBwb3NpdGlvblxuICAgIGNvbnN0IHBvc2l0aW9uID0gb3B0cy5wb3NpdGlvbiB8fCAob3B0cy5tb2RlID09PSAnaW9zJyA/ICdib3R0b20nIDogJ3RvcCcpO1xuXG4gICAgaWYgKCFvcHRzLmVudGVyQW5pbWF0aW9uICYmIHBvc2l0aW9uICE9PSAnbWlkZGxlJykge1xuICAgICAgLy8gQ29tcHV0ZSBwb3NpdGlvbnMsIHVzaW5nIHRoZSBzdGFjayBvZmZzZXRcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHBvc2l0aW9uID09PSAndG9wJyA/IDEgOiAtMTtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gKGN1cnJlbnRPZmZzZXQpICogVE9BU1RfTUFYX0hFSUdIVF9QWCAgLSBkaXJlY3Rpb24gKiBUT0FTVF9NQVhfSEVJR0hUX1BYO1xuICAgICAgY29uc3QgZW5kID0gZGlyZWN0aW9uICogKGN1cnJlbnRPZmZzZXQpICogVE9BU1RfTUFYX0hFSUdIVF9QWDtcbiAgICAgIG9wdHMuZW50ZXJBbmltYXRpb24gPSAoYmFzZUVsOiBhbnksIG9wdHM/OiBhbnkpID0+IGNyZWF0ZUFuaW1hdGlvbigpXG4gICAgICAgICAgLmFkZEVsZW1lbnQoYmFzZUVsLnF1ZXJ5U2VsZWN0b3IoJy50b2FzdC13cmFwcGVyJykpXG4gICAgICAgICAgLmR1cmF0aW9uKDI1MClcbiAgICAgICAgICAuZnJvbVRvKCd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlWSgke3N0YXJ0fXB4KWAsIGB0cmFuc2xhdGVZKCR7ZW5kfXB4KWApXG4gICAgICAgICAgLmZyb21Ubygnb3BhY2l0eScsICcwJywgJzEnKTtcbiAgICB9XG5cbiAgICBjb25zdCB0b2FzdCA9IGF3YWl0IHRvYXN0Q29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgLy8gRGVmYXVsdCB2YWx1ZXNcbiAgICAgIHBvc2l0aW9uLFxuICAgICAgZHVyYXRpb246IG9wdHMuc2hvd0Nsb3NlQnV0dG9uID8gMTAwMDAgOiA0MDAwLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1lc3NhZ2U6IHRyYW5zbGF0aW9uc1ttZXNzYWdlXSxcbiAgICAgIGhlYWRlcjogb3B0cy5oZWFkZXIgJiYgdHJhbnNsYXRpb25zW29wdHMuaGVhZGVyXSB8fCB1bmRlZmluZWRcbiAgICB9KTtcblxuICAgIGlmIChvcHRzLm9uV2lsbFByZXNlbnQpIG9wdHMub25XaWxsUHJlc2VudCh0b2FzdCk7XG5cbiAgICBhd2FpdCB0b2FzdC5wcmVzZW50KCk7XG5cbiAgICBpZiAoaXNFbXB0eUFycmF5KG9wdHMuYnV0dG9ucykpIHtcbiAgICAgIC8vIE5vdCBuZWVkIHRvIHdhaXQgZGlzbWlzcyAobm8gJ2F3YWl0JylcbiAgICAgIHRvYXN0Lm9uRGlkRGlzbWlzcygpLnRoZW4odXBkYXRlQ291bnRlcnMpO1xuICAgICAgcmV0dXJuIG51bGw7IC8vIG5vIHJlc3VsdFxuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgLy8gV2FpdCBmb3IgYnV0dG9uIHJlc3VsdFxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdG9hc3Qub25EaWREaXNtaXNzKCk7XG5cbiAgICAgIHVwZGF0ZUNvdW50ZXJzKCk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG59XG4iXX0=
|