@sumaris-net/ngx-components 2.6.17 → 4.0.0-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/public_api.mjs +337 -0
- package/{esm2020 → esm2022}/src/app/admin/admin-routing.module.mjs +8 -8
- package/{esm2020 → esm2022}/src/app/admin/admin.module.mjs +11 -11
- package/esm2022/src/app/admin/services/filter/person.filter.mjs +68 -0
- package/esm2022/src/app/admin/services/person.service.mjs +174 -0
- package/esm2022/src/app/admin/services/validator/person.validator.mjs +72 -0
- package/esm2022/src/app/admin/users/users.mjs +273 -0
- package/esm2022/src/app/admin/users/users.module.mjs +58 -0
- package/esm2022/src/app/core/about/about.modal.mjs +84 -0
- package/{esm2020 → esm2022}/src/app/core/about/about.module.mjs +9 -9
- package/{esm2020 → esm2022}/src/app/core/account/account.module.mjs +22 -22
- package/esm2022/src/app/core/account/account.page.mjs +335 -0
- package/esm2022/src/app/core/account/new-token.modal.mjs +125 -0
- package/esm2022/src/app/core/account/token.table.mjs +141 -0
- package/esm2022/src/app/core/auth/auth.form.mjs +140 -0
- package/esm2022/src/app/core/auth/auth.modal.mjs +76 -0
- package/{esm2020 → esm2022}/src/app/core/auth/auth.module.mjs +16 -16
- package/{esm2020 → esm2022}/src/app/core/core.module.mjs +87 -87
- package/esm2022/src/app/core/core.testing.module.mjs +93 -0
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +109 -0
- package/{esm2020 → esm2022}/src/app/core/form/buttons/form-buttons-bar.module.mjs +10 -10
- package/esm2022/src/app/core/form/entity/editor.class.mjs +713 -0
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +436 -0
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +724 -0
- package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +24 -0
- package/{esm2020 → esm2022}/src/app/core/form/entity/entity.module.mjs +11 -11
- package/esm2022/src/app/core/form/form.class.mjs +353 -0
- package/{esm2020 → esm2022}/src/app/core/form/form.module.mjs +30 -30
- package/{esm2020 → esm2022}/src/app/core/form/form.utils.mjs +69 -60
- package/esm2022/src/app/core/form/list/list.form.mjs +233 -0
- package/{esm2020 → esm2022}/src/app/core/form/list/list.module.mjs +10 -10
- package/esm2022/src/app/core/form/properties/properties.form.mjs +143 -0
- package/{esm2020 → esm2022}/src/app/core/form/properties/properties.module.mjs +13 -13
- package/esm2022/src/app/core/form/properties/properties.table.mjs +269 -0
- package/esm2022/src/app/core/form/properties/property.validator.mjs +24 -0
- package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +95 -0
- package/{esm2020 → esm2022}/src/app/core/form/properties/testing/properties-form.testing.module.mjs +11 -11
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +73 -0
- package/{esm2020 → esm2022}/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -10
- package/esm2022/src/app/core/form/text-popover/text-form.component.mjs +97 -0
- package/{esm2020 → esm2022}/src/app/core/form/text-popover/text-popover.component.mjs +26 -20
- package/{esm2020 → esm2022}/src/app/core/form/text-popover/text-popover.module.mjs +12 -12
- package/{esm2020 → esm2022}/src/app/core/graphql/graphql.module.mjs +5 -5
- package/esm2022/src/app/core/graphql/graphql.service.mjs +787 -0
- package/{esm2020 → esm2022}/src/app/core/graphql/graphql.utils.mjs +2 -1
- package/esm2022/src/app/core/home/home.mjs +283 -0
- package/esm2022/src/app/core/home/home.module.mjs +51 -0
- package/esm2022/src/app/core/icon/icon.component.mjs +40 -0
- package/{esm2020 → esm2022}/src/app/core/icon/icon.module.mjs +7 -7
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +358 -0
- package/{esm2020 → esm2022}/src/app/core/install/install-upgrade-card.module.mjs +10 -10
- package/esm2022/src/app/core/menu/menu.component.mjs +260 -0
- package/esm2022/src/app/core/menu/menu.model.mjs +268 -0
- package/esm2022/src/app/core/menu/menu.module.mjs +52 -0
- package/esm2022/src/app/core/menu/menu.service.mjs +665 -0
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +109 -0
- package/{esm2020 → esm2022}/src/app/core/menu/testing/menu-other.testing.mjs +4 -4
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +122 -0
- package/{esm2020 → esm2022}/src/app/core/menu/testing/menu.testing.module.mjs +12 -12
- package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +29 -0
- package/{esm2020 → esm2022}/src/app/core/offline/update-offline-mode-card.module.mjs +10 -10
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +192 -0
- package/{esm2020 → esm2022}/src/app/core/peer/select-peer.module.mjs +13 -13
- package/esm2022/src/app/core/register/register-confirm.page.mjs +88 -0
- package/esm2022/src/app/core/register/register.form.mjs +194 -0
- package/esm2022/src/app/core/register/register.modal.mjs +55 -0
- package/{esm2020 → esm2022}/src/app/core/register/register.module.mjs +13 -13
- package/esm2022/src/app/core/services/account.service.mjs +1217 -0
- package/esm2022/src/app/core/services/auth-guard.service.mjs +76 -0
- package/esm2022/src/app/core/services/base-entity-service.class.mjs +482 -0
- package/esm2022/src/app/core/services/base-graphql-service.class.mjs +224 -0
- package/esm2022/src/app/core/services/base58.mjs +79 -0
- package/{esm2020 → esm2022}/src/app/core/services/config/core.config.mjs +4 -4
- package/esm2022/src/app/core/services/config.service.mjs +365 -0
- package/esm2022/src/app/core/services/crypto.service.mjs +107 -0
- package/esm2022/src/app/core/services/local-settings.service.mjs +468 -0
- package/esm2022/src/app/core/services/model/account.model.mjs +153 -0
- package/esm2022/src/app/core/services/model/config.model.mjs +105 -0
- package/esm2022/src/app/core/services/model/department.model.mjs +33 -0
- package/esm2022/src/app/core/services/model/entity.decorators.mjs +97 -0
- package/esm2022/src/app/core/services/model/entity.model.mjs +228 -0
- package/esm2022/src/app/core/services/model/peer.model.mjs +82 -0
- package/esm2022/src/app/core/services/model/person.model.mjs +109 -0
- package/esm2022/src/app/core/services/model/referential.model.mjs +185 -0
- package/esm2022/src/app/core/services/model/token.model.mjs +52 -0
- package/esm2022/src/app/core/services/network.service.mjs +608 -0
- package/{esm2020 → esm2022}/src/app/core/services/pipes/account.pipes.mjs +9 -9
- package/{esm2020 → esm2022}/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
- package/{esm2020 → esm2022}/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
- package/{esm2020 → esm2022}/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
- package/esm2022/src/app/core/services/platform.service.mjs +546 -0
- package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +434 -0
- package/esm2022/src/app/core/services/storage/entity-store.class.mjs +458 -0
- package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +25 -0
- package/esm2022/src/app/core/services/testing/referential.validator.mjs +46 -0
- package/esm2022/src/app/core/services/validator/account.validator.mjs +45 -0
- package/esm2022/src/app/core/services/validator/base.validator.class.mjs +49 -0
- package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +67 -0
- package/{esm2020 → esm2022}/src/app/core/services/validator/user-settings.validator.mjs +4 -4
- package/{esm2020 → esm2022}/src/app/core/services/validator/user-token.validator.mjs +4 -4
- package/{esm2020 → esm2022}/src/app/core/settings/settings.module.mjs +9 -9
- package/esm2022/src/app/core/settings/settings.page.mjs +328 -0
- package/esm2022/src/app/core/table/actions-column.component.mjs +115 -0
- package/esm2022/src/app/core/table/async-table.class.mjs +1735 -0
- package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +386 -0
- package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +401 -0
- package/esm2022/src/app/core/table/memory-table.class.mjs +57 -0
- package/esm2022/src/app/core/table/table-select-columns.component.mjs +46 -0
- package/esm2022/src/app/core/table/table.class.mjs +1771 -0
- package/esm2022/src/app/core/table/table.model.mjs +16 -0
- package/{esm2020 → esm2022}/src/app/core/table/table.module.mjs +12 -12
- package/esm2022/src/app/core/table/testing/table-validator.service.mjs +28 -0
- package/esm2022/src/app/core/table/testing/table.testing.mjs +291 -0
- package/esm2022/src/app/core/table/testing/table.testing.module.mjs +50 -0
- package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +25 -0
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +250 -0
- package/esm2022/src/app/shared/audio/audio.mjs +251 -0
- package/esm2022/src/app/shared/audio/audio.testing.mjs +32 -0
- package/{esm2020 → esm2022}/src/app/shared/audio/audio.testing.module.mjs +10 -10
- package/esm2022/src/app/shared/capacitor/keyboard.mjs +42 -0
- package/esm2022/src/app/shared/capacitor/plugins.mjs +9 -0
- package/esm2022/src/app/shared/dates.mjs +149 -0
- package/esm2022/src/app/shared/debug/debug.component.mjs +40 -0
- package/{esm2020 → esm2022}/src/app/shared/debug/debug.module.mjs +14 -14
- package/esm2022/src/app/shared/directives/autofocus.directive.mjs +98 -0
- package/esm2022/src/app/shared/directives/autotitle.directive.mjs +32 -0
- package/{esm2020 → esm2022}/src/app/shared/directives/directives.module.mjs +13 -13
- package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +52 -0
- package/esm2022/src/app/shared/directives/ng-var.directive.mjs +33 -0
- package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +62 -0
- package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +45 -0
- package/{esm2020 → esm2022}/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
- package/esm2022/src/app/shared/file/file.service.mjs +122 -0
- package/{esm2020 → esm2022}/src/app/shared/file/file.utils.mjs +2 -2
- package/esm2022/src/app/shared/form/field.component.mjs +353 -0
- package/{esm2020 → esm2022}/src/app/shared/form/field.model.mjs +1 -1
- package/esm2022/src/app/shared/form/loading-spinner.mjs +35 -0
- package/{esm2020 → esm2022}/src/app/shared/functions.mjs +5 -4
- package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +82 -0
- package/esm2022/src/app/shared/gesture/gesture-config.mjs +46 -0
- package/esm2022/src/app/shared/graph/graph-colors.mjs +219 -0
- package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +59 -0
- package/esm2022/src/app/shared/help/help.modal.mjs +63 -0
- package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +24 -0
- package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +85 -0
- package/{esm2020 → esm2022}/src/app/shared/hotkeys/shared-hotkeys.module.mjs +13 -13
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +388 -0
- package/{esm2020 → esm2022}/src/app/shared/image/gallery/image-gallery.module.mjs +22 -22
- package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +26 -0
- package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +90 -0
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +41 -0
- package/{esm2020 → esm2022}/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +16 -16
- package/{esm2020 → esm2022}/src/app/shared/image/image.module.mjs +11 -11
- package/esm2022/src/app/shared/image/image.service.mjs +104 -0
- package/esm2022/src/app/shared/inputs.mjs +231 -0
- package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +28 -0
- package/esm2022/src/app/shared/logging/logging-service.class.mjs +128 -0
- package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.module.mjs +8 -8
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +49 -0
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +961 -0
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +82 -0
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +217 -0
- package/esm2022/src/app/shared/material/badge/badge.directive.mjs +209 -0
- package/{esm2020 → esm2022}/src/app/shared/material/badge/badge.module.mjs +9 -9
- package/esm2022/src/app/shared/material/badge/badge.test.mjs +42 -0
- package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +72 -0
- package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +266 -0
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +271 -0
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +54 -0
- package/esm2022/src/app/shared/material/chips/chips.module.mjs +76 -0
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +719 -0
- package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +148 -0
- package/{esm2020 → esm2022}/src/app/shared/material/datetime/datetime.module.mjs +38 -38
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +396 -0
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +406 -0
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +523 -0
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +125 -0
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +122 -0
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +115 -0
- package/esm2022/src/app/shared/material/duration/duration.module.mjs +70 -0
- package/{esm2020 → esm2022}/src/app/shared/material/duration/duration.utils.mjs +2 -2
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +273 -0
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +79 -0
- package/{esm2020 → esm2022}/src/app/shared/material/latlong/latlong.utils.mjs +3 -3
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +415 -0
- package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +72 -0
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +113 -0
- package/esm2022/src/app/shared/material/material.module.mjs +224 -0
- package/esm2022/src/app/shared/material/material.testing.module.mjs +210 -0
- package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +104 -0
- package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +83 -0
- package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +203 -0
- package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +19 -0
- package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +168 -0
- package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +36 -0
- package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +16 -0
- package/{esm2020 → esm2022}/src/app/shared/material/numpad/numpad.module.mjs +21 -21
- package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +48 -0
- package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +48 -0
- package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +23 -0
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +368 -0
- package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +56 -0
- package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +67 -0
- package/esm2022/src/app/shared/material/testing/common.test.mjs +105 -0
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +212 -0
- package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +49 -0
- package/{esm2020 → esm2022}/src/app/shared/named-filter/named-filter.module.mjs +5 -5
- package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +69 -0
- package/{esm2020 → esm2022}/src/app/shared/pipes/arrays.pipe.mjs +25 -25
- package/esm2022/src/app/shared/pipes/colors.pipe.mjs +27 -0
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +51 -0
- package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +72 -0
- package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +28 -0
- package/esm2022/src/app/shared/pipes/duration.pipe.mjs +36 -0
- package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +60 -0
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +194 -0
- package/{esm2020 → esm2022}/src/app/shared/pipes/highlight.pipe.mjs +5 -5
- package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +42 -0
- package/{esm2020 → esm2022}/src/app/shared/pipes/maps.pipe.mjs +13 -13
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +118 -0
- package/{esm2020 → esm2022}/src/app/shared/pipes/math.pipes.mjs +13 -13
- package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +19 -0
- package/{esm2020 → esm2022}/src/app/shared/pipes/number-format.pipe.mjs +5 -5
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +256 -0
- package/esm2022/src/app/shared/pipes/property.pipes.mjs +97 -0
- package/esm2022/src/app/shared/pipes/string.pipes.mjs +135 -0
- package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +44 -0
- package/esm2022/src/app/shared/pipes/types.pipes.mjs +58 -0
- package/esm2022/src/app/shared/rx-state.module.mjs +23 -0
- package/esm2022/src/app/shared/services/entity-service.class.mjs +7 -0
- package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +347 -0
- package/esm2022/src/app/shared/services/progress-bar.service.mjs +31 -0
- package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +121 -0
- package/esm2022/src/app/shared/services/startable-service.class.mjs +113 -0
- package/esm2022/src/app/shared/services/translate-context.service.mjs +104 -0
- package/{esm2020 → esm2022}/src/app/shared/shared-routing.module.mjs +11 -11
- package/esm2022/src/app/shared/shared.module.mjs +217 -0
- package/{esm2020 → esm2022}/src/app/shared/shared.testing.module.mjs +40 -40
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +286 -0
- package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +46 -0
- package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +7 -7
- package/{esm2020 → esm2022}/src/app/shared/storage/storage-explorer.testing.module.mjs +6 -6
- package/esm2022/src/app/shared/storage/storage.service.mjs +134 -0
- package/{esm2020 → esm2022}/src/app/shared/storage/storage.utils.mjs +1 -1
- package/esm2022/src/app/shared/testing/observable.test.mjs +96 -0
- package/esm2022/src/app/shared/testing/tests.page.mjs +37 -0
- package/esm2022/src/app/shared/toast/toast.testing.mjs +52 -0
- package/{esm2020 → esm2022}/src/app/shared/toast/toast.testing.module.mjs +10 -10
- package/esm2022/src/app/shared/toast/toasts.mjs +144 -0
- package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +60 -0
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +264 -0
- package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +57 -0
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +59 -0
- package/{esm2020 → esm2022}/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -10
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +107 -0
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +211 -0
- package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +27 -0
- package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +106 -0
- package/esm2022/src/app/shared/validator/validators.mjs +580 -0
- package/esm2022/src/app/shared/version/versions.mjs +81 -0
- package/esm2022/src/app/social/job/job.module.mjs +42 -0
- package/esm2022/src/app/social/job/progression/job-progression.component.mjs +35 -0
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +232 -0
- package/esm2022/src/app/social/job/progression/job-progression.list.mjs +50 -0
- package/esm2022/src/app/social/job/progression/job-progression.model.mjs +28 -0
- package/esm2022/src/app/social/job/progression/job-progression.service.mjs +73 -0
- package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +43 -0
- package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +53 -0
- package/{esm2020 → esm2022}/src/app/social/job/testing/job.testing.module.mjs +9 -9
- package/esm2022/src/app/social/message/message.form.mjs +88 -0
- package/esm2022/src/app/social/message/message.modal.mjs +102 -0
- package/esm2022/src/app/social/message/message.model.mjs +71 -0
- package/esm2022/src/app/social/message/message.module.mjs +35 -0
- package/esm2022/src/app/social/message/message.service.mjs +88 -0
- package/{esm2020 → esm2022}/src/app/social/social.module.mjs +19 -19
- package/{esm2020 → esm2022}/src/app/social/social.testing.module.mjs +10 -10
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +123 -0
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +263 -0
- package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +233 -0
- package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +128 -0
- package/{esm2020 → esm2022}/src/app/social/user-event/testing/user-event.testing.module.mjs +9 -9
- package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +116 -0
- package/esm2022/src/app/social/user-event/user-event.module.mjs +43 -0
- package/esm2022/src/app/social/user-event/user-event.service.mjs +498 -0
- package/esm2022/src/environments/environment.class.mjs +47 -0
- package/esm2022/src/environments/environment.mjs +94 -0
- package/{fesm2020 → fesm2022}/sumaris-net.ngx-components.mjs +12191 -10087
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -0
- package/package.json +11 -16
- package/public_api.d.ts +12 -5
- package/src/app/admin/users/users.d.ts +1 -1
- package/src/app/admin/users/users.module.d.ts +2 -1
- package/src/app/core/about/about.modal.d.ts +1 -1
- package/src/app/core/account/account.page.d.ts +3 -4
- package/src/app/core/account/new-token.modal.d.ts +1 -1
- package/src/app/core/account/token.table.d.ts +1 -1
- package/src/app/core/auth/auth.form.d.ts +1 -1
- package/src/app/core/auth/auth.modal.d.ts +1 -1
- package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +2 -2
- package/src/app/core/form/entity/editor.class.d.ts +4 -4
- package/src/app/core/form/entity/entity-editor-modal.class.d.ts +1 -1
- package/src/app/core/form/entity/entity-editor.class.d.ts +6 -10
- package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
- package/src/app/core/form/form.class.d.ts +1 -1
- package/src/app/core/form/list/list.form.d.ts +1 -1
- package/src/app/core/form/properties/properties.form.d.ts +1 -1
- package/src/app/core/form/properties/properties.table.d.ts +2 -3
- package/src/app/core/form/properties/property.validator.d.ts +1 -1
- package/src/app/core/form/properties/testing/properties-form.test.d.ts +1 -1
- package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +1 -1
- package/src/app/core/form/text-popover/text-form.component.d.ts +1 -1
- package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
- package/src/app/core/home/home.d.ts +1 -1
- package/src/app/core/home/home.module.d.ts +4 -3
- package/src/app/core/icon/icon.component.d.ts +1 -1
- package/src/app/core/install/install-upgrade-card.component.d.ts +1 -1
- package/src/app/core/menu/menu.component.d.ts +4 -8
- package/src/app/core/menu/menu.model.d.ts +0 -1
- package/src/app/core/menu/menu.module.d.ts +3 -5
- package/src/app/core/menu/menu.service.d.ts +1 -3
- package/src/app/core/menu/sub-menu-tab.directive.d.ts +1 -1
- package/src/app/core/menu/testing/menu-other.testing.d.ts +1 -1
- package/src/app/core/menu/testing/menu.testing.d.ts +1 -1
- package/src/app/core/offline/update-offline-mode-card.component.d.ts +1 -1
- package/src/app/core/peer/select-peer.modal.d.ts +1 -1
- package/src/app/core/register/register-confirm.page.d.ts +1 -1
- package/src/app/core/register/register.form.d.ts +1 -1
- package/src/app/core/register/register.modal.d.ts +1 -1
- package/src/app/core/services/account.service.d.ts +0 -4
- package/src/app/core/services/base-entity-service.class.d.ts +2 -2
- package/src/app/core/services/base-graphql-service.class.d.ts +1 -1
- package/src/app/core/services/config/core.config.d.ts +1 -1
- package/src/app/core/services/model/person.model.d.ts +1 -1
- package/src/app/core/services/model/referential.model.d.ts +1 -2
- package/src/app/core/services/model/settings.model.d.ts +1 -1
- package/src/app/core/services/network.types.d.ts +2 -2
- package/src/app/core/services/storage/entity-store.class.d.ts +1 -1
- package/src/app/core/services/validator/base.validator.class.d.ts +1 -1
- package/src/app/core/settings/settings.page.d.ts +1 -1
- package/src/app/core/table/actions-column.component.d.ts +2 -2
- package/src/app/core/table/async-table.class.d.ts +1 -1
- package/src/app/core/table/entities-async-table-datasource.class.d.ts +1 -1
- package/src/app/core/table/entities-table-datasource.class.d.ts +1 -1
- package/src/app/core/table/memory-table.class.d.ts +3 -3
- package/src/app/core/table/table-select-columns.component.d.ts +1 -1
- package/src/app/core/table/table.class.d.ts +3 -3
- package/src/app/core/table/table.model.d.ts +1 -1
- package/src/app/core/table/testing/table.testing.d.ts +5 -4
- package/src/app/core/table/testing/table.testing.module.d.ts +8 -5
- package/src/app/core/table/testing/table2-validator.service.d.ts +15 -0
- package/src/app/core/table/testing/table2.testing.d.ts +45 -0
- package/src/app/shared/audio/audio.d.ts +1 -1
- package/src/app/shared/audio/audio.testing.d.ts +1 -1
- package/src/app/shared/debug/debug.component.d.ts +1 -1
- package/src/app/shared/directives/autofocus.directive.d.ts +1 -1
- package/src/app/shared/directives/autotitle.directive.d.ts +1 -1
- package/src/app/shared/directives/drag-and-drop.directive.d.ts +1 -1
- package/src/app/shared/directives/ng-var.directive.d.ts +1 -1
- package/src/app/shared/directives/resizable/resizable.component.d.ts +1 -1
- package/src/app/shared/directives/resizable/resizable.directive.d.ts +1 -1
- package/src/app/shared/events.d.ts +1 -1
- package/src/app/shared/form/field.component.d.ts +4 -5
- package/src/app/shared/form/field.model.d.ts +2 -0
- package/src/app/shared/form/loading-spinner.d.ts +1 -1
- package/src/app/shared/functions.d.ts +2 -2
- package/src/app/shared/help/help.modal.d.ts +2 -2
- package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +1 -1
- package/src/app/shared/hotkeys/hotkeys.service.d.ts +3 -3
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +3 -3
- package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +2 -2
- package/src/app/shared/inputs.d.ts +1 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +9 -9
- package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +10 -9
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +1 -1
- package/src/app/shared/material/badge/badge.directive.d.ts +1 -1
- package/src/app/shared/material/badge/badge.test.d.ts +1 -1
- package/src/app/shared/material/boolean/boolean.module.d.ts +12 -11
- package/src/app/shared/material/boolean/material-boolean2.d.ts +66 -0
- package/src/app/shared/material/boolean/material.boolean.d.ts +5 -4
- package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +21 -0
- package/src/app/shared/material/chips/material.chips.d.ts +8 -9
- package/src/app/shared/material/chips/testing/chips.test.d.ts +2 -2
- package/src/app/shared/material/datetime/datetime.module.d.ts +2 -2
- package/src/app/shared/material/datetime/material.date.d.ts +5 -4
- package/src/app/shared/material/datetime/material.dateshort.d.ts +8 -7
- package/src/app/shared/material/datetime/material.datetime.d.ts +8 -6
- package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +7 -1
- package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +3 -1
- package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +3 -1
- package/src/app/shared/material/duration/duration.module.d.ts +6 -5
- package/src/app/shared/material/duration/material.duration.d.ts +6 -5
- package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +22 -0
- package/src/app/shared/material/latlong/material.latlong.d.ts +8 -7
- package/src/app/shared/material/latlong/material.latlong.module.d.ts +9 -8
- package/src/app/shared/material/latlong/testing/latlong.test.d.ts +3 -1
- package/src/app/shared/material/material.testing.module.d.ts +22 -18
- package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +1 -1
- package/src/app/shared/material/numpad/numpad.component.d.ts +1 -1
- package/src/app/shared/material/numpad/numpad.container.d.ts +1 -1
- package/src/app/shared/material/numpad/numpad.content.d.ts +1 -1
- package/src/app/shared/material/numpad/numpad.directive.d.ts +1 -1
- package/src/app/shared/material/numpad/numpad.dom-service.d.ts +3 -3
- package/src/app/shared/material/numpad/testing/numpad.test.d.ts +1 -1
- package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -3
- package/src/app/shared/material/swipe/material.swipe.d.ts +6 -6
- package/src/app/shared/material/swipe/swipe.module.d.ts +2 -1
- package/src/app/shared/material/swipe/testing/swipe.test.d.ts +1 -1
- package/src/app/shared/material/testing/common.test.d.ts +25 -0
- package/src/app/shared/named-filter/named-filter-selector.component.d.ts +1 -1
- package/src/app/shared/named-filter/named-filter.service.d.ts +1 -1
- package/src/app/shared/pipes/maskito.pipe.d.ts +16 -0
- package/src/app/shared/pipes/ng-init.pipe.d.ts +1 -1
- package/src/app/shared/pipes/pipes.module.d.ts +5 -4
- package/src/app/shared/pipes/string.pipes.d.ts +6 -0
- package/src/app/shared/pipes/types.pipes.d.ts +7 -0
- package/src/app/shared/rx-state.module.d.ts +10 -0
- package/src/app/shared/services/entity-service.class.d.ts +1 -1
- package/src/app/shared/services/job.utils.d.ts +1 -1
- package/src/app/shared/services/memory-entity-service.class.d.ts +1 -1
- package/src/app/shared/services/startable-observable-service.class.d.ts +3 -0
- package/src/app/shared/services/startable-service.class.d.ts +3 -0
- package/src/app/shared/shared.module.d.ts +7 -9
- package/src/app/shared/storage/storage-explorer.component.d.ts +1 -1
- package/src/app/shared/storage/storage-explorer.module.d.ts +3 -3
- package/src/app/shared/storage/storage.service.d.ts +1 -1
- package/src/app/shared/storage/storage.utils.d.ts +1 -1
- package/src/app/shared/testing/observable.test.d.ts +1 -1
- package/src/app/shared/testing/tests.page.d.ts +1 -1
- package/src/app/shared/toast/toast.testing.d.ts +1 -1
- package/src/app/shared/toolbar/modal-toolbar.d.ts +1 -1
- package/src/app/shared/toolbar/toolbar.d.ts +1 -1
- package/src/app/shared/toolbar/toolbar.module.d.ts +4 -3
- package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +1 -1
- package/src/app/shared/upload-file/upload-file-popover.component.d.ts +1 -1
- package/src/app/shared/upload-file/upload-file.component.d.ts +1 -1
- package/src/app/shared/upload-file/upload-file.model.d.ts +2 -2
- package/src/app/social/job/progression/job-progression.component.d.ts +17 -3
- package/src/app/social/job/progression/job-progression.icon.d.ts +24 -10
- package/src/app/social/job/progression/job-progression.list.d.ts +3 -3
- package/src/app/social/job/progression/job-progression.model.d.ts +0 -1
- package/src/app/social/job/testing/job-progression.testing.d.ts +3 -6
- package/src/app/social/message/message.form.d.ts +2 -8
- package/src/app/social/message/message.modal.d.ts +1 -5
- package/src/app/social/message/message.model.d.ts +0 -2
- package/src/app/social/message/message.module.d.ts +1 -2
- package/src/app/social/message/message.service.d.ts +3 -8
- package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -3
- package/src/app/social/user-event/notification/user-event-notification.list.d.ts +1 -1
- package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -1
- package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -1
- package/src/app/social/user-event/user-event.model.d.ts +2 -2
- package/src/app/social/user-event/user-event.module.d.ts +3 -2
- package/src/app/social/user-event/user-event.service.d.ts +1 -6
- package/src/assets/i18n/en-US.json +17 -15
- package/src/assets/i18n/en.json +17 -15
- package/src/assets/i18n/fr.json +7 -6
- package/src/assets/img/logo/logo-eis.png +0 -0
- package/src/assets/manifest.json +1 -1
- package/src/environments/environment.class.d.ts +0 -1
- package/src/theme/_material.globals.scss +51 -19
- package/src/theme/_material.scss +15 -15
- package/src/theme/_mixins.scss +3 -3
- package/src/theme/_ngx-components.globals.scss +6 -1
- package/src/theme/_ngx-components.scss +262 -534
- package/src/theme/_ngx-components.table.scss +599 -0
- package/src/theme/_theme.scss +1 -0
- package/esm2020/public_api.mjs +0 -330
- package/esm2020/src/app/admin/services/filter/person.filter.mjs +0 -59
- package/esm2020/src/app/admin/services/person.service.mjs +0 -170
- package/esm2020/src/app/admin/services/validator/person.validator.mjs +0 -71
- package/esm2020/src/app/admin/users/users.mjs +0 -250
- package/esm2020/src/app/admin/users/users.module.mjs +0 -54
- package/esm2020/src/app/core/about/about.modal.mjs +0 -71
- package/esm2020/src/app/core/account/account.page.mjs +0 -319
- package/esm2020/src/app/core/account/new-token.modal.mjs +0 -115
- package/esm2020/src/app/core/account/token.table.mjs +0 -137
- package/esm2020/src/app/core/auth/auth.form.mjs +0 -131
- package/esm2020/src/app/core/auth/auth.modal.mjs +0 -72
- package/esm2020/src/app/core/core.testing.module.mjs +0 -86
- package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -107
- package/esm2020/src/app/core/form/entity/editor.class.mjs +0 -683
- package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -422
- package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +0 -696
- package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +0 -25
- package/esm2020/src/app/core/form/form.class.mjs +0 -345
- package/esm2020/src/app/core/form/list/list.form.mjs +0 -222
- package/esm2020/src/app/core/form/properties/properties.form.mjs +0 -132
- package/esm2020/src/app/core/form/properties/properties.table.mjs +0 -267
- package/esm2020/src/app/core/form/properties/property.validator.mjs +0 -23
- package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +0 -90
- package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -70
- package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +0 -89
- package/esm2020/src/app/core/graphql/graphql.service.mjs +0 -778
- package/esm2020/src/app/core/home/home.mjs +0 -257
- package/esm2020/src/app/core/home/home.module.mjs +0 -48
- package/esm2020/src/app/core/icon/icon.component.mjs +0 -41
- package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +0 -344
- package/esm2020/src/app/core/menu/menu.component.mjs +0 -242
- package/esm2020/src/app/core/menu/menu.model.mjs +0 -247
- package/esm2020/src/app/core/menu/menu.module.mjs +0 -57
- package/esm2020/src/app/core/menu/menu.service.mjs +0 -660
- package/esm2020/src/app/core/menu/sub-menu-tab.directive.mjs +0 -98
- package/esm2020/src/app/core/menu/testing/menu.testing.mjs +0 -121
- package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +0 -27
- package/esm2020/src/app/core/peer/select-peer.modal.mjs +0 -183
- package/esm2020/src/app/core/register/register-confirm.page.mjs +0 -81
- package/esm2020/src/app/core/register/register.form.mjs +0 -183
- package/esm2020/src/app/core/register/register.modal.mjs +0 -52
- package/esm2020/src/app/core/services/account.service.mjs +0 -1233
- package/esm2020/src/app/core/services/auth-guard.service.mjs +0 -71
- package/esm2020/src/app/core/services/base-entity-service.class.mjs +0 -468
- package/esm2020/src/app/core/services/base-graphql-service.class.mjs +0 -221
- package/esm2020/src/app/core/services/base58.mjs +0 -78
- package/esm2020/src/app/core/services/config.service.mjs +0 -355
- package/esm2020/src/app/core/services/crypto.service.mjs +0 -107
- package/esm2020/src/app/core/services/local-settings.service.mjs +0 -460
- package/esm2020/src/app/core/services/model/account.model.mjs +0 -147
- package/esm2020/src/app/core/services/model/config.model.mjs +0 -92
- package/esm2020/src/app/core/services/model/department.model.mjs +0 -30
- package/esm2020/src/app/core/services/model/entity.decorators.mjs +0 -97
- package/esm2020/src/app/core/services/model/entity.model.mjs +0 -225
- package/esm2020/src/app/core/services/model/peer.model.mjs +0 -68
- package/esm2020/src/app/core/services/model/person.model.mjs +0 -97
- package/esm2020/src/app/core/services/model/referential.model.mjs +0 -167
- package/esm2020/src/app/core/services/model/token.model.mjs +0 -48
- package/esm2020/src/app/core/services/network.service.mjs +0 -590
- package/esm2020/src/app/core/services/platform.service.mjs +0 -534
- package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +0 -428
- package/esm2020/src/app/core/services/storage/entity-store.class.mjs +0 -449
- package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +0 -23
- package/esm2020/src/app/core/services/testing/referential.validator.mjs +0 -45
- package/esm2020/src/app/core/services/validator/account.validator.mjs +0 -41
- package/esm2020/src/app/core/services/validator/base.validator.class.mjs +0 -47
- package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +0 -66
- package/esm2020/src/app/core/settings/settings.page.mjs +0 -312
- package/esm2020/src/app/core/table/actions-column.component.mjs +0 -102
- package/esm2020/src/app/core/table/async-table.class.mjs +0 -1698
- package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
- package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +0 -399
- package/esm2020/src/app/core/table/memory-table.class.mjs +0 -53
- package/esm2020/src/app/core/table/table-select-columns.component.mjs +0 -43
- package/esm2020/src/app/core/table/table.class.mjs +0 -1733
- package/esm2020/src/app/core/table/table.model.mjs +0 -12
- package/esm2020/src/app/core/table/testing/table-validator.service.mjs +0 -27
- package/esm2020/src/app/core/table/testing/table.testing.mjs +0 -281
- package/esm2020/src/app/core/table/testing/table.testing.module.mjs +0 -38
- package/esm2020/src/app/shared/audio/audio.mjs +0 -248
- package/esm2020/src/app/shared/audio/audio.testing.mjs +0 -31
- package/esm2020/src/app/shared/capacitor/keyboard.mjs +0 -40
- package/esm2020/src/app/shared/capacitor/plugins.mjs +0 -9
- package/esm2020/src/app/shared/dates.mjs +0 -149
- package/esm2020/src/app/shared/debug/debug.component.mjs +0 -39
- package/esm2020/src/app/shared/directives/autofocus.directive.mjs +0 -93
- package/esm2020/src/app/shared/directives/autotitle.directive.mjs +0 -30
- package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +0 -53
- package/esm2020/src/app/shared/directives/ng-var.directive.mjs +0 -31
- package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +0 -59
- package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +0 -40
- package/esm2020/src/app/shared/file/file.service.mjs +0 -117
- package/esm2020/src/app/shared/form/field.component.mjs +0 -332
- package/esm2020/src/app/shared/form/loading-spinner.mjs +0 -36
- package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +0 -80
- package/esm2020/src/app/shared/gesture/gesture-config.mjs +0 -49
- package/esm2020/src/app/shared/graph/graph-colors.mjs +0 -212
- package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +0 -57
- package/esm2020/src/app/shared/help/help.modal.mjs +0 -53
- package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
- package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +0 -84
- package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +0 -368
- package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -27
- package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -90
- package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -39
- package/esm2020/src/app/shared/image/image.service.mjs +0 -98
- package/esm2020/src/app/shared/inputs.mjs +0 -231
- package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
- package/esm2020/src/app/shared/logging/logging-service.class.mjs +0 -121
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -47
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -920
- package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -78
- package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -209
- package/esm2020/src/app/shared/material/badge/badge.directive.mjs +0 -199
- package/esm2020/src/app/shared/material/badge/badge.test.mjs +0 -41
- package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +0 -68
- package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +0 -253
- package/esm2020/src/app/shared/material/chips/chips.module.mjs +0 -76
- package/esm2020/src/app/shared/material/chips/material.chips.mjs +0 -696
- package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +0 -143
- package/esm2020/src/app/shared/material/datetime/material.date.mjs +0 -376
- package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +0 -385
- package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +0 -499
- package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -108
- package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -110
- package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -103
- package/esm2020/src/app/shared/material/duration/duration.module.mjs +0 -67
- package/esm2020/src/app/shared/material/duration/material.duration.mjs +0 -257
- package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +0 -382
- package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
- package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -102
- package/esm2020/src/app/shared/material/material.module.mjs +0 -224
- package/esm2020/src/app/shared/material/material.testing.module.mjs +0 -168
- package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -98
- package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +0 -80
- package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +0 -190
- package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +0 -17
- package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +0 -162
- package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -37
- package/esm2020/src/app/shared/material/numpad/numpad.model.mjs +0 -15
- package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -46
- package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -46
- package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -22
- package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +0 -344
- package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +0 -52
- package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -64
- package/esm2020/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -202
- package/esm2020/src/app/shared/named-filter/named-filter.model.mjs +0 -45
- package/esm2020/src/app/shared/named-filter/named-filter.service.mjs +0 -63
- package/esm2020/src/app/shared/pipes/colors.pipe.mjs +0 -25
- package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -48
- package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +0 -66
- package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +0 -27
- package/esm2020/src/app/shared/pipes/duration.pipe.mjs +0 -34
- package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +0 -62
- package/esm2020/src/app/shared/pipes/form.pipes.mjs +0 -187
- package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +0 -46
- package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +0 -21
- package/esm2020/src/app/shared/pipes/pipes.module.mjs +0 -239
- package/esm2020/src/app/shared/pipes/property.pipes.mjs +0 -93
- package/esm2020/src/app/shared/pipes/string.pipes.mjs +0 -121
- package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +0 -43
- package/esm2020/src/app/shared/pipes/types.pipes.mjs +0 -45
- package/esm2020/src/app/shared/services/entity-service.class.mjs +0 -7
- package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +0 -339
- package/esm2020/src/app/shared/services/progress-bar.service.mjs +0 -33
- package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +0 -118
- package/esm2020/src/app/shared/services/startable-service.class.mjs +0 -110
- package/esm2020/src/app/shared/services/translate-context.service.mjs +0 -103
- package/esm2020/src/app/shared/shared.module.mjs +0 -231
- package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +0 -268
- package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +0 -47
- package/esm2020/src/app/shared/storage/storage.service.mjs +0 -132
- package/esm2020/src/app/shared/testing/observable.test.mjs +0 -95
- package/esm2020/src/app/shared/testing/tests.page.mjs +0 -33
- package/esm2020/src/app/shared/toast/toast.testing.mjs +0 -51
- package/esm2020/src/app/shared/toast/toasts.mjs +0 -144
- package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +0 -58
- package/esm2020/src/app/shared/toolbar/toolbar.mjs +0 -251
- package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +0 -53
- package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -58
- package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -97
- package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +0 -204
- package/esm2020/src/app/shared/upload-file/upload-file.model.mjs +0 -20
- package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +0 -104
- package/esm2020/src/app/shared/validator/validators.mjs +0 -580
- package/esm2020/src/app/shared/version/versions.mjs +0 -81
- package/esm2020/src/app/social/job/job.module.mjs +0 -42
- package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -20
- package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +0 -216
- package/esm2020/src/app/social/job/progression/job-progression.list.mjs +0 -43
- package/esm2020/src/app/social/job/progression/job-progression.model.mjs +0 -23
- package/esm2020/src/app/social/job/progression/job-progression.service.mjs +0 -71
- package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +0 -52
- package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +0 -55
- package/esm2020/src/app/social/message/message.form.mjs +0 -136
- package/esm2020/src/app/social/message/message.modal.mjs +0 -99
- package/esm2020/src/app/social/message/message.model.mjs +0 -67
- package/esm2020/src/app/social/message/message.module.mjs +0 -22
- package/esm2020/src/app/social/message/message.service.mjs +0 -105
- package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -114
- package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -246
- package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +0 -227
- package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -112
- package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -111
- package/esm2020/src/app/social/user-event/user-event.module.mjs +0 -39
- package/esm2020/src/app/social/user-event/user-event.service.mjs +0 -501
- package/esm2020/src/environments/environment.class.mjs +0 -5
- package/esm2020/src/environments/environment.loader.mjs +0 -79
- package/esm2020/src/environments/environment.mjs +0 -97
- package/fesm2015/sumaris-net.ngx-components.mjs +0 -40966
- package/fesm2015/sumaris-net.ngx-components.mjs.map +0 -1
- package/fesm2020/sumaris-net.ngx-components.mjs.map +0 -1
- package/resources/README.md +0 -7
- package/src/assets/environments/environment-test.json +0 -6
- package/src/environments/environment.loader.d.ts +0 -26
- /package/{esm2020 → esm2022}/src/app/core/services/errors.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/core/services/model/filter.model.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/core/services/model/history.model.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/core/services/model/model.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/core/services/model/settings.model.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/core/services/model/tree-item-entity.model.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/core/services/network.types.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/core/services/network.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/core/table/table.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/alerts.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/debug/debug-service.class.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/events.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/file/csv.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/file/images.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/file/json.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/file/uri.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/focusable.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/forms.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/gesture/hammer.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/graph/colors.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/http/http.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/image/image.model.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/logging/log-level.model.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/logging/logger.model.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/logging/logging-service.config.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/material/material.animations.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/modules.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/observables.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/platforms.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/services/job.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/services/validator-service.class.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/services.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/shared/types.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/social/social.errors.mjs +0 -0
- /package/{esm2020 → esm2022}/src/app/social/user-event/user-event.model.mjs +0 -0
- /package/{esm2020 → esm2022}/sumaris-net.ngx-components.mjs +0 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
var Account_1, UserSettings_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { Person, PersonUtils } from './person.model';
|
|
4
|
+
import { Entity } from './entity.model';
|
|
5
|
+
import { EntityClass } from './entity.decorators';
|
|
6
|
+
import { StatusIds } from './model.enum';
|
|
7
|
+
import { equals, isNil } from '../../../shared/functions';
|
|
8
|
+
import { UserToken } from './token.model';
|
|
9
|
+
/**
|
|
10
|
+
* A user account
|
|
11
|
+
*/
|
|
12
|
+
// @dynamic
|
|
13
|
+
let Account = Account_1 = class Account extends Person {
|
|
14
|
+
static fromObject;
|
|
15
|
+
settings = null;
|
|
16
|
+
tokens = [];
|
|
17
|
+
constructor() {
|
|
18
|
+
super(Account_1.TYPENAME);
|
|
19
|
+
}
|
|
20
|
+
asObject(opts) {
|
|
21
|
+
const target = super.asObject({ ...opts, minify: false /*disable Person minify (too restrictive) */ });
|
|
22
|
+
target.settings = this.settings?.asObject(opts);
|
|
23
|
+
target.tokens = this.tokens?.map(value => value.asObject(opts));
|
|
24
|
+
if (opts?.minify) {
|
|
25
|
+
delete target.mainProfile; // Not known on server
|
|
26
|
+
}
|
|
27
|
+
return target;
|
|
28
|
+
}
|
|
29
|
+
fromObject(source) {
|
|
30
|
+
super.fromObject(source);
|
|
31
|
+
this.settings = source.settings && UserSettings.fromObject(source.settings);
|
|
32
|
+
this.tokens = source.tokens?.map(value => UserToken.fromObject(value)) || [];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Convert into a Person. This will fill __typename with a right value, for data cache
|
|
36
|
+
*/
|
|
37
|
+
asPerson() {
|
|
38
|
+
const person = Person.fromObject(this.asObject({
|
|
39
|
+
keepTypename: true // This is need for the department object
|
|
40
|
+
}));
|
|
41
|
+
person.__typename = Person.TYPENAME; // Do not keep AccountVO as typename
|
|
42
|
+
return person;
|
|
43
|
+
}
|
|
44
|
+
get displayName() {
|
|
45
|
+
return accountToString(this);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
Account = Account_1 = __decorate([
|
|
49
|
+
EntityClass({ typename: 'AccountVO' })
|
|
50
|
+
], Account);
|
|
51
|
+
export { Account };
|
|
52
|
+
export class AccountUtils {
|
|
53
|
+
static accountToString = accountToString;
|
|
54
|
+
static hasMinProfile(account, userProfile) {
|
|
55
|
+
// should be login, and status ENABLE or TEMPORARY
|
|
56
|
+
if (!account || !account.pubkey ||
|
|
57
|
+
(account.statusId !== StatusIds.ENABLE && account.statusId !== StatusIds.TEMPORARY)) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
return PersonUtils.hasUpperOrEqualsProfile(account.profiles, userProfile);
|
|
61
|
+
}
|
|
62
|
+
static hasExactProfile(account, label) {
|
|
63
|
+
// should be login, and status ENABLE or TEMPORARY
|
|
64
|
+
if (!account || !account.pubkey ||
|
|
65
|
+
(account.statusId !== StatusIds.ENABLE && account.statusId !== StatusIds.TEMPORARY))
|
|
66
|
+
return false;
|
|
67
|
+
return account.profiles.some(profile => profile === label);
|
|
68
|
+
}
|
|
69
|
+
static hasProfileAndIsEnable(account, userProfile) {
|
|
70
|
+
// should be login, and status ENABLE
|
|
71
|
+
if (!account || !account.pubkey || account.statusId !== StatusIds.ENABLE)
|
|
72
|
+
return false;
|
|
73
|
+
return PersonUtils.hasUpperOrEqualsProfile(account.profiles, userProfile);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// @dynamic
|
|
77
|
+
let UserSettings = UserSettings_1 = class UserSettings extends Entity {
|
|
78
|
+
static SETTINGS_PROPERTIES = ['locale', 'latLongFormat'];
|
|
79
|
+
static fromObject;
|
|
80
|
+
locale;
|
|
81
|
+
latLongFormat;
|
|
82
|
+
content;
|
|
83
|
+
nonce;
|
|
84
|
+
constructor() {
|
|
85
|
+
super(UserSettings_1.TYPENAME);
|
|
86
|
+
}
|
|
87
|
+
asObject(opts) {
|
|
88
|
+
const target = super.asObject(opts);
|
|
89
|
+
if (opts?.minify) {
|
|
90
|
+
// Stringify content
|
|
91
|
+
target.content = this.content ? JSON.stringify(this.content) : undefined;
|
|
92
|
+
}
|
|
93
|
+
return target;
|
|
94
|
+
}
|
|
95
|
+
fromObject(source, opts) {
|
|
96
|
+
super.fromObject(source);
|
|
97
|
+
this.locale = source.locale;
|
|
98
|
+
this.latLongFormat = source.latLongFormat;
|
|
99
|
+
if (isNil(source.content) || typeof source.content === 'object') {
|
|
100
|
+
this.content = source.content || {};
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.content = source.content && JSON.parse(source.content) || {};
|
|
104
|
+
}
|
|
105
|
+
this.nonce = source.nonce;
|
|
106
|
+
}
|
|
107
|
+
merge(source, includesProperties) {
|
|
108
|
+
if (!source)
|
|
109
|
+
return; // Skip
|
|
110
|
+
// Reset content
|
|
111
|
+
this.content = {};
|
|
112
|
+
let hasChanges = false;
|
|
113
|
+
// For each property of source object
|
|
114
|
+
Object.keys(source)
|
|
115
|
+
.forEach(key => {
|
|
116
|
+
// If property exists in UserSettings class: store it directly
|
|
117
|
+
if (UserSettings_1.SETTINGS_PROPERTIES.includes(key)) {
|
|
118
|
+
if (!equals(this[key], source[key])) {
|
|
119
|
+
this[key] = source[key];
|
|
120
|
+
hasChanges = true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Else, store property into the 'content' map
|
|
124
|
+
else if (includesProperties && includesProperties.includes(key)) {
|
|
125
|
+
if (!equals(this.content[key], source[key])) {
|
|
126
|
+
this.content[key] = Object.assign({}, source[key]);
|
|
127
|
+
hasChanges = true;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return hasChanges;
|
|
132
|
+
}
|
|
133
|
+
asLocalSettings() {
|
|
134
|
+
const target = {};
|
|
135
|
+
UserSettings_1.SETTINGS_PROPERTIES.forEach(key => {
|
|
136
|
+
target[key] = this[key];
|
|
137
|
+
});
|
|
138
|
+
Object.keys(this.content).forEach(key => {
|
|
139
|
+
target[key] = this.content[key];
|
|
140
|
+
});
|
|
141
|
+
return target;
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
UserSettings = UserSettings_1 = __decorate([
|
|
145
|
+
EntityClass({ typename: 'UserSettingsVO' })
|
|
146
|
+
], UserSettings);
|
|
147
|
+
export { UserSettings };
|
|
148
|
+
export function accountToString(data) {
|
|
149
|
+
return data &&
|
|
150
|
+
((data.firstName && (data.firstName + ' ') || '') +
|
|
151
|
+
(data.lastName || '')) || '';
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9hY2NvdW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFDLE1BQU0sRUFBRSxXQUFXLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFDLE1BQU0sRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUV2QyxPQUFPLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxXQUFXO0FBRUosSUFBTSxPQUFPLGVBQWIsTUFBTSxPQUFRLFNBQVEsTUFBZTtJQUUxQyxNQUFNLENBQUMsVUFBVSxDQUF1QztJQUV4RCxRQUFRLEdBQWlCLElBQUksQ0FBQztJQUM5QixNQUFNLEdBQWdCLEVBQUUsQ0FBQztJQUV6QjtRQUNFLEtBQUssQ0FBQyxTQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE0QjtRQUNuQyxNQUFNLE1BQU0sR0FBUSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUMsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyw0Q0FBNEMsRUFBQyxDQUFDLENBQUM7UUFDMUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFF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O1FBQ2IsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGNBQVksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O0FBeEVVLFlBQVk7SUFEeEIsV0FBVyxDQUFDLEVBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFDLENBQUM7R0FDN0IsWUFBWSxDQXlFeEI7U0F6RVksWUFBWTtBQTRFekIsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFhO0lBQzNDLE9BQU8sSUFBSTtRQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0MsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsU2V0dGluZ3N9IGZyb20gJy4vc2V0dGluZ3MubW9kZWwnO1xuaW1wb3J0IHtQZXJzb24sIFBlcnNvblV0aWxzLCBVc2VyUHJvZmlsZUxhYmVsfSBmcm9tICcuL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQge0VudGl0eSwgRW50aXR5QXNPYmplY3RPcHRpb25zfSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge0VudGl0eUNsYXNzfSBmcm9tICcuL2VudGl0eS5kZWNvcmF0b3JzJztcbmltcG9ydCB7U3RhdHVzSWRzfSBmcm9tICcuL21vZGVsLmVudW0nO1xuaW1wb3J0IHtMYXRMb25nUGF0dGVybn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21hdGVyaWFsL2xhdGxvbmcvbGF0bG9uZy51dGlscyc7XG5pbXBvcnQge2VxdWFscywgaXNOaWx9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtVc2VyVG9rZW59IGZyb20gJy4vdG9rZW4ubW9kZWwnO1xuXG4vKipcbiAqIEEgdXNlciBhY2NvdW50XG4gKi9cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3Moe3R5cGVuYW1lOiAnQWNjb3VudFZPJ30pXG5leHBvcnQgY2xhc3MgQWNjb3VudCBleHRlbmRzIFBlcnNvbjxBY2NvdW50PiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gQWNjb3VudDtcblxuICBzZXR0aW5nczogVXNlclNldHRpbmdzID0gbnVsbDtcbiAgdG9rZW5zOiBVc2VyVG9rZW5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKEFjY291bnQuVFlQRU5BTUUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IEVudGl0eUFzT2JqZWN0T3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBzdXBlci5hc09iamVjdCh7Li4ub3B0cywgbWluaWZ5OiBmYWxzZSAvKmRpc2FibGUgUGVyc29uIG1pbmlmeSAodG9vIHJlc3RyaWN0aXZlKSAqL30pO1xuICAgIHRhcmdldC5zZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3M/LmFzT2JqZWN0KG9wdHMpO1xuICAgIHRhcmdldC50b2tlbnMgPSB0aGlzLnRva2Vucz8ubWFwKHZhbHVlID0+IHZhbHVlLmFzT2JqZWN0KG9wdHMpKTtcbiAgICBpZiAob3B0cz8ubWluaWZ5KSB7XG4gICAgICBkZWxldGUgdGFyZ2V0Lm1haW5Qcm9maWxlOyAvLyBOb3Qga25vd24gb24gc2VydmVyXG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55KSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIHRoaXMuc2V0dGluZ3MgPSBzb3VyY2Uuc2V0dGluZ3MgJiYgVXNlclNldHRpbmdzLmZyb21PYmplY3Qoc291cmNlLnNldHRpbmdzKTtcbiAgICB0aGlzLnRva2VucyA9IHNvdXJjZS50b2tlbnM/Lm1hcCh2YWx1ZSA9PiBVc2VyVG9rZW4uZnJvbU9iamVjdCh2YWx1ZSkpIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgaW50byBhIFBlcnNvbi4gVGhpcyB3aWxsIGZpbGwgX190eXBlbmFtZSB3aXRoIGEgcmlnaHQgdmFsdWUsIGZvciBkYXRhIGNhY2hlXG4gICAqL1xuICBhc1BlcnNvbigpOiBQZXJzb24ge1xuICAgIGNvbnN0IHBlcnNvbiA9IFBlcnNvbi5mcm9tT2JqZWN0KHRoaXMuYXNPYmplY3Qoe1xuICAgICAga2VlcFR5cGVuYW1lOiB0cnVlIC8vIFRoaXMgaXMgbmVlZCBmb3IgdGhlIGRlcGFydG1lbnQgb2JqZWN0XG4gICAgfSkpO1xuICAgIHBlcnNvbi5fX3R5cGVuYW1lID0gUGVyc29uLlRZUEVOQU1FOyAvLyBEbyBub3Qga2VlcCBBY2NvdW50Vk8gYXMgdHlwZW5hbWVcbiAgICByZXR1cm4gcGVyc29uO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjY291bnRUb1N0cmluZyh0aGlzKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBY2NvdW50VXRpbHMge1xuICBzdGF0aWMgYWNjb3VudFRvU3RyaW5nID0gYWNjb3VudFRvU3RyaW5nO1xuXG4gIHN0YXRpYyBoYXNNaW5Qcm9maWxlKGFjY291bnQ6IEFjY291bnR8bnVsbCwgdXNlclByb2ZpbGU6IFVzZXJQcm9maWxlTGFiZWwpOiBib29sZWFuIHtcbiAgICAvLyBzaG91bGQgYmUgbG9naW4sIGFuZCBzdGF0dXMgRU5BQkxFIG9yIFRFTVBPUkFSWVxuICAgIGlmICghYWNjb3VudCB8fCAhYWNjb3VudC5wdWJrZXkgfHxcbiAgICAgIChhY2NvdW50LnN0YXR1c0lkICE9PSBTdGF0dXNJZHMuRU5BQkxFICYmIGFjY291bnQuc3RhdHVzSWQgIT09IFN0YXR1c0lkcy5URU1QT1JBUlkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBQZXJzb25VdGlscy5oYXNVcHBlck9yRXF1YWxzUHJvZmlsZShhY2NvdW50LnByb2ZpbGVzLCB1c2VyUHJvZmlsZSk7XG4gIH1cblxuICBzdGF0aWMgaGFzRXhhY3RQcm9maWxlKGFjY291bnQ6IEFjY291bnR8bnVsbCwgbGFiZWw6IFVzZXJQcm9maWxlTGFiZWwpOiBib29sZWFuIHtcbiAgICAvLyBzaG91bGQgYmUgbG9naW4sIGFuZCBzdGF0dXMgRU5BQkxFIG9yIFRFTVBPUkFSWVxuICAgIGlmICghYWNjb3VudCB8fCAhYWNjb3VudC5wdWJrZXkgfHxcbiAgICAgIChhY2NvdW50LnN0YXR1c0lkICE9PSBTdGF0dXNJZHMuRU5BQkxFICYmIGFjY291bnQuc3RhdHVzSWQgIT09IFN0YXR1c0lkcy5URU1QT1JBUlkpKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBhY2NvdW50LnByb2ZpbGVzLnNvbWUocHJvZmlsZSA9PiBwcm9maWxlID09PSBsYWJlbCk7XG4gIH1cblxuICBzdGF0aWMgaGFzUHJvZmlsZUFuZElzRW5hYmxlKGFjY291bnQ6IEFjY291bnR8bnVsbCwgdXNlclByb2ZpbGU6IFVzZXJQcm9maWxlTGFiZWwpOiBib29sZWFuIHtcbiAgICAvLyBzaG91bGQgYmUgbG9naW4sIGFuZCBzdGF0dXMgRU5BQkxFXG4gICAgaWYgKCFhY2NvdW50IHx8ICFhY2NvdW50LnB1YmtleSB8fCBhY2NvdW50LnN0YXR1c0lkICE9PSBTdGF0dXNJZHMuRU5BQkxFKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIFBlcnNvblV0aWxzLmhhc1VwcGVyT3JFcXVhbHNQcm9maWxlKGFjY291bnQucHJvZmlsZXMsIHVzZXJQcm9maWxlKTtcbiAgfVxufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHt0eXBlbmFtZTogJ1VzZXJTZXR0aW5nc1ZPJ30pXG5leHBvcnQgY2xhc3MgVXNlclNldHRpbmdzIGV4dGVuZHMgRW50aXR5PFVzZXJTZXR0aW5ncz4ge1xuXG4gIHN0YXRpYyBTRVRUSU5HU19QUk9QRVJUSUVTID0gWzxrZXlvZiBVc2VyU2V0dGluZ3M+J2xvY2FsZScsIDxrZXlvZiBVc2VyU2V0dGluZ3M+J2xhdExvbmdGb3JtYXQnXSBhcyBzdHJpbmdbXTtcbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gVXNlclNldHRpbmdzO1xuXG4gIGxvY2FsZTogc3RyaW5nO1xuICBsYXRMb25nRm9ybWF0OiBMYXRMb25nUGF0dGVybjtcbiAgY29udGVudDogYW55O1xuICBub25jZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFVzZXJTZXR0aW5ncy5UWVBFTkFNRSk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogRW50aXR5QXNPYmplY3RPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCB0YXJnZXQgPSBzdXBlci5hc09iamVjdChvcHRzKTtcbiAgICBpZiAob3B0cz8ubWluaWZ5KSB7XG4gICAgICAvLyBTdHJpbmdpZnkgY29udGVudFxuICAgICAgdGFyZ2V0LmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQgPyBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnRlbnQpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLmxvY2FsZSA9IHNvdXJjZS5sb2NhbGU7XG4gICAgdGhpcy5sYXRMb25nRm9ybWF0ID0gc291cmNlLmxhdExvbmdGb3JtYXQgYXMgTGF0TG9uZ1BhdHRlcm47XG4gICAgaWYgKGlzTmlsKHNvdXJjZS5jb250ZW50KSB8fCB0eXBlb2Ygc291cmNlLmNvbnRlbnQgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLmNvbnRlbnQgPSBzb3VyY2UuY29udGVudCB8fCB7fTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250ZW50ID0gc291cmNlLmNvbnRlbnQgJiYgSlNPTi5wYXJzZShzb3VyY2UuY29udGVudCkgfHwge307XG4gICAgfVxuICAgIHRoaXMubm9uY2UgPSBzb3VyY2Uubm9uY2U7XG4gIH1cblxuICBtZXJnZTxTID0gTG9jYWxTZXR0aW5ncz4oc291cmNlOiBTLCBpbmNsdWRlc1Byb3BlcnRpZXM6IChrZXlvZiBTKVtdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybjsgLy8gU2tpcFxuXG4gICAgLy8gUmVzZXQgY29udGVudFxuICAgIHRoaXMuY29udGVudCA9IHt9O1xuICAgIGxldCBoYXNDaGFuZ2VzID0gZmFsc2U7XG5cbiAgICAvLyBGb3IgZWFjaCBwcm9wZXJ0eSBvZiBzb3VyY2Ugb2JqZWN0XG4gICAgT2JqZWN0LmtleXMoc291cmNlKVxuICAgICAgLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgLy8gSWYgcHJvcGVydHkgZXhpc3RzIGluIFVzZXJTZXR0aW5ncyBjbGFzczogc3RvcmUgaXQgZGlyZWN0bHlcbiAgICAgICAgaWYgKFVzZXJTZXR0aW5ncy5TRVRUSU5HU19QUk9QRVJUSUVTLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICBpZiAoIWVxdWFscyh0aGlzW2tleV0sIHNvdXJjZVtrZXldKSkge1xuICAgICAgICAgICAgdGhpc1trZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gRWxzZSwgc3RvcmUgcHJvcGVydHkgaW50byB0aGUgJ2NvbnRlbnQnIG1hcFxuICAgICAgICBlbHNlIGlmIChpbmNsdWRlc1Byb3BlcnRpZXMgJiYgaW5jbHVkZXNQcm9wZXJ0aWVzLmluY2x1ZGVzKGtleSBhcyBrZXlvZiBTKSl7XG4gICAgICAgICAgaWYgKCFlcXVhbHModGhpcy5jb250ZW50W2tleV0sIHNvdXJjZVtrZXldKSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50W2tleV0gPSBPYmplY3QuYXNzaWduKHt9LCBzb3VyY2Vba2V5XSk7XG4gICAgICAgICAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHJldHVybiBoYXNDaGFuZ2VzO1xuICB9XG5cbiAgYXNMb2NhbFNldHRpbmdzKCk6IFBhcnRpYWw8TG9jYWxTZXR0aW5ncz4ge1xuICAgIGNvbnN0IHRhcmdldCA9IHt9O1xuICAgIFVzZXJTZXR0aW5ncy5TRVRUSU5HU19QUk9QRVJUSUVTLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIHRhcmdldFtrZXldID0gdGhpc1trZXldO1xuICAgIH0pO1xuICAgIE9iamVjdC5rZXlzKHRoaXMuY29udGVudCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgdGFyZ2V0W2tleV0gPSB0aGlzLmNvbnRlbnRba2V5XTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGFjY291bnRUb1N0cmluZyhkYXRhOiBBY2NvdW50KTogc3RyaW5nIHtcbiAgcmV0dXJuIGRhdGEgJiZcbiAgICAoKGRhdGEuZmlyc3ROYW1lICYmIChkYXRhLmZpcnN0TmFtZSArICcgJykgfHwgJycpICtcbiAgICAgIChkYXRhLmxhc3ROYW1lIHx8ICcnKSkgfHwgJyc7XG59XG4iXX0=
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
var Software_1, Configuration_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { Entity, EntityUtils } from './entity.model';
|
|
4
|
+
import { Department } from './department.model';
|
|
5
|
+
import { fromDateISOString, toDateISOString } from '../../../shared/dates';
|
|
6
|
+
import { isNotNil, undefinedIfNull } from '../../../shared/functions';
|
|
7
|
+
import { EntityClass } from './entity.decorators';
|
|
8
|
+
// @dynamic
|
|
9
|
+
let Software = Software_1 = class Software extends Entity {
|
|
10
|
+
static fromObject;
|
|
11
|
+
label;
|
|
12
|
+
name;
|
|
13
|
+
description;
|
|
14
|
+
comments;
|
|
15
|
+
creationDate;
|
|
16
|
+
statusId;
|
|
17
|
+
properties;
|
|
18
|
+
constructor(__typename) {
|
|
19
|
+
super(__typename || Software_1.TYPENAME);
|
|
20
|
+
}
|
|
21
|
+
asObject(options) {
|
|
22
|
+
const target = super.asObject(options);
|
|
23
|
+
target.creationDate = toDateISOString(this.creationDate);
|
|
24
|
+
target.properties = this.properties;
|
|
25
|
+
return target;
|
|
26
|
+
}
|
|
27
|
+
fromObject(source) {
|
|
28
|
+
super.fromObject(source);
|
|
29
|
+
this.label = source.label;
|
|
30
|
+
this.name = source.name;
|
|
31
|
+
this.description = source.description;
|
|
32
|
+
this.comments = source.comments;
|
|
33
|
+
this.creationDate = fromDateISOString(source.creationDate);
|
|
34
|
+
this.statusId = source.statusId;
|
|
35
|
+
if (source.properties && Array.isArray(source.properties)) {
|
|
36
|
+
this.properties = EntityUtils.getPropertyArrayAsObject(source.properties);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.properties = { ...source.properties };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
Software = Software_1 = __decorate([
|
|
44
|
+
EntityClass({ typename: 'SoftwareVO' })
|
|
45
|
+
], Software);
|
|
46
|
+
export { Software };
|
|
47
|
+
// @dynamic
|
|
48
|
+
let Configuration = Configuration_1 = class Configuration extends Software {
|
|
49
|
+
static fromObject;
|
|
50
|
+
smallLogo;
|
|
51
|
+
largeLogo;
|
|
52
|
+
backgroundImages;
|
|
53
|
+
partners;
|
|
54
|
+
constructor() {
|
|
55
|
+
super(Configuration_1.TYPENAME);
|
|
56
|
+
}
|
|
57
|
+
clone() {
|
|
58
|
+
return this.copy(new Configuration_1());
|
|
59
|
+
}
|
|
60
|
+
copy(target) {
|
|
61
|
+
target.fromObject(this);
|
|
62
|
+
return target;
|
|
63
|
+
}
|
|
64
|
+
asObject(options) {
|
|
65
|
+
const target = super.asObject(options);
|
|
66
|
+
target.partners = this.partners && this.partners.map(p => p.asObject(options)) || undefined;
|
|
67
|
+
return target;
|
|
68
|
+
}
|
|
69
|
+
fromObject(source) {
|
|
70
|
+
super.fromObject(source);
|
|
71
|
+
this.smallLogo = source.smallLogo;
|
|
72
|
+
this.largeLogo = source.largeLogo;
|
|
73
|
+
this.backgroundImages = source.backgroundImages;
|
|
74
|
+
this.partners = source.partners && source.partners.map(Department.fromObject) || undefined;
|
|
75
|
+
}
|
|
76
|
+
getPropertyAsBoolean(definition) {
|
|
77
|
+
const value = this.getProperty(definition);
|
|
78
|
+
return isNotNil(value) ? (value && value !== 'false') : undefined;
|
|
79
|
+
}
|
|
80
|
+
getPropertyAsInt(definition) {
|
|
81
|
+
const value = this.getProperty(definition);
|
|
82
|
+
return isNotNil(value) ? parseInt(value) : undefined;
|
|
83
|
+
}
|
|
84
|
+
getPropertyAsNumbers(definition) {
|
|
85
|
+
const value = this.getProperty(definition);
|
|
86
|
+
if (typeof value === 'string')
|
|
87
|
+
return value.split(',').map(parseFloat) || undefined;
|
|
88
|
+
return isNotNil(value) ? [parseFloat(value)] : undefined;
|
|
89
|
+
}
|
|
90
|
+
getPropertyAsStrings(definition) {
|
|
91
|
+
const value = this.getProperty(definition);
|
|
92
|
+
return value && value.split(',') || undefined;
|
|
93
|
+
}
|
|
94
|
+
getProperty(definition) {
|
|
95
|
+
return isNotNil(this.properties[definition.key]) ? this.properties[definition.key] : undefinedIfNull(definition.defaultValue);
|
|
96
|
+
}
|
|
97
|
+
hasProperty(definition) {
|
|
98
|
+
return isNotNil(this.properties[definition.key]);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
Configuration = Configuration_1 = __decorate([
|
|
102
|
+
EntityClass({ typename: 'ConfigurationVO' })
|
|
103
|
+
], Configuration);
|
|
104
|
+
export { Configuration };
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2NvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU8sRUFBQyxNQUFNLEVBQXlCLFdBQVcsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsV0FBVztBQUVKLElBQU0sUUFBUSxnQkFBZCxNQUFNLFFBR1gsU0FBUSxNQUFpQjtJQUcxQixNQUFNLENBQUMsVUFBVSxDQUF3QztJQUV4RCxLQUFLLENBQVM7SUFDZCxJQUFJLENBQVM7SUFDYixXQUFXLENBQVM7SUFDcEIsUUFBUSxDQUFTO0lBQ2pCLFlBQVksQ0FBZ0I7SUFDNUIsUUFBUSxDQUFTO0lBQ2pCLFVBQVUsQ0FBZ0I7SUFFMUIsWUFBWSxVQUFtQjtRQUM3QixLQUFLLENBQUMsVUFBVSxJQUFJLFVBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQStCO1FBQ3RDLE1BQU0sTUFBTSxHQUFRLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsTUFBTSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFB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QU8sUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGLENBQUE7QUFoRVksYUFBYTtJQUR6QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQztHQUM5QixhQUFhLENBZ0V6QjtTQWhFWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0Zvcm1GaWVsZERlZmluaXRpb259IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3JtL2ZpZWxkLm1vZGVsJztcbmltcG9ydCB7RW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMsIEVudGl0eVV0aWxzLCBJRW50aXR5fSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge0RlcGFydG1lbnR9IGZyb20gJy4vZGVwYXJ0bWVudC5tb2RlbCc7XG5pbXBvcnQge1Byb3BlcnRpZXNNYXB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQge2Zyb21EYXRlSVNPU3RyaW5nLCB0b0RhdGVJU09TdHJpbmd9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlcyc7XG5pbXBvcnQge2lzTm90TmlsLCB1bmRlZmluZWRJZk51bGx9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtFbnRpdHlDbGFzc30gZnJvbSAnLi9lbnRpdHkuZGVjb3JhdG9ycyc7XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3Moe3R5cGVuYW1lOiAnU29mdHdhcmVWTyd9KVxuZXhwb3J0IGNsYXNzIFNvZnR3YXJlPFxuICBUIGV4dGVuZHMgU29mdHdhcmU8YW55PiA9IFNvZnR3YXJlPGFueT5cbiAgPlxuICBleHRlbmRzIEVudGl0eTxULCBudW1iZXI+XG4gIGltcGxlbWVudHMgSUVudGl0eTxULCBudW1iZXI+IHtcblxuIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpID0+IFNvZnR3YXJlO1xuXG4gIGxhYmVsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgY29tbWVudHM6IHN0cmluZztcbiAgY3JlYXRpb25EYXRlOiBEYXRlIHwgTW9tZW50O1xuICBzdGF0dXNJZDogbnVtYmVyO1xuICBwcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzTWFwO1xuXG4gIGNvbnN0cnVjdG9yKF9fdHlwZW5hbWU/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihfX3R5cGVuYW1lIHx8IFNvZnR3YXJlLlRZUEVOQU1FKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdGlvbnM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0aW9ucyk7XG4gICAgdGFyZ2V0LmNyZWF0aW9uRGF0ZSA9IHRvRGF0ZUlTT1N0cmluZyh0aGlzLmNyZWF0aW9uRGF0ZSk7XG4gICAgdGFyZ2V0LnByb3BlcnRpZXMgPSB0aGlzLnByb3BlcnRpZXM7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgdGhpcy5sYWJlbCA9IHNvdXJjZS5sYWJlbDtcbiAgICB0aGlzLm5hbWUgPSBzb3VyY2UubmFtZTtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gc291cmNlLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMuY29tbWVudHMgPSBzb3VyY2UuY29tbWVudHM7XG4gICAgdGhpcy5jcmVhdGlvbkRhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UuY3JlYXRpb25EYXRlKTtcbiAgICB0aGlzLnN0YXR1c0lkID0gc291cmNlLnN0YXR1c0lkO1xuXG4gICAgaWYgKHNvdXJjZS5wcm9wZXJ0aWVzICYmIEFycmF5LmlzQXJyYXkoc291cmNlLnByb3BlcnRpZXMpKSB7XG4gICAgICB0aGlzLnByb3BlcnRpZXMgPSBFbnRpdHlVdGlscy5nZXRQcm9wZXJ0eUFycmF5QXNPYmplY3Qoc291cmNlLnByb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb3BlcnRpZXMgPSB7Li4uc291cmNlLnByb3BlcnRpZXN9O1xuICAgIH1cbiAgfVxufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHt0eXBlbmFtZTogJ0NvbmZpZ3VyYXRpb25WTyd9KVxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb24gZXh0ZW5kcyBTb2Z0d2FyZTxDb25maWd1cmF0aW9uPiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gQ29uZmlndXJhdGlvbjtcblxuICBzbWFsbExvZ286IHN0cmluZztcbiAgbGFyZ2VMb2dvOiBzdHJpbmc7XG4gIGJhY2tncm91bmRJbWFnZXM6IHN0cmluZ1tdO1xuICBwYXJ0bmVyczogRGVwYXJ0bWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKENvbmZpZ3VyYXRpb24uVFlQRU5BTUUpO1xuICB9XG5cbiAgY2xvbmUoKTogQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY29weShuZXcgQ29uZmlndXJhdGlvbigpKTtcbiAgfVxuXG4gIGNvcHkodGFyZ2V0OiBDb25maWd1cmF0aW9uKTogQ29uZmlndXJhdGlvbiB7XG4gICAgdGFyZ2V0LmZyb21PYmplY3QodGhpcyk7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdGlvbnM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0aW9ucyk7XG4gICAgdGFyZ2V0LnBhcnRuZXJzID0gdGhpcy5wYXJ0bmVycyAmJiB0aGlzLnBhcnRuZXJzLm1hcChwID0+IHAuYXNPYmplY3Qob3B0aW9ucykpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSkge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLnNtYWxsTG9nbyA9IHNvdXJjZS5zbWFsbExvZ287XG4gICAgdGhpcy5sYXJnZUxvZ28gPSBzb3VyY2UubGFyZ2VMb2dvO1xuICAgIHRoaXMuYmFja2dyb3VuZEltYWdlcyA9IHNvdXJjZS5iYWNrZ3JvdW5kSW1hZ2VzO1xuICAgIHRoaXMucGFydG5lcnMgPSBzb3VyY2UucGFydG5lcnMgJiYgc291cmNlLnBhcnRuZXJzLm1hcChEZXBhcnRtZW50LmZyb21PYmplY3QpIHx8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldFByb3BlcnR5QXNCb29sZWFuKGRlZmluaXRpb246IEZvcm1GaWVsZERlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0UHJvcGVydHkoZGVmaW5pdGlvbik7XG4gICAgcmV0dXJuIGlzTm90TmlsKHZhbHVlKSA/ICh2YWx1ZSAmJiB2YWx1ZSAhPT0gJ2ZhbHNlJykgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRQcm9wZXJ0eUFzSW50KGRlZmluaXRpb246IEZvcm1GaWVsZERlZmluaXRpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRQcm9wZXJ0eShkZWZpbml0aW9uKTtcbiAgICByZXR1cm4gaXNOb3ROaWwodmFsdWUpID8gcGFyc2VJbnQodmFsdWUpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0UHJvcGVydHlBc051bWJlcnMoZGVmaW5pdGlvbjogRm9ybUZpZWxkRGVmaW5pdGlvbik6IG51bWJlcltdIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0UHJvcGVydHkoZGVmaW5pdGlvbik7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZS5zcGxpdCgnLCcpLm1hcChwYXJzZUZsb2F0KSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGlzTm90TmlsKHZhbHVlKSA/IFtwYXJzZUZsb2F0KHZhbHVlKV0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRQcm9wZXJ0eUFzU3RyaW5ncyhkZWZpbml0aW9uOiBGb3JtRmllbGREZWZpbml0aW9uKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRQcm9wZXJ0eShkZWZpbml0aW9uKTtcbiAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUuc3BsaXQoJywnKSB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRQcm9wZXJ0eTxUID0gc3RyaW5nPihkZWZpbml0aW9uOiBGb3JtRmllbGREZWZpbml0aW9uKTogVCB7XG4gICAgcmV0dXJuIGlzTm90TmlsKHRoaXMucHJvcGVydGllc1tkZWZpbml0aW9uLmtleV0pID8gdGhpcy5wcm9wZXJ0aWVzW2RlZmluaXRpb24ua2V5XSA6IHVuZGVmaW5lZElmTnVsbChkZWZpbml0aW9uLmRlZmF1bHRWYWx1ZSk7XG4gIH1cblxuICBoYXNQcm9wZXJ0eTxUID0gc3RyaW5nPihkZWZpbml0aW9uOiBGb3JtRmllbGREZWZpbml0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTm90TmlsKHRoaXMucHJvcGVydGllc1tkZWZpbml0aW9uLmtleV0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var Department_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { BaseReferential } from './referential.model';
|
|
4
|
+
import { EntityClass } from './entity.decorators';
|
|
5
|
+
// @dynamic
|
|
6
|
+
let Department = Department_1 = class Department extends BaseReferential {
|
|
7
|
+
static ENTITY_NAME = 'Department';
|
|
8
|
+
static fromObject;
|
|
9
|
+
logo;
|
|
10
|
+
siteUrl;
|
|
11
|
+
constructor() {
|
|
12
|
+
super(Department_1.TYPENAME);
|
|
13
|
+
this.entityName = Department_1.ENTITY_NAME;
|
|
14
|
+
}
|
|
15
|
+
fromObject(source) {
|
|
16
|
+
super.fromObject(source);
|
|
17
|
+
this.entityName = source.entityName || Department_1.ENTITY_NAME;
|
|
18
|
+
this.logo = source.logo;
|
|
19
|
+
this.siteUrl = source.siteUrl;
|
|
20
|
+
delete this.entityName; // not need
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
Department = Department_1 = __decorate([
|
|
24
|
+
EntityClass({ typename: 'DepartmentVO' })
|
|
25
|
+
], Department);
|
|
26
|
+
export { Department };
|
|
27
|
+
export function departmentToString(obj) {
|
|
28
|
+
return obj && obj.id && (obj.name) || undefined;
|
|
29
|
+
}
|
|
30
|
+
export function departmentsToString(data, separator) {
|
|
31
|
+
return (data || []).map(departmentToString).join(separator || ', ');
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwYXJ0bWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9tb2RlbC9kZXBhcnRtZW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxXQUFXO0FBRUosSUFBTSxVQUFVLGtCQUFoQixNQUFNLFVBQVcsU0FBUSxlQUEyQjtJQUV6RCxNQUFNLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztJQUNsQyxNQUFNLENBQUMsVUFBVSxDQUEwQztJQUUzRCxJQUFJLENBQVM7SUFDYixPQUFPLENBQVM7SUFFaEI7UUFDRSxLQUFLLENBQUMsWUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBVSxDQUFDLFdBQVcsQ0FBQztJQUMzQyxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQVc7UUFDcEIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksWUFBVSxDQUFDLFdBQVcsQ0FBQztRQUM5RCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFdBQVc7SUFDckMsQ0FBQzs7QUFuQlUsVUFBVTtJQUR0QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsY0FBYyxFQUFDLENBQUM7R0FDM0IsVUFBVSxDQW9CdEI7U0FwQlksVUFBVTtBQXNCdkIsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEdBQWU7SUFDaEQsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFrQixFQUFFLFNBQWtCO0lBQ3hFLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQztBQUN0RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCYXNlUmVmZXJlbnRpYWx9IGZyb20gJy4vcmVmZXJlbnRpYWwubW9kZWwnO1xuaW1wb3J0IHtFbnRpdHlDbGFzc30gZnJvbSAnLi9lbnRpdHkuZGVjb3JhdG9ycyc7XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3Moe3R5cGVuYW1lOiAnRGVwYXJ0bWVudFZPJ30pXG5leHBvcnQgY2xhc3MgRGVwYXJ0bWVudCBleHRlbmRzIEJhc2VSZWZlcmVudGlhbDxEZXBhcnRtZW50PiB7XG5cbiAgc3RhdGljIEVOVElUWV9OQU1FID0gJ0RlcGFydG1lbnQnO1xuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBEZXBhcnRtZW50O1xuXG4gIGxvZ286IHN0cmluZztcbiAgc2l0ZVVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKERlcGFydG1lbnQuVFlQRU5BTUUpO1xuICAgIHRoaXMuZW50aXR5TmFtZSA9IERlcGFydG1lbnQuRU5USVRZX05BTUU7XG4gIH1cblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55KSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIHRoaXMuZW50aXR5TmFtZSA9IHNvdXJjZS5lbnRpdHlOYW1lIHx8IERlcGFydG1lbnQuRU5USVRZX05BTUU7XG4gICAgdGhpcy5sb2dvID0gc291cmNlLmxvZ287XG4gICAgdGhpcy5zaXRlVXJsID0gc291cmNlLnNpdGVVcmw7XG4gICAgZGVsZXRlIHRoaXMuZW50aXR5TmFtZTsgLy8gbm90IG5lZWRcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwYXJ0bWVudFRvU3RyaW5nKG9iajogRGVwYXJ0bWVudCk6IHN0cmluZyB7XG4gIHJldHVybiBvYmogJiYgb2JqLmlkICYmIChvYmoubmFtZSkgfHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwYXJ0bWVudHNUb1N0cmluZyhkYXRhOiBEZXBhcnRtZW50W10sIHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiAoZGF0YSB8fCBbXSkubWFwKGRlcGFydG1lbnRUb1N0cmluZykuam9pbihzZXBhcmF0b3IgfHwgJywgJyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { environment } from '../../../../environments/environment';
|
|
2
|
+
import { Entity } from './entity.model';
|
|
3
|
+
import { removeEnd } from '../../../shared/functions';
|
|
4
|
+
export class EntityClasses {
|
|
5
|
+
static CLASSES_BY_NAME = new Map();
|
|
6
|
+
static register(typename, entityClass) {
|
|
7
|
+
// Convert to extract entityName
|
|
8
|
+
const entityName = removeEnd(typename, 'VO');
|
|
9
|
+
// DEBUG
|
|
10
|
+
//console.debug('[entity-classes] Detected entity class ' + entityName);
|
|
11
|
+
// Add to map
|
|
12
|
+
EntityClasses.CLASSES_BY_NAME.set(entityName, entityClass);
|
|
13
|
+
}
|
|
14
|
+
static get(entityName) {
|
|
15
|
+
const entityClass = EntityClasses.CLASSES_BY_NAME.get(entityName);
|
|
16
|
+
if (!entityClass) {
|
|
17
|
+
throw new Error('Cannot found entity class \'' + entityName + '\'. Make sure it exists and has the @EntityClass decorator.');
|
|
18
|
+
}
|
|
19
|
+
return entityClass;
|
|
20
|
+
}
|
|
21
|
+
static fromObject(value, opts) {
|
|
22
|
+
if (!value)
|
|
23
|
+
return value;
|
|
24
|
+
const entityName = (opts && opts.entityName) || removeEnd(value.__typename || opts?.typename, 'VO');
|
|
25
|
+
if (!entityName)
|
|
26
|
+
throw new Error('Missing one of \'value.__typename\', \'opts.entityName\', or \'opts.typename\'.');
|
|
27
|
+
const entityClass = EntityClasses.get(entityName);
|
|
28
|
+
if (typeof entityClass.fromObject !== 'function') {
|
|
29
|
+
throw new Error('Cannot found the static function \'' + entityName + '.fromObject()\'. Make sure this function has been declared and the entity class has the @EntityClass decorator');
|
|
30
|
+
}
|
|
31
|
+
return entityClass.fromObject(value, opts);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// eslint-disable-next-line prefer-arrow/prefer-arrow-functions
|
|
35
|
+
export function EntityClass(opts) {
|
|
36
|
+
// eslint-disable-next-line prefer-arrow/prefer-arrow-functions
|
|
37
|
+
return function (constructor) {
|
|
38
|
+
// Make sure the class extends Entity
|
|
39
|
+
if (!environment.production) {
|
|
40
|
+
const obj = new constructor();
|
|
41
|
+
if (!(obj instanceof Entity)) {
|
|
42
|
+
throw new Error(`Class ${constructor.name} must extends <<Entity>> to be able to use @FromObject!`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const clazz = constructor;
|
|
46
|
+
const typename = opts.typename || `${constructor.name}VO`;
|
|
47
|
+
// Define static field TYPENAME
|
|
48
|
+
clazz.TYPENAME = typename;
|
|
49
|
+
// Define static fromObject()
|
|
50
|
+
if (opts.fromObjectReuseStrategy === 'clone') {
|
|
51
|
+
clazz.fromObject = function (source, opts) {
|
|
52
|
+
if (!source)
|
|
53
|
+
return undefined;
|
|
54
|
+
if (source instanceof constructor)
|
|
55
|
+
return source.clone(opts);
|
|
56
|
+
const target = new constructor();
|
|
57
|
+
target.fromObject(source, opts);
|
|
58
|
+
return target;
|
|
59
|
+
};
|
|
60
|
+
clazz.asObject = function (source, opts) {
|
|
61
|
+
if (!source)
|
|
62
|
+
return undefined;
|
|
63
|
+
if (source instanceof constructor)
|
|
64
|
+
return source.asObject(opts);
|
|
65
|
+
return Object.assign({}, source);
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
clazz.fromObject = function (source, opts) {
|
|
70
|
+
if (!source)
|
|
71
|
+
return undefined;
|
|
72
|
+
if (source instanceof constructor) {
|
|
73
|
+
// DEBUG
|
|
74
|
+
//console.debug('@EntityClass() fromObject() => will recycle existing object: ', source);
|
|
75
|
+
return source;
|
|
76
|
+
}
|
|
77
|
+
const target = new constructor();
|
|
78
|
+
target.fromObject(source, opts);
|
|
79
|
+
return target;
|
|
80
|
+
};
|
|
81
|
+
clazz.asObject = function (source, opts) {
|
|
82
|
+
if (!source)
|
|
83
|
+
return undefined;
|
|
84
|
+
if (source instanceof constructor) {
|
|
85
|
+
return source.asObject(opts);
|
|
86
|
+
}
|
|
87
|
+
// DEBUG
|
|
88
|
+
//console.debug('@EntityClass() asObject() => will recycle existing object: ', source);
|
|
89
|
+
return source;
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// Register the entity class
|
|
93
|
+
EntityClasses.register(typename, constructor);
|
|
94
|
+
return constructor;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5LmRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJdEQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztJQUV4RCxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQWdCLEVBQUUsV0FBd0I7UUFDeEQsZ0NBQWdDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0MsUUFBUTtRQUNSLHdFQUF3RTtRQUV4RSxhQUFhO1FBQ2IsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxDQUFzQixVQUFrQjtRQUNoRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLEdBQUcsVUFBVSxHQUFHLDZEQUE2RCxDQUFDLENBQUM7U0FDOUg7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBc0IsS0FBVSxFQUFFLElBSWxEO1FBQ0MsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN6QixNQUFNLFVB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Z0JBQy9DLElBQUksQ0FBQyxNQUFNO29CQUFFLE9BQU8sU0FBUyxDQUFDO2dCQUM5QixJQUFJLE1BQU0sWUFBWSxXQUFXLEVBQUU7b0JBQ2pDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDOUI7Z0JBQ0QsUUFBUTtnQkFDUix1RkFBdUY7Z0JBQ3ZGLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUMsQ0FBQztTQUNIO1FBRUQsNEJBQTRCO1FBQzVCLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTlDLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyByZW1vdmVFbmQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcblxuZGVjbGFyZSB0eXBlIENvbnN0cnVjdG9yID0gbmV3KC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlDbGFzc2VzIHtcbiAgc3RhdGljIENMQVNTRVNfQllfTkFNRSA9IG5ldyBNYXA8c3RyaW5nLCBDb25zdHJ1Y3Rvcj4oKTtcblxuICBzdGF0aWMgcmVnaXN0ZXIodHlwZW5hbWU6IHN0cmluZywgZW50aXR5Q2xhc3M6IENvbnN0cnVjdG9yKSB7XG4gICAgLy8gQ29udmVydCB0byBleHRyYWN0IGVudGl0eU5hbWVcbiAgICBjb25zdCBlbnRpdHlOYW1lID0gcmVtb3ZlRW5kKHR5cGVuYW1lLCAnVk8nKTtcbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZygnW2VudGl0eS1jbGFzc2VzXSBEZXRlY3RlZCBlbnRpdHkgY2xhc3MgJyArIGVudGl0eU5hbWUpO1xuXG4gICAgLy8gQWRkIHRvIG1hcFxuICAgIEVudGl0eUNsYXNzZXMuQ0xBU1NFU19CWV9OQU1FLnNldChlbnRpdHlOYW1lLCBlbnRpdHlDbGFzcyk7XG4gIH1cblxuICBzdGF0aWMgZ2V0PFQgZXh0ZW5kcyBFbnRpdHk8VD4+KGVudGl0eU5hbWU6IHN0cmluZyk6IENvbnN0cnVjdG9yIHtcbiAgICBjb25zdCBlbnRpdHlDbGFzcyA9IEVudGl0eUNsYXNzZXMuQ0xBU1NFU19CWV9OQU1FLmdldChlbnRpdHlOYW1lKTtcbiAgICBpZiAoIWVudGl0eUNsYXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmb3VuZCBlbnRpdHkgY2xhc3MgXFwnJyArIGVudGl0eU5hbWUgKyAnXFwnLiBNYWtlIHN1cmUgaXQgZXhpc3RzIGFuZCBoYXMgdGhlIEBFbnRpdHlDbGFzcyBkZWNvcmF0b3IuJyk7XG4gICAgfVxuICAgIHJldHVybiBlbnRpdHlDbGFzcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT2JqZWN0PFQgZXh0ZW5kcyBFbnRpdHk8VD4+KHZhbHVlOiBhbnksIG9wdHM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIHR5cGVuYW1lPzogc3RyaW5nO1xuICAgIGVudGl0eU5hbWU/OiBzdHJpbmc7XG4gIH0pOiBUIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdmFsdWU7XG4gICAgY29uc3QgZW50aXR5TmFtZSA9IChvcHRzICYmIG9wdHMuZW50aXR5TmFtZSkgfHwgcmVtb3ZlRW5kKHZhbHVlLl9fdHlwZW5hbWUgfHwgb3B0cz8udHlwZW5hbWUsICdWTycpO1xuICAgIGlmICghZW50aXR5TmFtZSkgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIG9uZSBvZiBcXCd2YWx1ZS5fX3R5cGVuYW1lXFwnLCBcXCdvcHRzLmVudGl0eU5hbWVcXCcsIG9yIFxcJ29wdHMudHlwZW5hbWVcXCcuJyk7XG4gICAgY29uc3QgZW50aXR5Q2xhc3MgPSBFbnRpdHlDbGFzc2VzLmdldChlbnRpdHlOYW1lKSBhcyBhbnk7XG4gICAgaWYgKHR5cGVvZiBlbnRpdHlDbGFzcy5mcm9tT2JqZWN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmb3VuZCB0aGUgc3RhdGljIGZ1bmN0aW9uIFxcJycgKyBlbnRpdHlOYW1lICsgJy5mcm9tT2JqZWN0KClcXCcuIE1ha2Ugc3VyZSB0aGlzIGZ1bmN0aW9uIGhhcyBiZWVuIGRlY2xhcmVkIGFuZCB0aGUgZW50aXR5IGNsYXNzIGhhcyB0aGUgQEVudGl0eUNsYXNzIGRlY29yYXRvcicpO1xuICAgIH1cbiAgICByZXR1cm4gZW50aXR5Q2xhc3MuZnJvbU9iamVjdCh2YWx1ZSwgb3B0cykgYXMgVDtcbiAgfVxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiBFbnRpdHlDbGFzcyhvcHRzOiB7XG4gIHR5cGVuYW1lOiBzdHJpbmc7XG4gIGZyb21PYmplY3RSZXVzZVN0cmF0ZWd5PzogJ2RlZmF1bHQnIHwgJ2Nsb25lJztcbn0pIHtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnNcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgQ29uc3RydWN0b3I+KGNvbnN0cnVjdG9yOiBUKSB7XG5cbiAgICAvLyBNYWtlIHN1cmUgdGhlIGNsYXNzIGV4dGVuZHMgRW50aXR5XG4gICAgaWYgKCFlbnZpcm9ubWVudC5wcm9kdWN0aW9uKSB7XG4gICAgICBjb25zdCBvYmogPSBuZXcgY29uc3RydWN0b3IoKTtcbiAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIEVudGl0eSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDbGFzcyAke2NvbnN0cnVjdG9yLm5hbWV9IG11c3QgZXh0ZW5kcyA8PEVudGl0eT4+IHRvIGJlIGFibGUgdG8gdXNlIEBGcm9tT2JqZWN0IWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNsYXp6ID0gKGNvbnN0cnVjdG9yIGFzIGFueSk7XG4gICAgY29uc3QgdHlwZW5hbWUgPSBvcHRzLnR5cGVuYW1lIHx8IGAke2NvbnN0cnVjdG9yLm5hbWV9Vk9gO1xuXG4gICAgLy8gRGVmaW5lIHN0YXRpYyBmaWVsZCBUWVBFTkFNRVxuICAgIGNsYXp6LlRZUEVOQU1FID0gdHlwZW5hbWU7XG5cbiAgICAvLyBEZWZpbmUgc3RhdGljIGZyb21PYmplY3QoKVxuICAgIGlmIChvcHRzLmZyb21PYmplY3RSZXVzZVN0cmF0ZWd5ID09PSAnY2xvbmUnKSB7XG5cbiAgICAgIGNsYXp6LmZyb21PYmplY3QgPSBmdW5jdGlvbihzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IFQge1xuICAgICAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIGNvbnN0cnVjdG9yKSByZXR1cm4gKHNvdXJjZSBhcyBhbnkpLmNsb25lKG9wdHMpIGFzIFQ7XG4gICAgICAgIGNvbnN0IHRhcmdldDogYW55ID0gbmV3IGNvbnN0cnVjdG9yKCk7XG4gICAgICAgIHRhcmdldC5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgICAgIHJldHVybiB0YXJnZXQgYXMgVDtcbiAgICAgIH07XG4gICAgICBjbGF6ei5hc09iamVjdCA9IGZ1bmN0aW9uKHNvdXJjZTogYW55LCBvcHRzPzogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBjb25zdHJ1Y3RvcikgcmV0dXJuIHNvdXJjZS5hc09iamVjdChvcHRzKTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHNvdXJjZSk7XG4gICAgICB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNsYXp6LmZyb21PYmplY3QgPSBmdW5jdGlvbihzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IFQge1xuICAgICAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIGNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgLy8gREVCVUdcbiAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoJ0BFbnRpdHlDbGFzcygpIGZyb21PYmplY3QoKSA9PiB3aWxsIHJlY3ljbGUgZXhpc3Rpbmcgb2JqZWN0OiAnLCBzb3VyY2UpO1xuICAgICAgICAgIHJldHVybiBzb3VyY2UgYXMgVDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXJnZXQ6IGFueSA9IG5ldyBjb25zdHJ1Y3RvcigpO1xuICAgICAgICB0YXJnZXQuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMpO1xuICAgICAgICByZXR1cm4gdGFyZ2V0IGFzIFQ7XG4gICAgICB9O1xuXG4gICAgICBjbGF6ei5hc09iamVjdCA9IGZ1bmN0aW9uKHNvdXJjZTogYW55LCBvcHRzPzogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBjb25zdHJ1Y3Rvcikge1xuICAgICAgICAgIHJldHVybiBzb3VyY2UuYXNPYmplY3Qob3B0cyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gREVCVUdcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKCdARW50aXR5Q2xhc3MoKSBhc09iamVjdCgpID0+IHdpbGwgcmVjeWNsZSBleGlzdGluZyBvYmplY3Q6ICcsIHNvdXJjZSk7XG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIHRoZSBlbnRpdHkgY2xhc3NcbiAgICBFbnRpdHlDbGFzc2VzLnJlZ2lzdGVyKHR5cGVuYW1lLCBjb25zdHJ1Y3Rvcik7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3I7XG4gIH07XG59XG4iXX0=
|