@sumaris-net/ngx-components 4.0.0-rc9 → 18.0.0-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/doc/changelog.md +522 -280
- package/esm2022/public_api.mjs +38 -19
- package/esm2022/src/app/admin/admin-routing.module.mjs +10 -17
- package/esm2022/src/app/admin/admin.module.mjs +7 -9
- package/esm2022/src/app/admin/services/filter/person.filter.mjs +3 -3
- package/esm2022/src/app/admin/services/person.service.mjs +31 -31
- package/esm2022/src/app/admin/services/validator/person.validator.mjs +10 -10
- package/esm2022/src/app/admin/users/users.mjs +22 -19
- package/esm2022/src/app/admin/users/users.module.mjs +8 -10
- package/esm2022/src/app/core/about/about.modal.mjs +7 -7
- package/esm2022/src/app/core/about/about.module.mjs +8 -21
- package/esm2022/src/app/core/account/account.module.mjs +28 -18
- package/esm2022/src/app/core/account/account.page.mjs +19 -5
- package/esm2022/src/app/core/account/new-token.form.mjs +106 -0
- package/esm2022/src/app/core/account/new-token.modal.mjs +27 -86
- package/esm2022/src/app/core/account/password/change-password.form.mjs +60 -0
- package/esm2022/src/app/core/account/password/change-password.module.mjs +22 -0
- package/esm2022/src/app/core/account/password/change-password.page.mjs +144 -0
- package/esm2022/src/app/core/account/token.table.mjs +47 -35
- package/esm2022/src/app/core/auth/auth.form.mjs +47 -28
- package/esm2022/src/app/core/auth/auth.modal.mjs +6 -6
- package/esm2022/src/app/core/auth/auth.module.mjs +22 -13
- package/esm2022/src/app/core/auth/reset-password.modal.mjs +77 -0
- package/esm2022/src/app/core/core.module.mjs +28 -61
- package/esm2022/src/app/core/core.testing.module.mjs +34 -20
- package/esm2022/src/app/core/form/array/form-array.mjs +325 -0
- package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +23 -0
- package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +94 -0
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +24 -25
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +9 -13
- package/esm2022/src/app/core/form/entity/editor.class.mjs +64 -517
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +26 -42
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +42 -41
- package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
- package/esm2022/src/app/core/form/entity/entity.module.mjs +8 -14
- package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +194 -0
- package/esm2022/src/app/core/form/form-container.class.mjs +327 -0
- package/esm2022/src/app/core/form/form.class.mjs +39 -56
- package/esm2022/src/app/core/form/form.module.mjs +14 -10
- package/esm2022/src/app/core/form/form.utils.mjs +23 -306
- package/esm2022/src/app/core/form/list/list.form.mjs +16 -14
- package/esm2022/src/app/core/form/list/list.module.mjs +8 -12
- package/esm2022/src/app/core/form/properties/properties.form.mjs +139 -57
- package/esm2022/src/app/core/form/properties/properties.module.mjs +9 -15
- package/esm2022/src/app/core/form/properties/properties.table.mjs +27 -28
- package/esm2022/src/app/core/form/properties/properties.utils.mjs +60 -0
- package/esm2022/src/app/core/form/properties/property.validator.mjs +23 -9
- package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +18 -18
- package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +8 -24
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +15 -15
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -25
- package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +7 -7
- package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +9 -13
- package/esm2022/src/app/core/form/username/username.form.mjs +52 -0
- package/esm2022/src/app/core/form/username/username.module.mjs +20 -0
- package/esm2022/src/app/core/graphql/graphql.module.mjs +8 -16
- package/esm2022/src/app/core/graphql/graphql.service.mjs +101 -109
- package/esm2022/src/app/core/graphql/graphql.utils.mjs +12 -11
- package/esm2022/src/app/core/home/home.mjs +81 -52
- package/esm2022/src/app/core/home/home.module.mjs +10 -19
- package/esm2022/src/app/core/icon/icon.component.mjs +5 -5
- package/esm2022/src/app/core/icon/icon.module.mjs +8 -17
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +33 -37
- package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +9 -13
- package/esm2022/src/app/core/menu/menu.component.mjs +5 -6
- package/esm2022/src/app/core/menu/menu.model.mjs +21 -18
- package/esm2022/src/app/core/menu/menu.module.mjs +7 -12
- package/esm2022/src/app/core/menu/menu.service.mjs +44 -60
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +4 -4
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +7 -6
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +43 -8
- package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +8 -27
- package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +6 -7
- package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +9 -13
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +31 -21
- package/esm2022/src/app/core/peer/select-peer.module.mjs +11 -23
- package/esm2022/src/app/core/register/register-confirm.page.mjs +18 -16
- package/esm2022/src/app/core/register/register.form.mjs +7 -7
- package/esm2022/src/app/core/register/register.modal.mjs +6 -6
- package/esm2022/src/app/core/register/register.module.mjs +8 -29
- package/esm2022/src/app/core/services/account.service.mjs +272 -170
- package/esm2022/src/app/core/services/auth-guard.service.mjs +13 -15
- package/esm2022/src/app/core/services/base-entity-service.class.mjs +55 -64
- package/esm2022/src/app/core/services/base-graphql-service.class.mjs +39 -33
- package/esm2022/src/app/core/services/base58.mjs +8 -4
- package/esm2022/src/app/core/services/config/core.config.mjs +88 -37
- package/esm2022/src/app/core/services/config.service.mjs +81 -62
- package/esm2022/src/app/core/services/crypto.service.mjs +11 -11
- package/esm2022/src/app/core/services/errors.mjs +6 -5
- package/esm2022/src/app/core/services/local-settings.service.mjs +58 -44
- package/esm2022/src/app/core/services/model/account.model.mjs +12 -17
- package/esm2022/src/app/core/services/model/config.model.mjs +7 -7
- package/esm2022/src/app/core/services/model/department.model.mjs +3 -2
- package/esm2022/src/app/core/services/model/entity.decorators.mjs +6 -6
- package/esm2022/src/app/core/services/model/entity.model.mjs +27 -31
- package/esm2022/src/app/core/services/model/filter.model.mjs +12 -15
- package/esm2022/src/app/core/services/model/history.model.mjs +1 -1
- package/esm2022/src/app/core/services/model/model.enum.mjs +2 -2
- package/esm2022/src/app/core/services/model/peer.model.mjs +19 -9
- package/esm2022/src/app/core/services/model/person.model.mjs +26 -22
- package/esm2022/src/app/core/services/model/referential.model.mjs +36 -23
- package/esm2022/src/app/core/services/model/settings.model.mjs +2 -1
- package/esm2022/src/app/core/services/model/token.model.mjs +7 -3
- package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +3 -7
- package/esm2022/src/app/core/services/network.service.mjs +99 -76
- package/esm2022/src/app/core/services/network.types.mjs +1 -1
- package/esm2022/src/app/core/services/network.utils.mjs +3 -3
- package/esm2022/src/app/core/services/pipes/account.pipes.mjs +11 -11
- package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +6 -6
- package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +9 -9
- package/esm2022/src/app/core/services/pipes/pipes.module.mjs +54 -0
- package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +21 -0
- package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +11 -11
- package/esm2022/src/app/core/services/platform.service.mjs +102 -69
- package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +32 -39
- package/esm2022/src/app/core/services/storage/entity-store.class.mjs +36 -45
- package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +1 -1
- package/esm2022/src/app/core/services/testing/referential.validator.mjs +14 -14
- package/esm2022/src/app/core/services/validator/account.validator.mjs +5 -5
- package/esm2022/src/app/core/services/validator/base.validator.class.mjs +5 -5
- package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +34 -20
- package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +5 -5
- package/esm2022/src/app/core/services/validator/user-token.validator.mjs +12 -9
- package/esm2022/src/app/core/settings/settings.module.mjs +9 -21
- package/esm2022/src/app/core/settings/settings.page.mjs +76 -63
- package/esm2022/src/app/core/table/async-table.class.mjs +219 -201
- package/esm2022/src/app/core/table/column/actions-column.component.mjs +127 -0
- package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +117 -0
- package/esm2022/src/app/core/table/column/row-field.component.mjs +116 -0
- package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +31 -33
- package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +36 -36
- package/esm2022/src/app/core/table/memory-table.class.mjs +5 -5
- package/esm2022/src/app/core/table/table-select-columns.component.mjs +8 -8
- package/esm2022/src/app/core/table/table.class.mjs +193 -152
- package/esm2022/src/app/core/table/table.model.mjs +1 -1
- package/esm2022/src/app/core/table/table.module.mjs +35 -24
- package/esm2022/src/app/core/table/table.pipes.mjs +77 -0
- package/esm2022/src/app/core/table/table.utils.mjs +2 -4
- package/esm2022/src/app/core/table/testing/table-validator.service.mjs +9 -5
- package/esm2022/src/app/core/table/testing/table.testing.mjs +116 -78
- package/esm2022/src/app/core/table/testing/table.testing.module.mjs +8 -33
- package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +4 -4
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +68 -45
- package/esm2022/src/app/shared/alerts.mjs +49 -45
- package/esm2022/src/app/shared/audio/audio.mjs +25 -27
- package/esm2022/src/app/shared/audio/audio.testing.mjs +5 -5
- package/esm2022/src/app/shared/audio/audio.testing.module.mjs +10 -25
- package/esm2022/src/app/shared/capacitor/keyboard.mjs +5 -5
- package/esm2022/src/app/shared/capacitor/plugins.mjs +1 -1
- package/esm2022/src/app/shared/constants.mjs +9 -4
- package/esm2022/src/app/shared/dates.mjs +18 -16
- package/esm2022/src/app/shared/debug/debug-service.class.mjs +1 -1
- package/esm2022/src/app/shared/debug/debug.component.mjs +5 -5
- package/esm2022/src/app/shared/debug/debug.module.mjs +8 -29
- package/esm2022/src/app/shared/directives/autofocus.directive.mjs +8 -15
- package/esm2022/src/app/shared/directives/autotitle.directive.mjs +4 -4
- package/esm2022/src/app/shared/directives/directives.module.mjs +8 -29
- package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
- package/esm2022/src/app/shared/directives/ng-var.directive.mjs +4 -4
- package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +4 -4
- package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
- package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
- package/esm2022/src/app/shared/events.mjs +6 -8
- package/esm2022/src/app/shared/file/csv.utils.mjs +38 -18
- package/esm2022/src/app/shared/file/file.service.mjs +11 -15
- package/esm2022/src/app/shared/file/file.utils.mjs +13 -11
- package/esm2022/src/app/shared/file/images.utils.mjs +29 -4
- package/esm2022/src/app/shared/file/json.utils.mjs +11 -4
- package/esm2022/src/app/shared/file/uri.utils.mjs +1 -1
- package/esm2022/src/app/shared/focusable.mjs +1 -1
- package/esm2022/src/app/shared/form/field.component.mjs +69 -43
- package/esm2022/src/app/shared/form/field.model.mjs +4 -4
- package/esm2022/src/app/shared/form/loading-spinner.mjs +5 -5
- package/esm2022/src/app/shared/forms.mjs +116 -43
- package/esm2022/src/app/shared/functions.mjs +139 -71
- package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +14 -14
- package/esm2022/src/app/shared/gesture/gesture-config.mjs +10 -10
- package/esm2022/src/app/shared/gesture/hammer.utils.mjs +1 -1
- package/esm2022/src/app/shared/graph/colors.utils.mjs +14 -18
- package/esm2022/src/app/shared/graph/graph-colors.mjs +23 -29
- package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +4 -4
- package/esm2022/src/app/shared/help/help.modal.mjs +6 -6
- package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +5 -5
- package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +44 -17
- package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +9 -27
- package/esm2022/src/app/shared/http/http.utils.mjs +15 -11
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +27 -27
- package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +13 -10
- package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
- package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +14 -17
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +9 -13
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +14 -11
- package/esm2022/src/app/shared/image/image.model.mjs +1 -1
- package/esm2022/src/app/shared/image/image.module.mjs +8 -13
- package/esm2022/src/app/shared/image/image.service.mjs +14 -12
- package/esm2022/src/app/shared/inputs.mjs +52 -20
- package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +2 -3
- package/esm2022/src/app/shared/logging/log-level.model.mjs +1 -1
- package/esm2022/src/app/shared/logging/logger.model.mjs +2 -2
- package/esm2022/src/app/shared/logging/logging-service.class.mjs +17 -20
- package/esm2022/src/app/shared/logging/logging-service.module.mjs +6 -6
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +7 -10
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +348 -238
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +13 -16
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +5 -4
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +51 -37
- package/esm2022/src/app/shared/material/badge/badge.directive.mjs +99 -57
- package/esm2022/src/app/shared/material/badge/badge.module.mjs +8 -20
- package/esm2022/src/app/shared/material/badge/badge.test.mjs +5 -5
- package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +19 -20
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +209 -104
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +15 -8
- package/esm2022/src/app/shared/material/chips/chips.module.mjs +12 -13
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +228 -168
- package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +20 -21
- package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +12 -27
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +167 -92
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +128 -77
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +297 -165
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +34 -30
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +31 -27
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +26 -23
- package/esm2022/src/app/shared/material/duration/duration.module.mjs +11 -16
- package/esm2022/src/app/shared/material/duration/duration.utils.mjs +3 -6
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +35 -34
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +23 -22
- package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +217 -170
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +182 -241
- package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +10 -15
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +19 -14
- package/esm2022/src/app/shared/material/material.animations.mjs +22 -22
- package/esm2022/src/app/shared/material/material.config.mjs +3 -0
- package/esm2022/src/app/shared/material/material.module.mjs +16 -16
- package/esm2022/src/app/shared/material/material.testing.module.mjs +50 -37
- package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +12 -9
- package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +26 -19
- package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +7 -11
- package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +8 -8
- package/esm2022/src/app/shared/material/testing/common.test.mjs +30 -24
- package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +30 -19
- package/esm2022/src/app/shared/material/text/text-form.component.mjs +128 -21
- package/esm2022/src/app/shared/material/text/text-form.module.mjs +8 -8
- package/esm2022/src/app/shared/modules.mjs +1 -1
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +118 -37
- package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +1 -1
- package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +5 -5
- package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +8 -8
- package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +74 -0
- package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +28 -0
- package/esm2022/src/app/shared/observables.mjs +14 -18
- package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +53 -38
- package/esm2022/src/app/shared/pipes/badge.pipes.mjs +24 -0
- package/esm2022/src/app/shared/pipes/colors.pipe.mjs +8 -6
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +8 -10
- package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +15 -15
- package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +6 -6
- package/esm2022/src/app/shared/pipes/duration.pipe.mjs +6 -6
- package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +6 -13
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +72 -47
- package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +15 -15
- package/esm2022/src/app/shared/pipes/html.pipes.mjs +52 -0
- package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +14 -14
- package/esm2022/src/app/shared/pipes/maps.pipe.mjs +17 -17
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +37 -88
- package/esm2022/src/app/shared/pipes/math.pipes.mjs +16 -16
- package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +5 -5
- package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +6 -6
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +117 -137
- package/esm2022/src/app/shared/pipes/property.pipes.mjs +86 -47
- package/esm2022/src/app/shared/pipes/selection.pipes.mjs +179 -0
- package/esm2022/src/app/shared/pipes/string.pipes.mjs +50 -49
- package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +11 -11
- package/esm2022/src/app/shared/pipes/types.pipes.mjs +33 -17
- package/esm2022/src/app/shared/platforms.mjs +7 -5
- package/esm2022/src/app/shared/rx-state.module.mjs +7 -11
- package/esm2022/src/app/shared/services/entity-service.class.mjs +2 -2
- package/esm2022/src/app/shared/services/job.utils.mjs +7 -7
- package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +43 -41
- package/esm2022/src/app/shared/services/progress-bar.service.mjs +4 -4
- package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +11 -14
- package/esm2022/src/app/shared/services/startable-service.class.mjs +11 -17
- package/esm2022/src/app/shared/services/translate-context.service.mjs +18 -15
- package/esm2022/src/app/shared/services/validator-service.class.mjs +1 -1
- package/esm2022/src/app/shared/services.mjs +12 -12
- package/esm2022/src/app/shared/shared-routing.module.mjs +19 -18
- package/esm2022/src/app/shared/shared.module.mjs +29 -28
- package/esm2022/src/app/shared/shared.testing.module.mjs +18 -10
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +39 -46
- package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +8 -12
- package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +9 -17
- package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +10 -18
- package/esm2022/src/app/shared/storage/storage.service.mjs +4 -4
- package/esm2022/src/app/shared/storage/storage.utils.mjs +2 -2
- package/esm2022/src/app/shared/testing/maskito.test.mjs +41 -0
- package/esm2022/src/app/shared/testing/observable.test.mjs +11 -13
- package/esm2022/src/app/shared/testing/tests.page.mjs +6 -6
- package/esm2022/src/app/shared/toast/toast.testing.mjs +11 -11
- package/esm2022/src/app/shared/toast/toast.testing.module.mjs +10 -25
- package/esm2022/src/app/shared/toast/toasts.mjs +9 -9
- package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +10 -8
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +31 -32
- package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +8 -39
- package/esm2022/src/app/shared/types.mjs +1 -1
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +12 -12
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -25
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +7 -8
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +21 -19
- package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +2 -3
- package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +64 -56
- package/esm2022/src/app/shared/validator/validators.mjs +60 -39
- package/esm2022/src/app/shared/version/versions.mjs +2 -2
- package/esm2022/src/app/social/job/job.module.mjs +8 -27
- package/esm2022/src/app/social/job/progression/job-progression.component.mjs +9 -9
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +49 -46
- package/esm2022/src/app/social/job/progression/job-progression.list.mjs +10 -13
- package/esm2022/src/app/social/job/progression/job-progression.model.mjs +1 -1
- package/esm2022/src/app/social/job/progression/job-progression.service.mjs +39 -21
- package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +6 -11
- package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +11 -30
- package/esm2022/src/app/social/job/testing/job.testing.module.mjs +8 -21
- package/esm2022/src/app/social/message/message.form.mjs +5 -5
- package/esm2022/src/app/social/message/message.modal.mjs +8 -8
- package/esm2022/src/app/social/message/message.model.mjs +8 -8
- package/esm2022/src/app/social/message/message.module.mjs +4 -4
- package/esm2022/src/app/social/message/message.service.mjs +7 -7
- package/esm2022/src/app/social/social.errors.mjs +2 -2
- package/esm2022/src/app/social/social.module.mjs +7 -32
- package/esm2022/src/app/social/social.testing.module.mjs +9 -20
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +27 -23
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +19 -22
- package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +47 -23
- package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +8 -8
- package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +8 -21
- package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +27 -15
- package/esm2022/src/app/social/user-event/user-event.model.mjs +1 -1
- package/esm2022/src/app/social/user-event/user-event.module.mjs +8 -28
- package/esm2022/src/app/social/user-event/user-event.service.mjs +61 -64
- package/esm2022/src/environments/environment.class.mjs +9 -1
- package/esm2022/src/environments/environment.loader.mjs +5 -11
- package/esm2022/src/environments/environment.mjs +19 -11
- package/fesm2022/sumaris-net.ngx-components.mjs +16117 -14592
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +33 -18
- package/public_api.d.ts +30 -22
- package/src/app/admin/services/filter/person.filter.d.ts +1 -1
- package/src/app/admin/users/users.d.ts +5 -6
- package/src/app/core/account/account.module.d.ts +10 -8
- package/src/app/core/account/account.page.d.ts +25 -15
- package/src/app/core/account/new-token.form.d.ts +29 -0
- package/src/app/core/account/new-token.modal.d.ts +9 -21
- package/src/app/core/account/password/change-password.form.d.ts +19 -0
- package/src/app/core/account/password/change-password.module.d.ts +11 -0
- package/src/app/core/account/password/change-password.page.d.ts +36 -0
- package/src/app/core/account/token.table.d.ts +7 -5
- package/src/app/core/auth/auth.form.d.ts +11 -9
- package/src/app/core/auth/auth.module.d.ts +6 -4
- package/src/app/core/auth/reset-password.modal.d.ts +26 -0
- package/src/app/core/core.module.d.ts +21 -24
- package/src/app/core/core.testing.module.d.ts +2 -1
- package/src/app/core/form/array/form-array.d.ts +136 -0
- package/src/app/core/form/array/testing/form-array-test.module.d.ts +12 -0
- package/src/app/core/form/array/testing/form-array.test.d.ts +26 -0
- package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +2 -3
- package/src/app/core/form/entity/editor.class.d.ts +19 -179
- package/src/app/core/form/entity/entity-editor-modal.class.d.ts +10 -13
- package/src/app/core/form/entity/entity-editor.class.d.ts +12 -17
- package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
- package/src/app/core/form/entity/tab-editor.class.d.ts +70 -0
- package/src/app/core/form/form-container.class.d.ts +126 -0
- package/src/app/core/form/form.class.d.ts +13 -26
- package/src/app/core/form/form.module.d.ts +2 -1
- package/src/app/core/form/form.utils.d.ts +60 -145
- package/src/app/core/form/list/list.form.d.ts +2 -2
- package/src/app/core/form/properties/properties.form.d.ts +34 -12
- package/src/app/core/form/properties/properties.table.d.ts +2 -2
- package/src/app/core/form/properties/properties.utils.d.ts +27 -0
- package/src/app/core/form/properties/property.validator.d.ts +9 -3
- package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +3 -1
- package/src/app/core/form/username/username.form.d.ts +19 -0
- package/src/app/core/form/username/username.module.d.ts +9 -0
- package/src/app/core/graphql/graphql.module.d.ts +1 -2
- package/src/app/core/graphql/graphql.service.d.ts +2 -4
- package/src/app/core/home/home.d.ts +26 -6
- package/src/app/core/menu/testing/menu-other.testing.d.ts +1 -1
- package/src/app/core/menu/testing/menu.testing.d.ts +11 -3
- package/src/app/core/peer/select-peer.modal.d.ts +13 -7
- package/src/app/core/peer/select-peer.module.d.ts +3 -4
- package/src/app/core/services/account.service.d.ts +9 -0
- package/src/app/core/services/base-entity-service.class.d.ts +1 -1
- package/src/app/core/services/config/core.config.d.ts +12 -1
- package/src/app/core/services/config.service.d.ts +4 -3
- package/src/app/core/services/errors.d.ts +11 -0
- package/src/app/core/services/local-settings.service.d.ts +8 -4
- package/src/app/core/services/model/entity.model.d.ts +6 -5
- package/src/app/core/services/model/filter.model.d.ts +1 -1
- package/src/app/core/services/model/peer.model.d.ts +1 -0
- package/src/app/core/services/model/person.model.d.ts +6 -2
- package/src/app/core/services/model/referential.model.d.ts +8 -3
- package/src/app/core/services/model/settings.model.d.ts +4 -2
- package/src/app/core/services/model/token.model.d.ts +1 -0
- package/src/app/core/services/model/tree-item-entity.model.d.ts +1 -1
- package/src/app/core/services/network.service.d.ts +11 -7
- package/src/app/core/services/pipes/department-to-string.pipe.d.ts +1 -1
- package/src/app/core/services/pipes/person-to-string.pipe.d.ts +3 -1
- package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
- package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +13 -0
- package/src/app/core/services/platform.service.d.ts +8 -3
- package/src/app/core/services/testing/referential-filter.model.d.ts +1 -1
- package/src/app/core/services/validator/local-settings.validator.d.ts +6 -2
- package/src/app/core/settings/settings.module.d.ts +2 -1
- package/src/app/core/settings/settings.page.d.ts +34 -21
- package/src/app/core/table/async-table.class.d.ts +22 -17
- package/src/app/core/table/column/actions-column.component.d.ts +59 -0
- package/src/app/core/table/column/nav-actions-column.component.d.ts +46 -0
- package/src/app/core/table/column/row-field.component.d.ts +40 -0
- package/src/app/core/table/entities-async-table-datasource.class.d.ts +1 -0
- package/src/app/core/table/entities-table-datasource.class.d.ts +1 -0
- package/src/app/core/table/table.class.d.ts +14 -11
- package/src/app/core/table/table.module.d.ts +8 -4
- package/src/app/core/table/table.pipes.d.ts +28 -0
- package/src/app/core/table/testing/table.testing.d.ts +12 -13
- package/src/app/core/table/testing/table2.testing.d.ts +13 -10
- package/src/app/shared/alerts.d.ts +4 -2
- package/src/app/shared/constants.d.ts +5 -0
- package/src/app/shared/dates.d.ts +12 -5
- package/src/app/shared/directives/autofocus.directive.d.ts +0 -1
- package/src/app/shared/events.d.ts +1 -1
- package/src/app/shared/file/csv.utils.d.ts +5 -0
- package/src/app/shared/file/images.utils.d.ts +17 -0
- package/src/app/shared/file/json.utils.d.ts +3 -0
- package/src/app/shared/form/field.component.d.ts +6 -3
- package/src/app/shared/forms.d.ts +32 -0
- package/src/app/shared/functions.d.ts +27 -8
- package/src/app/shared/graph/graph-colors.d.ts +1 -1
- package/src/app/shared/guard/component-dirty.guard.d.ts +1 -6
- package/src/app/shared/hotkeys/hotkeys.service.d.ts +17 -3
- package/src/app/shared/http/http.utils.d.ts +1 -0
- package/src/app/shared/image/gallery/image-gallery.component.d.ts +10 -10
- package/src/app/shared/image/gallery/image-gallery.module.d.ts +2 -1
- package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +2 -2
- package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +2 -1
- package/src/app/shared/inputs.d.ts +8 -6
- package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +20 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +56 -16
- package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +1 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +2 -1
- package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +3 -2
- package/src/app/shared/material/badge/badge.directive.d.ts +10 -4
- package/src/app/shared/material/boolean/boolean.module.d.ts +15 -14
- package/src/app/shared/material/boolean/material.boolean.d.ts +51 -25
- package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +1 -0
- package/src/app/shared/material/chips/chips.module.d.ts +2 -1
- package/src/app/shared/material/chips/material.chips.d.ts +46 -21
- package/src/app/shared/material/chips/testing/chips.test.d.ts +1 -0
- package/src/app/shared/material/datetime/datetime.module.d.ts +1 -1
- package/src/app/shared/material/datetime/material.date.d.ts +33 -18
- package/src/app/shared/material/datetime/material.dateshort.d.ts +29 -16
- package/src/app/shared/material/datetime/material.datetime.d.ts +41 -28
- package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +3 -3
- package/src/app/shared/material/duration/duration.module.d.ts +1 -1
- package/src/app/shared/material/duration/material.duration.d.ts +1 -1
- package/src/app/shared/material/latlong/latlong.utils.d.ts +9 -1
- package/src/app/shared/material/latlong/material.latlong.d.ts +29 -32
- package/src/app/shared/material/latlong/material.latlong.module.d.ts +1 -1
- package/src/app/shared/material/latlong/testing/latlong.test.d.ts +5 -1
- package/src/app/shared/material/material.config.d.ts +3 -0
- package/src/app/shared/material/material.module.d.ts +5 -6
- package/src/app/shared/material/material.testing.module.d.ts +8 -7
- package/src/app/shared/material/swipe/material.swipe.d.ts +4 -3
- package/src/app/shared/material/text/testing/text-form.testing.d.ts +10 -4
- package/src/app/shared/material/text/text-form.component.d.ts +42 -8
- package/src/app/shared/named-filter/named-filter-selector.component.d.ts +30 -14
- package/src/app/shared/named-filter/named-filter.service.d.ts +12 -6
- package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +34 -0
- package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +10 -0
- package/src/app/shared/pipes/arrays.pipe.d.ts +5 -0
- package/src/app/shared/pipes/badge.pipes.d.ts +7 -0
- package/src/app/shared/pipes/date-format.pipe.d.ts +3 -2
- package/src/app/shared/pipes/form.pipes.d.ts +18 -8
- package/src/app/shared/pipes/html.pipes.d.ts +15 -0
- package/src/app/shared/pipes/maps.pipe.d.ts +4 -4
- package/src/app/shared/pipes/maskito.pipe.d.ts +7 -9
- package/src/app/shared/pipes/pipes.module.d.ts +7 -4
- package/src/app/shared/pipes/property.pipes.d.ts +24 -3
- package/src/app/shared/pipes/selection.pipes.d.ts +62 -0
- package/src/app/shared/pipes/string.pipes.d.ts +6 -6
- package/src/app/shared/pipes/types.pipes.d.ts +6 -1
- package/src/app/shared/services/entity-service.class.d.ts +0 -2
- package/src/app/shared/services/memory-entity-service.class.d.ts +6 -3
- package/src/app/shared/services.d.ts +1 -0
- package/src/app/shared/shared.testing.module.d.ts +2 -1
- package/src/app/shared/storage/storage-explorer.component.d.ts +4 -3
- package/src/app/shared/testing/maskito.test.d.ts +10 -0
- package/src/app/shared/toolbar/toolbar.d.ts +7 -2
- package/src/app/shared/types.d.ts +5 -0
- package/src/app/shared/upload-file/upload-file.component.d.ts +1 -0
- package/src/app/shared/validator/form-error-adapter.class.d.ts +17 -11
- package/src/app/shared/validator/validators.d.ts +20 -9
- package/src/app/social/job/progression/job-progression.icon.d.ts +4 -5
- package/src/app/social/job/progression/job-progression.list.d.ts +1 -3
- package/src/app/social/job/progression/job-progression.service.d.ts +3 -4
- package/src/app/social/job/testing/job-progression.testing.d.ts +0 -1
- package/src/app/social/job/testing/job-progression.testing.service.d.ts +3 -11
- package/src/app/social/message/message.modal.d.ts +2 -2
- package/src/app/social/message/message.model.d.ts +1 -1
- package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -4
- package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -0
- package/src/app/social/user-event/testing/user-event.testing.model.d.ts +2 -3
- package/src/app/social/user-event/testing/user-event.testing.service.d.ts +1 -0
- package/src/assets/i18n/en-US.json +48 -19
- package/src/assets/i18n/en.json +48 -20
- package/src/assets/i18n/fr.json +50 -20
- package/src/assets/manifest.json +1 -1
- package/src/environments/environment.class.d.ts +10 -0
- package/src/environments/environment.d.ts +0 -1
- package/src/environments/environment.loader.d.ts +0 -2
- package/src/theme/_functions.scss +15 -0
- package/src/theme/_icons.scss +1 -1
- package/src/theme/_ionic.globals.scss +8 -2
- package/src/theme/_ionic.scss +10 -10
- package/src/theme/_material.globals.scss +16 -43
- package/src/theme/_material.scss +45 -32
- package/src/theme/_mixins.scss +99 -18
- package/src/theme/_ngx-components.forms.scss +354 -0
- package/src/theme/_ngx-components.globals.scss +20 -10
- package/src/theme/_ngx-components.scss +194 -400
- package/src/theme/_ngx-components.table.scss +200 -207
- package/src/theme/_ngx-components.tabs.scss +54 -0
- package/src/theme/_responsive.scss +0 -31
- package/src/theme/_theme.scss +2 -0
- package/src/theme/_theme.variables.scss +172 -0
- package/esm2022/src/app/core/table/actions-column.component.mjs +0 -115
- package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +0 -266
- package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -104
- package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +0 -83
- package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +0 -203
- package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +0 -19
- package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +0 -168
- package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -36
- package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +0 -16
- package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +0 -60
- package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -48
- package/src/app/core/table/actions-column.component.d.ts +0 -48
- package/src/app/shared/material/boolean/material-boolean2.d.ts +0 -66
- package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +0 -22
- package/src/app/shared/material/numpad/numpad.component.d.ts +0 -26
- package/src/app/shared/material/numpad/numpad.container.d.ts +0 -40
- package/src/app/shared/material/numpad/numpad.content.d.ts +0 -7
- package/src/app/shared/material/numpad/numpad.directive.d.ts +0 -35
- package/src/app/shared/material/numpad/numpad.dom-service.d.ts +0 -16
- package/src/app/shared/material/numpad/numpad.model.d.ts +0 -30
- package/src/app/shared/material/numpad/numpad.module.d.ts +0 -16
- package/src/app/shared/material/numpad/testing/numpad.test.d.ts +0 -13
|
@@ -3,18 +3,17 @@ import { AccountService } from '../services/account.service';
|
|
|
3
3
|
import { LocaleConfig, LocalSettings, UsageMode } from '../services/model/settings.model';
|
|
4
4
|
import { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';
|
|
5
5
|
import { AppForm } from '../form/form.class';
|
|
6
|
-
import {
|
|
6
|
+
import { CanLeave } from '../form/form.utils';
|
|
7
7
|
import { TranslateService } from '@ngx-translate/core';
|
|
8
8
|
import { LocalSettingsValidatorService } from '../services/validator/local-settings.validator';
|
|
9
9
|
import { PlatformService } from '../services/platform.service';
|
|
10
10
|
import { NetworkService } from '../services/network.service';
|
|
11
11
|
import { LocalSettingsService } from '../services/local-settings.service';
|
|
12
|
-
import { FormFieldDefinition
|
|
12
|
+
import { FormFieldDefinition } from '../../shared/form/field.model';
|
|
13
13
|
import { AlertController, NavController } from '@ionic/angular';
|
|
14
|
-
import { Property } from '../../shared/types';
|
|
15
|
-
import { CanLeave } from '../../shared/guard/component-dirty.guard';
|
|
16
14
|
import { ISelectPeerModalOptions } from '../peer/select-peer.modal';
|
|
17
15
|
import { IMenuItem } from '../menu/menu.model';
|
|
16
|
+
import { AppPropertiesForm } from '../form/properties/properties.form';
|
|
18
17
|
import * as i0 from "@angular/core";
|
|
19
18
|
export declare const APP_SETTINGS_MENU_ITEMS: InjectionToken<IMenuItem[]>;
|
|
20
19
|
export declare class SettingsPage extends AppForm<LocalSettings> implements OnInit, OnDestroy, CanLeave {
|
|
@@ -30,25 +29,21 @@ export declare class SettingsPage extends AppForm<LocalSettings> implements OnIn
|
|
|
30
29
|
network: NetworkService;
|
|
31
30
|
locales: LocaleConfig[];
|
|
32
31
|
private data;
|
|
33
|
-
mobile: boolean;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
[index: number]: FormFieldDefinition;
|
|
41
|
-
};
|
|
42
|
-
propertiesFormHelper: FormArrayHelper<Property>;
|
|
43
|
-
latLongFormats: string[];
|
|
32
|
+
protected mobile: boolean;
|
|
33
|
+
protected isAdmin: boolean;
|
|
34
|
+
protected saving: boolean;
|
|
35
|
+
protected usageModes: UsageMode[];
|
|
36
|
+
protected menuItems: IMenuItem[];
|
|
37
|
+
protected propertyDefinitions: FormFieldDefinition[];
|
|
38
|
+
protected latLongFormats: string[];
|
|
44
39
|
get accountInheritance(): boolean;
|
|
45
40
|
get isLogin(): boolean;
|
|
46
|
-
get
|
|
41
|
+
get propertiesFormArray(): UntypedFormArray;
|
|
42
|
+
get darkMode(): boolean;
|
|
43
|
+
set darkMode(value: boolean);
|
|
44
|
+
propertiesForm: AppPropertiesForm;
|
|
47
45
|
constructor(injector: Injector, platform: PlatformService, navController: NavController, validatorService: LocalSettingsValidatorService, alertCtrl: AlertController, translate: TranslateService, formBuilder: UntypedFormBuilder, accountService: AccountService, settings: LocalSettingsService, cd: ChangeDetectorRef, network: NetworkService, locales: LocaleConfig[], menuItems?: IMenuItem[]);
|
|
48
46
|
ngOnInit(): Promise<void>;
|
|
49
|
-
getPropertyDefinition(index: number): FormFieldDefinition;
|
|
50
|
-
updatePropertyDefinition(index: number): FormFieldDefinition;
|
|
51
|
-
removePropertyAt(index: number): void;
|
|
52
47
|
load(): Promise<void>;
|
|
53
48
|
updateView(data: LocalSettings): void;
|
|
54
49
|
save(event?: Event, options?: any): Promise<boolean>;
|
|
@@ -60,8 +55,26 @@ export declare class SettingsPage extends AppForm<LocalSettings> implements OnIn
|
|
|
60
55
|
close(_?: Event): Promise<boolean>;
|
|
61
56
|
clearCache(event?: Event): Promise<void>;
|
|
62
57
|
executeAction(event: Event, item: IMenuItem): Promise<void>;
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
getValue(): Promise<LocalSettings>;
|
|
59
|
+
markAsLoading(): void;
|
|
60
|
+
markAsLoaded(opts?: {
|
|
61
|
+
emitEvent?: boolean;
|
|
62
|
+
}): void;
|
|
63
|
+
get loading(): boolean;
|
|
64
|
+
get loaded(): boolean;
|
|
65
|
+
enable(opts?: {
|
|
66
|
+
onlySelf?: boolean;
|
|
67
|
+
emitEvent?: boolean;
|
|
68
|
+
}): void;
|
|
69
|
+
disable(opts?: {
|
|
70
|
+
onlySelf?: boolean;
|
|
71
|
+
emitEvent?: boolean;
|
|
72
|
+
}): void;
|
|
73
|
+
markAsPristine(opts?: {
|
|
74
|
+
onlySelf?: boolean;
|
|
75
|
+
emitEvent?: boolean;
|
|
76
|
+
}): void;
|
|
77
|
+
protected toggleDarkMode(enable?: boolean): Promise<void>;
|
|
65
78
|
protected markForCheck(): void;
|
|
66
79
|
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsPage, [null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
|
|
67
80
|
static ɵcmp: i0.ɵɵComponentDeclaration<SettingsPage, "page-settings", never, {}, {}, never, never, false, never>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { AfterViewInit, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { MatPaginator } from '@angular/material/paginator';
|
|
3
3
|
import { MatSort, MatSortable, SortDirection } from '@angular/material/sort';
|
|
4
4
|
import { MatTable } from '@angular/material/table';
|
|
5
5
|
import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';
|
|
6
6
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
7
7
|
import { IEntity } from '../services/model/entity.model';
|
|
8
|
-
import { AlertController, ModalController, ToastController } from '@ionic/angular';
|
|
8
|
+
import { AlertController, ModalController, NavController, ToastController } from '@ionic/angular';
|
|
9
9
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
10
10
|
import { ColumnItem } from './table-select-columns.component';
|
|
11
11
|
import { Location } from '@angular/common';
|
|
12
|
-
import { IAppForm } from '../form/form.utils';
|
|
12
|
+
import { CanSave, IAppForm } from '../form/form.utils';
|
|
13
13
|
import { LocalSettingsService } from '../services/local-settings.service';
|
|
14
14
|
import { TranslateService } from '@ngx-translate/core';
|
|
15
15
|
import { MatAutocompleteConfigHolder, MatAutocompleteFieldAddOptions, MatAutocompleteFieldConfig } from '../../shared/material/autocomplete/material.autocomplete.config';
|
|
@@ -18,12 +18,12 @@ import { WaitForOptions } from '../../shared/observables';
|
|
|
18
18
|
import { ShowToastOptions } from '../../shared/toast/toasts';
|
|
19
19
|
import { CdkColumnDef } from '@angular/cdk/table';
|
|
20
20
|
import { LoadResult } from '../../shared/services/entity-service.class';
|
|
21
|
-
import {
|
|
21
|
+
import { FormErrorTranslateOptions, FormErrorTranslator, IFormPathTranslator } from '../../shared/validator/form-error-adapter.class';
|
|
22
22
|
import { SaveActionType } from './table.model';
|
|
23
23
|
import { AsyncTableElement } from '@e-is/ngx-material-table';
|
|
24
24
|
import { EntitiesAsyncTableDataSource } from './entities-async-table-datasource.class';
|
|
25
25
|
import * as i0 from "@angular/core";
|
|
26
|
-
export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, ID = number> implements OnInit, OnDestroy, AfterViewInit, IAppForm,
|
|
26
|
+
export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, ID = number> implements OnInit, OnDestroy, AfterViewInit, IAppForm, CanSave, IFormPathTranslator {
|
|
27
27
|
protected columns: string[];
|
|
28
28
|
protected _dataSource?: EntitiesAsyncTableDataSource<T, F, ID>;
|
|
29
29
|
private _filter?;
|
|
@@ -34,8 +34,10 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
34
34
|
protected _enabled: boolean;
|
|
35
35
|
protected _autocompleteConfigHolder: MatAutocompleteConfigHolder;
|
|
36
36
|
protected allowRowDetail: boolean;
|
|
37
|
+
protected readonly cd: ChangeDetectorRef;
|
|
37
38
|
protected route: ActivatedRoute;
|
|
38
39
|
protected router: Router;
|
|
40
|
+
protected navController: NavController;
|
|
39
41
|
protected location: Location;
|
|
40
42
|
protected settings: LocalSettingsService;
|
|
41
43
|
protected translate: TranslateService;
|
|
@@ -49,7 +51,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
49
51
|
displayedColumns: string[];
|
|
50
52
|
totalRowCount: number | null;
|
|
51
53
|
visibleRowCount: number;
|
|
52
|
-
|
|
54
|
+
errorTranslateOptions: FormErrorTranslateOptions;
|
|
53
55
|
readonly readySubject: BehaviorSubject<boolean>;
|
|
54
56
|
readonly loadingSubject: BehaviorSubject<boolean>;
|
|
55
57
|
readonly savingSubject: BehaviorSubject<boolean>;
|
|
@@ -203,7 +205,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
203
205
|
setFilter(filter: F, opts?: {
|
|
204
206
|
emitEvent?: boolean;
|
|
205
207
|
permanentSelectionChangedPrevented?: boolean;
|
|
206
|
-
}): void
|
|
208
|
+
}): Promise<void>;
|
|
207
209
|
confirmAndAdd(event?: Event, row?: AsyncTableElement<T>): Promise<boolean>;
|
|
208
210
|
confirmAndBackward(event?: Event, row?: AsyncTableElement<T>): Promise<boolean>;
|
|
209
211
|
confirmAndForward(event?: Event, row?: AsyncTableElement<T>): Promise<boolean>;
|
|
@@ -260,11 +262,12 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
260
262
|
}): Promise<number>;
|
|
261
263
|
selectRowById(id: number): Promise<boolean>;
|
|
262
264
|
/**
|
|
263
|
-
* Try to select row by data. Will use
|
|
265
|
+
* Try to select row by data. Will use equals() to find same row's data
|
|
264
266
|
*
|
|
265
267
|
* @param data
|
|
266
268
|
*/
|
|
267
269
|
selectRowByData(data: T): Promise<boolean>;
|
|
270
|
+
toggleSelectRow(event: Event, row: AsyncTableElement<T>): void;
|
|
268
271
|
clickRow(event: Event | undefined, row: AsyncTableElement<T>): Promise<boolean>;
|
|
269
272
|
moveRow(id: number, direction: number): Promise<void>;
|
|
270
273
|
ready(opts?: WaitForOptions): Promise<void>;
|
|
@@ -274,7 +277,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
274
277
|
doRefresh(event?: CompletableEvent): void;
|
|
275
278
|
getCurrentColumns(): ColumnItem[];
|
|
276
279
|
escapeEditingRow(event?: Event, row?: AsyncTableElement<T>): Promise<void>;
|
|
277
|
-
|
|
280
|
+
translateFormPath(path: string): string;
|
|
278
281
|
protected editRow(event: Event | undefined, row: AsyncTableElement<T>, opts?: {
|
|
279
282
|
focusColumn?: string;
|
|
280
283
|
}): Promise<boolean>;
|
|
@@ -335,6 +338,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
335
338
|
protected getShowColumn(columnName: string): boolean;
|
|
336
339
|
protected startsWithUpperCase(input: string, search: string): boolean;
|
|
337
340
|
protected markForCheck(): void;
|
|
341
|
+
protected detectChanges(): void;
|
|
338
342
|
protected askDeleteConfirmation(event?: Event, rows?: AsyncTableElement<T>[]): Promise<boolean>;
|
|
339
343
|
protected askCancelConfirmation(event?: Event, rows?: AsyncTableElement<T>[]): Promise<boolean>;
|
|
340
344
|
protected askRestoreConfirmation(event?: Event): Promise<boolean>;
|
|
@@ -342,12 +346,12 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
342
346
|
protected resetError(opts?: {
|
|
343
347
|
emitEvent?: boolean;
|
|
344
348
|
}): void;
|
|
345
|
-
protected getRowError(row?: AsyncTableElement<T>, opts?:
|
|
349
|
+
protected getRowError(row?: AsyncTableElement<T>, opts?: FormErrorTranslateOptions): string;
|
|
346
350
|
protected setError(value: string, opts?: {
|
|
347
351
|
emitEvent?: boolean;
|
|
348
352
|
}): void;
|
|
349
353
|
/**
|
|
350
|
-
* Compare data equality (default by id)
|
|
354
|
+
* Compare data equality (default by id, using EntityUtils.equals())
|
|
351
355
|
* Can be overridden to add additional properties to compare
|
|
352
356
|
*
|
|
353
357
|
* @param d1
|
|
@@ -361,6 +365,13 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
361
365
|
}): void;
|
|
362
366
|
protected getPageSettings<T = any>(propertyName?: string): T;
|
|
363
367
|
protected savePageSettings(value: any, propertyName?: string): Promise<void>;
|
|
368
|
+
protected emitRefresh(value?: any): void;
|
|
369
|
+
/**
|
|
370
|
+
* Initialize the permanent selection model
|
|
371
|
+
*
|
|
372
|
+
* @protected
|
|
373
|
+
*/
|
|
374
|
+
protected initPermanentSelection(): void;
|
|
364
375
|
private listenSortAndPaginationEvents;
|
|
365
376
|
private editRowById;
|
|
366
377
|
private setLoading;
|
|
@@ -373,12 +384,6 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
|
|
|
373
384
|
private listenDatasourceLoading;
|
|
374
385
|
private startCellValueChanges;
|
|
375
386
|
private stopCellValueChanges;
|
|
376
|
-
/**
|
|
377
|
-
* Initialize the permanent selection model
|
|
378
|
-
*
|
|
379
|
-
* @protected
|
|
380
|
-
*/
|
|
381
|
-
private initPermanentSelection;
|
|
382
387
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppAsyncTable<any, any, any>, never>;
|
|
383
388
|
static ɵdir: i0.ɵɵDirectiveDeclaration<AppAsyncTable<any, any, any>, never, never, { "settingsId": { "alias": "settingsId"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "i18nColumnPrefix": { "alias": "i18nColumnPrefix"; "required": false; }; "i18nColumnSuffix": { "alias": "i18nColumnSuffix"; "required": false; }; "autoLoad": { "alias": "autoLoad"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "inlineEdition": { "alias": "inlineEdition"; "required": false; }; "focusFirstColumn": { "alias": "focusFirstColumn"; "required": false; }; "confirmBeforeDelete": { "alias": "confirmBeforeDelete"; "required": false; }; "confirmBeforeCancel": { "alias": "confirmBeforeCancel"; "required": false; }; "undoableDeletion": { "alias": "undoableDeletion"; "required": false; }; "saveBeforeDelete": { "alias": "saveBeforeDelete"; "required": false; }; "keepEditedRowOnSave": { "alias": "keepEditedRowOnSave"; "required": false; }; "saveBeforeSort": { "alias": "saveBeforeSort"; "required": false; }; "saveBeforeFilter": { "alias": "saveBeforeFilter"; "required": false; }; "propagateRowError": { "alias": "propagateRowError"; "required": false; }; "permanentSelectionAllowed": { "alias": "permanentSelectionAllowed"; "required": false; }; "defaultSortBy": { "alias": "defaultSortBy"; "required": false; }; "defaultSortDirection": { "alias": "defaultSortDirection"; "required": false; }; "defaultPageSize": { "alias": "defaultPageSize"; "required": false; }; "defaultPageSizeOptions": { "alias": "defaultPageSizeOptions"; "required": false; }; "focusColumn": { "alias": "focusColumn"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; }, { "onRefresh": "onRefresh"; "onOpenRow": "onOpenRow"; "onNewRow": "onNewRow"; "onStartEditingRow": "onStartEditingRow"; "onConfirmEditCreateRow": "onConfirmEditCreateRow"; "onCancelOrDeleteRow": "onCancelOrDeleteRow"; "onBeforeDeleteRows": "onBeforeDeleteRows"; "onBeforeCancelRows": "onBeforeCancelRows"; "onBeforeSave": "onBeforeSave"; "onAfterDeletedRows": "onAfterDeletedRows"; "onSort": "onSort"; "onDirty": "onDirty"; "onError": "onError"; }, never, never, false, never>;
|
|
384
389
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
|
|
2
|
+
import { AsyncTableElement, TableElement } from '@e-is/ngx-material-table';
|
|
3
|
+
import { MatColumnDef, MatTable } from '@angular/material/table';
|
|
4
|
+
import { MatMenuTrigger } from '@angular/material/menu';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ActionsColumnComponent<T extends TableElement<any> | AsyncTableElement<any> = TableElement<any>> implements OnInit, OnDestroy {
|
|
7
|
+
private table;
|
|
8
|
+
private cd;
|
|
9
|
+
columnDef: MatColumnDef;
|
|
10
|
+
matMenuTrigger: MatMenuTrigger;
|
|
11
|
+
matColumnDef: string;
|
|
12
|
+
style: 'table' | 'mat-table';
|
|
13
|
+
stickyEnd: boolean;
|
|
14
|
+
canCancel: boolean;
|
|
15
|
+
canConfirm: boolean;
|
|
16
|
+
canDelete: boolean;
|
|
17
|
+
canBackward: boolean;
|
|
18
|
+
canForward: boolean;
|
|
19
|
+
canConfirmAndAdd: boolean;
|
|
20
|
+
dirtyIcon: boolean | string;
|
|
21
|
+
optionsTitle: string;
|
|
22
|
+
classList: string;
|
|
23
|
+
cellTemplate: TemplateRef<{
|
|
24
|
+
$implicit: T;
|
|
25
|
+
}>;
|
|
26
|
+
optionsClick: EventEmitter<Event>;
|
|
27
|
+
cancelOrDeleteClick: EventEmitter<{
|
|
28
|
+
event: Event;
|
|
29
|
+
row: T;
|
|
30
|
+
}>;
|
|
31
|
+
confirmEditCreateClick: EventEmitter<{
|
|
32
|
+
event: Event;
|
|
33
|
+
row: T;
|
|
34
|
+
}>;
|
|
35
|
+
confirmAndAddClick: EventEmitter<{
|
|
36
|
+
event: Event;
|
|
37
|
+
row: T;
|
|
38
|
+
}>;
|
|
39
|
+
backward: EventEmitter<{
|
|
40
|
+
event: Event;
|
|
41
|
+
row: T;
|
|
42
|
+
}>;
|
|
43
|
+
forward: EventEmitter<{
|
|
44
|
+
event: Event;
|
|
45
|
+
row: T;
|
|
46
|
+
}>;
|
|
47
|
+
constructor(table: MatTable<any>, cd: ChangeDetectorRef);
|
|
48
|
+
ngOnInit(): void;
|
|
49
|
+
ngOnDestroy(): void;
|
|
50
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ActionsColumnComponent<any>, never>;
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ActionsColumnComponent<any>, "app-actions-column", never, { "matColumnDef": { "alias": "matColumnDef"; "required": false; }; "style": { "alias": "style"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; "canCancel": { "alias": "canCancel"; "required": false; }; "canConfirm": { "alias": "canConfirm"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "canBackward": { "alias": "canBackward"; "required": false; }; "canForward": { "alias": "canForward"; "required": false; }; "canConfirmAndAdd": { "alias": "canConfirmAndAdd"; "required": false; }; "dirtyIcon": { "alias": "dirtyIcon"; "required": false; }; "optionsTitle": { "alias": "optionsTitle"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; }, { "optionsClick": "optionsClick"; "cancelOrDeleteClick": "cancelOrDeleteClick"; "confirmEditCreateClick": "confirmEditCreateClick"; "confirmAndAddClick": "confirmAndAddClick"; "backward": "backward"; "forward": "forward"; }, never, ["[matHeader]", "[matFooter]", "[matHeader]", "[matFooter]"], false, never>;
|
|
52
|
+
static ngAcceptInputType_stickyEnd: unknown;
|
|
53
|
+
static ngAcceptInputType_canCancel: unknown;
|
|
54
|
+
static ngAcceptInputType_canConfirm: unknown;
|
|
55
|
+
static ngAcceptInputType_canDelete: unknown;
|
|
56
|
+
static ngAcceptInputType_canBackward: unknown;
|
|
57
|
+
static ngAcceptInputType_canForward: unknown;
|
|
58
|
+
static ngAcceptInputType_canConfirmAndAdd: unknown;
|
|
59
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
|
|
2
|
+
import { AsyncTableElement, TableElement } from '@e-is/ngx-material-table';
|
|
3
|
+
import { MatColumnDef, MatTable } from '@angular/material/table';
|
|
4
|
+
import { MatMenuTrigger } from '@angular/material/menu';
|
|
5
|
+
import { AppTable } from '../table.class';
|
|
6
|
+
import { AppAsyncTable } from '../async-table.class';
|
|
7
|
+
import { Subject, Subscription } from 'rxjs';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export declare class NavActionsColumnComponent<T extends TableElement<any> | AsyncTableElement<any> = TableElement<any>> implements OnInit, OnDestroy {
|
|
10
|
+
private matTable;
|
|
11
|
+
private cd;
|
|
12
|
+
_subscription: Subscription;
|
|
13
|
+
_forwardEventSubject: Subject<{
|
|
14
|
+
event: Event;
|
|
15
|
+
row: T;
|
|
16
|
+
}>;
|
|
17
|
+
_backwardEventSubject: Subject<{
|
|
18
|
+
event: Event;
|
|
19
|
+
row: T;
|
|
20
|
+
}>;
|
|
21
|
+
columnDef: MatColumnDef;
|
|
22
|
+
matMenuTrigger: MatMenuTrigger;
|
|
23
|
+
appTable: AppTable<any> | AppAsyncTable<any>;
|
|
24
|
+
matColumnDef: string;
|
|
25
|
+
style: 'table' | 'mat-table';
|
|
26
|
+
stickyEnd: boolean;
|
|
27
|
+
showPending: boolean;
|
|
28
|
+
dirtyIcon: boolean | string;
|
|
29
|
+
optionsTitle: string;
|
|
30
|
+
classList: string;
|
|
31
|
+
cellTemplate: TemplateRef<{
|
|
32
|
+
$implicit: T;
|
|
33
|
+
}>;
|
|
34
|
+
throttleTime: number;
|
|
35
|
+
optionsClick: EventEmitter<Event>;
|
|
36
|
+
constructor(matTable: MatTable<any>, cd: ChangeDetectorRef, appTable: AppTable<any>, appAsyncTable: AppAsyncTable<any>);
|
|
37
|
+
ngOnInit(): void;
|
|
38
|
+
ngOnDestroy(): void;
|
|
39
|
+
protected cancelOrDelete(event: Event, row: T): void;
|
|
40
|
+
protected confirmAndForward(event: Event, row: T): void;
|
|
41
|
+
protected confirmAndBackward(event: Event, row: T): void;
|
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NavActionsColumnComponent<any>, [null, null, { optional: true; }, { optional: true; }]>;
|
|
43
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NavActionsColumnComponent<any>, "app-nav-actions-column", never, { "appTable": { "alias": "appTable"; "required": false; }; "matColumnDef": { "alias": "matColumnDef"; "required": false; }; "style": { "alias": "style"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; "showPending": { "alias": "showPending"; "required": false; }; "dirtyIcon": { "alias": "dirtyIcon"; "required": false; }; "optionsTitle": { "alias": "optionsTitle"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "throttleTime": { "alias": "throttleTime"; "required": false; }; }, { "optionsClick": "optionsClick"; }, never, ["[matHeader]", "[matFooter]", "[matHeader]", "[matFooter]"], false, never>;
|
|
44
|
+
static ngAcceptInputType_stickyEnd: unknown;
|
|
45
|
+
static ngAcceptInputType_showPending: unknown;
|
|
46
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { ThemePalette } from '@angular/material/core';
|
|
3
|
+
import { PredefinedColors } from '@ionic/core';
|
|
4
|
+
import { MatFormFieldAppearance } from '@angular/material/form-field';
|
|
5
|
+
import { AppFloatLabelType, FormFieldDefinition } from '../../../shared/form/field.model';
|
|
6
|
+
import { MatColumnDef, MatTable } from '@angular/material/table';
|
|
7
|
+
import { AsyncTableElement, TableElement } from '@e-is/ngx-material-table';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export declare class AppRowField implements OnInit, OnDestroy {
|
|
10
|
+
protected cd: ChangeDetectorRef;
|
|
11
|
+
matTable: MatTable<any>;
|
|
12
|
+
columnDef: MatColumnDef;
|
|
13
|
+
name: string;
|
|
14
|
+
definition: FormFieldDefinition;
|
|
15
|
+
definitionFn: (row: TableElement<any> | AsyncTableElement<any>) => FormFieldDefinition;
|
|
16
|
+
headerI18n: string;
|
|
17
|
+
sortable: boolean;
|
|
18
|
+
resizable: boolean;
|
|
19
|
+
required: boolean;
|
|
20
|
+
readonly: boolean;
|
|
21
|
+
sticky: boolean;
|
|
22
|
+
draggable: boolean;
|
|
23
|
+
disabled: boolean;
|
|
24
|
+
placeholder: string;
|
|
25
|
+
compact: boolean;
|
|
26
|
+
floatLabel: AppFloatLabelType;
|
|
27
|
+
appearance: MatFormFieldAppearance;
|
|
28
|
+
tabindex: number;
|
|
29
|
+
autofocus: boolean;
|
|
30
|
+
clearable: boolean;
|
|
31
|
+
chipColor: ThemePalette | PredefinedColors;
|
|
32
|
+
classList: string;
|
|
33
|
+
debug: boolean;
|
|
34
|
+
protected logPrefix: string;
|
|
35
|
+
constructor(cd: ChangeDetectorRef, matTable: MatTable<any>);
|
|
36
|
+
ngOnInit(): void;
|
|
37
|
+
ngOnDestroy(): void;
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppRowField, never>;
|
|
39
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AppRowField, "app-row-field", never, { "name": { "alias": "name"; "required": false; }; "definition": { "alias": "definition"; "required": false; }; "definitionFn": { "alias": "definitionFn"; "required": false; }; "headerI18n": { "alias": "headerI18n"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "sticky": { "alias": "sticky"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "chipColor": { "alias": "chipColor"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; }, {}, never, never, false, never>;
|
|
40
|
+
}
|
|
@@ -66,6 +66,7 @@ export declare class EntitiesAsyncTableDataSource<T extends IEntity<T, ID>, F =
|
|
|
66
66
|
getEditingRows(): R[];
|
|
67
67
|
getSingleEditingRow(): R;
|
|
68
68
|
hasSomeEditingRow(): boolean;
|
|
69
|
+
hasSomeDirtyRow(): boolean;
|
|
69
70
|
createNew(insertAt?: number, opts?: {
|
|
70
71
|
editing: boolean;
|
|
71
72
|
}): Promise<R | undefined>;
|
|
@@ -80,6 +80,7 @@ export declare class EntitiesTableDataSource<T extends IEntity<T, ID>, F = any,
|
|
|
80
80
|
getRow(id: number): R;
|
|
81
81
|
getRows(): R[];
|
|
82
82
|
hasSomeEditingRow(): boolean;
|
|
83
|
+
hasSomeDirtyRow(): boolean;
|
|
83
84
|
createNew(insertAt?: number, opts?: {
|
|
84
85
|
editing: boolean;
|
|
85
86
|
}): Promise<R | undefined>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { MatSort, MatSortable, SortDirection } from '@angular/material/sort';
|
|
3
3
|
import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';
|
|
4
4
|
import { TableElement } from '@e-is/ngx-material-table';
|
|
@@ -9,7 +9,7 @@ import { AlertController, ModalController, NavController, ToastController } from
|
|
|
9
9
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
10
10
|
import { ColumnItem } from './table-select-columns.component';
|
|
11
11
|
import { Location } from '@angular/common';
|
|
12
|
-
import { IAppForm } from '../form/form.utils';
|
|
12
|
+
import { CanSave, IAppForm } from '../form/form.utils';
|
|
13
13
|
import { LocalSettingsService } from '../services/local-settings.service';
|
|
14
14
|
import { TranslateService } from '@ngx-translate/core';
|
|
15
15
|
import { MatAutocompleteConfigHolder, MatAutocompleteFieldAddOptions, MatAutocompleteFieldConfig } from '../../shared/material/autocomplete/material.autocomplete.config';
|
|
@@ -18,12 +18,12 @@ import { WaitForOptions } from '../../shared/observables';
|
|
|
18
18
|
import { ShowToastOptions } from '../../shared/toast/toasts';
|
|
19
19
|
import { CdkColumnDef } from '@angular/cdk/table';
|
|
20
20
|
import { LoadResult } from '../../shared/services/entity-service.class';
|
|
21
|
-
import {
|
|
21
|
+
import { FormErrorTranslateOptions, FormErrorTranslator, IFormPathTranslator } from '../../shared/validator/form-error-adapter.class';
|
|
22
22
|
import { SaveActionType } from './table.model';
|
|
23
23
|
import { MatPaginator } from '@angular/material/paginator';
|
|
24
24
|
import { MatTable } from '@angular/material/table';
|
|
25
25
|
import * as i0 from "@angular/core";
|
|
26
|
-
export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = number> implements OnInit, OnDestroy, AfterViewInit, IAppForm,
|
|
26
|
+
export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = number> implements OnInit, OnDestroy, AfterViewInit, IAppForm, CanSave, IFormPathTranslator {
|
|
27
27
|
protected columns: string[];
|
|
28
28
|
protected _dataSource?: EntitiesTableDataSource<T, F, ID>;
|
|
29
29
|
private _filter?;
|
|
@@ -34,6 +34,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
34
34
|
protected _enabled: boolean;
|
|
35
35
|
protected _autocompleteConfigHolder: MatAutocompleteConfigHolder;
|
|
36
36
|
protected allowRowDetail: boolean;
|
|
37
|
+
protected readonly cd: ChangeDetectorRef;
|
|
37
38
|
protected route: ActivatedRoute;
|
|
38
39
|
protected router: Router;
|
|
39
40
|
protected navController: NavController;
|
|
@@ -50,7 +51,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
50
51
|
displayedColumns: string[];
|
|
51
52
|
totalRowCount: number | null;
|
|
52
53
|
visibleRowCount: number;
|
|
53
|
-
|
|
54
|
+
errorTranslateOptions: FormErrorTranslateOptions;
|
|
54
55
|
readonly readySubject: BehaviorSubject<boolean>;
|
|
55
56
|
readonly loadingSubject: BehaviorSubject<boolean>;
|
|
56
57
|
readonly savingSubject: BehaviorSubject<boolean>;
|
|
@@ -211,7 +212,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
211
212
|
permanentSelectionChangedPrevented?: boolean;
|
|
212
213
|
}): void;
|
|
213
214
|
confirmAndAdd(event?: Event, row?: TableElement<T>): Promise<boolean>;
|
|
214
|
-
confirmAndBackward(event?: Event, row?: TableElement<T>): boolean
|
|
215
|
+
confirmAndBackward(event?: Event, row?: TableElement<T>): boolean | Promise<boolean>;
|
|
215
216
|
confirmAndForward(event?: Event, row?: TableElement<T>): boolean | Promise<boolean>;
|
|
216
217
|
/**
|
|
217
218
|
* Confirm the creation of the given row, or if not specified the currently edited row
|
|
@@ -271,17 +272,17 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
271
272
|
* @param data
|
|
272
273
|
*/
|
|
273
274
|
selectRowByData(data: T): Promise<boolean>;
|
|
274
|
-
toggleSelectRow(event: Event, row: TableElement<T>): void;
|
|
275
|
+
toggleSelectRow(event: Event | undefined, row: TableElement<T>): void;
|
|
275
276
|
clickRow(event: Event | undefined, row: TableElement<T>): boolean;
|
|
276
277
|
moveRow(id: number, direction: number): void;
|
|
277
278
|
ready(opts?: WaitForOptions): Promise<void>;
|
|
278
279
|
waitIdle(opts?: WaitForOptions): Promise<void>;
|
|
279
|
-
openSelectColumnsModal(
|
|
280
|
+
openSelectColumnsModal(event?: Event): Promise<any>;
|
|
280
281
|
trackByFn(index: number, row: TableElement<T>): number;
|
|
281
282
|
doRefresh(event?: CompletableEvent): void;
|
|
282
283
|
getCurrentColumns(): ColumnItem[];
|
|
283
284
|
escapeEditingRow(event?: Event, row?: TableElement<T>): void;
|
|
284
|
-
|
|
285
|
+
translateFormPath(path: string): string;
|
|
285
286
|
protected editRow(event: Event | undefined, row: TableElement<T>, opts?: {
|
|
286
287
|
focusColumn?: string;
|
|
287
288
|
}): boolean;
|
|
@@ -306,7 +307,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
306
307
|
protected saveBeforeAction(saveAction: SaveActionType): Promise<boolean>;
|
|
307
308
|
/**
|
|
308
309
|
* Open a row detail view. By default, will to open row detail page.
|
|
309
|
-
* Can be
|
|
310
|
+
* Can be overridden by subclasses, BUT prefer to subscribe on onOpenRow
|
|
310
311
|
*
|
|
311
312
|
* @param id
|
|
312
313
|
* @param row
|
|
@@ -342,6 +343,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
342
343
|
protected getShowColumn(columnName: string): boolean;
|
|
343
344
|
protected startsWithUpperCase(input: string, search: string): boolean;
|
|
344
345
|
protected markForCheck(): void;
|
|
346
|
+
protected detectChanges(): void;
|
|
345
347
|
protected askDeleteConfirmation(event?: Event, rows?: TableElement<T>[]): Promise<boolean>;
|
|
346
348
|
protected askCancelConfirmation(event?: Event, rows?: TableElement<T>[]): Promise<boolean>;
|
|
347
349
|
protected askRestoreConfirmation(event?: Event): Promise<boolean>;
|
|
@@ -349,7 +351,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
349
351
|
protected resetError(opts?: {
|
|
350
352
|
emitEvent?: boolean;
|
|
351
353
|
}): void;
|
|
352
|
-
protected getRowError(row?: TableElement<T>, opts?:
|
|
354
|
+
protected getRowError(row?: TableElement<T>, opts?: FormErrorTranslateOptions): string;
|
|
353
355
|
protected setError(value: string, opts?: {
|
|
354
356
|
emitEvent?: boolean;
|
|
355
357
|
}): void;
|
|
@@ -368,6 +370,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
|
|
|
368
370
|
}): void;
|
|
369
371
|
protected getPageSettings<T = any>(propertyName?: string): T;
|
|
370
372
|
protected savePageSettings(value: any, propertyName?: string): Promise<void>;
|
|
373
|
+
protected emitRefresh(value?: any): void;
|
|
371
374
|
/**
|
|
372
375
|
* Initialize the permanent selection model
|
|
373
376
|
*
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./table-select-columns.component";
|
|
3
|
-
import * as i2 from "./actions-column.component";
|
|
4
|
-
import * as i3 from "
|
|
5
|
-
import * as i4 from "
|
|
3
|
+
import * as i2 from "./column/actions-column.component";
|
|
4
|
+
import * as i3 from "./column/nav-actions-column.component";
|
|
5
|
+
import * as i4 from "./column/row-field.component";
|
|
6
|
+
import * as i5 from "./table.pipes";
|
|
7
|
+
import * as i6 from "../../shared/shared.module";
|
|
8
|
+
import * as i7 from "@ngx-translate/core";
|
|
9
|
+
import * as i8 from "../../shared/directives/resizable/resizable.module";
|
|
6
10
|
export declare class AppTableModule {
|
|
7
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppTableModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AppTableModule, [typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent], [typeof
|
|
12
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AppTableModule, [typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent, typeof i3.NavActionsColumnComponent, typeof i4.AppRowField, typeof i5.IsAllSelectedPipe, typeof i5.IsNotAllSelectedPipe], [typeof i6.SharedModule, typeof i7.TranslateModule, typeof i8.ResizableModule], [typeof i7.TranslateModule, typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent, typeof i3.NavActionsColumnComponent, typeof i4.AppRowField, typeof i5.IsAllSelectedPipe, typeof i5.IsNotAllSelectedPipe]>;
|
|
9
13
|
static ɵinj: i0.ɵɵInjectorDeclaration<AppTableModule>;
|
|
10
14
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ChangeDetectorRef, OnDestroy, PipeTransform } from '@angular/core';
|
|
2
|
+
import { SelectionModel } from '@angular/cdk/collections';
|
|
3
|
+
import { AbstractSelectionModelPipe } from '../../shared/pipes/selection.pipes';
|
|
4
|
+
import { AppTable } from './table.class';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export type AppTableRowCountProperty = 'visibleRowCount' | 'totalRowCount';
|
|
8
|
+
export declare abstract class AbstractTableSelectionPipe<R, O, T extends AppTable<any> = AppTable<any>> extends AbstractSelectionModelPipe<any, R, O> {
|
|
9
|
+
private _onRowsChanges;
|
|
10
|
+
protected constructor(_ref: ChangeDetectorRef);
|
|
11
|
+
transform(selectionOrTable: SelectionModel<any> | T, tableOrOpts?: T | O, opts?: O): R;
|
|
12
|
+
protected _subscribe(selection: SelectionModel<any>, table?: T, opts?: O): Subscription;
|
|
13
|
+
protected _dispose(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTableSelectionPipe<any, any, any>, never>;
|
|
15
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<AbstractTableSelectionPipe<any, any, any>, "abstract-table-selection", false>;
|
|
16
|
+
}
|
|
17
|
+
export declare class IsAllSelectedPipe extends AbstractTableSelectionPipe<boolean, AppTableRowCountProperty> implements PipeTransform, OnDestroy {
|
|
18
|
+
constructor(_ref: ChangeDetectorRef);
|
|
19
|
+
protected _transform(selection: SelectionModel<any>, table: AppTable<any>, countPropertyName?: AppTableRowCountProperty): boolean;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsAllSelectedPipe, never>;
|
|
21
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsAllSelectedPipe, "isAllSelected", false>;
|
|
22
|
+
}
|
|
23
|
+
export declare class IsNotAllSelectedPipe extends IsAllSelectedPipe implements PipeTransform, OnDestroy {
|
|
24
|
+
constructor(_ref: ChangeDetectorRef);
|
|
25
|
+
protected _transform(selection: SelectionModel<any>, table: AppTable<any>, countPropertyName?: AppTableRowCountProperty): boolean;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IsNotAllSelectedPipe, never>;
|
|
27
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<IsNotAllSelectedPipe, "isNotAllSelected", false>;
|
|
28
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit,
|
|
1
|
+
import { AfterViewInit, Injector, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { AppTable } from '../table.class';
|
|
3
3
|
import { Referential } from '../../services/model/referential.model';
|
|
4
4
|
import { IonInfiniteScroll } from '@ionic/angular';
|
|
@@ -8,13 +8,11 @@ import { AbstractControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/
|
|
|
8
8
|
import { ReferentialFilter } from '../../services/testing/referential-filter.model';
|
|
9
9
|
import { MatExpansionPanel } from '@angular/material/expansion';
|
|
10
10
|
import { Subscription } from 'rxjs';
|
|
11
|
-
import { FormFieldDefinitionMap } from '../../../shared/form/field.model';
|
|
12
11
|
import * as i0 from "@angular/core";
|
|
13
12
|
export declare class TableTestPage extends AppTable<Referential, ReferentialFilter> implements OnInit, OnDestroy, AfterViewInit {
|
|
14
13
|
protected validatorService: AppValidatorService;
|
|
15
14
|
protected formBuilder: UntypedFormBuilder;
|
|
16
|
-
|
|
17
|
-
readonly maxRowCount = 100;
|
|
15
|
+
static readonly maxRowCount = 100;
|
|
18
16
|
timer: Subscription;
|
|
19
17
|
canEdit: boolean;
|
|
20
18
|
data: Referential[];
|
|
@@ -24,32 +22,33 @@ export declare class TableTestPage extends AppTable<Referential, ReferentialFilt
|
|
|
24
22
|
rowHeight: number;
|
|
25
23
|
permanentSelectionAllowed: boolean;
|
|
26
24
|
readonly statusList: readonly import("../../services/model/referential.model").IStatus[];
|
|
27
|
-
|
|
28
|
-
readonly columnDefinitions: FormFieldDefinitionMap;
|
|
25
|
+
filterPanelFloating: boolean;
|
|
29
26
|
enableInfiniteScroll: boolean;
|
|
30
|
-
|
|
27
|
+
sticky: boolean;
|
|
28
|
+
stickyEnd: boolean;
|
|
31
29
|
get hasMoreData(): boolean;
|
|
32
30
|
filterExpansionPanel: MatExpansionPanel;
|
|
33
31
|
infiniteScroll: IonInfiniteScroll;
|
|
34
32
|
get dataService(): InMemoryEntitiesService<Referential>;
|
|
35
|
-
constructor(injector: Injector, validatorService: AppValidatorService, formBuilder: UntypedFormBuilder
|
|
33
|
+
constructor(injector: Injector, validatorService: AppValidatorService, formBuilder: UntypedFormBuilder);
|
|
36
34
|
ngOnInit(): void;
|
|
37
|
-
ngAfterViewInit(): void
|
|
35
|
+
ngAfterViewInit(): Promise<void>;
|
|
38
36
|
ngOnDestroy(): void;
|
|
39
|
-
protected restoreFilter(): void
|
|
37
|
+
protected restoreFilter(): Promise<void>;
|
|
40
38
|
toggleTimer(): void;
|
|
41
|
-
load(): void
|
|
39
|
+
load(): Promise<void>;
|
|
42
40
|
fetchMore(event: any): Promise<void>;
|
|
43
41
|
save(opts?: {
|
|
44
42
|
keepEditing?: boolean;
|
|
45
43
|
}): Promise<boolean>;
|
|
46
44
|
clearControlValue(event: Event, formControl: AbstractControl): boolean;
|
|
45
|
+
toggleFilterPanelFloating(): void;
|
|
47
46
|
applyFilterAndClosePanel(event?: Event): void;
|
|
47
|
+
closeFilterPanel(): void;
|
|
48
48
|
resetFilter(_?: Event): void;
|
|
49
49
|
startTimer(): void;
|
|
50
50
|
stopTimer(): void;
|
|
51
51
|
protected generateData(offset?: number, size?: number): Referential[];
|
|
52
|
-
protected markForCheck(): void;
|
|
53
52
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableTestPage, never>;
|
|
54
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TableTestPage, "app-table-testing", never, { "enableInfiniteScroll": { "alias": "enableInfiniteScroll"; "required": false; }; "
|
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableTestPage, "app-table-testing", never, { "filterPanelFloating": { "alias": "filterPanelFloating"; "required": false; }; "enableInfiniteScroll": { "alias": "enableInfiniteScroll"; "required": false; }; "sticky": { "alias": "sticky"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; }, {}, never, never, false, never>;
|
|
55
54
|
}
|