@sumaris-net/ngx-components 2.18.0-beta8 → 2.21.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/README.md +3 -0
- package/doc/build.md +14 -14
- package/doc/changelog.md +1386 -88
- package/doc/feed/feed-en.json +26 -0
- package/doc/feed/feed-fr.json +28 -0
- package/fesm2022/sumaris-net.ngx-components.mjs +32441 -22724
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +42 -39
- package/src/assets/environments/environment-test.json +2 -2
- package/src/assets/i18n/en-US.json +143 -45
- package/src/assets/i18n/en.json +142 -43
- package/src/assets/i18n/fr.json +147 -47
- package/src/assets/manifest.json +1 -1
- package/src/theme/_icons.scss +8 -12
- package/src/theme/_ionic.globals.scss +8 -1
- package/src/theme/_markdown.scss +1 -1
- package/src/theme/_material.globals.scss +4 -1
- package/src/theme/_material.scss +60 -17
- package/src/theme/_mixins.scss +39 -4
- package/src/theme/_ngx-components.forms.scss +115 -89
- package/src/theme/_ngx-components.globals.scss +4 -1
- package/src/theme/_ngx-components.scss +162 -110
- package/src/theme/_ngx-components.table.scss +105 -44
- package/src/theme/_ngx-components.tabs.scss +46 -14
- package/src/theme/_responsive.scss +15 -0
- package/src/theme/_roboto.scss +3 -0
- package/src/theme/_theme.scss +11 -14
- package/src/theme/_theme.variables.scss +7 -3
- package/src/theme/ionic/ionic.functions.color.scss +13 -5
- package/src/theme/ionic/ionic.globals.scss +4 -4
- package/src/theme/ionic/ionic.theme.default.scss +2 -0
- package/types/sumaris-net.ngx-components.d.ts +14132 -0
- package/esm2022/public_api.mjs +0 -358
- package/esm2022/src/app/admin/admin-routing.module.mjs +0 -34
- package/esm2022/src/app/admin/admin.module.mjs +0 -32
- package/esm2022/src/app/admin/services/filter/person.filter.mjs +0 -69
- package/esm2022/src/app/admin/services/person.service.mjs +0 -174
- package/esm2022/src/app/admin/services/validator/person.validator.mjs +0 -72
- package/esm2022/src/app/admin/users/users.mjs +0 -267
- package/esm2022/src/app/admin/users/users.module.mjs +0 -56
- package/esm2022/src/app/core/about/about.modal.mjs +0 -84
- package/esm2022/src/app/core/about/about.module.mjs +0 -21
- package/esm2022/src/app/core/account/account.module.mjs +0 -68
- package/esm2022/src/app/core/account/account.page.mjs +0 -351
- package/esm2022/src/app/core/account/new-token.modal.mjs +0 -132
- package/esm2022/src/app/core/account/password/change-password.form.mjs +0 -60
- package/esm2022/src/app/core/account/password/change-password.module.mjs +0 -22
- package/esm2022/src/app/core/account/password/change-password.page.mjs +0 -144
- package/esm2022/src/app/core/account/token.table.mjs +0 -152
- package/esm2022/src/app/core/auth/auth.form.mjs +0 -159
- package/esm2022/src/app/core/auth/auth.modal.mjs +0 -76
- package/esm2022/src/app/core/auth/auth.module.mjs +0 -56
- package/esm2022/src/app/core/auth/reset-password.modal.mjs +0 -77
- package/esm2022/src/app/core/core.module.mjs +0 -151
- package/esm2022/src/app/core/core.testing.module.mjs +0 -107
- package/esm2022/src/app/core/form/array/form-array.mjs +0 -325
- package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +0 -23
- package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +0 -94
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -108
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +0 -31
- package/esm2022/src/app/core/form/entity/editor.class.mjs +0 -265
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -420
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +0 -731
- package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +0 -24
- package/esm2022/src/app/core/form/entity/entity.module.mjs +0 -32
- package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +0 -194
- package/esm2022/src/app/core/form/form-container.class.mjs +0 -327
- package/esm2022/src/app/core/form/form.class.mjs +0 -336
- package/esm2022/src/app/core/form/form.module.mjs +0 -70
- package/esm2022/src/app/core/form/form.utils.mjs +0 -197
- package/esm2022/src/app/core/form/list/list.form.mjs +0 -235
- package/esm2022/src/app/core/form/list/list.module.mjs +0 -31
- package/esm2022/src/app/core/form/properties/properties.form.mjs +0 -225
- package/esm2022/src/app/core/form/properties/properties.module.mjs +0 -37
- package/esm2022/src/app/core/form/properties/properties.table.mjs +0 -268
- package/esm2022/src/app/core/form/properties/properties.utils.mjs +0 -60
- package/esm2022/src/app/core/form/properties/property.validator.mjs +0 -38
- package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +0 -95
- package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +0 -23
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -73
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +0 -30
- package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +0 -152
- package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +0 -31
- package/esm2022/src/app/core/form/username/username.form.mjs +0 -52
- package/esm2022/src/app/core/form/username/username.module.mjs +0 -20
- package/esm2022/src/app/core/graphql/graphql.module.mjs +0 -14
- package/esm2022/src/app/core/graphql/graphql.service.mjs +0 -783
- package/esm2022/src/app/core/graphql/graphql.utils.mjs +0 -119
- package/esm2022/src/app/core/home/home.mjs +0 -311
- package/esm2022/src/app/core/home/home.module.mjs +0 -42
- package/esm2022/src/app/core/icon/icon.component.mjs +0 -40
- package/esm2022/src/app/core/icon/icon.module.mjs +0 -20
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +0 -354
- package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +0 -31
- package/esm2022/src/app/core/menu/menu.component.mjs +0 -263
- package/esm2022/src/app/core/menu/menu.model.mjs +0 -272
- package/esm2022/src/app/core/menu/menu.module.mjs +0 -47
- package/esm2022/src/app/core/menu/menu.service.mjs +0 -655
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +0 -109
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +0 -49
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +0 -157
- package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +0 -60
- package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +0 -28
- package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +0 -31
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +0 -203
- package/esm2022/src/app/core/peer/select-peer.module.mjs +0 -30
- package/esm2022/src/app/core/register/register-confirm.page.mjs +0 -90
- package/esm2022/src/app/core/register/register.form.mjs +0 -194
- package/esm2022/src/app/core/register/register.modal.mjs +0 -55
- package/esm2022/src/app/core/register/register.module.mjs +0 -23
- package/esm2022/src/app/core/services/account.service.mjs +0 -1346
- package/esm2022/src/app/core/services/auth-guard.service.mjs +0 -74
- package/esm2022/src/app/core/services/base-entity-service.class.mjs +0 -473
- package/esm2022/src/app/core/services/base-graphql-service.class.mjs +0 -230
- package/esm2022/src/app/core/services/base58.mjs +0 -83
- package/esm2022/src/app/core/services/config/core.config.mjs +0 -233
- package/esm2022/src/app/core/services/config.service.mjs +0 -384
- package/esm2022/src/app/core/services/crypto.service.mjs +0 -107
- package/esm2022/src/app/core/services/errors.mjs +0 -52
- package/esm2022/src/app/core/services/local-settings.service.mjs +0 -482
- package/esm2022/src/app/core/services/model/account.model.mjs +0 -150
- package/esm2022/src/app/core/services/model/config.model.mjs +0 -107
- package/esm2022/src/app/core/services/model/department.model.mjs +0 -35
- package/esm2022/src/app/core/services/model/entity.decorators.mjs +0 -97
- package/esm2022/src/app/core/services/model/entity.model.mjs +0 -224
- package/esm2022/src/app/core/services/model/filter.model.mjs +0 -93
- package/esm2022/src/app/core/services/model/history.model.mjs +0 -2
- package/esm2022/src/app/core/services/model/model.enum.mjs +0 -11
- package/esm2022/src/app/core/services/model/peer.model.mjs +0 -93
- package/esm2022/src/app/core/services/model/person.model.mjs +0 -114
- package/esm2022/src/app/core/services/model/referential.model.mjs +0 -202
- package/esm2022/src/app/core/services/model/settings.model.mjs +0 -4
- package/esm2022/src/app/core/services/model/token.model.mjs +0 -56
- package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +0 -195
- package/esm2022/src/app/core/services/network.service.mjs +0 -631
- package/esm2022/src/app/core/services/network.types.mjs +0 -20
- package/esm2022/src/app/core/services/network.utils.mjs +0 -15
- package/esm2022/src/app/core/services/pipes/account.pipes.mjs +0 -38
- package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +0 -23
- package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +0 -23
- package/esm2022/src/app/core/services/pipes/pipes.module.mjs +0 -54
- package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +0 -21
- package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +0 -37
- package/esm2022/src/app/core/services/platform.service.mjs +0 -583
- package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +0 -427
- package/esm2022/src/app/core/services/storage/entity-store.class.mjs +0 -449
- package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +0 -25
- package/esm2022/src/app/core/services/testing/referential.validator.mjs +0 -46
- package/esm2022/src/app/core/services/validator/account.validator.mjs +0 -45
- package/esm2022/src/app/core/services/validator/base.validator.class.mjs +0 -49
- package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +0 -81
- package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +0 -27
- package/esm2022/src/app/core/services/validator/user-token.validator.mjs +0 -55
- package/esm2022/src/app/core/settings/settings.module.mjs +0 -22
- package/esm2022/src/app/core/settings/settings.page.mjs +0 -341
- package/esm2022/src/app/core/table/async-table.class.mjs +0 -1753
- package/esm2022/src/app/core/table/column/actions-column.component.mjs +0 -127
- package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +0 -117
- package/esm2022/src/app/core/table/column/row-field.component.mjs +0 -116
- package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
- package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +0 -401
- package/esm2022/src/app/core/table/memory-table.class.mjs +0 -57
- package/esm2022/src/app/core/table/table-select-columns.component.mjs +0 -46
- package/esm2022/src/app/core/table/table.class.mjs +0 -1816
- package/esm2022/src/app/core/table/table.model.mjs +0 -16
- package/esm2022/src/app/core/table/table.module.mjs +0 -51
- package/esm2022/src/app/core/table/table.pipes.mjs +0 -77
- package/esm2022/src/app/core/table/table.utils.mjs +0 -31
- package/esm2022/src/app/core/table/testing/table-validator.service.mjs +0 -32
- package/esm2022/src/app/core/table/testing/table.testing.mjs +0 -329
- package/esm2022/src/app/core/table/testing/table.testing.module.mjs +0 -25
- package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +0 -25
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +0 -273
- package/esm2022/src/app/shared/alerts.mjs +0 -243
- package/esm2022/src/app/shared/audio/audio.mjs +0 -249
- package/esm2022/src/app/shared/audio/audio.testing.mjs +0 -32
- package/esm2022/src/app/shared/audio/audio.testing.module.mjs +0 -30
- package/esm2022/src/app/shared/capacitor/keyboard.mjs +0 -42
- package/esm2022/src/app/shared/capacitor/plugins.mjs +0 -9
- package/esm2022/src/app/shared/constants.mjs +0 -16
- package/esm2022/src/app/shared/dates.mjs +0 -151
- package/esm2022/src/app/shared/debug/debug-service.class.mjs +0 -3
- package/esm2022/src/app/shared/debug/debug.component.mjs +0 -40
- package/esm2022/src/app/shared/debug/debug.module.mjs +0 -23
- package/esm2022/src/app/shared/directives/autofocus.directive.mjs +0 -91
- package/esm2022/src/app/shared/directives/autotitle.directive.mjs +0 -32
- package/esm2022/src/app/shared/directives/directives.module.mjs +0 -22
- package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +0 -52
- package/esm2022/src/app/shared/directives/ng-var.directive.mjs +0 -33
- package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +0 -62
- package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +0 -45
- package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +0 -17
- package/esm2022/src/app/shared/events.mjs +0 -63
- package/esm2022/src/app/shared/file/csv.utils.mjs +0 -92
- package/esm2022/src/app/shared/file/file.service.mjs +0 -118
- package/esm2022/src/app/shared/file/file.utils.mjs +0 -115
- package/esm2022/src/app/shared/file/images.utils.mjs +0 -186
- package/esm2022/src/app/shared/file/json.utils.mjs +0 -58
- package/esm2022/src/app/shared/file/uri.utils.mjs +0 -24
- package/esm2022/src/app/shared/focusable.mjs +0 -6
- package/esm2022/src/app/shared/form/field.component.mjs +0 -379
- package/esm2022/src/app/shared/form/field.model.mjs +0 -25
- package/esm2022/src/app/shared/form/loading-spinner.mjs +0 -35
- package/esm2022/src/app/shared/forms.mjs +0 -459
- package/esm2022/src/app/shared/functions.mjs +0 -551
- package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +0 -82
- package/esm2022/src/app/shared/gesture/gesture-config.mjs +0 -46
- package/esm2022/src/app/shared/gesture/hammer.utils.mjs +0 -2
- package/esm2022/src/app/shared/graph/colors.utils.mjs +0 -60
- package/esm2022/src/app/shared/graph/graph-colors.mjs +0 -213
- package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +0 -59
- package/esm2022/src/app/shared/help/help.modal.mjs +0 -63
- package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
- package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +0 -112
- package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +0 -24
- package/esm2022/src/app/shared/http/http.utils.mjs +0 -56
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +0 -388
- package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +0 -62
- package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -26
- package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -87
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -37
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +0 -59
- package/esm2022/src/app/shared/image/image.model.mjs +0 -2
- package/esm2022/src/app/shared/image/image.module.mjs +0 -24
- package/esm2022/src/app/shared/image/image.service.mjs +0 -106
- package/esm2022/src/app/shared/inputs.mjs +0 -263
- package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
- package/esm2022/src/app/shared/logging/log-level.model.mjs +0 -48
- package/esm2022/src/app/shared/logging/logger.model.mjs +0 -47
- package/esm2022/src/app/shared/logging/logging-service.class.mjs +0 -125
- package/esm2022/src/app/shared/logging/logging-service.config.mjs +0 -2
- package/esm2022/src/app/shared/logging/logging-service.module.mjs +0 -30
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -46
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -1071
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -79
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -18
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -231
- package/esm2022/src/app/shared/material/badge/badge.directive.mjs +0 -251
- package/esm2022/src/app/shared/material/badge/badge.module.mjs +0 -20
- package/esm2022/src/app/shared/material/badge/badge.test.mjs +0 -42
- package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +0 -71
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +0 -376
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -61
- package/esm2022/src/app/shared/material/chips/chips.module.mjs +0 -75
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +0 -779
- package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +0 -147
- package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +0 -76
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +0 -471
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +0 -457
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +0 -681
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -136
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -127
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -118
- package/esm2022/src/app/shared/material/duration/duration.module.mjs +0 -65
- package/esm2022/src/app/shared/material/duration/duration.utils.mjs +0 -33
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +0 -274
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -80
- package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +0 -313
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +0 -381
- package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -118
- package/esm2022/src/app/shared/material/material.animations.mjs +0 -143
- package/esm2022/src/app/shared/material/material.config.mjs +0 -3
- package/esm2022/src/app/shared/material/material.module.mjs +0 -229
- package/esm2022/src/app/shared/material/material.testing.module.mjs +0 -234
- package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -51
- package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -23
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +0 -375
- package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +0 -52
- package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -67
- package/esm2022/src/app/shared/material/testing/common.test.mjs +0 -111
- package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +0 -42
- package/esm2022/src/app/shared/material/text/text-form.component.mjs +0 -204
- package/esm2022/src/app/shared/material/text/text-form.module.mjs +0 -63
- package/esm2022/src/app/shared/modules.mjs +0 -12
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -303
- package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +0 -49
- package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +0 -24
- package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +0 -69
- package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +0 -74
- package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +0 -28
- package/esm2022/src/app/shared/observables.mjs +0 -100
- package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +0 -156
- package/esm2022/src/app/shared/pipes/badge.pipes.mjs +0 -24
- package/esm2022/src/app/shared/pipes/colors.pipe.mjs +0 -29
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -49
- package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +0 -72
- package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +0 -28
- package/esm2022/src/app/shared/pipes/duration.pipe.mjs +0 -36
- package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +0 -53
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +0 -219
- package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +0 -48
- package/esm2022/src/app/shared/pipes/html.pipes.mjs +0 -52
- package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +0 -42
- package/esm2022/src/app/shared/pipes/maps.pipe.mjs +0 -63
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +0 -67
- package/esm2022/src/app/shared/pipes/math.pipes.mjs +0 -59
- package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +0 -19
- package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +0 -30
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +0 -236
- package/esm2022/src/app/shared/pipes/property.pipes.mjs +0 -136
- package/esm2022/src/app/shared/pipes/selection.pipes.mjs +0 -180
- package/esm2022/src/app/shared/pipes/string.pipes.mjs +0 -136
- package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +0 -44
- package/esm2022/src/app/shared/pipes/types.pipes.mjs +0 -74
- package/esm2022/src/app/shared/platforms.mjs +0 -45
- package/esm2022/src/app/shared/rx-state.module.mjs +0 -19
- package/esm2022/src/app/shared/services/entity-service.class.mjs +0 -7
- package/esm2022/src/app/shared/services/job.utils.mjs +0 -92
- package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +0 -349
- package/esm2022/src/app/shared/services/progress-bar.service.mjs +0 -31
- package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +0 -118
- package/esm2022/src/app/shared/services/startable-service.class.mjs +0 -107
- package/esm2022/src/app/shared/services/translate-context.service.mjs +0 -107
- package/esm2022/src/app/shared/services/validator-service.class.mjs +0 -2
- package/esm2022/src/app/shared/services.mjs +0 -62
- package/esm2022/src/app/shared/shared-routing.module.mjs +0 -72
- package/esm2022/src/app/shared/shared.module.mjs +0 -234
- package/esm2022/src/app/shared/shared.testing.module.mjs +0 -100
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +0 -279
- package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +0 -42
- package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +0 -27
- package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +0 -25
- package/esm2022/src/app/shared/storage/storage.service.mjs +0 -134
- package/esm2022/src/app/shared/storage/storage.utils.mjs +0 -13
- package/esm2022/src/app/shared/testing/maskito.test.mjs +0 -41
- package/esm2022/src/app/shared/testing/observable.test.mjs +0 -94
- package/esm2022/src/app/shared/testing/tests.page.mjs +0 -37
- package/esm2022/src/app/shared/toast/toast.testing.mjs +0 -52
- package/esm2022/src/app/shared/toast/toast.testing.module.mjs +0 -30
- package/esm2022/src/app/shared/toast/toasts.mjs +0 -144
- package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +0 -62
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +0 -263
- package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +0 -26
- package/esm2022/src/app/shared/types.mjs +0 -2
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -59
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +0 -30
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -106
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +0 -213
- package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +0 -26
- package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +0 -114
- package/esm2022/src/app/shared/validator/validators.mjs +0 -601
- package/esm2022/src/app/shared/version/versions.mjs +0 -81
- package/esm2022/src/app/social/job/job.module.mjs +0 -23
- package/esm2022/src/app/social/job/progression/job-progression.component.mjs +0 -35
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +0 -235
- package/esm2022/src/app/social/job/progression/job-progression.list.mjs +0 -47
- package/esm2022/src/app/social/job/progression/job-progression.model.mjs +0 -29
- package/esm2022/src/app/social/job/progression/job-progression.service.mjs +0 -91
- package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +0 -38
- package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +0 -34
- package/esm2022/src/app/social/job/testing/job.testing.module.mjs +0 -22
- package/esm2022/src/app/social/message/message.form.mjs +0 -140
- package/esm2022/src/app/social/message/message.modal.mjs +0 -110
- package/esm2022/src/app/social/message/message.model.mjs +0 -75
- package/esm2022/src/app/social/message/message.module.mjs +0 -22
- package/esm2022/src/app/social/message/message.service.mjs +0 -110
- package/esm2022/src/app/social/social.errors.mjs +0 -10
- package/esm2022/src/app/social/social.module.mjs +0 -22
- package/esm2022/src/app/social/social.testing.module.mjs +0 -40
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -127
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -260
- package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +0 -257
- package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -129
- package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +0 -22
- package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -128
- package/esm2022/src/app/social/user-event/user-event.model.mjs +0 -2
- package/esm2022/src/app/social/user-event/user-event.module.mjs +0 -23
- package/esm2022/src/app/social/user-event/user-event.service.mjs +0 -509
- package/esm2022/src/environments/environment.class.mjs +0 -57
- package/esm2022/src/environments/environment.loader.mjs +0 -77
- package/esm2022/src/environments/environment.mjs +0 -105
- package/esm2022/sumaris-net.ngx-components.mjs +0 -5
- package/index.d.ts +0 -5
- package/public_api.d.ts +0 -322
- package/src/app/admin/admin-routing.module.d.ts +0 -9
- package/src/app/admin/admin.module.d.ts +0 -10
- package/src/app/admin/services/filter/person.filter.d.ts +0 -21
- package/src/app/admin/services/person.service.d.ts +0 -49
- package/src/app/admin/services/validator/person.validator.d.ts +0 -23
- package/src/app/admin/users/users.d.ts +0 -45
- package/src/app/admin/users/users.module.d.ts +0 -14
- package/src/app/core/about/about.modal.d.ts +0 -32
- package/src/app/core/about/about.module.d.ts +0 -10
- package/src/app/core/account/account.module.d.ts +0 -16
- package/src/app/core/account/account.page.d.ts +0 -80
- package/src/app/core/account/new-token.modal.d.ts +0 -41
- package/src/app/core/account/password/change-password.form.d.ts +0 -19
- package/src/app/core/account/password/change-password.module.d.ts +0 -11
- package/src/app/core/account/password/change-password.page.d.ts +0 -36
- package/src/app/core/account/token.table.d.ts +0 -27
- package/src/app/core/auth/auth.form.d.ts +0 -38
- package/src/app/core/auth/auth.modal.d.ts +0 -24
- package/src/app/core/auth/auth.module.d.ts +0 -13
- package/src/app/core/auth/reset-password.modal.d.ts +0 -26
- package/src/app/core/core.module.d.ts +0 -28
- package/src/app/core/core.testing.module.d.ts +0 -15
- package/src/app/core/form/array/form-array.d.ts +0 -136
- package/src/app/core/form/array/testing/form-array-test.module.d.ts +0 -12
- package/src/app/core/form/array/testing/form-array.test.d.ts +0 -26
- package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +0 -37
- package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +0 -9
- package/src/app/core/form/entity/editor.class.d.ts +0 -83
- package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -126
- package/src/app/core/form/entity/entity-editor.class.d.ts +0 -204
- package/src/app/core/form/entity/entity-metadata.component.d.ts +0 -13
- package/src/app/core/form/entity/entity.module.d.ts +0 -10
- package/src/app/core/form/entity/tab-editor.class.d.ts +0 -70
- package/src/app/core/form/form-container.class.d.ts +0 -126
- package/src/app/core/form/form.class.d.ts +0 -144
- package/src/app/core/form/form.module.d.ts +0 -14
- package/src/app/core/form/form.utils.d.ts +0 -251
- package/src/app/core/form/list/list.form.d.ts +0 -81
- package/src/app/core/form/list/list.module.d.ts +0 -9
- package/src/app/core/form/properties/properties.form.d.ts +0 -66
- package/src/app/core/form/properties/properties.module.d.ts +0 -11
- package/src/app/core/form/properties/properties.table.d.ts +0 -78
- package/src/app/core/form/properties/properties.utils.d.ts +0 -27
- package/src/app/core/form/properties/property.validator.d.ts +0 -19
- package/src/app/core/form/properties/testing/properties-form.test.d.ts +0 -19
- package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +0 -12
- package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +0 -16
- package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +0 -11
- package/src/app/core/form/text-popover/text-popover.component.d.ts +0 -71
- package/src/app/core/form/text-popover/text-popover.module.d.ts +0 -9
- package/src/app/core/form/username/username.form.d.ts +0 -19
- package/src/app/core/form/username/username.module.d.ts +0 -9
- package/src/app/core/graphql/graphql.module.d.ts +0 -7
- package/src/app/core/graphql/graphql.service.d.ts +0 -147
- package/src/app/core/graphql/graphql.utils.d.ts +0 -42
- package/src/app/core/home/home.d.ts +0 -94
- package/src/app/core/home/home.module.d.ts +0 -13
- package/src/app/core/icon/icon.component.d.ts +0 -13
- package/src/app/core/icon/icon.module.d.ts +0 -9
- package/src/app/core/install/install-upgrade-card.component.d.ts +0 -64
- package/src/app/core/install/install-upgrade-card.module.d.ts +0 -9
- package/src/app/core/menu/menu.component.d.ts +0 -69
- package/src/app/core/menu/menu.model.d.ts +0 -144
- package/src/app/core/menu/menu.module.d.ts +0 -12
- package/src/app/core/menu/menu.service.d.ts +0 -94
- package/src/app/core/menu/sub-menu-tab.directive.d.ts +0 -29
- package/src/app/core/menu/testing/menu-other.testing.d.ts +0 -15
- package/src/app/core/menu/testing/menu.testing.d.ts +0 -51
- package/src/app/core/menu/testing/menu.testing.module.d.ts +0 -12
- package/src/app/core/offline/update-offline-mode-card.component.d.ts +0 -11
- package/src/app/core/offline/update-offline-mode-card.module.d.ts +0 -9
- package/src/app/core/peer/select-peer.modal.d.ts +0 -60
- package/src/app/core/peer/select-peer.module.d.ts +0 -10
- package/src/app/core/register/register-confirm.page.d.ts +0 -24
- package/src/app/core/register/register.form.d.ts +0 -49
- package/src/app/core/register/register.modal.d.ts +0 -14
- package/src/app/core/register/register.module.d.ts +0 -12
- package/src/app/core/services/account.service.d.ts +0 -205
- package/src/app/core/services/auth-guard.service.d.ts +0 -17
- package/src/app/core/services/base-entity-service.class.d.ts +0 -123
- package/src/app/core/services/base-graphql-service.class.d.ts +0 -77
- package/src/app/core/services/base58.d.ts +0 -7
- package/src/app/core/services/config/core.config.d.ts +0 -41
- package/src/app/core/services/config.service.d.ts +0 -63
- package/src/app/core/services/crypto.service.d.ts +0 -44
- package/src/app/core/services/errors.d.ts +0 -63
- package/src/app/core/services/local-settings.service.d.ts +0 -95
- package/src/app/core/services/model/account.model.d.ts +0 -41
- package/src/app/core/services/model/config.model.d.ts +0 -36
- package/src/app/core/services/model/department.model.d.ts +0 -11
- package/src/app/core/services/model/entity.decorators.d.ts +0 -17
- package/src/app/core/services/model/entity.model.d.ts +0 -87
- package/src/app/core/services/model/filter.model.d.ts +0 -37
- package/src/app/core/services/model/history.model.d.ts +0 -20
- package/src/app/core/services/model/model.enum.d.ts +0 -7
- package/src/app/core/services/model/peer.model.d.ts +0 -30
- package/src/app/core/services/model/person.model.d.ts +0 -37
- package/src/app/core/services/model/referential.model.d.ts +0 -83
- package/src/app/core/services/model/settings.model.d.ts +0 -28
- package/src/app/core/services/model/token.model.d.ts +0 -22
- package/src/app/core/services/model/tree-item-entity.model.d.ts +0 -53
- package/src/app/core/services/network.service.d.ts +0 -151
- package/src/app/core/services/network.types.d.ts +0 -5
- package/src/app/core/services/network.utils.d.ts +0 -31
- package/src/app/core/services/pipes/account.pipes.d.ts +0 -15
- package/src/app/core/services/pipes/department-to-string.pipe.d.ts +0 -9
- package/src/app/core/services/pipes/person-to-string.pipe.d.ts +0 -11
- package/src/app/core/services/pipes/pipes.module.d.ts +0 -11
- package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +0 -13
- package/src/app/core/services/pipes/usage-mode.pipes.d.ts +0 -15
- package/src/app/core/services/platform.service.d.ts +0 -100
- package/src/app/core/services/storage/entities-storage.service.d.ts +0 -108
- package/src/app/core/services/storage/entity-store.class.d.ts +0 -113
- package/src/app/core/services/testing/referential-filter.model.d.ts +0 -9
- package/src/app/core/services/testing/referential.validator.d.ts +0 -22
- package/src/app/core/services/validator/account.validator.d.ts +0 -24
- package/src/app/core/services/validator/base.validator.class.d.ts +0 -21
- package/src/app/core/services/validator/local-settings.validator.d.ts +0 -22
- package/src/app/core/services/validator/user-settings.validator.d.ts +0 -10
- package/src/app/core/services/validator/user-token.validator.d.ts +0 -13
- package/src/app/core/settings/settings.module.d.ts +0 -11
- package/src/app/core/settings/settings.page.d.ts +0 -81
- package/src/app/core/table/async-table.class.d.ts +0 -389
- package/src/app/core/table/column/actions-column.component.d.ts +0 -59
- package/src/app/core/table/column/nav-actions-column.component.d.ts +0 -46
- package/src/app/core/table/column/row-field.component.d.ts +0 -40
- package/src/app/core/table/entities-async-table-datasource.class.d.ts +0 -81
- package/src/app/core/table/entities-table-datasource.class.d.ts +0 -95
- package/src/app/core/table/memory-table.class.d.ts +0 -25
- package/src/app/core/table/table-select-columns.component.d.ts +0 -22
- package/src/app/core/table/table.class.d.ts +0 -394
- package/src/app/core/table/table.model.d.ts +0 -26
- package/src/app/core/table/table.module.d.ts +0 -14
- package/src/app/core/table/table.pipes.d.ts +0 -28
- package/src/app/core/table/table.utils.d.ts +0 -11
- package/src/app/core/table/testing/table-validator.service.d.ts +0 -17
- package/src/app/core/table/testing/table.testing.d.ts +0 -54
- package/src/app/core/table/testing/table.testing.module.d.ts +0 -14
- package/src/app/core/table/testing/table2-validator.service.d.ts +0 -15
- package/src/app/core/table/testing/table2.testing.d.ts +0 -48
- package/src/app/shared/alerts.d.ts +0 -55
- package/src/app/shared/audio/audio.d.ts +0 -44
- package/src/app/shared/audio/audio.testing.d.ts +0 -13
- package/src/app/shared/audio/audio.testing.module.d.ts +0 -11
- package/src/app/shared/capacitor/keyboard.d.ts +0 -16
- package/src/app/shared/capacitor/plugins.d.ts +0 -7
- package/src/app/shared/constants.d.ts +0 -13
- package/src/app/shared/dates.d.ts +0 -48
- package/src/app/shared/debug/debug-service.class.d.ts +0 -5
- package/src/app/shared/debug/debug.component.d.ts +0 -13
- package/src/app/shared/debug/debug.module.d.ts +0 -12
- package/src/app/shared/directives/autofocus.directive.d.ts +0 -18
- package/src/app/shared/directives/autotitle.directive.d.ts +0 -10
- package/src/app/shared/directives/directives.module.d.ts +0 -12
- package/src/app/shared/directives/drag-and-drop.directive.d.ts +0 -17
- package/src/app/shared/directives/ng-var.directive.d.ts +0 -12
- package/src/app/shared/directives/resizable/resizable.component.d.ts +0 -21
- package/src/app/shared/directives/resizable/resizable.directive.d.ts +0 -12
- package/src/app/shared/directives/resizable/resizable.module.d.ts +0 -8
- package/src/app/shared/events.d.ts +0 -28
- package/src/app/shared/file/csv.utils.d.ts +0 -24
- package/src/app/shared/file/file.service.d.ts +0 -23
- package/src/app/shared/file/file.utils.d.ts +0 -20
- package/src/app/shared/file/images.utils.d.ts +0 -36
- package/src/app/shared/file/json.utils.d.ts +0 -19
- package/src/app/shared/file/uri.utils.d.ts +0 -8
- package/src/app/shared/focusable.d.ts +0 -4
- package/src/app/shared/form/field.component.d.ts +0 -74
- package/src/app/shared/form/field.model.d.ts +0 -39
- package/src/app/shared/form/loading-spinner.d.ts +0 -8
- package/src/app/shared/forms.d.ts +0 -103
- package/src/app/shared/functions.d.ts +0 -152
- package/src/app/shared/geolocation/geolocation.utils.d.ts +0 -19
- package/src/app/shared/gesture/gesture-config.d.ts +0 -15
- package/src/app/shared/gesture/hammer.utils.d.ts +0 -16
- package/src/app/shared/graph/colors.utils.d.ts +0 -17
- package/src/app/shared/graph/graph-colors.d.ts +0 -63
- package/src/app/shared/guard/component-dirty.guard.d.ts +0 -14
- package/src/app/shared/help/help.modal.d.ts +0 -33
- package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +0 -8
- package/src/app/shared/hotkeys/hotkeys.service.d.ts +0 -42
- package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +0 -11
- package/src/app/shared/http/http.utils.d.ts +0 -28
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +0 -98
- package/src/app/shared/image/gallery/image-gallery.module.d.ts +0 -15
- package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +0 -12
- package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +0 -33
- package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +0 -16
- package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +0 -13
- package/src/app/shared/image/image.model.d.ts +0 -5
- package/src/app/shared/image/image.module.d.ts +0 -8
- package/src/app/shared/image/image.service.d.ts +0 -32
- package/src/app/shared/inputs.d.ts +0 -34
- package/src/app/shared/interceptors/progess.interceptor.d.ts +0 -8
- package/src/app/shared/logging/log-level.model.d.ts +0 -38
- package/src/app/shared/logging/logger.model.d.ts +0 -68
- package/src/app/shared/logging/logging-service.class.d.ts +0 -39
- package/src/app/shared/logging/logging-service.config.d.ts +0 -25
- package/src/app/shared/logging/logging-service.module.d.ts +0 -9
- package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +0 -55
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +0 -180
- package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +0 -22
- package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +0 -5
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +0 -46
- package/src/app/shared/material/badge/badge.directive.d.ts +0 -43
- package/src/app/shared/material/badge/badge.module.d.ts +0 -10
- package/src/app/shared/material/badge/badge.test.d.ts +0 -21
- package/src/app/shared/material/boolean/boolean.module.d.ts +0 -21
- package/src/app/shared/material/boolean/material.boolean.d.ts +0 -93
- package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +0 -22
- package/src/app/shared/material/chips/chips.module.d.ts +0 -22
- package/src/app/shared/material/chips/material.chips.d.ts +0 -150
- package/src/app/shared/material/chips/testing/chips.test.d.ts +0 -32
- package/src/app/shared/material/datetime/datetime.module.d.ts +0 -24
- package/src/app/shared/material/datetime/material.date.d.ts +0 -90
- package/src/app/shared/material/datetime/material.dateshort.d.ts +0 -89
- package/src/app/shared/material/datetime/material.datetime.d.ts +0 -121
- package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +0 -37
- package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +0 -32
- package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +0 -31
- package/src/app/shared/material/duration/duration.module.d.ts +0 -19
- package/src/app/shared/material/duration/duration.utils.d.ts +0 -3
- package/src/app/shared/material/duration/material.duration.d.ts +0 -58
- package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +0 -22
- package/src/app/shared/material/latlong/latlong.utils.d.ts +0 -21
- package/src/app/shared/material/latlong/material.latlong.d.ts +0 -70
- package/src/app/shared/material/latlong/material.latlong.module.d.ts +0 -20
- package/src/app/shared/material/latlong/testing/latlong.test.d.ts +0 -27
- package/src/app/shared/material/material.animations.d.ts +0 -6
- package/src/app/shared/material/material.config.d.ts +0 -3
- package/src/app/shared/material/material.module.d.ts +0 -45
- package/src/app/shared/material/material.testing.module.d.ts +0 -31
- package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -12
- package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +0 -10
- package/src/app/shared/material/swipe/material.swipe.d.ts +0 -90
- package/src/app/shared/material/swipe/swipe.module.d.ts +0 -16
- package/src/app/shared/material/swipe/testing/swipe.test.d.ts +0 -22
- package/src/app/shared/material/testing/common.test.d.ts +0 -25
- package/src/app/shared/material/text/testing/text-form.testing.d.ts +0 -19
- package/src/app/shared/material/text/text-form.component.d.ts +0 -66
- package/src/app/shared/material/text/text-form.module.d.ts +0 -16
- package/src/app/shared/modules.d.ts +0 -9
- package/src/app/shared/named-filter/named-filter-selector.component.d.ts +0 -60
- package/src/app/shared/named-filter/named-filter.model.d.ts +0 -32
- package/src/app/shared/named-filter/named-filter.module.d.ts +0 -13
- package/src/app/shared/named-filter/named-filter.service.d.ts +0 -32
- package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +0 -34
- package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +0 -10
- package/src/app/shared/observables.d.ts +0 -30
- package/src/app/shared/pipes/arrays.pipe.d.ts +0 -59
- package/src/app/shared/pipes/badge.pipes.d.ts +0 -7
- package/src/app/shared/pipes/colors.pipe.d.ts +0 -9
- package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +0 -23
- package/src/app/shared/pipes/date-format.pipe.d.ts +0 -35
- package/src/app/shared/pipes/date-from-now.pipe.d.ts +0 -12
- package/src/app/shared/pipes/duration.pipe.d.ts +0 -13
- package/src/app/shared/pipes/file-size.pipe.d.ts +0 -30
- package/src/app/shared/pipes/form.pipes.d.ts +0 -69
- package/src/app/shared/pipes/highlight.pipe.d.ts +0 -11
- package/src/app/shared/pipes/html.pipes.d.ts +0 -15
- package/src/app/shared/pipes/latlong-format.pipe.d.ts +0 -20
- package/src/app/shared/pipes/maps.pipe.d.ts +0 -22
- package/src/app/shared/pipes/maskito.pipe.d.ts +0 -14
- package/src/app/shared/pipes/math.pipes.d.ts +0 -20
- package/src/app/shared/pipes/ng-init.pipe.d.ts +0 -8
- package/src/app/shared/pipes/number-format.pipe.d.ts +0 -10
- package/src/app/shared/pipes/pipes.module.d.ts +0 -31
- package/src/app/shared/pipes/property.pipes.d.ts +0 -47
- package/src/app/shared/pipes/selection.pipes.d.ts +0 -62
- package/src/app/shared/pipes/string.pipes.d.ts +0 -53
- package/src/app/shared/pipes/translate-context.pipe.d.ts +0 -17
- package/src/app/shared/pipes/types.pipes.d.ts +0 -30
- package/src/app/shared/platforms.d.ts +0 -8
- package/src/app/shared/rx-state.module.d.ts +0 -10
- package/src/app/shared/services/entity-service.class.d.ts +0 -71
- package/src/app/shared/services/job.utils.d.ts +0 -20
- package/src/app/shared/services/memory-entity-service.class.d.ts +0 -78
- package/src/app/shared/services/progress-bar.service.d.ts +0 -20
- package/src/app/shared/services/startable-observable-service.class.d.ts +0 -36
- package/src/app/shared/services/startable-service.class.d.ts +0 -37
- package/src/app/shared/services/translate-context.service.d.ts +0 -29
- package/src/app/shared/services/validator-service.class.d.ts +0 -11
- package/src/app/shared/services.d.ts +0 -10
- package/src/app/shared/shared-routing.module.d.ts +0 -23
- package/src/app/shared/shared.module.d.ts +0 -34
- package/src/app/shared/shared.testing.module.d.ts +0 -19
- package/src/app/shared/storage/storage-explorer.component.d.ts +0 -59
- package/src/app/shared/storage/storage-explorer.module.d.ts +0 -13
- package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +0 -9
- package/src/app/shared/storage/storage-explorer.testing.module.d.ts +0 -10
- package/src/app/shared/storage/storage.service.d.ts +0 -22
- package/src/app/shared/storage/storage.utils.d.ts +0 -19
- package/src/app/shared/testing/maskito.test.d.ts +0 -10
- package/src/app/shared/testing/observable.test.d.ts +0 -25
- package/src/app/shared/testing/tests.page.d.ts +0 -20
- package/src/app/shared/toast/toast.testing.d.ts +0 -15
- package/src/app/shared/toast/toast.testing.module.d.ts +0 -11
- package/src/app/shared/toast/toasts.d.ts +0 -17
- package/src/app/shared/toolbar/modal-toolbar.d.ts +0 -21
- package/src/app/shared/toolbar/toolbar.d.ts +0 -68
- package/src/app/shared/toolbar/toolbar.module.d.ts +0 -16
- package/src/app/shared/types.d.ts +0 -31
- package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +0 -21
- package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +0 -11
- package/src/app/shared/upload-file/upload-file-popover.component.d.ts +0 -39
- package/src/app/shared/upload-file/upload-file.component.d.ts +0 -49
- package/src/app/shared/upload-file/upload-file.model.d.ts +0 -30
- package/src/app/shared/validator/form-error-adapter.class.d.ts +0 -33
- package/src/app/shared/validator/validators.d.ts +0 -130
- package/src/app/shared/version/versions.d.ts +0 -26
- package/src/app/social/job/job.module.d.ts +0 -12
- package/src/app/social/job/progression/job-progression.component.d.ts +0 -23
- package/src/app/social/job/progression/job-progression.icon.d.ts +0 -62
- package/src/app/social/job/progression/job-progression.list.d.ts +0 -19
- package/src/app/social/job/progression/job-progression.model.d.ts +0 -10
- package/src/app/social/job/progression/job-progression.service.d.ts +0 -33
- package/src/app/social/job/testing/job-progression.testing.d.ts +0 -13
- package/src/app/social/job/testing/job-progression.testing.service.d.ts +0 -9
- package/src/app/social/job/testing/job.testing.module.d.ts +0 -11
- package/src/app/social/message/message.form.d.ts +0 -36
- package/src/app/social/message/message.modal.d.ts +0 -43
- package/src/app/social/message/message.model.d.ts +0 -33
- package/src/app/social/message/message.module.d.ts +0 -12
- package/src/app/social/message/message.service.d.ts +0 -32
- package/src/app/social/social.errors.d.ts +0 -9
- package/src/app/social/social.module.d.ts +0 -20
- package/src/app/social/social.testing.module.d.ts +0 -13
- package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +0 -32
- package/src/app/social/user-event/notification/user-event-notification.list.d.ts +0 -71
- package/src/app/social/user-event/testing/user-event.testing.d.ts +0 -35
- package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -42
- package/src/app/social/user-event/testing/user-event.testing.module.d.ts +0 -11
- package/src/app/social/user-event/testing/user-event.testing.service.d.ts +0 -42
- package/src/app/social/user-event/user-event.model.d.ts +0 -44
- package/src/app/social/user-event/user-event.module.d.ts +0 -13
- package/src/app/social/user-event/user-event.service.d.ts +0 -129
- package/src/environments/environment.class.d.ts +0 -68
- package/src/environments/environment.d.ts +0 -2
- package/src/environments/environment.loader.d.ts +0 -24
- package/src/theme/_globals.scss +0 -5
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, Injectable, InjectionToken } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export const APP_PROGRESS_BAR_SERVICE = new InjectionToken('ProgressBarService');
|
|
4
|
-
export class ProgressBarService {
|
|
5
|
-
_requestsRunning = 0;
|
|
6
|
-
onProgressChanged = new EventEmitter();
|
|
7
|
-
list() {
|
|
8
|
-
return this._requestsRunning;
|
|
9
|
-
}
|
|
10
|
-
increase() {
|
|
11
|
-
this._requestsRunning++;
|
|
12
|
-
if (this._requestsRunning === 1) {
|
|
13
|
-
this.onProgressChanged.emit('query');
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
decrease() {
|
|
17
|
-
if (this._requestsRunning > 0) {
|
|
18
|
-
this._requestsRunning--;
|
|
19
|
-
}
|
|
20
|
-
if (this._requestsRunning === 0) {
|
|
21
|
-
this.onProgressChanged.emit(null);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProgressBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProgressBarService, providedIn: 'root' });
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProgressBarService, decorators: [{
|
|
28
|
-
type: Injectable,
|
|
29
|
-
args: [{ providedIn: 'root' }]
|
|
30
|
-
}] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3pFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFzQixvQkFBb0IsQ0FBQyxDQUFDO0FBWXRHLE1BQU0sT0FBTyxrQkFBa0I7SUFDckIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRTdCLGlCQUFpQixHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO0lBRXhELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7dUdBdkJVLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBREwsTUFBTTs7MkZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9ncmVzc0Jhck1vZGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuXG5leHBvcnQgY29uc3QgQVBQX1BST0dSRVNTX0JBUl9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPElQcm9ncmVzc0JhclNlcnZpY2U+KCdQcm9ncmVzc0JhclNlcnZpY2UnKTtcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBQcm9ncmVzc01vZGUgPSBQcm9ncmVzc0Jhck1vZGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVByb2dyZXNzQmFyU2VydmljZSB7XG4gIG9uUHJvZ3Jlc3NDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8UHJvZ3Jlc3NCYXJNb2RlPjtcbiAgbGlzdCgpOiBudW1iZXI7XG4gIGluY3JlYXNlKCk7XG4gIGRlY3JlYXNlKCk7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NCYXJTZXJ2aWNlIGltcGxlbWVudHMgSVByb2dyZXNzQmFyU2VydmljZSB7XG4gIHByaXZhdGUgX3JlcXVlc3RzUnVubmluZyA9IDA7XG5cbiAgb25Qcm9ncmVzc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFByb2dyZXNzQmFyTW9kZT4oKTtcblxuICBsaXN0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3RzUnVubmluZztcbiAgfVxuXG4gIGluY3JlYXNlKCk6IHZvaWQge1xuICAgIHRoaXMuX3JlcXVlc3RzUnVubmluZysrO1xuICAgIGlmICh0aGlzLl9yZXF1ZXN0c1J1bm5pbmcgPT09IDEpIHtcbiAgICAgIHRoaXMub25Qcm9ncmVzc0NoYW5nZWQuZW1pdCgncXVlcnknKTtcbiAgICB9XG4gIH1cblxuICBkZWNyZWFzZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmVxdWVzdHNSdW5uaW5nID4gMCkge1xuICAgICAgdGhpcy5fcmVxdWVzdHNSdW5uaW5nLS07XG4gICAgfVxuICAgIGlmICh0aGlzLl9yZXF1ZXN0c1J1bm5pbmcgPT09IDApIHtcbiAgICAgIHRoaXMub25Qcm9ncmVzc0NoYW5nZWQuZW1pdChudWxsKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { Directive, Optional } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, firstValueFrom, Subject, Subscription } from 'rxjs';
|
|
3
|
-
import { filter, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Same as StartableService, but with a dataSubject instead of a simple 'data' property
|
|
7
|
-
*/
|
|
8
|
-
export class StartableObservableService {
|
|
9
|
-
dataSubject = new BehaviorSubject(null);
|
|
10
|
-
startSubject = new Subject();
|
|
11
|
-
stopSubject = new Subject();
|
|
12
|
-
_debug = false;
|
|
13
|
-
_startByReadyFunction = true; // should start when calling ready() ?
|
|
14
|
-
_started = false;
|
|
15
|
-
_startPromise = null;
|
|
16
|
-
_startPrerequisite = null;
|
|
17
|
-
_subscription = null;
|
|
18
|
-
constructor(prerequisiteService) {
|
|
19
|
-
this._startPrerequisite = prerequisiteService ? () => prerequisiteService.ready() : () => Promise.resolve();
|
|
20
|
-
}
|
|
21
|
-
start(opts) {
|
|
22
|
-
if (this._startPromise)
|
|
23
|
-
return this._startPromise;
|
|
24
|
-
if (this._started)
|
|
25
|
-
return Promise.resolve(this.dataSubject.value);
|
|
26
|
-
this._startPromise = this._startPrerequisite()
|
|
27
|
-
.then(() => this.ngOnStart(opts))
|
|
28
|
-
.then((data) => {
|
|
29
|
-
this._started = true;
|
|
30
|
-
this._startPromise = undefined;
|
|
31
|
-
// Should be done AFTER 'this._started = true', because of the 'filter' operator, inside ready() function
|
|
32
|
-
this.dataSubject.next(data);
|
|
33
|
-
this.startSubject.next(data);
|
|
34
|
-
return data;
|
|
35
|
-
})
|
|
36
|
-
.catch((err) => {
|
|
37
|
-
if (!this.stopped) {
|
|
38
|
-
console.error('Failed to start a service: ' + ((err && err.message) || err), err);
|
|
39
|
-
this._started = false;
|
|
40
|
-
this._startPromise = null;
|
|
41
|
-
}
|
|
42
|
-
return null;
|
|
43
|
-
});
|
|
44
|
-
return this._startPromise;
|
|
45
|
-
}
|
|
46
|
-
ready() {
|
|
47
|
-
if (this._started)
|
|
48
|
-
return Promise.resolve(this.dataSubject.value);
|
|
49
|
-
if (this._startPromise)
|
|
50
|
-
return this._startPromise;
|
|
51
|
-
if (this._startByReadyFunction)
|
|
52
|
-
return this.start();
|
|
53
|
-
return firstValueFrom(this.dataSubject.pipe(takeUntil(this.stopSubject),
|
|
54
|
-
// Wait start() to be called, to exclude the initial 'null' value
|
|
55
|
-
filter((_) => this._started)));
|
|
56
|
-
}
|
|
57
|
-
async stop() {
|
|
58
|
-
try {
|
|
59
|
-
this.unsubscribe();
|
|
60
|
-
await this.ngOnStop();
|
|
61
|
-
}
|
|
62
|
-
catch (err) {
|
|
63
|
-
console.error('Failed to stop a service: ' + ((err && err.message) || err), err);
|
|
64
|
-
}
|
|
65
|
-
finally {
|
|
66
|
-
this._started = false;
|
|
67
|
-
this._startPromise = undefined;
|
|
68
|
-
this.stopSubject.next(); // Stop all running observables
|
|
69
|
-
this.dataSubject.next(null); // Reset data
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
async restart(opts) {
|
|
73
|
-
if (this._startPromise)
|
|
74
|
-
await this._startPromise; // Wait end of previous loading
|
|
75
|
-
if (this._started)
|
|
76
|
-
await this.stop(); // Then stop if started
|
|
77
|
-
return this.start(opts); // Then start again
|
|
78
|
-
}
|
|
79
|
-
get started() {
|
|
80
|
-
return this._started;
|
|
81
|
-
}
|
|
82
|
-
get starting() {
|
|
83
|
-
return !!this._startPromise;
|
|
84
|
-
}
|
|
85
|
-
get stopped() {
|
|
86
|
-
return !this._started && !this._startPromise;
|
|
87
|
-
}
|
|
88
|
-
get data() {
|
|
89
|
-
return this.dataSubject.value;
|
|
90
|
-
}
|
|
91
|
-
set data(value) {
|
|
92
|
-
if (this.dataSubject.value !== value) {
|
|
93
|
-
this.dataSubject.next(value);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
registerSubscription(sub) {
|
|
97
|
-
this._subscription = this._subscription || new Subscription();
|
|
98
|
-
this._subscription.add(sub);
|
|
99
|
-
}
|
|
100
|
-
unregisterSubscription(sub) {
|
|
101
|
-
this._subscription?.remove(sub);
|
|
102
|
-
}
|
|
103
|
-
unsubscribe() {
|
|
104
|
-
this._subscription?.unsubscribe();
|
|
105
|
-
this._subscription = null;
|
|
106
|
-
}
|
|
107
|
-
ngOnStop() {
|
|
108
|
-
// Can be overwritten by subclasses
|
|
109
|
-
}
|
|
110
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartableObservableService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
111
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: StartableObservableService, ngImport: i0 });
|
|
112
|
-
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartableObservableService, decorators: [{
|
|
114
|
-
type: Directive
|
|
115
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
116
|
-
type: Optional
|
|
117
|
-
}] }] });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRhYmxlLW9ic2VydmFibGUtc2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3N0YXJ0YWJsZS1vYnNlcnZhYmxlLXNlcnZpY2UuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUduRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsMEJBQTBCO0lBQ3JDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBSSxJQUFJLENBQUMsQ0FBQztJQUMzQyxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUssQ0FBQztJQUNoQyxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVqQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YscUJBQXFCLEdBQUcsSUFBSSxDQUFDLENBQUMsc0NBQXNDO0lBRXRFLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFlLElBQUksQ0FBQztJQUNqQyxrQkFBa0IsR0FBdUIsSUFBSSxDQUFDO0lBQzlDLGFBQWEsR0FBaUIsSUFBSSxDQUFDO0lBRTNDLFlBQWtDLG1CQUFtRDtRQUNuRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDOUcsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFRO1FBQ1osSUFBSSxJQUFJ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QUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRVMsUUFBUTtRQUNoQixtQ0FBbUM7SUFDckMsQ0FBQzt1R0FwSG1CLDBCQUEwQjsyRkFBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUQvQyxTQUFTOzswQkFjZSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElTdGFydGFibGVTZXJ2aWNlIH0gZnJvbSAnLi9zdGFydGFibGUtc2VydmljZS5jbGFzcyc7XG5cbi8qKlxuICogU2FtZSBhcyBTdGFydGFibGVTZXJ2aWNlLCBidXQgd2l0aCBhIGRhdGFTdWJqZWN0IGluc3RlYWQgb2YgYSBzaW1wbGUgJ2RhdGEnIHByb3BlcnR5XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YXJ0YWJsZU9ic2VydmFibGVTZXJ2aWNlPFQgPSBhbnksIE8gPSBhbnk+IGltcGxlbWVudHMgSVN0YXJ0YWJsZVNlcnZpY2U8VD4ge1xuICByZWFkb25seSBkYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obnVsbCk7XG4gIHJlYWRvbmx5IHN0YXJ0U3ViamVjdCA9IG5ldyBTdWJqZWN0PFQ+KCk7XG4gIHJlYWRvbmx5IHN0b3BTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgX2RlYnVnID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfc3RhcnRCeVJlYWR5RnVuY3Rpb24gPSB0cnVlOyAvLyBzaG91bGQgc3RhcnQgd2hlbiBjYWxsaW5nIHJlYWR5KCkgP1xuXG4gIHByaXZhdGUgX3N0YXJ0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc3RhcnRQcm9taXNlOiBQcm9taXNlPFQ+ID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3RhcnRQcmVyZXF1aXNpdGU6ICgpID0+IFByb21pc2U8YW55PiA9IG51bGw7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJlcmVxdWlzaXRlU2VydmljZT86IHsgcmVhZHk6ICgpID0+IFByb21pc2U8YW55PiB9KSB7XG4gICAgdGhpcy5fc3RhcnRQcmVyZXF1aXNpdGUgPSBwcmVyZXF1aXNpdGVTZXJ2aWNlID8gKCkgPT4gcHJlcmVxdWlzaXRlU2VydmljZS5yZWFkeSgpIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBzdGFydChvcHRzPzogTyk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLl9zdGFydFByb21pc2UpIHJldHVybiB0aGlzLl9zdGFydFByb21pc2U7XG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQpIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5kYXRhU3ViamVjdC52YWx1ZSk7XG5cbiAgICB0aGlzLl9zdGFydFByb21pc2UgPSB0aGlzLl9zdGFydFByZXJlcXVpc2l0ZSgpXG4gICAgICAudGhlbigoKSA9PiB0aGlzLm5nT25TdGFydChvcHRzKSlcbiAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuX3N0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9zdGFydFByb21pc2UgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgLy8gU2hvdWxkIGJlIGRvbmUgQUZURVIgJ3RoaXMuX3N0YXJ0ZWQgPSB0cnVlJywgYmVjYXVzZSBvZiB0aGUgJ2ZpbHRlcicgb3BlcmF0b3IsIGluc2lkZSByZWFkeSgpIGZ1bmN0aW9uXG4gICAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5zdGFydFN1YmplY3QubmV4dChkYXRhKTtcblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc3RvcHBlZCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBhIHNlcnZpY2U6ICcgKyAoKGVyciAmJiBlcnIubWVzc2FnZSkgfHwgZXJyKSwgZXJyKTtcbiAgICAgICAgICB0aGlzLl9zdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICByZWFkeSgpOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRlZCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlKTtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSByZXR1cm4gdGhpcy5fc3RhcnRQcm9taXNlO1xuICAgIGlmICh0aGlzLl9zdGFydEJ5UmVhZHlGdW5jdGlvbikgcmV0dXJuIHRoaXMuc3RhcnQoKTtcblxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuZGF0YVN1YmplY3QucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuc3RvcFN1YmplY3QpLFxuICAgICAgICAvLyBXYWl0IHN0YXJ0KCkgdG8gYmUgY2FsbGVkLCB0byBleGNsdWRlIHRoZSBpbml0aWFsICdudWxsJyB2YWx1ZVxuICAgICAgICBmaWx0ZXIoKF8pID0+IHRoaXMuX3N0YXJ0ZWQpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgIGF3YWl0IHRoaXMubmdPblN0b3AoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdG9wIGEgc2VydmljZTogJyArICgoZXJyICYmIGVyci5tZXNzYWdlKSB8fCBlcnIpLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9zdGFydGVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9zdGFydFByb21pc2UgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3BTdWJqZWN0Lm5leHQoKTsgLy8gU3RvcCBhbGwgcnVubmluZyBvYnNlcnZhYmxlc1xuICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KG51bGwpOyAvLyBSZXNldCBkYXRhXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVzdGFydChvcHRzPzogTyk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLl9zdGFydFByb21pc2UpIGF3YWl0IHRoaXMuX3N0YXJ0UHJvbWlzZTsgLy8gV2FpdCBlbmQgb2YgcHJldmlvdXMgbG9hZGluZ1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSBhd2FpdCB0aGlzLnN0b3AoKTsgLy8gVGhlbiBzdG9wIGlmIHN0YXJ0ZWRcbiAgICByZXR1cm4gdGhpcy5zdGFydChvcHRzKTsgLy8gVGhlbiBzdGFydCBhZ2FpblxuICB9XG5cbiAgZ2V0IHN0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQ7XG4gIH1cblxuICBnZXQgc3RhcnRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fc3RhcnRQcm9taXNlO1xuICB9XG5cbiAgZ2V0IHN0b3BwZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9zdGFydGVkICYmICF0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGRhdGEoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QudmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0IGRhdGEodmFsdWU6IFQpIHtcbiAgICBpZiAodGhpcy5kYXRhU3ViamVjdC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyU3Vic2NyaXB0aW9uKHN1YjogU3Vic2NyaXB0aW9uKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fc3Vic2NyaXB0aW9uIHx8IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1Yik7XG4gIH1cblxuICBwcm90ZWN0ZWQgdW5yZWdpc3RlclN1YnNjcmlwdGlvbihzdWI6IFN1YnNjcmlwdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8ucmVtb3ZlKHN1Yik7XG4gIH1cblxuICBwcm90ZWN0ZWQgdW5zdWJzY3JpYmUoKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmdPblN0b3AoKTogUHJvbWlzZTx2b2lkPiB8IHZvaWQge1xuICAgIC8vIENhbiBiZSBvdmVyd3JpdHRlbiBieSBzdWJjbGFzc2VzXG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgbmdPblN0YXJ0KG9wdHM/OiBPKTogUHJvbWlzZTxUPjtcbn1cbiJdfQ==
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Directive, Optional } from '@angular/core';
|
|
2
|
-
import { Subject, Subscription } from 'rxjs';
|
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export function isStartableService(data) {
|
|
6
|
-
return typeof data?.['start'] === 'function' && typeof data?.['stop'] === 'function' && typeof data?.['ready'] === 'function';
|
|
7
|
-
}
|
|
8
|
-
export class StartableService {
|
|
9
|
-
startSubject = new Subject();
|
|
10
|
-
stopSubject = new Subject();
|
|
11
|
-
_debug = false;
|
|
12
|
-
_startByReadyFunction = true; // should start when calling ready() ?
|
|
13
|
-
_data = null;
|
|
14
|
-
_started = false;
|
|
15
|
-
_startPromise = null;
|
|
16
|
-
_startPrerequisite = null;
|
|
17
|
-
_subscription = null;
|
|
18
|
-
constructor(prerequisiteService) {
|
|
19
|
-
this._startPrerequisite = prerequisiteService ? () => prerequisiteService.ready() : () => Promise.resolve();
|
|
20
|
-
}
|
|
21
|
-
start(opts) {
|
|
22
|
-
if (this._startPromise)
|
|
23
|
-
return this._startPromise;
|
|
24
|
-
if (this._started)
|
|
25
|
-
return Promise.resolve(this._data);
|
|
26
|
-
this._startPromise = this._startPrerequisite()
|
|
27
|
-
.then(() => this.ngOnStart(opts))
|
|
28
|
-
.then((data) => {
|
|
29
|
-
this._data = data;
|
|
30
|
-
this._started = true;
|
|
31
|
-
this._startPromise = undefined;
|
|
32
|
-
this.startSubject.next(data);
|
|
33
|
-
return data;
|
|
34
|
-
})
|
|
35
|
-
.catch((err) => {
|
|
36
|
-
if (!this.stopped) {
|
|
37
|
-
console.error('Failed to start a service: ' + ((err && err.message) || err), err);
|
|
38
|
-
this._startPromise = null;
|
|
39
|
-
this._started = false;
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
|
-
});
|
|
43
|
-
return this._startPromise;
|
|
44
|
-
}
|
|
45
|
-
ready() {
|
|
46
|
-
if (this._started)
|
|
47
|
-
return Promise.resolve(this._data);
|
|
48
|
-
if (this._startPromise)
|
|
49
|
-
return this._startPromise;
|
|
50
|
-
if (this._startByReadyFunction)
|
|
51
|
-
return this.start();
|
|
52
|
-
return this.startSubject.pipe(takeUntil(this.stopSubject)).toPromise();
|
|
53
|
-
}
|
|
54
|
-
async stop() {
|
|
55
|
-
try {
|
|
56
|
-
this.unsubscribe();
|
|
57
|
-
await this.ngOnStop();
|
|
58
|
-
}
|
|
59
|
-
catch (err) {
|
|
60
|
-
console.error('Failed to stop a service: ' + ((err && err.message) || err), err);
|
|
61
|
-
}
|
|
62
|
-
finally {
|
|
63
|
-
this._data = null;
|
|
64
|
-
this._started = false;
|
|
65
|
-
this._startPromise = undefined;
|
|
66
|
-
this.stopSubject.next();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
async restart(opts) {
|
|
70
|
-
if (this._startPromise)
|
|
71
|
-
await this._startPromise; // Wait end of previous start, if running
|
|
72
|
-
if (this._started)
|
|
73
|
-
await this.stop(); // Then stop if started
|
|
74
|
-
return this.start(opts); // Then start again
|
|
75
|
-
}
|
|
76
|
-
get started() {
|
|
77
|
-
return this._started;
|
|
78
|
-
}
|
|
79
|
-
get starting() {
|
|
80
|
-
return !!this._startPromise;
|
|
81
|
-
}
|
|
82
|
-
get stopped() {
|
|
83
|
-
return !this._started && !this._startPromise;
|
|
84
|
-
}
|
|
85
|
-
registerSubscription(sub) {
|
|
86
|
-
this._subscription = this._subscription || new Subscription();
|
|
87
|
-
this._subscription.add(sub);
|
|
88
|
-
}
|
|
89
|
-
unregisterSubscription(sub) {
|
|
90
|
-
this._subscription?.remove(sub);
|
|
91
|
-
}
|
|
92
|
-
unsubscribe() {
|
|
93
|
-
this._subscription?.unsubscribe();
|
|
94
|
-
this._subscription = null;
|
|
95
|
-
}
|
|
96
|
-
ngOnStop() {
|
|
97
|
-
// Can be overwritten by subclasses
|
|
98
|
-
}
|
|
99
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartableService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
100
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: StartableService, ngImport: i0 });
|
|
101
|
-
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartableService, decorators: [{
|
|
103
|
-
type: Directive
|
|
104
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
105
|
-
type: Optional
|
|
106
|
-
}] }] });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUzNDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFTO0lBQzFDLE9BQU8sT0FBTyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLElBQUksT0FBTyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVLElBQUksT0FBTyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUM7QUFDaEksQ0FBQztBQUdELE1BQU0sT0FBZ0IsZ0JBQWdCO0lBQzNCLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBSyxDQUFDO0lBQ2hDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRWpDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixxQkFBcUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxzQ0FBc0M7SUFDcEUsS0FBSyxHQUFNLElBQUksQ0FBQztJQUVsQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLGFBQWEsR0FBZSxJQUFJLENBQUM7SUFDakMsa0JBQWtCLEdBQXVCLElBQUksQ0FBQztJQUM5QyxhQUFhLEdBQWlCLElBQUksQ0FBQztJQUUzQyxZQUFrQyxtQkFBbUQ7UUFDbkYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFL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QyxRQUFRO1lBQUUsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx1QkFBdUI7UUFDN0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsbUJBQW1CO0lBQzlDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMvQyxDQUFDO0lBRVMsb0JBQW9CLENBQUMsR0FBaUI7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVTLHNCQUFzQixDQUFDLEdBQWlCO1FBQ2hELElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVTLFFBQVE7UUFDaEIsbUNBQW1DO0lBQ3JDLENBQUM7dUdBcEdtQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFEckMsU0FBUzs7MEJBY2UsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTdGFydGFibGVTZXJ2aWNlPFQgPSBhbnk+IHtcbiAgc3RhcnRlZDogYm9vbGVhbjtcbiAgc3RhcnQoKTogUHJvbWlzZTxUPjtcbiAgc3RvcCgpOiBQcm9taXNlPHZvaWQ+O1xuICByZWFkeSgpOiBQcm9taXNlPFQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGFydGFibGVTZXJ2aWNlKGRhdGE6IGFueSk6IGRhdGEgaXMgSVN0YXJ0YWJsZVNlcnZpY2Uge1xuICByZXR1cm4gdHlwZW9mIGRhdGE/Llsnc3RhcnQnXSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGF0YT8uWydzdG9wJ10gPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRhdGE/LlsncmVhZHknXSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RhcnRhYmxlU2VydmljZTxUID0gYW55LCBPID0gYW55PiBpbXBsZW1lbnRzIElTdGFydGFibGVTZXJ2aWNlPFQ+IHtcbiAgcmVhZG9ubHkgc3RhcnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8VD4oKTtcbiAgcmVhZG9ubHkgc3RvcFN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCBfZGVidWcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9zdGFydEJ5UmVhZHlGdW5jdGlvbiA9IHRydWU7IC8vIHNob3VsZCBzdGFydCB3aGVuIGNhbGxpbmcgcmVhZHkoKSA/XG4gIHByb3RlY3RlZCBfZGF0YTogVCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfc3RhcnRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zdGFydFByb21pc2U6IFByb21pc2U8VD4gPSBudWxsO1xuICBwcml2YXRlIF9zdGFydFByZXJlcXVpc2l0ZTogKCkgPT4gUHJvbWlzZTxhbnk+ID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcmVyZXF1aXNpdGVTZXJ2aWNlPzogeyByZWFkeTogKCkgPT4gUHJvbWlzZTxhbnk+IH0pIHtcbiAgICB0aGlzLl9zdGFydFByZXJlcXVpc2l0ZSA9IHByZXJlcXVpc2l0ZVNlcnZpY2UgPyAoKSA9PiBwcmVyZXF1aXNpdGVTZXJ2aWNlLnJlYWR5KCkgOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHN0YXJ0KG9wdHM/OiBPKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0UHJvbWlzZSkgcmV0dXJuIHRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgICBpZiAodGhpcy5fc3RhcnRlZCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9kYXRhKTtcblxuICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHRoaXMuX3N0YXJ0UHJlcmVxdWlzaXRlKClcbiAgICAgIC50aGVuKCgpID0+IHRoaXMubmdPblN0YXJ0KG9wdHMpKVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7XG5cbiAgICAgICAgdGhpcy5fc3RhcnRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHVuZGVmaW5lZDtcblxuICAgICAgICB0aGlzLnN0YXJ0U3ViamVjdC5uZXh0KGRhdGEpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdG9wcGVkKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IGEgc2VydmljZTogJyArICgoZXJyICYmIGVyci5tZXNzYWdlKSB8fCBlcnIpLCBlcnIpO1xuICAgICAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IG51bGw7XG4gICAgICAgICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIHJlYWR5KCk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2RhdGEpO1xuICAgIGlmICh0aGlzLl9zdGFydFByb21pc2UpIHJldHVybiB0aGlzLl9zdGFydFByb21pc2U7XG4gICAgaWYgKHRoaXMuX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uKSByZXR1cm4gdGhpcy5zdGFydCgpO1xuXG4gICAgcmV0dXJuIHRoaXMuc3RhcnRTdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuc3RvcFN1YmplY3QpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgIGF3YWl0IHRoaXMubmdPblN0b3AoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdG9wIGEgc2VydmljZTogJyArICgoZXJyICYmIGVyci5tZXNzYWdlKSB8fCBlcnIpLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9kYXRhID0gbnVsbDtcbiAgICAgIHRoaXMuX3N0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcFN1YmplY3QubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlc3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSBhd2FpdCB0aGlzLl9zdGFydFByb21pc2U7IC8vIFdhaXQgZW5kIG9mIHByZXZpb3VzIHN0YXJ0LCBpZiBydW5uaW5nXG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQpIGF3YWl0IHRoaXMuc3RvcCgpOyAvLyBUaGVuIHN0b3AgaWYgc3RhcnRlZFxuICAgIHJldHVybiB0aGlzLnN0YXJ0KG9wdHMpOyAvLyBUaGVuIHN0YXJ0IGFnYWluXG4gIH1cblxuICBnZXQgc3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZDtcbiAgfVxuXG4gIGdldCBzdGFydGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICBnZXQgc3RvcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX3N0YXJ0ZWQgJiYgIXRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlclN1YnNjcmlwdGlvbihzdWI6IFN1YnNjcmlwdGlvbikge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX3N1YnNjcmlwdGlvbiB8fCBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVucmVnaXN0ZXJTdWJzY3JpcHRpb24oc3ViOiBTdWJzY3JpcHRpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnJlbW92ZShzdWIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVuc3Vic2NyaWJlKCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5nT25TdG9wKCk6IFByb21pc2U8dm9pZD4gfCB2b2lkIHtcbiAgICAvLyBDYW4gYmUgb3ZlcndyaXR0ZW4gYnkgc3ViY2xhc3Nlc1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG5nT25TdGFydChvcHRzPzogTyk6IFByb21pc2U8VD47XG59XG4iXX0=
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
|
-
import { of } from 'rxjs';
|
|
4
|
-
import { isNil, isNilOrBlank, isNotNilOrBlank } from '../functions';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@ngx-translate/core";
|
|
7
|
-
export class TranslateContextService {
|
|
8
|
-
translate;
|
|
9
|
-
constructor(translate) {
|
|
10
|
-
this.translate = translate;
|
|
11
|
-
}
|
|
12
|
-
get(key, context, interpolateParams) {
|
|
13
|
-
// No context: do a normal translate
|
|
14
|
-
if (!key || isNil(context))
|
|
15
|
-
return this.translate.get(key, interpolateParams);
|
|
16
|
-
if (Array.isArray(key)) {
|
|
17
|
-
if (!key.length)
|
|
18
|
-
return of();
|
|
19
|
-
// Observe the first key, then add other
|
|
20
|
-
return this.get(key[0]).pipe(map((translation) => key
|
|
21
|
-
.slice(1) // Skip 1, because we already have it
|
|
22
|
-
.reduce((map, k) => {
|
|
23
|
-
map[k] = this.instant(k, context);
|
|
24
|
-
return map;
|
|
25
|
-
},
|
|
26
|
-
// Init with the first value
|
|
27
|
-
{
|
|
28
|
-
[key[0]]: translation,
|
|
29
|
-
})));
|
|
30
|
-
}
|
|
31
|
-
// Compute a contextual i18n key, using the context as suffix
|
|
32
|
-
const contextualKeys = this.contextualKeys(key, context);
|
|
33
|
-
// Return the contextual translation, or default of not exists
|
|
34
|
-
return this.translate.get(contextualKeys, interpolateParams).pipe(map((translations) => this.findFirstValid(contextualKeys, translations)));
|
|
35
|
-
}
|
|
36
|
-
instant(key, context, interpolateParams) {
|
|
37
|
-
// No context: do a normal translate
|
|
38
|
-
if (!key || isNilOrBlank(context))
|
|
39
|
-
return this.translate.instant(key, interpolateParams);
|
|
40
|
-
if (Array.isArray(key)) {
|
|
41
|
-
return key.reduce((map, k) => {
|
|
42
|
-
map[k] = this.instant(k, context);
|
|
43
|
-
return map;
|
|
44
|
-
}, {});
|
|
45
|
-
}
|
|
46
|
-
// Compute a contextual i18n key, using the context as suffix
|
|
47
|
-
const contextualKeys = this.contextualKeys(key, context);
|
|
48
|
-
const translations = this.translate.instant(contextualKeys, interpolateParams);
|
|
49
|
-
return this.findFirstValid(contextualKeys, translations);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Compute contextual i18n keys, using the context as suffix.<br>
|
|
53
|
-
* Suffix can be simple name (like 'aaa' - will return ['<key>.aaa']) or complexe (like 'aaa.bbb' - will return ['<key>.aaa.bbb', '<key>.aaa']
|
|
54
|
-
*
|
|
55
|
-
* @param key
|
|
56
|
-
* @param context
|
|
57
|
-
* @private
|
|
58
|
-
*/
|
|
59
|
-
contextualKeys(key, context) {
|
|
60
|
-
return context
|
|
61
|
-
.split('.')
|
|
62
|
-
.filter(isNotNilOrBlank)
|
|
63
|
-
.reduce((res, item) => {
|
|
64
|
-
const inheritedContext = res.length > 0 ? res[res.length - 1] + '.' : '';
|
|
65
|
-
return res.concat(inheritedContext + item);
|
|
66
|
-
}, [])
|
|
67
|
-
.reverse() // Start with children, ends with parent key
|
|
68
|
-
.map((contextItem) => this.contextualKey(key, contextItem))
|
|
69
|
-
.concat(key);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Compute a contextual i18n key, using the context as suffix
|
|
73
|
-
*
|
|
74
|
-
* @param key
|
|
75
|
-
* @param context
|
|
76
|
-
* @private
|
|
77
|
-
*/
|
|
78
|
-
contextualKey(key, context) {
|
|
79
|
-
// Append a dot on context if missing
|
|
80
|
-
if (!context.endsWith('.')) {
|
|
81
|
-
context = context + '.';
|
|
82
|
-
}
|
|
83
|
-
// Compute a contextual i18n key, using the context as suffix
|
|
84
|
-
const parts = key.split('.');
|
|
85
|
-
return parts.length === 1
|
|
86
|
-
? `${context}${key}`
|
|
87
|
-
: parts
|
|
88
|
-
.slice(0, parts.length - 1)
|
|
89
|
-
.concat(context + parts[parts.length - 1])
|
|
90
|
-
.join('.');
|
|
91
|
-
}
|
|
92
|
-
findFirstValid(keys, translations) {
|
|
93
|
-
// For eac contextual key: try to find translation, then use the first valid
|
|
94
|
-
for (const key of keys) {
|
|
95
|
-
if (translations[key] !== key)
|
|
96
|
-
return translations[key];
|
|
97
|
-
}
|
|
98
|
-
return translations[keys[keys.length - 1]]; // Return the last keys translation
|
|
99
|
-
}
|
|
100
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TranslateContextService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
101
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TranslateContextService, providedIn: 'root' });
|
|
102
|
-
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TranslateContextService, decorators: [{
|
|
104
|
-
type: Injectable,
|
|
105
|
-
args: [{ providedIn: 'root' }]
|
|
106
|
-
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3RyYW5zbGF0ZS1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQUdwRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ1o7SUFBdEIsWUFBc0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRXJELEdBQUcsQ0FBQyxHQUFzQixFQUFFLE9BQWdCLEVBQUUsaUJBQXVCO1FBQ25FLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRTlFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtnQkFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzdCLHdDQUF3QztZQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUNsQixHQUFHO2lCQUNBLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7aUJBQzlDLE1BQU0s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LENBQUM7WUFDM0IsT0FBTyxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDMUIsQ0FBQztRQUVELDZEQUE2RDtRQUM3RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDcEIsQ0FBQyxDQUFDLEtBQUs7aUJBQ0YsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztpQkFDMUIsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBYyxFQUFFLFlBQXVDO1FBQzVFLDRFQUE0RTtRQUM1RSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUc7Z0JBQUUsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7SUFDakYsQ0FBQzt1R0F2R1UsdUJBQXVCOzJHQUF2Qix1QkFBdUIsY0FEVixNQUFNOzsyRkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc05pbCwgaXNOaWxPckJsYW5rLCBpc05vdE5pbE9yQmxhbmsgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZUNvbnRleHRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBnZXQoa2V5OiBzdHJpbmcgfCBzdHJpbmdbXSwgY29udGV4dD86IHN0cmluZywgaW50ZXJwb2xhdGVQYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIE5vIGNvbnRleHQ6IGRvIGEgbm9ybWFsIHRyYW5zbGF0ZVxuICAgIGlmICgha2V5IHx8IGlzTmlsKGNvbnRleHQpKSByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgaWYgKCFrZXkubGVuZ3RoKSByZXR1cm4gb2YoKTtcbiAgICAgIC8vIE9ic2VydmUgdGhlIGZpcnN0IGtleSwgdGhlbiBhZGQgb3RoZXJcbiAgICAgIHJldHVybiB0aGlzLmdldChrZXlbMF0pLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNsYXRpb24pID0+XG4gICAgICAgICAga2V5XG4gICAgICAgICAgICAuc2xpY2UoMSkgLy8gU2tpcCAxLCBiZWNhdXNlIHdlIGFscmVhZHkgaGF2ZSBpdFxuICAgICAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAgICAgKG1hcCwgaykgPT4ge1xuICAgICAgICAgICAgICAgIG1hcFtrXSA9IHRoaXMuaW5zdGFudChrLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyBJbml0IHdpdGggdGhlIGZpcnN0IHZhbHVlXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBba2V5WzBdXTogdHJhbnNsYXRpb24sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDb21wdXRlIGEgY29udGV4dHVhbCBpMThuIGtleSwgdXNpbmcgdGhlIGNvbnRleHQgYXMgc3VmZml4XG4gICAgY29uc3QgY29udGV4dHVhbEtleXMgPSB0aGlzLmNvbnRleHR1YWxLZXlzKGtleSwgY29udGV4dCk7XG5cbiAgICAvLyBSZXR1cm4gdGhlIGNvbnRleHR1YWwgdHJhbnNsYXRpb24sIG9yIGRlZmF1bHQgb2Ygbm90IGV4aXN0c1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5nZXQoY29udGV4dHVhbEtleXMsIGludGVycG9sYXRlUGFyYW1zKS5waXBlKG1hcCgodHJhbnNsYXRpb25zKSA9PiB0aGlzLmZpbmRGaXJzdFZhbGlkKGNvbnRleHR1YWxLZXlzLCB0cmFuc2xhdGlvbnMpKSk7XG4gIH1cblxuICBpbnN0YW50KGtleTogc3RyaW5nIHwgc3RyaW5nW10sIGNvbnRleHQ/OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogYW55KTogYW55IHtcbiAgICAvLyBObyBjb250ZXh0OiBkbyBhIG5vcm1hbCB0cmFuc2xhdGVcbiAgICBpZiAoIWtleSB8fCBpc05pbE9yQmxhbmsoY29udGV4dCkpIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgcmV0dXJuIGtleS5yZWR1Y2UoKG1hcCwgaykgPT4ge1xuICAgICAgICBtYXBba10gPSB0aGlzLmluc3RhbnQoaywgY29udGV4dCk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgLy8gQ29tcHV0ZSBhIGNvbnRleHR1YWwgaTE4biBrZXksIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeFxuICAgIGNvbnN0IGNvbnRleHR1YWxLZXlzID0gdGhpcy5jb250ZXh0dWFsS2V5cyhrZXksIGNvbnRleHQpO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoY29udGV4dHVhbEtleXMsIGludGVycG9sYXRlUGFyYW1zKTtcblxuICAgIHJldHVybiB0aGlzLmZpbmRGaXJzdFZhbGlkKGNvbnRleHR1YWxLZXlzLCB0cmFuc2xhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgY29udGV4dHVhbCBpMThuIGtleXMsIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeC48YnI+XG4gICAqIFN1ZmZpeCBjYW4gYmUgc2ltcGxlIG5hbWUgKGxpa2UgJ2FhYScgLSB3aWxsIHJldHVybiBbJzxrZXk+LmFhYSddKSBvciBjb21wbGV4ZSAobGlrZSAnYWFhLmJiYicgLSB3aWxsIHJldHVybiBbJzxrZXk+LmFhYS5iYmInLCAnPGtleT4uYWFhJ11cbiAgICpcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gY29udGV4dFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29udGV4dHVhbEtleXMoa2V5OiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gY29udGV4dFxuICAgICAgLnNwbGl0KCcuJylcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWxPckJsYW5rKVxuICAgICAgLnJlZHVjZSgocmVzLCBpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGluaGVyaXRlZENvbnRleHQgPSByZXMubGVuZ3RoID4gMCA/IHJlc1tyZXMubGVuZ3RoIC0gMV0gKyAnLicgOiAnJztcbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoaW5oZXJpdGVkQ29udGV4dCArIGl0ZW0pO1xuICAgICAgfSwgW10pXG4gICAgICAucmV2ZXJzZSgpIC8vIFN0YXJ0IHdpdGggY2hpbGRyZW4sIGVuZHMgd2l0aCBwYXJlbnQga2V5XG4gICAgICAubWFwKChjb250ZXh0SXRlbSkgPT4gdGhpcy5jb250ZXh0dWFsS2V5KGtleSwgY29udGV4dEl0ZW0pKVxuICAgICAgLmNvbmNhdChrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgYSBjb250ZXh0dWFsIGkxOG4ga2V5LCB1c2luZyB0aGUgY29udGV4dCBhcyBzdWZmaXhcbiAgICpcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gY29udGV4dFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29udGV4dHVhbEtleShrZXk6IHN0cmluZywgY29udGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBBcHBlbmQgYSBkb3Qgb24gY29udGV4dCBpZiBtaXNzaW5nXG4gICAgaWYgKCFjb250ZXh0LmVuZHNXaXRoKCcuJykpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0ICsgJy4nO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgYSBjb250ZXh0dWFsIGkxOG4ga2V5LCB1c2luZyB0aGUgY29udGV4dCBhcyBzdWZmaXhcbiAgICBjb25zdCBwYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuICAgIHJldHVybiBwYXJ0cy5sZW5ndGggPT09IDFcbiAgICAgID8gYCR7Y29udGV4dH0ke2tleX1gXG4gICAgICA6IHBhcnRzXG4gICAgICAgICAgLnNsaWNlKDAsIHBhcnRzLmxlbmd0aCAtIDEpXG4gICAgICAgICAgLmNvbmNhdChjb250ZXh0ICsgcGFydHNbcGFydHMubGVuZ3RoIC0gMV0pXG4gICAgICAgICAgLmpvaW4oJy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEZpcnN0VmFsaWQoa2V5czogc3RyaW5nW10sIHRyYW5zbGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgLy8gRm9yIGVhYyBjb250ZXh0dWFsIGtleTogdHJ5IHRvIGZpbmQgdHJhbnNsYXRpb24sIHRoZW4gdXNlIHRoZSBmaXJzdCB2YWxpZFxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIGlmICh0cmFuc2xhdGlvbnNba2V5XSAhPT0ga2V5KSByZXR1cm4gdHJhbnNsYXRpb25zW2tleV07XG4gICAgfVxuICAgIHJldHVybiB0cmFuc2xhdGlvbnNba2V5c1trZXlzLmxlbmd0aCAtIDFdXTsgLy8gUmV0dXJuIHRoZSBsYXN0IGtleXMgdHJhbnNsYXRpb25cbiAgfVxufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0b3Itc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BlLWlzL25neC1tYXRlcmlhbC10YWJsZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZhbGlkYXRvclNlcnZpY2U8VD4gZXh0ZW5kcyBWYWxpZGF0b3JTZXJ2aWNlIHtcbiAgZ2V0Rm9ybUdyb3VwKGRhdGE/OiBUKTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQ29tcHV0ZSBlcnJvcnMgZnJvbSBhIGNvbnRyb2xzXG4gICAqXG4gICAqIEBwYXJhbSBjb250cm9sIGFueSBjb250cm9sLCBvciBGb3JtR3JvdXAsIG9yIEZvcm1BcnJheVxuICAgKi9cbiAgZ2V0STE4bkZvcm1FcnJvcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogc3RyaW5nW107XG59XG4iXX0=
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { getPropertyByPathAsString, isNotEmptyArray, isNotNil, isNotNilOrBlank, matchUpperCase, propertiesPathComparator, startsWithUpperCase, } from './functions';
|
|
2
|
-
export function suggestFromArray(items, value, opts) {
|
|
3
|
-
if (isNotNil(value) && typeof value === 'object')
|
|
4
|
-
return { data: [value] };
|
|
5
|
-
value = (typeof value === 'string' && value !== '*' && value.toUpperCase()) || undefined;
|
|
6
|
-
const keys = (opts && ((opts.searchAttribute && [opts.searchAttribute]) || opts.searchAttributes)) || ['label'];
|
|
7
|
-
if (!items) {
|
|
8
|
-
return { data: [], total: 0 };
|
|
9
|
-
}
|
|
10
|
-
// Filter items
|
|
11
|
-
let filteredItems = items;
|
|
12
|
-
if (isNotNilOrBlank(value)) {
|
|
13
|
-
// If wildcard, search using regexp
|
|
14
|
-
if (opts?.anySearch || value.indexOf('*') !== -1) {
|
|
15
|
-
value = value.replace(/[*]+/g, '.*');
|
|
16
|
-
filteredItems = filteredItems.filter((v) => keys.findIndex((key) => matchUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
17
|
-
}
|
|
18
|
-
// Else (no wildcard), search using startsWith
|
|
19
|
-
else {
|
|
20
|
-
filteredItems = filteredItems.filter((v) => keys.findIndex((key) => startsWithUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
// Exclude ids
|
|
24
|
-
if (isNotEmptyArray(opts?.excludedIds)) {
|
|
25
|
-
filteredItems = filteredItems.filter((v) => !opts.excludedIds.includes(+v['id']));
|
|
26
|
-
}
|
|
27
|
-
// Sort
|
|
28
|
-
if (!opts || opts.skipSort !== true) {
|
|
29
|
-
// Make to copy input items, before sorting (if not yet already done)
|
|
30
|
-
if (filteredItems === items)
|
|
31
|
-
filteredItems = filteredItems.slice();
|
|
32
|
-
// Sort by keys
|
|
33
|
-
filteredItems.sort(propertiesPathComparator(keys));
|
|
34
|
-
}
|
|
35
|
-
const total = filteredItems.length || 0;
|
|
36
|
-
// Pagination (truncate if need)
|
|
37
|
-
let pageData = filteredItems;
|
|
38
|
-
if (opts) {
|
|
39
|
-
if ((opts.offset || 0) > 0) {
|
|
40
|
-
pageData = pageData.slice(opts.offset);
|
|
41
|
-
}
|
|
42
|
-
if (isNotNil(opts.size) && pageData.length > opts.size) {
|
|
43
|
-
pageData = pageData.slice(0, opts.size);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
const result = {
|
|
47
|
-
data: pageData,
|
|
48
|
-
total,
|
|
49
|
-
};
|
|
50
|
-
// Add fetch more capability, if total was fetched
|
|
51
|
-
const nextOffset = ((opts && opts.offset) || 0) + pageData.length;
|
|
52
|
-
if (nextOffset < total) {
|
|
53
|
-
result.fetchMore = async (_) => suggestFromArray(filteredItems, undefined /*OPTIMISATION: already applied*/, {
|
|
54
|
-
...opts,
|
|
55
|
-
offset: nextOffset,
|
|
56
|
-
skipSort: true, // OPTIMISATION: already sorted
|
|
57
|
-
excludedIds: undefined, // OPTIMISATION: already filtered
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
return result;
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGVBQWUsRUFDZixRQUFRLEVBQ1IsZUFBZSxFQUNmLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsbUJBQW1CLEdBQ3BCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsS0FBVSxFQUNWLEtBQVUsRUFDVixJQVFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBRTNFLEtBQUssR0FBRyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUV6RixNQUFNLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVoSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7SUFDZixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDMUIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixtQ0FBbUM7UUFDbkMsSUFBSSxJQUFJLEVBQUUsU0FBUyxJQUFLLEtBQWdCLENBQUMsT0FBTyxD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Qy9DLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUNBQWlDO1NBQzFELENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZFJlc3VsdCB9IGZyb20gJy4vc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtcbiAgZ2V0UHJvcGVydHlCeVBhdGhBc1N0cmluZyxcbiAgaXNOb3RFbXB0eUFycmF5LFxuICBpc05vdE5pbCxcbiAgaXNOb3ROaWxPckJsYW5rLFxuICBtYXRjaFVwcGVyQ2FzZSxcbiAgcHJvcGVydGllc1BhdGhDb21wYXJhdG9yLFxuICBzdGFydHNXaXRoVXBwZXJDYXNlLFxufSBmcm9tICcuL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWdnZXN0RnJvbUFycmF5PFQgPSBhbnk+KFxuICBpdGVtczogVFtdLFxuICB2YWx1ZTogYW55LFxuICBvcHRzPzoge1xuICAgIG9mZnNldD86IG51bWJlcjtcbiAgICBzaXplPzogbnVtYmVyO1xuICAgIHNlYXJjaEF0dHJpYnV0ZT86IHN0cmluZztcbiAgICBzZWFyY2hBdHRyaWJ1dGVzPzogc3RyaW5nW107XG4gICAgZXhjbHVkZWRJZHM/OiBudW1iZXJbXTtcbiAgICBza2lwU29ydD86IGJvb2xlYW47XG4gICAgYW55U2VhcmNoPzogYm9vbGVhbjtcbiAgfVxuKTogTG9hZFJlc3VsdDxUPiB7XG4gIGlmIChpc05vdE5pbCh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JykgcmV0dXJuIHsgZGF0YTogW3ZhbHVlXSB9O1xuXG4gIHZhbHVlID0gKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUgIT09ICcqJyAmJiB2YWx1ZS50b1VwcGVyQ2FzZSgpKSB8fCB1bmRlZmluZWQ7XG5cbiAgY29uc3Qga2V5cyA9IChvcHRzICYmICgob3B0cy5zZWFyY2hBdHRyaWJ1dGUgJiYgW29wdHMuc2VhcmNoQXR0cmlidXRlXSkgfHwgb3B0cy5zZWFyY2hBdHRyaWJ1dGVzKSkgfHwgWydsYWJlbCddO1xuXG4gIGlmICghaXRlbXMpIHtcbiAgICByZXR1cm4geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgfVxuXG4gIC8vIEZpbHRlciBpdGVtc1xuICBsZXQgZmlsdGVyZWRJdGVtcyA9IGl0ZW1zO1xuICBpZiAoaXNOb3ROaWxPckJsYW5rKHZhbHVlKSkge1xuICAgIC8vIElmIHdpbGRjYXJkLCBzZWFyY2ggdXNpbmcgcmVnZXhwXG4gICAgaWYgKG9wdHM/LmFueVNlYXJjaCB8fCAodmFsdWUgYXMgc3RyaW5nKS5pbmRleE9mKCcqJykgIT09IC0xKSB7XG4gICAgICB2YWx1ZSA9ICh2YWx1ZSBhcyBzdHJpbmcpLnJlcGxhY2UoL1sqXSsvZywgJy4qJyk7XG4gICAgICBmaWx0ZXJlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcy5maWx0ZXIoKHYpID0+IGtleXMuZmluZEluZGV4KChrZXkpID0+IG1hdGNoVXBwZXJDYXNlKGdldFByb3BlcnR5QnlQYXRoQXNTdHJpbmcodiwga2V5KSwgdmFsdWUpKSAhPT0gLTEpO1xuICAgIH1cbiAgICAvLyBFbHNlIChubyB3aWxkY2FyZCksIHNlYXJjaCB1c2luZyBzdGFydHNXaXRoXG4gICAgZWxzZSB7XG4gICAgICBmaWx0ZXJlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcy5maWx0ZXIoKHYpID0+IGtleXMuZmluZEluZGV4KChrZXkpID0+IHN0YXJ0c1dpdGhVcHBlckNhc2UoZ2V0UHJvcGVydHlCeVBhdGhBc1N0cmluZyh2LCBrZXkpLCB2YWx1ZSkpICE9PSAtMSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRXhjbHVkZSBpZHNcbiAgaWYgKGlzTm90RW1wdHlBcnJheShvcHRzPy5leGNsdWRlZElkcykpIHtcbiAgICBmaWx0ZXJlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcy5maWx0ZXIoKHYpID0+ICFvcHRzLmV4Y2x1ZGVkSWRzLmluY2x1ZGVzKCt2WydpZCddKSk7XG4gIH1cblxuICAvLyBTb3J0XG4gIGlmICghb3B0cyB8fCBvcHRzLnNraXBTb3J0ICE9PSB0cnVlKSB7XG4gICAgLy8gTWFrZSB0byBjb3B5IGlucHV0IGl0ZW1zLCBiZWZvcmUgc29ydGluZyAoaWYgbm90IHlldCBhbHJlYWR5IGRvbmUpXG4gICAgaWYgKGZpbHRlcmVkSXRlbXMgPT09IGl0ZW1zKSBmaWx0ZXJlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcy5zbGljZSgpO1xuXG4gICAgLy8gU29ydCBieSBrZXlzXG4gICAgZmlsdGVyZWRJdGVtcy5zb3J0KHByb3BlcnRpZXNQYXRoQ29tcGFyYXRvcihrZXlzKSk7XG4gIH1cblxuICBjb25zdCB0b3RhbCA9IGZpbHRlcmVkSXRlbXMubGVuZ3RoIHx8IDA7XG5cbiAgLy8gUGFnaW5hdGlvbiAodHJ1bmNhdGUgaWYgbmVlZClcbiAgbGV0IHBhZ2VEYXRhID0gZmlsdGVyZWRJdGVtcztcbiAgaWYgKG9wdHMpIHtcbiAgICBpZiAoKG9wdHMub2Zmc2V0IHx8IDApID4gMCkge1xuICAgICAgcGFnZURhdGEgPSBwYWdlRGF0YS5zbGljZShvcHRzLm9mZnNldCk7XG4gICAgfVxuICAgIGlmIChpc05vdE5pbChvcHRzLnNpemUpICYmIHBhZ2VEYXRhLmxlbmd0aCA+IG9wdHMuc2l6ZSkge1xuICAgICAgcGFnZURhdGEgPSBwYWdlRGF0YS5zbGljZSgwLCBvcHRzLnNpemUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogTG9hZFJlc3VsdDxUPiA9IHtcbiAgICBkYXRhOiBwYWdlRGF0YSxcbiAgICB0b3RhbCxcbiAgfTtcblxuICAvLyBBZGQgZmV0Y2ggbW9yZSBjYXBhYmlsaXR5LCBpZiB0b3RhbCB3YXMgZmV0Y2hlZFxuICBjb25zdCBuZXh0T2Zmc2V0ID0gKChvcHRzICYmIG9wdHMub2Zmc2V0KSB8fCAwKSArIHBhZ2VEYXRhLmxlbmd0aDtcbiAgaWYgKG5leHRPZmZzZXQgPCB0b3RhbCkge1xuICAgIHJlc3VsdC5mZXRjaE1vcmUgPSBhc3luYyAoXykgPT5cbiAgICAgIHN1Z2dlc3RGcm9tQXJyYXkoZmlsdGVyZWRJdGVtcywgdW5kZWZpbmVkIC8qT1BUSU1JU0FUSU9OOiBhbHJlYWR5IGFwcGxpZWQqLywge1xuICAgICAgICAuLi5vcHRzLFxuICAgICAgICBvZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgIHNraXBTb3J0OiB0cnVlLCAvLyBPUFRJTUlTQVRJT046IGFscmVhZHkgc29ydGVkXG4gICAgICAgIGV4Y2x1ZGVkSWRzOiB1bmRlZmluZWQsIC8vIE9QVElNSVNBVElPTjogYWxyZWFkeSBmaWx0ZXJlZFxuICAgICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Injectable, NgModule } from '@angular/core';
|
|
2
|
-
import { RouteReuseStrategy, RouterModule } from '@angular/router';
|
|
3
|
-
import { IonicRouteStrategy } from '@ionic/angular';
|
|
4
|
-
import { ComponentDirtyGuard } from './guard/component-dirty.guard';
|
|
5
|
-
import { isNil, isNotNil } from './functions';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class CustomReuseStrategy extends IonicRouteStrategy {
|
|
8
|
-
/**
|
|
9
|
-
* Force to reuse the route when:
|
|
10
|
-
* - path change from [/new] -> [/:id]
|
|
11
|
-
* - or path change from [/new] -> [/new?id=:id]
|
|
12
|
-
*
|
|
13
|
-
* @param future
|
|
14
|
-
* @param curr
|
|
15
|
-
*/
|
|
16
|
-
shouldReuseRoute(future, curr) {
|
|
17
|
-
const reuse = super.shouldReuseRoute(future, curr);
|
|
18
|
-
// Is sam route config
|
|
19
|
-
if (!reuse && future.routeConfig && future.routeConfig === curr.routeConfig) {
|
|
20
|
-
// Read the parameter name, where id is stored
|
|
21
|
-
const pathIdParam = (future.routeConfig.data && future.routeConfig.data.pathIdParam) || 'id';
|
|
22
|
-
// Read the current route id
|
|
23
|
-
const currId = curr.params[pathIdParam] === 'new'
|
|
24
|
-
? curr.queryParams[pathIdParam] || curr.queryParams['id'] || 'new' // e.g. path like '/new/?id=<ID>'
|
|
25
|
-
: curr.params[pathIdParam]; // e.g. path like '/<ID>'
|
|
26
|
-
// Read the future route id
|
|
27
|
-
const futureId = future.params[pathIdParam] === 'new'
|
|
28
|
-
? future.queryParams[pathIdParam] || future.queryParams['id'] || 'new' // e.g. path like '/new/?id=<ID>'
|
|
29
|
-
: future.params[pathIdParam]; // e.g. path like '/<ID>'
|
|
30
|
-
// Reuse if same ID, using a futureId, if exists
|
|
31
|
-
if (isNotNil(futureId)) {
|
|
32
|
-
// Allow reuse when changing from /new to /new?id=:id
|
|
33
|
-
if (currId === 'new' &&
|
|
34
|
-
isNil(curr.queryParams[pathIdParam]) &&
|
|
35
|
-
future.params[pathIdParam] === 'new' &&
|
|
36
|
-
isNotNil(future.queryParams[pathIdParam])) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
// Allow reuse same id, expect when expected '/new'
|
|
40
|
-
return futureId !== 'new' && futureId === currId;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return reuse;
|
|
44
|
-
}
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CustomReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CustomReuseStrategy });
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CustomReuseStrategy, decorators: [{
|
|
49
|
-
type: Injectable
|
|
50
|
-
}] });
|
|
51
|
-
export class SharedRoutingModule {
|
|
52
|
-
constructor() {
|
|
53
|
-
console.debug('[shared-routing] Creating module...');
|
|
54
|
-
}
|
|
55
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SharedRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
56
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SharedRoutingModule, imports: [RouterModule] });
|
|
57
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SharedRoutingModule, providers: [
|
|
58
|
-
{ provide: RouteReuseStrategy, useClass: CustomReuseStrategy },
|
|
59
|
-
{ provide: ComponentDirtyGuard, useClass: ComponentDirtyGuard },
|
|
60
|
-
], imports: [RouterModule] });
|
|
61
|
-
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SharedRoutingModule, decorators: [{
|
|
63
|
-
type: NgModule,
|
|
64
|
-
args: [{
|
|
65
|
-
imports: [RouterModule],
|
|
66
|
-
providers: [
|
|
67
|
-
{ provide: RouteReuseStrategy, useClass: CustomReuseStrategy },
|
|
68
|
-
{ provide: ComponentDirtyGuard, useClass: ComponentDirtyGuard },
|
|
69
|
-
],
|
|
70
|
-
}]
|
|
71
|
-
}], ctorParameters: () => [] });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBMEIsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRzlDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFDekQ7Ozs7Ozs7T0FPRztJQUNILGdCQUFnQixDQUFDLE1BQThCLEVBQUUsSUFBNEI7UUFDM0UsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuRCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVFLDhDQUE4QztZQUM5QyxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQztZQUU3Riw0QkFBNEI7WUFDNUIsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLO2dCQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUM7Z0JBQ3BHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMseUJBQXlCO1lBRXpELDJCQUEyQjtZQUMzQixNQUFNLFFBQVEsR0FDWixNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUs7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLGlDQUFpQztnQkFDeEcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyx5QkFBeUI7WUFFM0QsZ0RBQWdEO1lBQ2hELElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLHFEQUFxRDtnQkFDckQsSUFDRSxNQUFNLEtBQUssS0FBSztvQkFDaEIsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSztvQkFDcEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDekMsQ0FBQztvQkFDRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUVELG1EQUFtRDtnQkFDbkQsT0FBTyxRQUFRLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUM7WUFDbkQsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7dUdBL0NVLG1CQUFtQjsyR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOztBQTBEWCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCO1FBQ0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7dUdBSFUsbUJBQW1CO3dHQUFuQixtQkFBbUIsWUFOcEIsWUFBWTt3R0FNWCxtQkFBbUIsYUFMbkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7WUFDOUQsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO1NBQ2hFLFlBSlMsWUFBWTs7MkZBTVgsbUJBQW1CO2tCQVAvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTt3QkFDOUQsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO3FCQUNoRTtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZVJldXNlU3RyYXRlZ3ksIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25pY1JvdXRlU3RyYXRlZ3kgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBDb21wb25lbnREaXJ0eUd1YXJkIH0gZnJvbSAnLi9ndWFyZC9jb21wb25lbnQtZGlydHkuZ3VhcmQnO1xuaW1wb3J0IHsgaXNOaWwsIGlzTm90TmlsIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmV1c2VTdHJhdGVneSBleHRlbmRzIElvbmljUm91dGVTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBGb3JjZSB0byByZXVzZSB0aGUgcm91dGUgd2hlbjpcbiAgICogIC0gcGF0aCBjaGFuZ2UgZnJvbSBbL25ld10gLT4gWy86aWRdXG4gICAqICAtIG9yIHBhdGggY2hhbmdlIGZyb20gWy9uZXddIC0+IFsvbmV3P2lkPTppZF1cbiAgICpcbiAgICogQHBhcmFtIGZ1dHVyZVxuICAgKiBAcGFyYW0gY3VyclxuICAgKi9cbiAgc2hvdWxkUmV1c2VSb3V0ZShmdXR1cmU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGN1cnI6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXVzZSA9IHN1cGVyLnNob3VsZFJldXNlUm91dGUoZnV0dXJlLCBjdXJyKTtcblxuICAgIC8vIElzIHNhbSByb3V0ZSBjb25maWdcbiAgICBpZiAoIXJldXNlICYmIGZ1dHVyZS5yb3V0ZUNvbmZpZyAmJiBmdXR1cmUucm91dGVDb25maWcgPT09IGN1cnIucm91dGVDb25maWcpIHtcbiAgICAgIC8vIFJlYWQgdGhlIHBhcmFtZXRlciBuYW1lLCB3aGVyZSBpZCBpcyBzdG9yZWRcbiAgICAgIGNvbnN0IHBhdGhJZFBhcmFtID0gKGZ1dHVyZS5yb3V0ZUNvbmZpZy5kYXRhICYmIGZ1dHVyZS5yb3V0ZUNvbmZpZy5kYXRhLnBhdGhJZFBhcmFtKSB8fCAnaWQnO1xuXG4gICAgICAvLyBSZWFkIHRoZSBjdXJyZW50IHJvdXRlIGlkXG4gICAgICBjb25zdCBjdXJySWQgPVxuICAgICAgICBjdXJyLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgICAgPyBjdXJyLnF1ZXJ5UGFyYW1zW3BhdGhJZFBhcmFtXSB8fCBjdXJyLnF1ZXJ5UGFyYW1zWydpZCddIHx8ICduZXcnIC8vIGUuZy4gcGF0aCBsaWtlICcvbmV3Lz9pZD08SUQ+J1xuICAgICAgICAgIDogY3Vyci5wYXJhbXNbcGF0aElkUGFyYW1dOyAvLyBlLmcuIHBhdGggbGlrZSAnLzxJRD4nXG5cbiAgICAgIC8vIFJlYWQgdGhlIGZ1dHVyZSByb3V0ZSBpZFxuICAgICAgY29uc3QgZnV0dXJlSWQgPVxuICAgICAgICBmdXR1cmUucGFyYW1zW3BhdGhJZFBhcmFtXSA9PT0gJ25ldydcbiAgICAgICAgICA/IGZ1dHVyZS5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0gfHwgZnV0dXJlLnF1ZXJ5UGFyYW1zWydpZCddIHx8ICduZXcnIC8vIGUuZy4gcGF0aCBsaWtlICcvbmV3Lz9pZD08SUQ+J1xuICAgICAgICAgIDogZnV0dXJlLnBhcmFtc1twYXRoSWRQYXJhbV07IC8vIGUuZy4gcGF0aCBsaWtlICcvPElEPidcblxuICAgICAgLy8gUmV1c2UgaWYgc2FtZSBJRCwgdXNpbmcgYSBmdXR1cmVJZCwgaWYgZXhpc3RzXG4gICAgICBpZiAoaXNOb3ROaWwoZnV0dXJlSWQpKSB7XG4gICAgICAgIC8vIEFsbG93IHJldXNlIHdoZW4gY2hhbmdpbmcgZnJvbSAvbmV3IHRvIC9uZXc/aWQ9OmlkXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjdXJySWQgPT09ICduZXcnICYmXG4gICAgICAgICAgaXNOaWwoY3Vyci5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0pICYmXG4gICAgICAgICAgZnV0dXJlLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnICYmXG4gICAgICAgICAgaXNOb3ROaWwoZnV0dXJlLnF1ZXJ5UGFyYW1zW3BhdGhJZFBhcmFtXSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbGxvdyByZXVzZSBzYW1lIGlkLCBleHBlY3Qgd2hlbiBleHBlY3RlZCAnL25ldydcbiAgICAgICAgcmV0dXJuIGZ1dHVyZUlkICE9PSAnbmV3JyAmJiBmdXR1cmVJZCA9PT0gY3VycklkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXVzZTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBSb3V0ZVJldXNlU3RyYXRlZ3ksIHVzZUNsYXNzOiBDdXN0b21SZXVzZVN0cmF0ZWd5IH0sXG4gICAgeyBwcm92aWRlOiBDb21wb25lbnREaXJ0eUd1YXJkLCB1c2VDbGFzczogQ29tcG9uZW50RGlydHlHdWFyZCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRSb3V0aW5nTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc29sZS5kZWJ1ZygnW3NoYXJlZC1yb3V0aW5nXSBDcmVhdGluZyBtb2R1bGUuLi4nKTtcbiAgfVxufVxuIl19
|