@sumaris-net/ngx-components 1.2.7 → 1.2.14
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/README.md +9 -7
- package/doc/build.md +2 -2
- package/doc/changelog.md +402 -1
- package/esm2020/public_api.mjs +298 -0
- package/esm2020/src/app/admin/admin-routing.module.mjs +41 -0
- package/esm2020/src/app/admin/admin.module.mjs +34 -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/users.mjs +234 -0
- package/esm2020/src/app/admin/users/users.module.mjs +54 -0
- package/esm2020/src/app/core/about/about.modal.mjs +71 -0
- package/esm2020/src/app/core/about/about.module.mjs +34 -0
- package/esm2020/src/app/core/account/account.module.mjs +43 -0
- package/esm2020/src/app/core/account/account.page.mjs +245 -0
- package/esm2020/src/app/core/auth/auth.form.mjs +131 -0
- package/esm2020/src/app/core/auth/auth.modal.mjs +72 -0
- package/esm2020/src/app/core/auth/auth.module.mjs +47 -0
- package/esm2020/src/app/core/core.module.mjs +184 -0
- package/esm2020/src/app/core/core.testing.module.mjs +86 -0
- package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +71 -0
- package/esm2020/src/app/core/form/buttons/form-buttons-bar.module.mjs +35 -0
- package/esm2020/src/app/core/form/entity/editor.class.mjs +675 -0
- package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +419 -0
- package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +652 -0
- package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +25 -0
- package/esm2020/src/app/core/form/entity/entity.module.mjs +38 -0
- package/esm2020/src/app/core/form/form.class.mjs +340 -0
- package/esm2020/src/app/core/form/form.module.mjs +66 -0
- package/esm2020/src/app/core/form/form.utils.mjs +473 -0
- package/esm2020/src/app/core/form/list/list.form.mjs +222 -0
- package/esm2020/src/app/core/form/list/list.module.mjs +35 -0
- package/esm2020/src/app/core/form/properties/properties.form.mjs +129 -0
- package/esm2020/src/app/core/form/properties/properties.module.mjs +35 -0
- package/esm2020/src/app/core/form/properties/property.validator.mjs +23 -0
- package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +90 -0
- package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +39 -0
- package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +37 -0
- package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +45 -0
- package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +89 -0
- package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +105 -0
- package/esm2020/src/app/core/form/text-popover/text-popover.module.mjs +40 -0
- package/esm2020/src/app/core/graphql/graphql.module.mjs +22 -0
- package/esm2020/src/app/core/graphql/graphql.service.mjs +749 -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/home/home.module.mjs +48 -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 +35 -0
- package/esm2020/src/app/core/menu/menu.component.mjs +330 -0
- package/esm2020/src/app/core/menu/menu.model.mjs +35 -0
- package/esm2020/src/app/core/menu/menu.module.mjs +44 -0
- package/esm2020/src/app/core/menu/menu.service.mjs +55 -0
- package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +27 -0
- package/esm2020/src/app/core/offline/update-offline-mode-card.module.mjs +35 -0
- package/esm2020/src/app/core/peer/select-peer.modal.mjs +174 -0
- package/esm2020/src/app/core/peer/select-peer.module.mjs +42 -0
- package/esm2020/src/app/core/register/register-confirm.page.mjs +81 -0
- package/esm2020/src/app/core/register/register.form.mjs +181 -0
- package/esm2020/src/app/core/register/register.modal.mjs +52 -0
- package/esm2020/src/app/core/register/register.module.mjs +44 -0
- package/esm2020/src/app/core/services/account.service.mjs +1111 -0
- package/esm2020/src/app/core/services/auth-guard.service.mjs +71 -0
- package/esm2020/src/app/core/services/base-entity-service.class.mjs +441 -0
- package/{esm2015/src/app/core/services/base-graphql-service.class.js → esm2020/src/app/core/services/base-graphql-service.class.mjs} +36 -34
- package/{esm2015/src/app/core/services/base58.js → esm2020/src/app/core/services/base58.mjs} +2 -2
- package/esm2020/src/app/core/services/config/core.config.mjs +168 -0
- package/esm2020/src/app/core/services/config.service.mjs +354 -0
- package/esm2020/src/app/core/services/crypto.service.mjs +114 -0
- package/{esm2015/src/app/core/services/errors.js → esm2020/src/app/core/services/errors.mjs} +1 -1
- package/esm2020/src/app/core/services/local-settings.service.mjs +445 -0
- package/esm2020/src/app/core/services/model/account.model.mjs +50 -0
- package/esm2020/src/app/core/services/model/config.model.mjs +92 -0
- package/esm2020/src/app/core/services/model/department.model.mjs +30 -0
- package/esm2020/src/app/core/services/model/entity.decorators.mjs +97 -0
- package/esm2020/src/app/core/services/model/entity.model.mjs +228 -0
- package/esm2020/src/app/core/services/model/filter.model.mjs +94 -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 +153 -0
- package/esm2020/src/app/core/services/model/settings.model.mjs +75 -0
- package/esm2020/src/app/core/services/network.service.mjs +574 -0
- package/esm2020/src/app/core/services/network.types.mjs +20 -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 +493 -0
- package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +427 -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.module.mjs +34 -0
- package/esm2020/src/app/core/settings/settings.page.mjs +293 -0
- package/esm2020/src/app/core/table/actions-column.component.mjs +96 -0
- package/esm2020/src/app/core/table/async-table.class.mjs +1619 -0
- package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +382 -0
- package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +399 -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 +1658 -0
- package/esm2020/src/app/core/table/table.model.mjs +12 -0
- package/esm2020/src/app/core/table/table.module.mjs +40 -0
- package/esm2020/src/app/core/table/table.utils.mjs +13 -0
- package/esm2020/src/app/core/table/testing/table.testing.mjs +265 -0
- package/esm2020/src/app/core/table/testing/table.testing.module.mjs +38 -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/esm2020/src/app/shared/constants.mjs +10 -0
- package/esm2020/src/app/shared/dates.mjs +142 -0
- package/esm2020/src/app/shared/debug/debug.component.mjs +39 -0
- package/esm2020/src/app/shared/debug/debug.module.mjs +44 -0
- package/esm2020/src/app/shared/directives/autofocus.directive.mjs +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/esm2020/src/app/shared/file/json.utils.mjs +33 -0
- package/esm2020/src/app/shared/file/uri.utils.mjs +23 -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 +244 -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 +391 -0
- package/esm2020/src/app/shared/functions.mjs +462 -0
- package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +41 -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} +1 -1
- package/esm2020/src/app/shared/graph/graph-colors.mjs +208 -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 +355 -0
- package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +58 -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 +39 -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 +98 -0
- package/{esm2015/src/app/shared/inputs.js → esm2020/src/app/shared/inputs.mjs} +4 -4
- package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +27 -0
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +47 -0
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +905 -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 +209 -0
- package/esm2020/src/app/shared/material/badge/badge.directive.mjs +176 -0
- package/esm2020/src/app/shared/material/badge/badge.module.mjs +32 -0
- package/esm2020/src/app/shared/material/badge/badge.test.mjs +28 -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 +697 -0
- package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +143 -0
- package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +91 -0
- package/esm2020/src/app/shared/material/datetime/material.date.mjs +388 -0
- package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +385 -0
- package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +436 -0
- package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +108 -0
- package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +110 -0
- package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +103 -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 +102 -0
- package/{esm2015/src/app/shared/material/material.animations.js → esm2020/src/app/shared/material/material.animations.mjs} +1 -1
- package/esm2020/src/app/shared/material/material.module.mjs +224 -0
- package/esm2020/src/app/shared/material/material.testing.module.mjs +168 -0
- 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 +64 -0
- package/esm2020/src/app/shared/modules.mjs +11 -0
- package/esm2020/src/app/shared/observables.mjs +103 -0
- package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +135 -0
- package/esm2020/src/app/shared/pipes/colors.pipe.mjs +23 -0
- package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +48 -0
- package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +66 -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/esm2020/src/app/shared/pipes/number-format.pipe.mjs +30 -0
- package/esm2020/src/app/shared/pipes/pipes.module.mjs +218 -0
- package/esm2020/src/app/shared/pipes/property.pipes.mjs +93 -0
- package/esm2020/src/app/shared/pipes/string.pipes.mjs +95 -0
- package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +43 -0
- package/esm2020/src/app/shared/platforms.mjs +43 -0
- package/esm2020/src/app/shared/services/entity-service.class.mjs +7 -0
- package/esm2020/src/app/shared/services/job.utils.mjs +92 -0
- package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +337 -0
- package/esm2020/src/app/shared/services/progress-bar.service.mjs +33 -0
- package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +119 -0
- package/esm2020/src/app/shared/services/startable-service.class.mjs +105 -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 +207 -0
- package/esm2020/src/app/shared/shared.testing.module.mjs +76 -0
- package/esm2020/src/app/shared/testing/observable.test.mjs +95 -0
- package/esm2020/src/app/shared/testing/tests.page.mjs +33 -0
- package/esm2020/src/app/shared/toast/toast.testing.mjs +51 -0
- package/esm2020/src/app/shared/toast/toast.testing.module.mjs +45 -0
- package/esm2020/src/app/shared/toast/toasts.mjs +144 -0
- package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +58 -0
- package/esm2020/src/app/shared/toolbar/toolbar.mjs +249 -0
- package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +53 -0
- package/esm2020/src/app/shared/types.mjs +2 -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 +543 -0
- package/esm2020/src/app/shared/version/versions.mjs +81 -0
- package/esm2020/src/app/social/job/job.module.mjs +35 -0
- package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +213 -0
- package/esm2020/src/app/social/job/progression/job-progression.list.mjs +22 -0
- package/esm2020/src/app/social/job/progression/job-progression.model.mjs +23 -0
- package/esm2020/src/app/social/job/progression/job-progression.service.mjs +71 -0
- package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +52 -0
- package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +55 -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/esm2020/src/app/social/social.errors.mjs +10 -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 +108 -0
- package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +242 -0
- package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +229 -0
- package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +112 -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 +487 -0
- 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 +36563 -0
- package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -0
- package/fesm2020/sumaris-net.ngx-components.mjs +35734 -0
- package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +34 -32
- package/public_api.d.ts +137 -30
- package/resources/README.md +7 -0
- package/src/app/admin/admin-routing.module.d.ts +7 -0
- package/src/app/admin/admin.module.d.ts +7 -0
- package/src/app/admin/services/person.service.d.ts +5 -1
- package/src/app/admin/services/validator/person.validator.d.ts +8 -5
- package/src/app/admin/users/users.d.ts +44 -0
- package/src/app/admin/users/users.module.d.ts +13 -0
- package/src/app/core/about/{modal-about.d.ts → about.modal.d.ts} +3 -0
- package/src/app/core/about/about.module.d.ts +10 -0
- package/src/app/core/account/account.module.d.ts +11 -0
- package/src/app/core/account/{account.d.ts → account.page.d.ts} +23 -10
- package/src/app/core/auth/auth.form.d.ts +36 -0
- package/src/app/core/auth/auth.modal.d.ts +24 -0
- package/src/app/core/auth/auth.module.d.ts +11 -0
- package/src/app/core/core.module.d.ts +27 -0
- package/src/app/core/core.testing.module.d.ts +14 -0
- package/src/app/core/form/{form-buttons-bar.component.d.ts → buttons/form-buttons-bar.component.d.ts} +7 -2
- package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +9 -0
- package/src/app/core/form/{editor.class.d.ts → entity/editor.class.d.ts} +84 -22
- package/src/app/core/form/entity/entity-editor-modal.class.d.ts +129 -0
- package/src/app/core/form/{entity-editor.class.d.ts → entity/entity-editor.class.d.ts} +54 -29
- package/src/app/core/form/entity/entity-metadata.component.d.ts +13 -0
- package/src/app/core/form/entity/entity.module.d.ts +10 -0
- package/src/app/core/form/form.class.d.ts +57 -30
- package/src/app/core/form/form.module.d.ts +13 -0
- package/src/app/core/form/form.utils.d.ts +123 -114
- package/src/app/core/form/{list.form.d.ts → list/list.form.d.ts} +14 -11
- package/src/app/core/form/list/list.module.d.ts +9 -0
- package/src/app/core/form/properties/properties.form.d.ts +43 -0
- package/src/app/core/form/properties/properties.module.d.ts +9 -0
- package/src/app/core/form/properties/property.validator.d.ts +13 -0
- package/src/app/core/form/properties/testing/properties-form.test.d.ts +19 -0
- package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
- package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +10 -0
- package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +11 -0
- package/src/app/core/form/text-popover/text-form.component.d.ts +32 -0
- package/src/app/core/form/text-popover/text-popover.component.d.ts +45 -0
- package/src/app/core/form/text-popover/text-popover.module.d.ts +10 -0
- package/src/app/core/graphql/graphql.module.d.ts +5 -0
- package/src/app/core/graphql/graphql.service.d.ts +16 -5
- package/src/app/core/graphql/graphql.utils.d.ts +12 -1
- package/src/app/core/home/home.d.ts +9 -4
- package/src/app/core/home/home.module.d.ts +12 -0
- package/src/app/core/icon/icon.component.d.ts +6 -2
- package/src/app/core/icon/icon.module.d.ts +9 -0
- package/src/app/core/install/install-upgrade-card.component.d.ts +7 -9
- package/src/app/core/install/install-upgrade-card.module.d.ts +9 -0
- package/src/app/core/menu/menu.component.d.ts +22 -15
- package/src/app/core/menu/menu.model.d.ts +2 -0
- package/src/app/core/menu/menu.module.d.ts +8 -0
- package/src/app/core/menu/menu.service.d.ts +18 -6
- package/src/app/core/offline/update-offline-mode-card.component.d.ts +11 -0
- package/src/app/core/offline/update-offline-mode-card.module.d.ts +9 -0
- package/src/app/core/peer/select-peer.modal.d.ts +25 -8
- package/src/app/core/peer/select-peer.module.d.ts +11 -0
- package/src/app/core/register/{confirm/confirm.d.ts → register-confirm.page.d.ts} +6 -3
- package/src/app/core/register/{form/form-register.d.ts → register.form.d.ts} +15 -12
- package/src/app/core/register/{modal/modal-register.d.ts → register.modal.d.ts} +4 -1
- package/src/app/core/register/register.module.d.ts +12 -0
- package/src/app/core/services/account.service.d.ts +34 -13
- package/src/app/core/services/auth-guard.service.d.ts +3 -0
- package/src/app/core/services/base-entity-service.class.d.ts +10 -19
- package/src/app/core/services/base-graphql-service.class.d.ts +13 -9
- package/src/app/core/services/config/core.config.d.ts +25 -24
- package/src/app/core/services/config.service.d.ts +9 -3
- package/src/app/core/services/crypto.service.d.ts +26 -18
- package/src/app/core/services/errors.d.ts +1 -1
- package/src/app/core/services/local-settings.service.d.ts +15 -7
- package/src/app/core/services/model/config.model.d.ts +1 -0
- package/src/app/core/services/model/entity.decorators.d.ts +1 -9
- package/src/app/core/services/model/entity.model.d.ts +4 -1
- package/src/app/core/services/model/filter.model.d.ts +13 -2
- package/src/app/core/services/model/referential.model.d.ts +20 -14
- package/src/app/core/services/model/settings.model.d.ts +0 -1
- package/src/app/core/services/network.service.d.ts +34 -22
- package/src/app/core/services/network.types.d.ts +5 -0
- package/src/app/core/services/network.utils.d.ts +16 -0
- 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 +40 -27
- package/src/app/core/services/storage/entities-storage.service.d.ts +16 -9
- package/src/app/core/services/storage/entity-store.class.d.ts +6 -5
- package/src/app/core/services/testing/referential-filter.model.d.ts +9 -0
- package/src/app/core/services/testing/referential.validator.d.ts +22 -0
- package/src/app/core/services/validator/account.validator.d.ts +6 -3
- package/src/app/core/services/validator/base.validator.class.d.ts +9 -6
- 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.module.d.ts +10 -0
- package/src/app/core/settings/settings.page.d.ts +13 -12
- package/src/app/core/table/actions-column.component.d.ts +4 -1
- package/src/app/core/table/async-table.class.d.ts +368 -0
- package/src/app/core/table/entities-async-table-datasource.class.d.ts +80 -0
- package/src/app/core/table/entities-table-datasource.class.d.ts +59 -36
- package/src/app/core/table/memory-table.class.d.ts +5 -3
- package/src/app/core/table/table-select-columns.component.d.ts +4 -5
- package/src/app/core/table/table.class.d.ts +67 -70
- package/src/app/core/table/table.model.d.ts +26 -0
- package/src/app/core/table/table.module.d.ts +10 -0
- package/src/app/core/table/table.utils.d.ts +2 -1
- package/src/app/core/table/testing/table.testing.d.ts +51 -0
- package/src/app/core/table/testing/table.testing.module.d.ts +11 -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 +2 -0
- package/src/app/shared/dates.d.ts +25 -4
- package/src/app/shared/debug/debug.component.d.ts +13 -0
- package/src/app/shared/debug/debug.module.d.ts +12 -0
- package/src/app/shared/directives/autofocus.directive.d.ts +11 -9
- package/src/app/shared/directives/autotitle.directive.d.ts +10 -0
- package/src/app/shared/directives/directives.module.d.ts +10 -0
- package/src/app/shared/directives/drag-and-drop.directive.d.ts +17 -0
- package/src/app/shared/directives/ng-var.directive.d.ts +12 -0
- package/src/app/shared/directives/resizable/resizable.component.d.ts +21 -0
- package/src/app/shared/directives/resizable/resizable.directive.d.ts +12 -0
- package/src/app/shared/directives/resizable/resizable.module.d.ts +8 -0
- package/src/app/shared/events.d.ts +6 -6
- package/src/app/shared/file/csv.utils.d.ts +19 -0
- package/src/app/shared/file/file.service.d.ts +8 -5
- package/src/app/shared/file/file.utils.d.ts +20 -0
- package/src/app/shared/file/images.utils.d.ts +19 -0
- package/src/app/shared/file/json.utils.d.ts +11 -0
- package/src/app/shared/file/uri.utils.d.ts +7 -0
- package/src/app/shared/form/field.component.d.ts +12 -3
- package/src/app/shared/form/field.model.d.ts +7 -6
- package/src/app/shared/form/loading-spinner.d.ts +3 -0
- package/src/app/shared/forms.d.ts +89 -0
- package/src/app/shared/functions.d.ts +21 -13
- package/src/app/shared/geolocation/geolocation.utils.d.ts +11 -0
- 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/graph/graph-colors.d.ts +8 -8
- package/src/app/shared/guard/component-dirty.guard.d.ts +3 -0
- package/src/app/shared/help/help.modal.d.ts +7 -4
- package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +3 -0
- package/src/app/shared/hotkeys/hotkeys.service.d.ts +7 -3
- package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +9 -0
- package/src/app/shared/http/http.utils.d.ts +14 -1
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +101 -0
- package/src/app/shared/image/gallery/image-gallery.module.d.ts +14 -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 +16 -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/interceptors/progess.interceptor.d.ts +2 -2
- package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +36 -0
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +69 -77
- 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 +24 -17
- package/src/app/shared/material/badge/badge.directive.d.ts +30 -0
- package/src/app/shared/material/badge/badge.module.d.ts +10 -0
- package/src/app/shared/material/badge/badge.test.d.ts +13 -0
- package/src/app/shared/material/boolean/boolean.module.d.ts +17 -0
- package/src/app/shared/material/boolean/material.boolean.d.ts +11 -10
- package/src/app/shared/material/chips/chips.module.d.ts +20 -1
- package/src/app/shared/material/chips/material.chips.d.ts +52 -19
- package/src/app/shared/material/chips/testing/chips.test.d.ts +12 -7
- package/src/app/shared/material/datetime/datetime.module.d.ts +22 -0
- package/src/app/shared/material/datetime/material.date.d.ts +45 -38
- package/src/app/shared/material/datetime/material.dateshort.d.ts +47 -38
- package/src/app/shared/material/datetime/material.datetime.d.ts +40 -39
- package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +12 -9
- package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +30 -0
- package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +29 -0
- package/src/app/shared/material/duration/duration.module.d.ts +16 -0
- package/src/app/shared/material/duration/material.duration.d.ts +14 -10
- package/src/app/shared/material/latlong/latlong.utils.d.ts +2 -2
- package/src/app/shared/material/latlong/material.latlong.d.ts +27 -23
- package/src/app/shared/material/latlong/material.latlong.module.d.ts +17 -0
- package/src/app/shared/material/latlong/testing/latlong.test.d.ts +13 -7
- package/src/app/shared/material/material.module.d.ts +43 -0
- package/src/app/shared/material/material.testing.module.d.ts +25 -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 +13 -0
- 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 +12 -8
- package/src/app/shared/material/swipe/swipe.module.d.ts +13 -0
- package/src/app/shared/material/swipe/testing/swipe.test.d.ts +11 -9
- package/src/app/shared/modules.d.ts +8 -0
- package/src/app/shared/observables.d.ts +18 -10
- package/src/app/shared/pipes/arrays.pipe.d.ts +27 -2
- package/src/app/shared/pipes/colors.pipe.d.ts +9 -0
- package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +10 -2
- package/src/app/shared/pipes/date-format.pipe.d.ts +25 -9
- 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 +43 -3
- package/src/app/shared/pipes/highlight.pipe.d.ts +4 -0
- package/src/app/shared/pipes/latlong-format.pipe.d.ts +13 -4
- 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 +7 -1
- package/src/app/shared/pipes/pipes.module.d.ts +24 -0
- package/src/app/shared/pipes/property.pipes.d.ts +26 -0
- package/src/app/shared/pipes/string.pipes.d.ts +24 -0
- package/src/app/shared/pipes/translate-context.pipe.d.ts +8 -1
- package/src/app/shared/platforms.d.ts +8 -0
- package/src/app/shared/services/entity-service.class.d.ts +28 -15
- package/src/app/shared/services/job.utils.d.ts +4 -2
- package/src/app/shared/services/memory-entity-service.class.d.ts +31 -10
- package/src/app/shared/services/progress-bar.service.d.ts +15 -4
- package/src/app/shared/services/startable-observable-service.class.d.ts +33 -0
- package/src/app/shared/services/startable-service.class.d.ts +13 -9
- 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/services.d.ts +9 -0
- package/src/app/shared/shared-routing.module.d.ts +7 -0
- package/src/app/shared/shared.module.d.ts +24 -0
- package/src/app/shared/shared.testing.module.d.ts +14 -0
- package/src/app/shared/testing/observable.test.d.ts +25 -0
- package/src/app/shared/{material/testing/material.testing.page.d.ts → testing/tests.page.d.ts} +6 -2
- package/src/app/shared/toast/toast.testing.d.ts +15 -0
- package/src/app/shared/toast/toast.testing.module.d.ts +11 -0
- package/src/app/shared/{toasts.d.ts → toast/toasts.d.ts} +5 -2
- package/src/app/shared/toolbar/modal-toolbar.d.ts +5 -2
- package/src/app/shared/toolbar/toolbar.d.ts +22 -10
- package/src/app/shared/toolbar/toolbar.module.d.ts +15 -0
- package/src/app/shared/types.d.ts +4 -0
- package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +20 -0
- package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +11 -0
- package/src/app/shared/upload-file/upload-file-popover.component.d.ts +39 -0
- package/src/app/shared/upload-file/upload-file.component.d.ts +48 -0
- package/src/app/shared/upload-file/upload-file.model.d.ts +30 -0
- package/src/app/shared/validator/form-error-adapter.class.d.ts +6 -1
- package/src/app/shared/validator/validators.d.ts +47 -11
- package/src/app/shared/version/versions.d.ts +2 -0
- package/src/app/social/job/job.module.d.ts +11 -0
- package/src/app/social/job/progression/job-progression.icon.d.ts +47 -0
- package/src/app/social/job/progression/job-progression.list.d.ts +15 -0
- package/src/app/social/job/progression/job-progression.model.d.ts +11 -0
- package/src/app/social/job/progression/job-progression.service.d.ts +34 -0
- package/src/app/social/job/testing/job-progression.testing.d.ts +17 -0
- package/src/app/social/job/testing/job-progression.testing.service.d.ts +17 -0
- package/src/app/social/job/testing/job.testing.module.d.ts +11 -0
- package/src/app/social/message/message.form.d.ts +30 -0
- package/src/app/social/message/message.modal.d.ts +39 -0
- package/src/app/social/message/message.model.d.ts +31 -0
- package/src/app/social/message/message.module.d.ts +11 -0
- package/src/app/social/message/message.service.d.ts +27 -0
- package/src/app/social/social.errors.d.ts +9 -0
- package/src/app/social/social.module.d.ts +18 -2
- package/src/app/social/social.testing.module.d.ts +13 -0
- package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +29 -0
- package/src/app/social/user-event/notification/user-event-notification.list.d.ts +67 -0
- package/src/app/social/user-event/testing/user-event.testing.d.ts +34 -0
- package/src/app/social/user-event/testing/user-event.testing.model.d.ts +44 -0
- package/src/app/social/user-event/testing/user-event.testing.module.d.ts +11 -0
- package/src/app/social/user-event/testing/user-event.testing.service.d.ts +41 -0
- package/src/app/social/user-event/user-event.model.d.ts +45 -0
- package/src/app/social/user-event/user-event.module.d.ts +12 -0
- package/src/app/social/user-event/user-event.service.d.ts +124 -0
- package/src/assets/audio/beep-notification.mp3 +0 -0
- package/src/assets/i18n/en-US.json +83 -18
- package/src/assets/i18n/en.json +83 -18
- package/src/assets/i18n/fr.json +95 -21
- package/src/assets/manifest.json +5 -5
- package/src/environments/environment.class.d.ts +12 -1
- package/src/environments/environment.d.ts +1 -1
- package/src/theme/_icons.scss +1 -1
- package/src/theme/_ionic.globals.scss +6 -1
- package/src/theme/_material.globals.scss +32 -32
- package/src/theme/_material.scss +32 -6
- package/src/theme/_mixins.scss +6 -4
- package/src/theme/_ngx-components.globals.scss +1 -0
- package/src/theme/_ngx-components.scss +222 -39
- package/src/theme/_print.scss +24 -0
- package/src/theme/_responsive.scss +12 -3
- package/bundles/sumaris-net.ngx-components.umd.js +0 -28721
- 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 -183
- package/esm2015/src/app/admin/admin-routing.module.js +0 -32
- package/esm2015/src/app/admin/admin.module.js +0 -33
- package/esm2015/src/app/admin/services/errors.js +0 -6
- package/esm2015/src/app/admin/services/filter/person.filter.js +0 -59
- package/esm2015/src/app/admin/services/person.service.js +0 -179
- package/esm2015/src/app/admin/services/validator/person.validator.js +0 -37
- package/esm2015/src/app/admin/users/list/users.js +0 -196
- package/esm2015/src/app/core/about/modal-about.js +0 -63
- package/esm2015/src/app/core/account/account.js +0 -193
- package/esm2015/src/app/core/auth/form/form-auth.js +0 -126
- package/esm2015/src/app/core/auth/modal/modal-auth.js +0 -66
- package/esm2015/src/app/core/core.module.js +0 -114
- package/esm2015/src/app/core/form/editor.class.js +0 -559
- package/esm2015/src/app/core/form/entity-editor.class.js +0 -617
- package/esm2015/src/app/core/form/entity-metadata.component.js +0 -22
- package/esm2015/src/app/core/form/form-buttons-bar.component.js +0 -60
- package/esm2015/src/app/core/form/form.class.js +0 -279
- package/esm2015/src/app/core/form/form.utils.js +0 -599
- 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 -733
- package/esm2015/src/app/core/graphql/graphql.utils.js +0 -107
- package/esm2015/src/app/core/home/home.js +0 -263
- package/esm2015/src/app/core/icon/icon.component.js +0 -29
- package/esm2015/src/app/core/install/install-upgrade-card.component.js +0 -388
- package/esm2015/src/app/core/menu/menu.component.js +0 -279
- package/esm2015/src/app/core/menu/menu.model.js +0 -33
- package/esm2015/src/app/core/menu/menu.module.js +0 -28
- package/esm2015/src/app/core/menu/menu.service.js +0 -28
- 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 -1101
- package/esm2015/src/app/core/services/auth-guard.service.js +0 -77
- package/esm2015/src/app/core/services/base-entity-service.class.js +0 -448
- package/esm2015/src/app/core/services/config/core.config.js +0 -162
- package/esm2015/src/app/core/services/config.service.js +0 -377
- package/esm2015/src/app/core/services/crypto.service.js +0 -127
- package/esm2015/src/app/core/services/local-settings.service.js +0 -454
- 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 -230
- package/esm2015/src/app/core/services/model/filter.model.js +0 -68
- package/esm2015/src/app/core/services/model/peer.model.js +0 -68
- package/esm2015/src/app/core/services/model/person.model.js +0 -81
- package/esm2015/src/app/core/services/model/referential.model.js +0 -149
- package/esm2015/src/app/core/services/model/settings.model.js +0 -75
- package/esm2015/src/app/core/services/network.service.js +0 -581
- 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 -424
- package/esm2015/src/app/core/services/storage/entities-storage.service.js +0 -445
- package/esm2015/src/app/core/services/storage/entity-store.class.js +0 -458
- 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 -301
- package/esm2015/src/app/core/table/actions-column.component.js +0 -74
- package/esm2015/src/app/core/table/entities-table-datasource.class.js +0 -326
- package/esm2015/src/app/core/table/memory-table.class.js +0 -64
- package/esm2015/src/app/core/table/table-select-columns.component.js +0 -44
- package/esm2015/src/app/core/table/table.class.js +0 -1552
- package/esm2015/src/app/core/table/table.utils.js +0 -13
- package/esm2015/src/app/shared/alerts.js +0 -251
- package/esm2015/src/app/shared/audio/audio.js +0 -178
- package/esm2015/src/app/shared/colors.utils.js +0 -2
- package/esm2015/src/app/shared/constants.js +0 -6
- package/esm2015/src/app/shared/dates.js +0 -82
- package/esm2015/src/app/shared/directives/autofocus.directive.js +0 -97
- package/esm2015/src/app/shared/directives/directives.module.js +0 -21
- package/esm2015/src/app/shared/events.js +0 -56
- package/esm2015/src/app/shared/file/base64-image-reader.js +0 -141
- package/esm2015/src/app/shared/file/file.service.js +0 -121
- 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/functions.js +0 -440
- 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 -87
- package/esm2015/src/app/shared/hotkeys/shared-hotkeys.module.js +0 -29
- package/esm2015/src/app/shared/http/http.utils.js +0 -23
- package/esm2015/src/app/shared/interceptors/progess.interceptor.js +0 -20
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +0 -711
- 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 -167
- package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +0 -62
- 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 -10
- package/esm2015/src/app/shared/material/boolean/boolean.module.js +0 -41
- package/esm2015/src/app/shared/material/boolean/material.boolean.js +0 -234
- package/esm2015/src/app/shared/material/chips/chips.module.js +0 -45
- package/esm2015/src/app/shared/material/chips/material.chips.js +0 -342
- package/esm2015/src/app/shared/material/chips/testing/chips.test.js +0 -100
- package/esm2015/src/app/shared/material/datetime/datetime.module.js +0 -54
- package/esm2015/src/app/shared/material/datetime/material.date.js +0 -307
- package/esm2015/src/app/shared/material/datetime/material.dateshort.js +0 -315
- package/esm2015/src/app/shared/material/datetime/material.datetime.js +0 -389
- package/esm2015/src/app/shared/material/datetime/testing/mat-date-time.test.js +0 -102
- package/esm2015/src/app/shared/material/duration/duration.module.js +0 -40
- package/esm2015/src/app/shared/material/duration/material.duration.js +0 -245
- package/esm2015/src/app/shared/material/latlong/latlong.utils.js +0 -249
- package/esm2015/src/app/shared/material/latlong/material.latlong.js +0 -345
- 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/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 -306
- 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/material/testing/material.testing.module.js +0 -92
- package/esm2015/src/app/shared/material/testing/material.testing.page.js +0 -34
- package/esm2015/src/app/shared/observables.js +0 -68
- package/esm2015/src/app/shared/pipes/arrays.pipe.js +0 -92
- package/esm2015/src/app/shared/pipes/date-diff-duration.pipe.js +0 -46
- package/esm2015/src/app/shared/pipes/date-format.pipe.js +0 -40
- package/esm2015/src/app/shared/pipes/file-size.pipe.js +0 -58
- package/esm2015/src/app/shared/pipes/form.pipes.js +0 -70
- package/esm2015/src/app/shared/pipes/highlight.pipe.js +0 -43
- package/esm2015/src/app/shared/pipes/latlong-format.pipe.js +0 -43
- 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/number-format.pipe.js +0 -22
- package/esm2015/src/app/shared/pipes/pipes.module.js +0 -100
- package/esm2015/src/app/shared/pipes/properties.pipe.js +0 -20
- package/esm2015/src/app/shared/pipes/string.pipes.js +0 -52
- package/esm2015/src/app/shared/pipes/translate-context.pipe.js +0 -38
- package/esm2015/src/app/shared/services/entity-service.class.js +0 -17
- package/esm2015/src/app/shared/services/job.utils.js +0 -78
- package/esm2015/src/app/shared/services/memory-entity-service.class.js +0 -226
- package/esm2015/src/app/shared/services/progress-bar.service.js +0 -30
- package/esm2015/src/app/shared/services/startable-service.class.js +0 -95
- 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/shared-routing.module.js +0 -54
- package/esm2015/src/app/shared/shared.module.js +0 -125
- package/esm2015/src/app/shared/shared.testing.module.js +0 -19
- package/esm2015/src/app/shared/toasts.js +0 -119
- package/esm2015/src/app/shared/toolbar/modal-toolbar.js +0 -53
- package/esm2015/src/app/shared/toolbar/toolbar.js +0 -195
- package/esm2015/src/app/shared/types.js +0 -2
- package/esm2015/src/app/shared/validator/form-error-adapter.class.js +0 -75
- package/esm2015/src/app/shared/validator/validators.js +0 -421
- package/esm2015/src/app/shared/version/versions.js +0 -77
- package/esm2015/src/app/social/list/user-events.table.js +0 -159
- package/esm2015/src/app/social/services/errors.js +0 -5
- package/esm2015/src/app/social/services/model/user-event.model.js +0 -46
- package/esm2015/src/app/social/services/social.fragments.js +0 -27
- package/esm2015/src/app/social/services/user-event.service.js +0 -367
- package/esm2015/src/app/social/social.module.js +0 -31
- package/esm2015/src/app/vendor.js +0 -5
- package/esm2015/src/environments/environment.class.js +0 -5
- package/esm2015/src/environments/environment.js +0 -75
- package/esm2015/sumaris-net.ngx-components.js +0 -17
- package/fesm2015/sumaris-net.ngx-components.js +0 -24434
- package/fesm2015/sumaris-net.ngx-components.js.map +0 -1
- package/src/app/admin/services/errors.d.ts +0 -5
- package/src/app/admin/users/list/users.d.ts +0 -49
- package/src/app/core/auth/form/form-auth.d.ts +0 -33
- package/src/app/core/auth/modal/modal-auth.d.ts +0 -14
- package/src/app/core/form/entity-metadata.component.d.ts +0 -10
- package/src/app/core/form/properties.form.d.ts +0 -40
- package/src/app/shared/colors.utils.d.ts +0 -3
- package/src/app/shared/file/base64-image-reader.d.ts +0 -18
- package/src/app/shared/material/badge/badge-icon.directive.d.ts +0 -15
- package/src/app/shared/material/badge/badge-icon.module.d.ts +0 -2
- package/src/app/shared/material/badge/badge-icon.test.d.ts +0 -2
- package/src/app/shared/material/testing/material.testing.module.d.ts +0 -2
- package/src/app/shared/pipes/properties.pipe.d.ts +0 -7
- package/src/app/shared/services/storage.utils.d.ts +0 -13
- package/src/app/social/list/user-events.table.d.ts +0 -59
- package/src/app/social/services/errors.d.ts +0 -4
- package/src/app/social/services/model/user-event.model.d.ts +0 -29
- package/src/app/social/services/social.fragments.d.ts +0 -4
- package/src/app/social/services/user-event.service.d.ts +0 -82
- package/src/app/vendor.d.ts +0 -4
- package/src/assets/manifest.sumaris.json +0 -17
- package/sumaris-net.ngx-components.d.ts +0 -16
- package/sumaris-net.ngx-components.metadata.json +0 -1
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
// Import the core angular services.
|
|
2
|
-
import { Directive, ElementRef, Optional } from '@angular/core';
|
|
3
|
-
import { Platform } from '@ionic/angular';
|
|
4
|
-
import { Keyboard } from '@ionic-native/keyboard/ngx';
|
|
5
|
-
// ----------------------------------------------------------------------------------- //
|
|
6
|
-
// ----------------------------------------------------------------------------------- //
|
|
7
|
-
const BASE_TIMER_DELAY = 100;
|
|
8
|
-
export class AutofocusDirective {
|
|
9
|
-
// I initialize the autofocus directive.
|
|
10
|
-
constructor(elementRef, platform, keyboard) {
|
|
11
|
-
this.keyboard = keyboard;
|
|
12
|
-
this.timer = null;
|
|
13
|
-
this.elementRef = elementRef;
|
|
14
|
-
this.shouldFocusElement = '';
|
|
15
|
-
this.timer = null;
|
|
16
|
-
this.timerDelay = BASE_TIMER_DELAY;
|
|
17
|
-
platform.ready().then(() => {
|
|
18
|
-
this.touchUi = platform.is('mobile') || platform.is('tablet');
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
// ---
|
|
22
|
-
// PUBLIC METHODS.
|
|
23
|
-
// ---
|
|
24
|
-
// I get called once after the contents have been fully initialized.
|
|
25
|
-
ngAfterContentInit() {
|
|
26
|
-
// Because this directive can act on the stand-only "autofocus" attribute or
|
|
27
|
-
// the more specialized "appAutofocus" property, we need to check to see if the
|
|
28
|
-
// "shouldFocusElement" input property is the empty string. This will signify
|
|
29
|
-
// that the focus it not being data-driven and should be performed automatically.
|
|
30
|
-
if (this.shouldFocusElement === '') {
|
|
31
|
-
this.startFocusWorkflow();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// I get called every time the input bindings are updated.
|
|
35
|
-
ngOnChanges(changes) {
|
|
36
|
-
// If the timer delay is being passed-in as a string (ie, someone is using
|
|
37
|
-
// attribute-input syntax, not property-input syntax), let's coalesce the
|
|
38
|
-
// attribute to a numeric value so that our type-annotations are consistent.
|
|
39
|
-
if (changes.timerDelay && (typeof (this.timerDelay) !== 'number')) {
|
|
40
|
-
// If the coalesce fails, just fall-back to a sane value.
|
|
41
|
-
if (isNaN(this.timerDelay = +this.timerDelay)) {
|
|
42
|
-
this.timerDelay = BASE_TIMER_DELAY;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// If the focus input is being data-driven, then we either need to start the
|
|
46
|
-
// focus workflow if focus is required; or, clear any existing workflow if focus
|
|
47
|
-
// is no longer required (so that we don't steal focus from another element).
|
|
48
|
-
if (changes.shouldFocusElement) {
|
|
49
|
-
(this.shouldFocusElement)
|
|
50
|
-
? this.startFocusWorkflow()
|
|
51
|
-
: this.stopFocusWorkflow();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// I get called once when the directive is being unmounted.
|
|
55
|
-
ngOnDestroy() {
|
|
56
|
-
this.stopFocusWorkflow();
|
|
57
|
-
}
|
|
58
|
-
// ---
|
|
59
|
-
// PRIVATE METHODS.
|
|
60
|
-
// ---
|
|
61
|
-
// I start the timer-based workflow that will focus the current element.
|
|
62
|
-
startFocusWorkflow() {
|
|
63
|
-
// if touch UI: do NOT focus when keyboard hide
|
|
64
|
-
if (this.touchUi && this.keyboard && this.keyboard.isVisible === false)
|
|
65
|
-
return;
|
|
66
|
-
// If there is already a timer running for this element, just let it play out -
|
|
67
|
-
// resetting it at this point will only push-out the time at which the focus is
|
|
68
|
-
// applied to the element.
|
|
69
|
-
if (this.timer) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
this.timer = setTimeout(() => {
|
|
73
|
-
this.timer = null;
|
|
74
|
-
this.elementRef.nativeElement.focus();
|
|
75
|
-
}, this.timerDelay);
|
|
76
|
-
}
|
|
77
|
-
// I stop the timer-based workflow, preventing focus from taking place.
|
|
78
|
-
stopFocusWorkflow() {
|
|
79
|
-
clearTimeout(this.timer);
|
|
80
|
-
this.timer = null;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
AutofocusDirective.decorators = [
|
|
84
|
-
{ type: Directive, args: [{
|
|
85
|
-
selector: '[autofocus], input[appAutofocus]',
|
|
86
|
-
inputs: [
|
|
87
|
-
'shouldFocusElement: appAutofocus',
|
|
88
|
-
'timerDelay: autofocusDelay'
|
|
89
|
-
]
|
|
90
|
-
},] }
|
|
91
|
-
];
|
|
92
|
-
AutofocusDirective.ctorParameters = () => [
|
|
93
|
-
{ type: ElementRef },
|
|
94
|
-
{ type: Platform },
|
|
95
|
-
{ type: Keyboard, decorators: [{ type: Optional }] }
|
|
96
|
-
];
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUF3QixRQUFRLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHcEQseUZBQXlGO0FBQ3pGLHlGQUF5RjtBQUV6RixNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztBQVM3QixNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLHdDQUF3QztJQUN4QyxZQUNFLFVBQXNCLEVBQ3RCLFFBQWtCLEVBQ0ksUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVBsQyxVQUFLLEdBQVksSUFBSSxDQUFDO1FBUzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRTdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztRQUVuQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLE1BQU07SUFFTixvRUFBb0U7SUFDN0Qsa0JBQWtCO1FBRXZCLDRFQUE0RTtRQUM1RSwrRUFBK0U7UUFDL0UsNkVBQTZFO1FBQzdFLGlGQUFpRjtRQUNqRixJQUFLLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLEVBQUc7WUFFcEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FFM0I7SUFFSCxDQUFDO0lBR0QsMERBQTBEO0lBQ25ELFdBQVcsQ0FBRSxPQUFzQjtRQUV4QywwRUFBMEU7UUFDMUUseUVBQXlFO1FBQ3pFLDRFQUE0RTtRQUM1RSxJQUFLLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBRSxPQUFNLENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBRSxLQUFLLFFBQVEsQ0FBRSxFQUFHO1lBRXRFLHlEQUF5RDtZQUN6RCxJQUFLLEtBQUssQ0FBRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxFQUFHO2dCQUVqRCxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDO2FBRXBDO1NBRUY7UUFFRCw0RUFBNEU7UUFDNUUsZ0ZBQWdGO1FBQ2hGLDZFQUE2RTtRQUM3RSxJQUFLLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRztZQUVoQyxDQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBRTtnQkFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUMzQjtTQUVGO0lBRUgsQ0FBQztJQUdELDJEQUEyRDtJQUNwRCxXQUFXO1FBRWhCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBRTNCLENBQUM7SUFFRCxNQUFNO0lBQ04sbUJBQW1CO0lBQ25CLE1BQU07SUFFTix3RUFBd0U7SUFDaEUsa0JBQWtCO1FBRXhCLCtDQUErQztRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsS0FBSyxLQUFLO1lBQUUsT0FBTztRQUUvRSwrRUFBK0U7UUFDL0UsK0VBQStFO1FBQy9FLDBCQUEwQjtRQUMxQixJQUFLLElBQUksQ0FBQyxLQUFLLEVBQUc7WUFFaEIsT0FBTztTQUVSO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQ3JCLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hDLENBQUMsRUFDRCxJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBRUosQ0FBQztJQUdELHVFQUF1RTtJQUMvRCxpQkFBaUI7UUFFdkIsWUFBWSxDQUFFLElBQUksQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUVwQixDQUFDOzs7WUFoSUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQ0FBa0M7Z0JBQzVDLE1BQU0sRUFBRTtvQkFDTixrQ0FBa0M7b0JBQ2xDLDRCQUE0QjtpQkFDN0I7YUFDRjs7O1lBaEJvQyxVQUFVO1lBQ3ZDLFFBQVE7WUFDUixRQUFRLHVCQTRCWCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0IHRoZSBjb3JlIGFuZ3VsYXIgc2VydmljZXMuXG5pbXBvcnQge0FmdGVyQ29udGVudEluaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7S2V5Ym9hcmR9IGZyb20gJ0Bpb25pYy1uYXRpdmUva2V5Ym9hcmQvbmd4JztcbmltcG9ydCBUaW1lb3V0ID0gTm9kZUpTLlRpbWVvdXQ7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xuXG5jb25zdCBCQVNFX1RJTUVSX0RFTEFZID0gMTAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXV0b2ZvY3VzXSwgaW5wdXRbYXBwQXV0b2ZvY3VzXScsXG4gIGlucHV0czogW1xuICAgICdzaG91bGRGb2N1c0VsZW1lbnQ6IGFwcEF1dG9mb2N1cycsXG4gICAgJ3RpbWVyRGVsYXk6IGF1dG9mb2N1c0RlbGF5J1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9mb2N1c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBwdWJsaWMgc2hvdWxkRm9jdXNFbGVtZW50OiBhbnk7XG4gIHB1YmxpYyB0aW1lckRlbGF5OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIHRpbWVyOiBUaW1lb3V0ID0gbnVsbDtcbiAgcHJpdmF0ZSB0b3VjaFVpOiBib29sZWFuO1xuXG4gIC8vIEkgaW5pdGlhbGl6ZSB0aGUgYXV0b2ZvY3VzIGRpcmVjdGl2ZS5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGtleWJvYXJkOiBLZXlib2FyZCApIHtcblxuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG5cbiAgICB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCA9ICcnO1xuICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgIHRoaXMudGltZXJEZWxheSA9IEJBU0VfVElNRVJfREVMQVk7XG5cbiAgICBwbGF0Zm9ybS5yZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy50b3VjaFVpID0gcGxhdGZvcm0uaXMoJ21vYmlsZScpIHx8IHBsYXRmb3JtLmlzKCd0YWJsZXQnKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLVxuICAvLyBQVUJMSUMgTUVUSE9EUy5cbiAgLy8gLS0tXG5cbiAgLy8gSSBnZXQgY2FsbGVkIG9uY2UgYWZ0ZXIgdGhlIGNvbnRlbnRzIGhhdmUgYmVlbiBmdWxseSBpbml0aWFsaXplZC5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblxuICAgIC8vIEJlY2F1c2UgdGhpcyBkaXJlY3RpdmUgY2FuIGFjdCBvbiB0aGUgc3RhbmQtb25seSBcImF1dG9mb2N1c1wiIGF0dHJpYnV0ZSBvclxuICAgIC8vIHRoZSBtb3JlIHNwZWNpYWxpemVkIFwiYXBwQXV0b2ZvY3VzXCIgcHJvcGVydHksIHdlIG5lZWQgdG8gY2hlY2sgdG8gc2VlIGlmIHRoZVxuICAgIC8vIFwic2hvdWxkRm9jdXNFbGVtZW50XCIgaW5wdXQgcHJvcGVydHkgaXMgdGhlIGVtcHR5IHN0cmluZy4gVGhpcyB3aWxsIHNpZ25pZnlcbiAgICAvLyB0aGF0IHRoZSBmb2N1cyBpdCBub3QgYmVpbmcgZGF0YS1kcml2ZW4gYW5kIHNob3VsZCBiZSBwZXJmb3JtZWQgYXV0b21hdGljYWxseS5cbiAgICBpZiAoIHRoaXMuc2hvdWxkRm9jdXNFbGVtZW50ID09PSAnJyApIHtcblxuICAgICAgdGhpcy5zdGFydEZvY3VzV29ya2Zsb3coKTtcblxuICAgIH1cblxuICB9XG5cblxuICAvLyBJIGdldCBjYWxsZWQgZXZlcnkgdGltZSB0aGUgaW5wdXQgYmluZGluZ3MgYXJlIHVwZGF0ZWQuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyggY2hhbmdlczogU2ltcGxlQ2hhbmdlcyApIHtcblxuICAgIC8vIElmIHRoZSB0aW1lciBkZWxheSBpcyBiZWluZyBwYXNzZWQtaW4gYXMgYSBzdHJpbmcgKGllLCBzb21lb25lIGlzIHVzaW5nXG4gICAgLy8gYXR0cmlidXRlLWlucHV0IHN5bnRheCwgbm90IHByb3BlcnR5LWlucHV0IHN5bnRheCksIGxldCdzIGNvYWxlc2NlIHRoZVxuICAgIC8vIGF0dHJpYnV0ZSB0byBhIG51bWVyaWMgdmFsdWUgc28gdGhhdCBvdXIgdHlwZS1hbm5vdGF0aW9ucyBhcmUgY29uc2lzdGVudC5cbiAgICBpZiAoIGNoYW5nZXMudGltZXJEZWxheSAmJiAoIHR5cGVvZiggdGhpcy50aW1lckRlbGF5ICkgIT09ICdudW1iZXInICkgKSB7XG5cbiAgICAgIC8vIElmIHRoZSBjb2FsZXNjZSBmYWlscywganVzdCBmYWxsLWJhY2sgdG8gYSBzYW5lIHZhbHVlLlxuICAgICAgaWYgKCBpc05hTiggdGhpcy50aW1lckRlbGF5ID0gK3RoaXMudGltZXJEZWxheSApICkge1xuXG4gICAgICAgIHRoaXMudGltZXJEZWxheSA9IEJBU0VfVElNRVJfREVMQVk7XG5cbiAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIElmIHRoZSBmb2N1cyBpbnB1dCBpcyBiZWluZyBkYXRhLWRyaXZlbiwgdGhlbiB3ZSBlaXRoZXIgbmVlZCB0byBzdGFydCB0aGVcbiAgICAvLyBmb2N1cyB3b3JrZmxvdyBpZiBmb2N1cyBpcyByZXF1aXJlZDsgb3IsIGNsZWFyIGFueSBleGlzdGluZyB3b3JrZmxvdyBpZiBmb2N1c1xuICAgIC8vIGlzIG5vIGxvbmdlciByZXF1aXJlZCAoc28gdGhhdCB3ZSBkb24ndCBzdGVhbCBmb2N1cyBmcm9tIGFub3RoZXIgZWxlbWVudCkuXG4gICAgaWYgKCBjaGFuZ2VzLnNob3VsZEZvY3VzRWxlbWVudCApIHtcblxuICAgICAgKCB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCApXG4gICAgICAgID8gdGhpcy5zdGFydEZvY3VzV29ya2Zsb3coKVxuICAgICAgICA6IHRoaXMuc3RvcEZvY3VzV29ya2Zsb3coKVxuICAgICAgO1xuXG4gICAgfVxuXG4gIH1cblxuXG4gIC8vIEkgZ2V0IGNhbGxlZCBvbmNlIHdoZW4gdGhlIGRpcmVjdGl2ZSBpcyBiZWluZyB1bm1vdW50ZWQuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcblxuICAgIHRoaXMuc3RvcEZvY3VzV29ya2Zsb3coKTtcblxuICB9XG5cbiAgLy8gLS0tXG4gIC8vIFBSSVZBVEUgTUVUSE9EUy5cbiAgLy8gLS0tXG5cbiAgLy8gSSBzdGFydCB0aGUgdGltZXItYmFzZWQgd29ya2Zsb3cgdGhhdCB3aWxsIGZvY3VzIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gIHByaXZhdGUgc3RhcnRGb2N1c1dvcmtmbG93KCkge1xuXG4gICAgLy8gaWYgdG91Y2ggVUk6IGRvIE5PVCBmb2N1cyB3aGVuIGtleWJvYXJkIGhpZGVcbiAgICBpZiAodGhpcy50b3VjaFVpICYmIHRoaXMua2V5Ym9hcmQgJiYgdGhpcy5rZXlib2FyZC5pc1Zpc2libGUgPT09IGZhbHNlKSByZXR1cm47XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgdGltZXIgcnVubmluZyBmb3IgdGhpcyBlbGVtZW50LCBqdXN0IGxldCBpdCBwbGF5IG91dCAtXG4gICAgLy8gcmVzZXR0aW5nIGl0IGF0IHRoaXMgcG9pbnQgd2lsbCBvbmx5IHB1c2gtb3V0IHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBmb2N1cyBpc1xuICAgIC8vIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuXG4gICAgaWYgKCB0aGlzLnRpbWVyICkge1xuXG4gICAgICByZXR1cm47XG5cbiAgICB9XG5cbiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy50aW1lciA9IG51bGw7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LFxuICAgICAgdGhpcy50aW1lckRlbGF5XG4gICAgKTtcblxuICB9XG5cblxuICAvLyBJIHN0b3AgdGhlIHRpbWVyLWJhc2VkIHdvcmtmbG93LCBwcmV2ZW50aW5nIGZvY3VzIGZyb20gdGFraW5nIHBsYWNlLlxuICBwcml2YXRlIHN0b3BGb2N1c1dvcmtmbG93KCkge1xuXG4gICAgY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7XG4gICAgdGhpcy50aW1lciA9IG51bGw7XG5cbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { IonicModule } from '@ionic/angular';
|
|
4
|
-
import { AutofocusDirective } from './autofocus.directive';
|
|
5
|
-
export class SharedDirectivesModule {
|
|
6
|
-
}
|
|
7
|
-
SharedDirectivesModule.decorators = [
|
|
8
|
-
{ type: NgModule, args: [{
|
|
9
|
-
imports: [
|
|
10
|
-
CommonModule,
|
|
11
|
-
IonicModule
|
|
12
|
-
],
|
|
13
|
-
declarations: [
|
|
14
|
-
AutofocusDirective
|
|
15
|
-
],
|
|
16
|
-
exports: [
|
|
17
|
-
AutofocusDirective
|
|
18
|
-
]
|
|
19
|
-
},] }
|
|
20
|
-
];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQWV6RCxNQUFNLE9BQU8sc0JBQXNCOzs7WUFabEMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7aUJBQ1o7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGtCQUFrQjtpQkFDbkI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0F1dG9mb2N1c0RpcmVjdGl2ZX0gZnJvbSAnLi9hdXRvZm9jdXMuZGlyZWN0aXZlJztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkRGlyZWN0aXZlc01vZHVsZSB7XG59XG4iXX0=
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { fromEvent } from 'rxjs';
|
|
3
|
-
import { filter } from 'rxjs/operators';
|
|
4
|
-
export function createPromiseEventEmitter() {
|
|
5
|
-
return new EventEmitter(true);
|
|
6
|
-
}
|
|
7
|
-
export function createPromiseEvent(eventType, promise, initArg) {
|
|
8
|
-
const detail = Object.assign(Object.assign({}, (initArg && initArg.detail || {})), promise);
|
|
9
|
-
return new CustomEvent(eventType, { detail });
|
|
10
|
-
}
|
|
11
|
-
export function emitPromiseEvent(emitter, eventType, initArg) {
|
|
12
|
-
return new Promise((resolve, reject) => {
|
|
13
|
-
const event = createPromiseEvent(eventType, {
|
|
14
|
-
success: resolve,
|
|
15
|
-
error: reject
|
|
16
|
-
}, initArg);
|
|
17
|
-
emitter.emit(event);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Listen end of scroll.
|
|
22
|
-
* <p>
|
|
23
|
-
* The threshold distance from the bottom of the content to call the infinite output event when scrolled.
|
|
24
|
-
* The threshold value can be either a percent, or in pixels.
|
|
25
|
-
* For example, use the value of 10% for the infinite output event to get called when the user has scrolled
|
|
26
|
-
* 10% from the bottom of the page. Use the value 100px when the scroll is within 100 pixels from the bottom of the page.
|
|
27
|
-
* </p>
|
|
28
|
-
* @param element
|
|
29
|
-
* @param threshold default to '15%'
|
|
30
|
-
*/
|
|
31
|
-
export function fromScrollEndEvent(element, threshold) {
|
|
32
|
-
threshold = threshold || '15%';
|
|
33
|
-
let isEnd;
|
|
34
|
-
// Listen using percentage
|
|
35
|
-
if (threshold.endsWith('%')) {
|
|
36
|
-
const thresholdRatio = parseInt(threshold.slice(0, threshold.length - 1)) / 100;
|
|
37
|
-
isEnd = () => {
|
|
38
|
-
const endPosRatio = 1 - (element.scrollTop + element.offsetHeight) / element.scrollHeight;
|
|
39
|
-
return endPosRatio < thresholdRatio;
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
// Listen using pixels
|
|
43
|
-
else if (threshold.endsWith('px')) {
|
|
44
|
-
const thresholdPx = parseInt(threshold.slice(0, threshold.length - 2));
|
|
45
|
-
isEnd = () => {
|
|
46
|
-
const endPosPx = element.scrollHeight - (element.scrollTop + element.offsetHeight);
|
|
47
|
-
return endPosPx < thresholdPx;
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
throw new Error('Invalid argument \'threshold\'. Expected value unit: \'px\' or \'%\' ');
|
|
52
|
-
}
|
|
53
|
-
return fromEvent(element, 'scroll')
|
|
54
|
-
.pipe(filter(() => isEnd()));
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFDLFNBQVMsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFTdEMsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxPQUFPLElBQUksWUFBWSxDQUFxQixJQUFJLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFxQixTQUFpQixFQUNsQixPQUErQixFQUMvQixPQUE0QjtJQUdoRixNQUFNLE1BQU0sR0FBRyxnQ0FDVixDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxHQUNqQyxPQUFPLENBQ1gsQ0FBQztJQUNGLE9BQU8sSUFBSSxXQUFXLENBQTZCLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBb0IsT0FBeUMsRUFDMUMsU0FBaUIsRUFDakIsT0FBNEI7SUFDN0UsT0FBTyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN4QyxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUU7WUFDMUMsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLE1BQU07U0FDZCxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFNRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQW9CLEVBQUUsU0FBa0I7SUFFekUsU0FBUyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUM7SUFDL0IsSUFBSSxLQUFvQixDQUFDO0lBRXpCLDBCQUEwQjtJQUMxQixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDM0IsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDaEYsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNYLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDMUYsT0FBTyxXQUFXLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLENBQUMsQ0FBQztLQUNIO0lBRUQsc0JBQXNCO1NBQ2pCLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNqQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkYsT0FBTyxRQUFRLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLENBQUMsQ0FBQztLQUNIO1NBQ0k7UUFDSCxNQUFNLElBQUksS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUE7S0FDekY7SUFFRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO1NBQ2hDLElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDdEIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2Zyb21FdmVudCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb21pc2VFdmVudFBheWxvYWQ8VCA9IGFueT4ge1xuICBzdWNjZXNzOiAoVCkgPT4gdm9pZDtcbiAgZXJyb3I6IChlcnI6IGFueSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgUHJvbWlzZUV2ZW50PFQgPSBhbnksIEQgPSB2b2lkPiA9IEN1c3RvbUV2ZW50PFByb21pc2VFdmVudFBheWxvYWQ8VD4gJiBEPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2VFdmVudEVtaXR0ZXI8VCA9IGFueSwgRCA9IHZvaWQ+KCk6IEV2ZW50RW1pdHRlcjxQcm9taXNlRXZlbnQ8VCwgRD4+IHtcbiAgcmV0dXJuIG5ldyBFdmVudEVtaXR0ZXI8UHJvbWlzZUV2ZW50PFQsIEQ+Pih0cnVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb21pc2VFdmVudDxUID0gdm9pZCwgRCA9IHZvaWQ+KGV2ZW50VHlwZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbWlzZTogUHJvbWlzZUV2ZW50UGF5bG9hZDxUPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRBcmc/OiBDdXN0b21FdmVudEluaXQ8RD5cbiAgKTogUHJvbWlzZUV2ZW50PFQsIEQ+IHtcblxuICBjb25zdCBkZXRhaWwgPSA8UHJvbWlzZUV2ZW50UGF5bG9hZCAmIEQ+e1xuICAgIC4uLihpbml0QXJnICYmIGluaXRBcmcuZGV0YWlsIHx8IHt9KSxcbiAgICAuLi5wcm9taXNlXG4gIH07XG4gIHJldHVybiBuZXcgQ3VzdG9tRXZlbnQ8UHJvbWlzZUV2ZW50UGF5bG9hZDxUPiAmIEQ+KGV2ZW50VHlwZSwge2RldGFpbH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW1pdFByb21pc2VFdmVudDxUID0gYW55LCBEID0gdm9pZD4oZW1pdHRlcjogRXZlbnRFbWl0dGVyPFByb21pc2VFdmVudDxULCBEPj4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFR5cGU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRBcmc/OiBDdXN0b21FdmVudEluaXQ8RD4pOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBldmVudCA9IGNyZWF0ZVByb21pc2VFdmVudChldmVudFR5cGUsIHtcbiAgICAgIHN1Y2Nlc3M6IHJlc29sdmUsXG4gICAgICBlcnJvcjogcmVqZWN0XG4gICAgfSwgaW5pdEFyZyk7XG4gICAgZW1pdHRlci5lbWl0KGV2ZW50KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxldGFibGVFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgdGFyZ2V0OiBFdmVudFRhcmdldCAmIHsgY29tcGxldGU/OiAoKSA9PiB2b2lkIH07XG59XG5cbi8qKlxuICogTGlzdGVuIGVuZCBvZiBzY3JvbGwuXG4gKiA8cD5cbiAqICAgVGhlIHRocmVzaG9sZCBkaXN0YW5jZSBmcm9tIHRoZSBib3R0b20gb2YgdGhlIGNvbnRlbnQgdG8gY2FsbCB0aGUgaW5maW5pdGUgb3V0cHV0IGV2ZW50IHdoZW4gc2Nyb2xsZWQuXG4gKiAgIFRoZSB0aHJlc2hvbGQgdmFsdWUgY2FuIGJlIGVpdGhlciBhIHBlcmNlbnQsIG9yIGluIHBpeGVscy5cbiAqICAgRm9yIGV4YW1wbGUsIHVzZSB0aGUgdmFsdWUgb2YgMTAlIGZvciB0aGUgaW5maW5pdGUgb3V0cHV0IGV2ZW50IHRvIGdldCBjYWxsZWQgd2hlbiB0aGUgdXNlciBoYXMgc2Nyb2xsZWRcbiAqICAgMTAlIGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZS4gVXNlIHRoZSB2YWx1ZSAxMDBweCB3aGVuIHRoZSBzY3JvbGwgaXMgd2l0aGluIDEwMCBwaXhlbHMgZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBwYWdlLlxuICogPC9wPlxuICogQHBhcmFtIGVsZW1lbnRcbiAqIEBwYXJhbSB0aHJlc2hvbGQgZGVmYXVsdCB0byAnMTUlJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVNjcm9sbEVuZEV2ZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB0aHJlc2hvbGQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gIHRocmVzaG9sZCA9IHRocmVzaG9sZCB8fCAnMTUlJztcbiAgbGV0IGlzRW5kOiAoKSA9PiBib29sZWFuO1xuXG4gIC8vIExpc3RlbiB1c2luZyBwZXJjZW50YWdlXG4gIGlmICh0aHJlc2hvbGQuZW5kc1dpdGgoJyUnKSkge1xuICAgIGNvbnN0IHRocmVzaG9sZFJhdGlvID0gcGFyc2VJbnQodGhyZXNob2xkLnNsaWNlKDAsIHRocmVzaG9sZC5sZW5ndGggLSAxKSkgLyAxMDA7XG4gICAgaXNFbmQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBlbmRQb3NSYXRpbyA9IDEgLSAoZWxlbWVudC5zY3JvbGxUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCkgLyBlbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgIHJldHVybiBlbmRQb3NSYXRpbyA8IHRocmVzaG9sZFJhdGlvO1xuICAgIH07XG4gIH1cblxuICAvLyBMaXN0ZW4gdXNpbmcgcGl4ZWxzXG4gIGVsc2UgaWYgKHRocmVzaG9sZC5lbmRzV2l0aCgncHgnKSkge1xuICAgIGNvbnN0IHRocmVzaG9sZFB4ID0gcGFyc2VJbnQodGhyZXNob2xkLnNsaWNlKDAsIHRocmVzaG9sZC5sZW5ndGggLSAyKSk7XG4gICAgaXNFbmQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBlbmRQb3NQeCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gKGVsZW1lbnQuc2Nyb2xsVG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQpO1xuICAgICAgcmV0dXJuIGVuZFBvc1B4IDwgdGhyZXNob2xkUHg7XG4gICAgfTtcbiAgfVxuICBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYXJndW1lbnQgXFwndGhyZXNob2xkXFwnLiBFeHBlY3RlZCB2YWx1ZSB1bml0OiBcXCdweFxcJyBvciBcXCclXFwnICcpXG4gIH1cblxuICByZXR1cm4gZnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKVxuICAgIC5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IGlzRW5kKCkpXG4gICAgKTtcbn1cbiJdfQ==
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { isNilOrBlank } from '../functions';
|
|
3
|
-
export const IMAGE_DEFAULTS = {
|
|
4
|
-
MAX_HEIGHT: 480,
|
|
5
|
-
MAX_WIDTH: 640,
|
|
6
|
-
THUMB_MAX_HEIGHT: 200,
|
|
7
|
-
THUMB_MAX_WIDTH: 200
|
|
8
|
-
};
|
|
9
|
-
export class Base64ImageReader {
|
|
10
|
-
constructor() {
|
|
11
|
-
}
|
|
12
|
-
readFromBlob(file) {
|
|
13
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
-
if (!file)
|
|
15
|
-
throw new Error('Illegal argument: missing file');
|
|
16
|
-
const dataUrl = yield new Promise((resolve, reject) => {
|
|
17
|
-
const reader = new FileReader();
|
|
18
|
-
reader.addEventListener('load', (event) => resolve(reader.result), false);
|
|
19
|
-
reader.readAsDataURL(file);
|
|
20
|
-
});
|
|
21
|
-
return dataUrl;
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
readAndResizeFromUrl(path, opts) {
|
|
25
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
if (isNilOrBlank(path))
|
|
27
|
-
throw new Error('Illegal argument: missing path');
|
|
28
|
-
// Create the temporary image element
|
|
29
|
-
const img = document.createElement('img');
|
|
30
|
-
// Need to avoid CORS error
|
|
31
|
-
// (see https://stackoverflow.com/questions/22710627/tainted-canvases-may-not-be-exported)
|
|
32
|
-
img.crossOrigin = 'anonymous';
|
|
33
|
-
try {
|
|
34
|
-
return yield new Promise((resolve, reject) => {
|
|
35
|
-
img.addEventListener('load', this.createImageOnLoadResizeFn(resolve, reject, opts), false);
|
|
36
|
-
img.addEventListener('error', reject);
|
|
37
|
-
img.src = path;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
catch (err) {
|
|
41
|
-
throw new Error(`Failed to load and resize image {${path}}`);
|
|
42
|
-
}
|
|
43
|
-
finally {
|
|
44
|
-
img.remove();
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
readAndResizeFromBlob(file, opts) {
|
|
49
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
-
if (!file)
|
|
51
|
-
throw new Error('Illegal argument: missing file');
|
|
52
|
-
// Create the temporary image element
|
|
53
|
-
const img = document.createElement('img');
|
|
54
|
-
// Need to avoid CORS error
|
|
55
|
-
// (see https://stackoverflow.com/questions/22710627/tainted-canvases-may-not-be-exported)
|
|
56
|
-
img.crossOrigin = 'anonymous';
|
|
57
|
-
try {
|
|
58
|
-
return yield new Promise((resolve, reject) => {
|
|
59
|
-
const reader = new FileReader();
|
|
60
|
-
reader.addEventListener('load', (event) => {
|
|
61
|
-
// Resize image
|
|
62
|
-
img.onload = this.createImageOnLoadResizeFn(resolve, reject, opts);
|
|
63
|
-
img.src = reader.result;
|
|
64
|
-
}, false);
|
|
65
|
-
reader.readAsDataURL(file);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
finally {
|
|
69
|
-
img.remove();
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
/* -- protected methods -- */
|
|
74
|
-
createImageOnLoadResizeFn(resolve, reject, opts) {
|
|
75
|
-
return function (event) {
|
|
76
|
-
const maxWidth = (opts && opts.thumbnail ? IMAGE_DEFAULTS.THUMB_MAX_WIDTH : (opts && opts.maxWidth || IMAGE_DEFAULTS.MAX_WIDTH));
|
|
77
|
-
const maxHeight = (opts && opts.thumbnail ? IMAGE_DEFAULTS.THUMB_MAX_HEIGHT : (opts && opts.maxHeight || IMAGE_DEFAULTS.MAX_HEIGHT));
|
|
78
|
-
let width = event.target.width;
|
|
79
|
-
let height = event.target.height;
|
|
80
|
-
const canvas = document.createElement('canvas');
|
|
81
|
-
let ctx;
|
|
82
|
-
try {
|
|
83
|
-
// Thumbnail: resize and crop (to the expected size)
|
|
84
|
-
if (opts && opts.thumbnail) {
|
|
85
|
-
// landscape
|
|
86
|
-
if (width > height) {
|
|
87
|
-
width *= maxHeight / height;
|
|
88
|
-
height = maxHeight;
|
|
89
|
-
}
|
|
90
|
-
// portrait
|
|
91
|
-
else {
|
|
92
|
-
height *= maxWidth / width;
|
|
93
|
-
width = maxWidth;
|
|
94
|
-
}
|
|
95
|
-
canvas.width = maxWidth;
|
|
96
|
-
canvas.height = maxHeight;
|
|
97
|
-
ctx = canvas.getContext('2d');
|
|
98
|
-
const xoffset = Math.trunc((maxWidth - width) / 2 + 0.5);
|
|
99
|
-
const yoffset = Math.trunc((maxHeight - height) / 2 + 0.5);
|
|
100
|
-
ctx.drawImage(event.target, xoffset, // x1
|
|
101
|
-
yoffset, // y1
|
|
102
|
-
maxWidth + -2 * xoffset, // x2
|
|
103
|
-
maxHeight + -2 * yoffset // y2
|
|
104
|
-
);
|
|
105
|
-
}
|
|
106
|
-
// Resize, but keep the full image
|
|
107
|
-
else {
|
|
108
|
-
// landscape
|
|
109
|
-
if (width > height) {
|
|
110
|
-
if (width > maxWidth) {
|
|
111
|
-
height *= maxWidth / width;
|
|
112
|
-
width = maxWidth;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
// portrait
|
|
116
|
-
else {
|
|
117
|
-
if (height > maxHeight) {
|
|
118
|
-
width *= maxHeight / height;
|
|
119
|
-
height = maxHeight;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
canvas.width = width;
|
|
123
|
-
canvas.height = height;
|
|
124
|
-
ctx = canvas.getContext('2d');
|
|
125
|
-
// Resize the whole image
|
|
126
|
-
ctx.drawImage(event.target, 0, 0, canvas.width, canvas.height);
|
|
127
|
-
}
|
|
128
|
-
// Get image content as data URL
|
|
129
|
-
const base64 = canvas.toDataURL();
|
|
130
|
-
resolve(base64);
|
|
131
|
-
}
|
|
132
|
-
catch (err) {
|
|
133
|
-
reject(err);
|
|
134
|
-
}
|
|
135
|
-
finally {
|
|
136
|
-
canvas.remove();
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LWltYWdlLXJlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2ZpbGUvYmFzZTY0LWltYWdlLXJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsVUFBVSxFQUFFLEdBQUc7SUFDZixTQUFTLEVBQUUsR0FBRztJQUNkLGdCQUFnQixFQUFFLEdBQUc7SUFDckIsZUFBZSxFQUFFLEdBQUc7Q0FDckIsQ0FBQztBQVFGLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUI7SUFDQSxDQUFDO0lBRUssWUFBWSxDQUFDLElBQVM7O1lBQzFCLElBQUksQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUM3RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUM1RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQWdCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDcEYsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FBQTtJQUVLLG9CQUFvQixDQUFDLElBQVksRUFBRSxJQUErQjs7WUFDdEUsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUUxRSxxQ0FBcUM7WUFDckMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUxQywyQkFBMkI7WUFDM0IsMEZBQTBGO1lBQzFGLEdBQUcsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBRTlCLElBQUk7Z0JBQ0YsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO29CQUNuRCxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUMzRixHQUFHLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUN0QyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztnQkFDakIsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELE9BQU8sR0FBRyxFQUFFO2dCQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLElBQUksR0FBRyxDQUFDLENBQUM7YUFDOUQ7b0JBQ087Z0JBQ04sR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2Q7UUFDSCxDQUFDO0tBQUE7SUFFSyxxQkFBcUIsQ0FBQyxJQUFTLEVBQUUsSUFBOEI7O1lBQ25FLElBQUksQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUU3RCxxQ0FBcUM7WUFDckMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUxQywyQkFBMkI7WUFDM0IsMEZBQTBGO1lBQzFGLEdBQUcsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBRTlCLElBQUk7Z0JBQ0YsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO29CQUNuRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNoQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ3hDLGVBQWU7d0JBQ2YsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDbkUsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBZ0IsQ0FBQztvQkFDcEMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNWLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7b0JBQVM7Z0JBQ1IsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2Q7UUFDSCxDQUFDO0tBQUE7SUFFRCw2QkFBNkI7SUFFbkIseUJBQXlCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUErQjtRQUNsRixPQUFPLFVBQVMsS0FBSztZQUNuQixNQUNFLFFBQVEsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzNILE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN2SSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUVuQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELElBQUksR0FBRyxDQUFDO1lBRVIsSUFBSTtnQkFDRixvREFBb0Q7Z0JBQ3BELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBRTFCLFlBQVk7b0JBQ1osSUFBSSxLQUFLLEdBQUcsTUFBTSxFQUFFO3dCQUNsQixLQUFLLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQzt3QkFDNUIsTUFBTSxHQUFHLFNBQVMsQ0FBQztxQkFDcEI7b0JBRUQsV0FBVzt5QkFDTjt3QkFDSCxNQUFNLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQzt3QkFDM0IsS0FBSyxHQUFHLFFBQVEsQ0FBQztxQkFDbEI7b0JBQ0QsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7b0JBQ3hCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO29CQUMxQixHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7b0JBQ3pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUMzRCxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQ3hCLE9BQU8sRUFBRSxLQUFLO29CQUNkLE9BQU8sRUFBRSxLQUFLO29CQUNkLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsS0FBSztvQkFDOUIsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLO3FCQUMvQixDQUFDO2lCQUNIO2dCQUVELGtDQUFrQztxQkFDN0I7b0JBRUgsWUFBWTtvQkFDWixJQUFJLEtBQUssR0FBRyxNQUFNLEVBQUU7d0JBQ2xCLElBQUksS0FBSyxHQUFHLFFBQVEsRUFBRTs0QkFDcEIsTUFBTSxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7NEJBQzNCLEtBQUssR0FBRyxRQUFRLENBQUM7eUJBQ2xCO3FCQUNGO29CQUVELFdBQVc7eUJBQ047d0JBQ0gsSUFBSSxNQUFNLEdBQUcsU0FBUyxFQUFFOzRCQUN0QixLQUFLLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQzs0QkFDNUIsTUFBTSxHQUFHLFNBQVMsQ0FBQzt5QkFDcEI7cUJBQ0Y7b0JBRUQsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7b0JBQ3JCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO29CQUN2QixHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFOUIseUJBQXlCO29CQUN6QixHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDaEU7Z0JBRUQsZ0NBQWdDO2dCQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNqQjtZQUNELE9BQU8sR0FBRyxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNiO29CQUNPO2dCQUNOLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNqQjtRQUVILENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNOaWxPckJsYW5rfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgSU1BR0VfREVGQVVMVFMgPSB7XG4gIE1BWF9IRUlHSFQ6IDQ4MCxcbiAgTUFYX1dJRFRIOiA2NDAsXG4gIFRIVU1CX01BWF9IRUlHSFQ6IDIwMCxcbiAgVEhVTUJfTUFYX1dJRFRIOiAyMDBcbn07XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBCYXNlNjRJbWFnZVJlc2l6ZU9wdGlvbnMge1xuICBtYXhXaWR0aD86IG51bWJlcjtcbiAgbWF4SGVpZ2h0PzogbnVtYmVyO1xuICB0aHVtYm5haWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQmFzZTY0SW1hZ2VSZWFkZXIge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgYXN5bmMgcmVhZEZyb21CbG9iKGZpbGU6IGFueSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCFmaWxlKSB0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgYXJndW1lbnQ6IG1pc3NpbmcgZmlsZScpO1xuICAgIGNvbnN0IGRhdGFVcmwgPSBhd2FpdCBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIChldmVudCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyksIGZhbHNlKTtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIH0pO1xuICAgIHJldHVybiBkYXRhVXJsO1xuICB9XG5cbiAgYXN5bmMgcmVhZEFuZFJlc2l6ZUZyb21VcmwocGF0aDogc3RyaW5nLCBvcHRzPzogQmFzZTY0SW1hZ2VSZXNpemVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoaXNOaWxPckJsYW5rKHBhdGgpKSB0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgYXJndW1lbnQ6IG1pc3NpbmcgcGF0aCcpO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSB0ZW1wb3JhcnkgaW1hZ2UgZWxlbWVudFxuICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xuXG4gICAgLy8gTmVlZCB0byBhdm9pZCBDT1JTIGVycm9yXG4gICAgLy8gKHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMjcxMDYyNy90YWludGVkLWNhbnZhc2VzLW1heS1ub3QtYmUtZXhwb3J0ZWQpXG4gICAgaW1nLmNyb3NzT3JpZ2luID0gJ2Fub255bW91cyc7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRoaXMuY3JlYXRlSW1hZ2VPbkxvYWRSZXNpemVGbihyZXNvbHZlLCByZWplY3QsIG9wdHMpLCBmYWxzZSk7XG4gICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7XG4gICAgICAgIGltZy5zcmMgPSBwYXRoO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgYW5kIHJlc2l6ZSBpbWFnZSB7JHtwYXRofX1gKTtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICBpbWcucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVhZEFuZFJlc2l6ZUZyb21CbG9iKGZpbGU6IGFueSwgb3B0czogQmFzZTY0SW1hZ2VSZXNpemVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIWZpbGUpIHRocm93IG5ldyBFcnJvcignSWxsZWdhbCBhcmd1bWVudDogbWlzc2luZyBmaWxlJyk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIHRlbXBvcmFyeSBpbWFnZSBlbGVtZW50XG4gICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG5cbiAgICAvLyBOZWVkIHRvIGF2b2lkIENPUlMgZXJyb3JcbiAgICAvLyAoc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIyNzEwNjI3L3RhaW50ZWQtY2FudmFzZXMtbWF5LW5vdC1iZS1leHBvcnRlZClcbiAgICBpbWcuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gUmVzaXplIGltYWdlXG4gICAgICAgICAgaW1nLm9ubG9hZCA9IHRoaXMuY3JlYXRlSW1hZ2VPbkxvYWRSZXNpemVGbihyZXNvbHZlLCByZWplY3QsIG9wdHMpO1xuICAgICAgICAgIGltZy5zcmMgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICAgICAgfSwgZmFsc2UpO1xuICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpbWcucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgY3JlYXRlSW1hZ2VPbkxvYWRSZXNpemVGbihyZXNvbHZlLCByZWplY3QsIG9wdHM/OiBCYXNlNjRJbWFnZVJlc2l6ZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgIGNvbnN0XG4gICAgICAgIG1heFdpZHRoID0gKG9wdHMgJiYgb3B0cy50aHVtYm5haWwgPyBJTUFHRV9ERUZBVUxUUy5USFVNQl9NQVhfV0lEVEggOiAob3B0cyAmJiBvcHRzLm1heFdpZHRoIHx8IElNQUdFX0RFRkFVTFRTLk1BWF9XSURUSCkpO1xuICAgICAgICBjb25zdCBtYXhIZWlnaHQgPSAob3B0cyAmJiBvcHRzLnRodW1ibmFpbCA/IElNQUdFX0RFRkFVTFRTLlRIVU1CX01BWF9IRUlHSFQgOiAob3B0cyAmJiBvcHRzLm1heEhlaWdodCB8fCBJTUFHRV9ERUZBVUxUUy5NQVhfSEVJR0hUKSk7XG4gICAgICBsZXQgd2lkdGggPSBldmVudC50YXJnZXQud2lkdGg7XG4gICAgICAgIGxldCBoZWlnaHQgPSBldmVudC50YXJnZXQuaGVpZ2h0O1xuXG4gICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgIGxldCBjdHg7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRodW1ibmFpbDogcmVzaXplIGFuZCBjcm9wICh0byB0aGUgZXhwZWN0ZWQgc2l6ZSlcbiAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy50aHVtYm5haWwpIHtcblxuICAgICAgICAgIC8vIGxhbmRzY2FwZVxuICAgICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkge1xuICAgICAgICAgICAgd2lkdGggKj0gbWF4SGVpZ2h0IC8gaGVpZ2h0O1xuICAgICAgICAgICAgaGVpZ2h0ID0gbWF4SGVpZ2h0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHBvcnRyYWl0XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBoZWlnaHQgKj0gbWF4V2lkdGggLyB3aWR0aDtcbiAgICAgICAgICAgIHdpZHRoID0gbWF4V2lkdGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhbnZhcy53aWR0aCA9IG1heFdpZHRoO1xuICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBtYXhIZWlnaHQ7XG4gICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgY29uc3QgeG9mZnNldCA9IE1hdGgudHJ1bmMoKG1heFdpZHRoIC0gd2lkdGgpIC8gMiArIDAuNSk7XG4gICAgICAgICAgY29uc3QgeW9mZnNldCA9IE1hdGgudHJ1bmMoKG1heEhlaWdodCAtIGhlaWdodCkgLyAyICsgMC41KTtcbiAgICAgICAgICBjdHguZHJhd0ltYWdlKGV2ZW50LnRhcmdldCxcbiAgICAgICAgICAgIHhvZmZzZXQsIC8vIHgxXG4gICAgICAgICAgICB5b2Zmc2V0LCAvLyB5MVxuICAgICAgICAgICAgbWF4V2lkdGggKyAtMiAqIHhvZmZzZXQsIC8vIHgyXG4gICAgICAgICAgICBtYXhIZWlnaHQgKyAtMiAqIHlvZmZzZXQgLy8geTJcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVzaXplLCBidXQga2VlcCB0aGUgZnVsbCBpbWFnZVxuICAgICAgICBlbHNlIHtcblxuICAgICAgICAgIC8vIGxhbmRzY2FwZVxuICAgICAgICAgIGlmICh3aWR0aCA+IGhlaWdodCkge1xuICAgICAgICAgICAgaWYgKHdpZHRoID4gbWF4V2lkdGgpIHtcbiAgICAgICAgICAgICAgaGVpZ2h0ICo9IG1heFdpZHRoIC8gd2lkdGg7XG4gICAgICAgICAgICAgIHdpZHRoID0gbWF4V2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gcG9ydHJhaXRcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChoZWlnaHQgPiBtYXhIZWlnaHQpIHtcbiAgICAgICAgICAgICAgd2lkdGggKj0gbWF4SGVpZ2h0IC8gaGVpZ2h0O1xuICAgICAgICAgICAgICBoZWlnaHQgPSBtYXhIZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gd2lkdGg7XG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgICBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuICAgICAgICAgIC8vIFJlc2l6ZSB0aGUgd2hvbGUgaW1hZ2VcbiAgICAgICAgICBjdHguZHJhd0ltYWdlKGV2ZW50LnRhcmdldCwgMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBpbWFnZSBjb250ZW50IGFzIGRhdGEgVVJMXG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGNhbnZhcy50b0RhdGFVUkwoKTtcbiAgICAgICAgcmVzb2x2ZShiYXNlNjQpO1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkge1xuICAgICAgICBjYW52YXMucmVtb3ZlKCk7XG4gICAgICB9XG5cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { Platform } from '@ionic/angular';
|
|
4
|
-
import * as uuidv4Imported from 'uuid/v4';
|
|
5
|
-
import { Base64ImageReader } from './base64-image-reader';
|
|
6
|
-
import { chainPromises, firstNotNilPromise } from '../observables';
|
|
7
|
-
import { HttpClient } from '@angular/common/http';
|
|
8
|
-
import { ENVIRONMENT } from '../../../environments/environment.class';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@ionic/angular";
|
|
11
|
-
import * as i2 from "@angular/common/http";
|
|
12
|
-
import * as i3 from "../../../environments/environment.class";
|
|
13
|
-
const uuidv4 = uuidv4Imported;
|
|
14
|
-
export class FileService {
|
|
15
|
-
constructor(platform,
|
|
16
|
-
//private transfer: FileTransfer,
|
|
17
|
-
//@Optional() private file: File,
|
|
18
|
-
http, environment) {
|
|
19
|
-
this.platform = platform;
|
|
20
|
-
this.http = http;
|
|
21
|
-
this.environment = environment;
|
|
22
|
-
this._started = false;
|
|
23
|
-
this._debug = !environment.production;
|
|
24
|
-
platform.ready().then(() => this.start());
|
|
25
|
-
}
|
|
26
|
-
get canUseFileSystem() {
|
|
27
|
-
return false;
|
|
28
|
-
// FIXME: seems not working well
|
|
29
|
-
//return !!this.file.dataDirectory;
|
|
30
|
-
}
|
|
31
|
-
getImages(sources, opts) {
|
|
32
|
-
if (!this._started)
|
|
33
|
-
throw new Error('Platform must be started first!');
|
|
34
|
-
//const fileTransfer = this.canUseFileSystem ? this.transfer.create() : undefined;
|
|
35
|
-
//const jobsFactories = (sources || []).map(source => () => this.getImage(source, {...opts, fileTransfer}));
|
|
36
|
-
const jobsFactories = (sources || []).map(source => () => this.getImage(source, Object.assign({}, opts)));
|
|
37
|
-
return chainPromises(jobsFactories);
|
|
38
|
-
}
|
|
39
|
-
getImage(source, opts) {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
let responseType = opts && opts.responseType || (this.canUseFileSystem ? 'file' : 'dataUrl');
|
|
42
|
-
const debug = this._debug /*&& (!opts || !opts.fileTransfer)*/;
|
|
43
|
-
const now = debug && Date.now();
|
|
44
|
-
if (debug)
|
|
45
|
-
console.debug(`[file] Fetching image {${source}} into ${responseType}...`);
|
|
46
|
-
// Read the filename
|
|
47
|
-
const lastSlashIndex = source.lastIndexOf('/');
|
|
48
|
-
if (lastSlashIndex === -1)
|
|
49
|
-
throw new Error('Invalid URL: ' + source);
|
|
50
|
-
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
51
|
-
// Download into the file system
|
|
52
|
-
if (responseType === 'file' && this.canUseFileSystem) {
|
|
53
|
-
console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
|
|
54
|
-
const targetFilePath = this._imageDirectory + fileName;
|
|
55
|
-
try {
|
|
56
|
-
const blob = yield firstNotNilPromise(this.http.get(source, {
|
|
57
|
-
observe: 'body',
|
|
58
|
-
responseType: 'blob',
|
|
59
|
-
reportProgress: false
|
|
60
|
-
}));
|
|
61
|
-
console.debug('[file] Getting blob :' + blob.type);
|
|
62
|
-
//await this.file.writeFile(this._imageDirectory, fileName, blob, {replace: true});
|
|
63
|
-
//const fileTransfer = (opts && opts.fileTransfer) || this.transfer.create();
|
|
64
|
-
//await fileTransfer.download(source, targetFilePath);
|
|
65
|
-
if (debug)
|
|
66
|
-
console.debug(`[file] Fetching image {${source}} into ${responseType} [OK] in ${Date.now() - now}ms`);
|
|
67
|
-
return targetFilePath;
|
|
68
|
-
}
|
|
69
|
-
catch (err) {
|
|
70
|
-
console.error(`[file] Error while download ${source}: ${err && err.message || err}`);
|
|
71
|
-
// Continue (fallback to data Url)
|
|
72
|
-
responseType = 'dataUrl';
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
if (responseType === 'dataUrl') {
|
|
76
|
-
// Get as data url (e.g. 'data:image/png:...')
|
|
77
|
-
const dataUrl = yield new Base64ImageReader().readAndResizeFromUrl(source, opts);
|
|
78
|
-
if (debug)
|
|
79
|
-
console.debug(`[file] Fetching image {${source}} into ${responseType} [OK] in ${Date.now() - now}ms`);
|
|
80
|
-
return dataUrl;
|
|
81
|
-
}
|
|
82
|
-
// Keep original URL
|
|
83
|
-
return source;
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
/* -- protected methods -- */
|
|
87
|
-
start() {
|
|
88
|
-
// File system exists
|
|
89
|
-
if (this.canUseFileSystem) {
|
|
90
|
-
//console.info("[file] Application directory: ", this.file.applicationDirectory);
|
|
91
|
-
//console.info("[file] Application storage directory: ", this.file.applicationStorageDirectory);
|
|
92
|
-
//console.info("[file] Data directory: ", this.file.dataDirectory);
|
|
93
|
-
// this.file.createDir(this.file.dataDirectory, 'images', false)
|
|
94
|
-
// .then((dir) => {
|
|
95
|
-
// this._imageDirectory = this.file.dataDirectory + 'images/';
|
|
96
|
-
// console.info("[file] Images directory: ", dir.fullPath);
|
|
97
|
-
// })
|
|
98
|
-
// .catch(err => {
|
|
99
|
-
// console.error("[file] Cannot create the images directory: " + (this.file.dataDirectory + 'images/ : ' + (err && err.message || err)));
|
|
100
|
-
// this._imageDirectory = this.file.dataDirectory;
|
|
101
|
-
// });
|
|
102
|
-
}
|
|
103
|
-
this._started = true;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
107
|
-
FileService.decorators = [
|
|
108
|
-
{ type: Injectable, args: [{
|
|
109
|
-
providedIn: 'root',
|
|
110
|
-
deps: [
|
|
111
|
-
Platform,
|
|
112
|
-
HttpClient
|
|
113
|
-
]
|
|
114
|
-
},] }
|
|
115
|
-
];
|
|
116
|
-
FileService.ctorParameters = () => [
|
|
117
|
-
{ type: Platform },
|
|
118
|
-
{ type: HttpClient },
|
|
119
|
-
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] }
|
|
120
|
-
];
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssY0FBYyxNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUMsaUJBQWlCLEVBQTJCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEYsT0FBTyxFQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUNBQXlDLENBQUM7Ozs7O0FBRXBFLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQztBQVM5QixNQUFNLE9BQU8sV0FBVztJQWF0QixZQUNVLFFBQWtCO0lBQzFCLGlDQUFpQztJQUNqQyxpQ0FBaUM7SUFDekIsSUFBZ0IsRUFDTyxXQUFXO1FBSmxDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNPLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBZnBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFpQnZCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBRXRDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQWhCRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLEtBQUssQ0FBQztRQUNiLGdDQUFnQztRQUNoQyxtQ0FBbUM7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SSxpQkFBaUIsRUFBRSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDakYsSUFBSSxLQUFLO29CQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLE1BQU0sVUFBVSxZQUFZLFlBQVksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ2pILE9BQU8sT0FBTyxDQUFDO2FBQ2hCO1lBRUQsb0JBQW9CO1lBQ3BCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtJQUVELDZCQUE2QjtJQUVuQixLQUFLO1FBRWIscUJBQXFCO1FBQ3JCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLGlGQUFpRjtZQUNqRixnR0FBZ0c7WUFDaEcsbUVBQW1FO1lBRW5FLGdFQUFnRTtZQUNoRSxxQkFBcUI7WUFDckIsa0VBQWtFO1lBQ2xFLCtEQUErRDtZQUMvRCxPQUFPO1lBQ1Asb0JBQW9CO1lBQ3BCLDZJQUE2STtZQUM3SSxzREFBc0Q7WUFDdEQsUUFBUTtTQUNUO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzs7OztZQXpIRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07Z0JBQ2xCLElBQUksRUFBRTtvQkFDSixRQUFRO29CQUNSLFVBQVU7aUJBQ1g7YUFDRjs7O1lBZk8sUUFBUTtZQUlSLFVBQVU7NENBOEJiLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0ICogYXMgdXVpZHY0SW1wb3J0ZWQgZnJvbSAndXVpZC92NCc7XG5pbXBvcnQge0Jhc2U2NEltYWdlUmVhZGVyLCBCYXNlNjRJbWFnZVJlc2l6ZU9wdGlvbnN9IGZyb20gJy4vYmFzZTY0LWltYWdlLXJlYWRlcic7XG5pbXBvcnQge2NoYWluUHJvbWlzZXMsIGZpcnN0Tm90TmlsUHJvbWlzZX0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0VOVklST05NRU5UfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuXG5jb25zdCB1dWlkdjQgPSB1dWlkdjRJbXBvcnRlZDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGRlcHM6IFtcbiAgICBQbGF0Zm9ybSxcbiAgICBIdHRwQ2xpZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlYnVnOiBib29sZWFuO1xuICBwcml2YXRlIF9zdGFydGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaW1hZ2VEaXJlY3Rvcnk6IHN0cmluZztcblxuICBnZXQgY2FuVXNlRmlsZVN5c3RlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gRklYTUU6IHNlZW1zIG5vdCB3b3JraW5nIHdlbGxcbiAgICAvL3JldHVybiAhIXRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgLy9wcml2YXRlIHRyYW5zZmVyOiBGaWxlVHJhbnNmZXIsXG4gICAgLy9AT3B0aW9uYWwoKSBwcml2YXRlIGZpbGU6IEZpbGUsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudCkge1xuXG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcblxuICAgIHBsYXRmb3JtLnJlYWR5KCkudGhlbigoKSA9PiB0aGlzLnN0YXJ0KCkpO1xuICB9XG5cbiAgZ2V0SW1hZ2VzKHNvdXJjZXM6IHN0cmluZ1tdLCBvcHRzPzogQmFzZTY0SW1hZ2VSZXNpemVPcHRpb25zICYge1xuICAgIHJlc3BvbnNlVHlwZT86ICdmaWxlJyB8ICdkYXRhVXJsJztcbiAgfSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoIXRoaXMuX3N0YXJ0ZWQpIHRocm93IG5ldyBFcnJvcignUGxhdGZvcm0gbXVzdCBiZSBzdGFydGVkIGZpcnN0IScpO1xuXG4gICAgLy9jb25zdCBmaWxlVHJhbnNmZXIgPSB0aGlzLmNhblVzZUZpbGVTeXN0ZW0gPyB0aGlzLnRyYW5zZmVyLmNyZWF0ZSgpIDogdW5kZWZpbmVkO1xuICAgIC8vY29uc3Qgam9ic0ZhY3RvcmllcyA9IChzb3VyY2VzIHx8IFtdKS5tYXAoc291cmNlID0+ICgpID0+IHRoaXMuZ2V0SW1hZ2Uoc291cmNlLCB7Li4ub3B0cywgZmlsZVRyYW5zZmVyfSkpO1xuXG4gICAgY29uc3Qgam9ic0ZhY3RvcmllcyA9IChzb3VyY2VzIHx8IFtdKS5tYXAoc291cmNlID0+ICgpID0+IHRoaXMuZ2V0SW1hZ2Uoc291cmNlLCB7Li4ub3B0c30pKTtcbiAgICByZXR1cm4gY2hhaW5Qcm9taXNlczxzdHJpbmc+KGpvYnNGYWN0b3JpZXMpO1xuICB9XG5cbiAgYXN5bmMgZ2V0SW1hZ2Uoc291cmNlOiBzdHJpbmcsIG9wdHM/OiBCYXNlNjRJbWFnZVJlc2l6ZU9wdGlvbnMgJiB7XG4gICAgLy9maWxlVHJhbnNmZXI/OiBGaWxlVHJhbnNmZXJPYmplY3Q7XG4gICAgcmVzcG9uc2VUeXBlPzogJ2ZpbGUnIHwgJ2RhdGFVcmwnO1xuICAgIH0pOiBQcm9taXNlPHN0cmluZz4ge1xuXG4gICAgbGV0IHJlc3BvbnNlVHlwZSA9IG9wdHMgJiYgb3B0cy5yZXNwb25zZVR5cGUgfHwgKHRoaXMuY2FuVXNlRmlsZVN5c3RlbSA/ICdmaWxlJyA6ICdkYXRhVXJsJyk7XG5cbiAgICBjb25zdCBkZWJ1ZyA9IHRoaXMuX2RlYnVnIC8qJiYgKCFvcHRzIHx8ICFvcHRzLmZpbGVUcmFuc2ZlcikqLztcbiAgICBjb25zdCBub3cgPSBkZWJ1ZyAmJiBEYXRlLm5vdygpO1xuICAgIGlmIChkZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2ZpbGVdIEZldGNoaW5nIGltYWdlIHske3NvdXJjZX19IGludG8gJHtyZXNwb25zZVR5cGV9Li4uYCk7XG5cbiAgICAvLyBSZWFkIHRoZSBmaWxlbmFtZVxuICAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gc291cmNlLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgaWYgKGxhc3RTbGFzaEluZGV4ID09PSAtMSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFVSTDogJyArIHNvdXJjZSk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBsYXN0U2xhc2hJbmRleCA8IChzb3VyY2UubGVuZ3RoIC0gMSkgJiYgc291cmNlLnN1YnN0cmluZyhsYXN0U2xhc2hJbmRleCArIDEpIHx8IHV1aWR2NCgpO1xuXG5cbiAgICAvLyBEb3dubG9hZCBpbnRvIHRoZSBmaWxlIHN5c3RlbVxuICAgIGlmIChyZXNwb25zZVR5cGUgPT09ICdmaWxlJyAmJiB0aGlzLmNhblVzZUZpbGVTeXN0ZW0pIHtcbiAgICAgIGNvbnNvbGUud2FybihgV0FSTjogW2ZpbGVdIEZldGNoaW5nIGltYWdlIHske3NvdXJjZX19IGluIGxvY2FsIGZpbGUuLi5gKTtcbiAgICAgIGNvbnN0IHRhcmdldEZpbGVQYXRoID0gdGhpcy5faW1hZ2VEaXJlY3RvcnkgKyBmaWxlTmFtZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJsb2I6IEJsb2IgPSBhd2FpdCBmaXJzdE5vdE5pbFByb21pc2UodGhpcy5odHRwLmdldChzb3VyY2UsIHtcbiAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IGZhbHNlXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnW2ZpbGVdIEdldHRpbmcgYmxvYiA6JyArIGJsb2IudHlwZSk7XG5cbiAgICAgICAgLy9hd2FpdCB0aGlzLmZpbGUud3JpdGVGaWxlKHRoaXMuX2ltYWdlRGlyZWN0b3J5LCBmaWxlTmFtZSwgYmxvYiwge3JlcGxhY2U6IHRydWV9KTtcblxuICAgICAgICAvL2NvbnN0IGZpbGVUcmFuc2ZlciA9IChvcHRzICYmIG9wdHMuZmlsZVRyYW5zZmVyKSB8fCB0aGlzLnRyYW5zZmVyLmNyZWF0ZSgpO1xuICAgICAgICAvL2F3YWl0IGZpbGVUcmFuc2Zlci5kb3dubG9hZChzb3VyY2UsIHRhcmdldEZpbGVQYXRoKTtcbiAgICAgICAgaWYgKGRlYnVnKSBjb25zb2xlLmRlYnVnKGBbZmlsZV0gRmV0Y2hpbmcgaW1hZ2UgeyR7c291cmNlfX0gaW50byAke3Jlc3BvbnNlVHlwZX0gW09LXSBpbiAke0RhdGUubm93KCkgLSBub3d9bXNgKTtcbiAgICAgICAgcmV0dXJuIHRhcmdldEZpbGVQYXRoO1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbZmlsZV0gRXJyb3Igd2hpbGUgZG93bmxvYWQgJHtzb3VyY2V9OiAke2VyciAmJiBlcnIubWVzc2FnZSB8fCBlcnJ9YCk7XG5cbiAgICAgICAgLy8gQ29udGludWUgKGZhbGxiYWNrIHRvIGRhdGEgVXJsKVxuICAgICAgICByZXNwb25zZVR5cGUgPSAnZGF0YVVybCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlVHlwZSA9PT0gJ2RhdGFVcmwnKSB7XG4gICAgICAvLyBHZXQgYXMgZGF0YSB1cmwgKGUuZy4gJ2RhdGE6aW1hZ2UvcG5nOi4uLicpXG4gICAgICBjb25zdCBkYXRhVXJsID0gYXdhaXQgbmV3IEJhc2U2NEltYWdlUmVhZGVyKCkucmVhZEFuZFJlc2l6ZUZyb21Vcmwoc291cmNlLCBvcHRzKTtcbiAgICAgIGlmIChkZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2ZpbGVdIEZldGNoaW5nIGltYWdlIHske3NvdXJjZX19IGludG8gJHtyZXNwb25zZVR5cGV9IFtPS10gaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zYCk7XG4gICAgICByZXR1cm4gZGF0YVVybDtcbiAgICB9XG5cbiAgICAvLyBLZWVwIG9yaWdpbmFsIFVSTFxuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBzdGFydCgpIHtcblxuICAgIC8vIEZpbGUgc3lzdGVtIGV4aXN0c1xuICAgIGlmICh0aGlzLmNhblVzZUZpbGVTeXN0ZW0pIHtcbiAgICAgIC8vY29uc29sZS5pbmZvKFwiW2ZpbGVdIEFwcGxpY2F0aW9uIGRpcmVjdG9yeTogXCIsIHRoaXMuZmlsZS5hcHBsaWNhdGlvbkRpcmVjdG9yeSk7XG4gICAgICAvL2NvbnNvbGUuaW5mbyhcIltmaWxlXSBBcHBsaWNhdGlvbiBzdG9yYWdlIGRpcmVjdG9yeTogXCIsIHRoaXMuZmlsZS5hcHBsaWNhdGlvblN0b3JhZ2VEaXJlY3RvcnkpO1xuICAgICAgLy9jb25zb2xlLmluZm8oXCJbZmlsZV0gRGF0YSBkaXJlY3Rvcnk6IFwiLCB0aGlzLmZpbGUuZGF0YURpcmVjdG9yeSk7XG5cbiAgICAgIC8vIHRoaXMuZmlsZS5jcmVhdGVEaXIodGhpcy5maWxlLmRhdGFEaXJlY3RvcnksICdpbWFnZXMnLCBmYWxzZSlcbiAgICAgIC8vICAgLnRoZW4oKGRpcikgPT4ge1xuICAgICAgLy8gICAgIHRoaXMuX2ltYWdlRGlyZWN0b3J5ID0gdGhpcy5maWxlLmRhdGFEaXJlY3RvcnkgKyAnaW1hZ2VzLyc7XG4gICAgICAvLyAgICAgY29uc29sZS5pbmZvKFwiW2ZpbGVdIEltYWdlcyBkaXJlY3Rvcnk6IFwiLCBkaXIuZnVsbFBhdGgpO1xuICAgICAgLy8gICB9KVxuICAgICAgLy8gICAuY2F0Y2goZXJyID0+IHtcbiAgICAgIC8vICAgICBjb25zb2xlLmVycm9yKFwiW2ZpbGVdIENhbm5vdCBjcmVhdGUgdGhlIGltYWdlcyBkaXJlY3Rvcnk6IFwiICsgKHRoaXMuZmlsZS5kYXRhRGlyZWN0b3J5ICsgJ2ltYWdlcy8gOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpKSk7XG4gICAgICAvLyAgICAgdGhpcy5faW1hZ2VEaXJlY3RvcnkgPSB0aGlzLmZpbGUuZGF0YURpcmVjdG9yeTtcbiAgICAgIC8vICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhcnRlZCA9IHRydWU7XG4gIH1cblxufVxuIl19
|