@sumaris-net/ngx-components 18.23.58 → 18.23.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/app/admin/admin-routing.module.mjs +4 -4
- package/esm2022/src/app/admin/admin.module.mjs +4 -4
- package/esm2022/src/app/admin/users/person.service.mjs +6 -6
- package/esm2022/src/app/admin/users/person.validator.mjs +3 -3
- package/esm2022/src/app/admin/users/users-select.modal.mjs +3 -3
- package/esm2022/src/app/admin/users/users.mjs +3 -3
- package/esm2022/src/app/admin/users/users.module.mjs +4 -4
- package/esm2022/src/app/core/about/about.modal.mjs +3 -3
- package/esm2022/src/app/core/about/about.module.mjs +4 -4
- package/esm2022/src/app/core/account/account.module.mjs +4 -4
- package/esm2022/src/app/core/account/account.page.mjs +3 -3
- package/esm2022/src/app/core/account/new-token.form.mjs +3 -3
- package/esm2022/src/app/core/account/new-token.modal.mjs +3 -3
- package/esm2022/src/app/core/account/password/change-password.form.mjs +3 -3
- package/esm2022/src/app/core/account/password/change-password.module.mjs +4 -4
- package/esm2022/src/app/core/account/password/change-password.page.mjs +3 -3
- package/esm2022/src/app/core/account/token.table.mjs +3 -3
- package/esm2022/src/app/core/auth/auth.form.mjs +3 -3
- package/esm2022/src/app/core/auth/auth.modal.mjs +3 -3
- package/esm2022/src/app/core/auth/auth.module.mjs +4 -4
- package/esm2022/src/app/core/auth/reset-password.modal.mjs +3 -3
- package/esm2022/src/app/core/core.module.mjs +4 -4
- package/esm2022/src/app/core/core.testing.module.mjs +4 -4
- package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +4 -4
- package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +3 -3
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +3 -3
- package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +4 -4
- package/esm2022/src/app/core/form/entity/editor.class.mjs +3 -3
- package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +3 -3
- package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +3 -3
- package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +3 -3
- package/esm2022/src/app/core/form/entity/entity.module.mjs +4 -4
- package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +3 -3
- package/esm2022/src/app/core/form/form-container.class.mjs +3 -3
- package/esm2022/src/app/core/form/form.class.mjs +3 -3
- package/esm2022/src/app/core/form/form.module.mjs +4 -4
- package/esm2022/src/app/core/form/list/list.form.mjs +3 -3
- package/esm2022/src/app/core/form/list/list.module.mjs +4 -4
- package/esm2022/src/app/core/form/properties/properties-file.service.mjs +3 -3
- package/esm2022/src/app/core/form/properties/properties.form.mjs +3 -3
- package/esm2022/src/app/core/form/properties/properties.module.mjs +4 -4
- package/esm2022/src/app/core/form/properties/properties.table.mjs +6 -6
- package/esm2022/src/app/core/form/properties/property.validator.mjs +3 -3
- package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +3 -3
- package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +4 -4
- package/esm2022/src/app/core/form/text/testing/text-form.testing.mjs +3 -3
- package/esm2022/src/app/core/form/text/testing/text-form.testing.module.mjs +4 -4
- package/esm2022/src/app/core/form/text/text-form.component.mjs +3 -3
- package/esm2022/src/app/core/form/text/text-form.module.mjs +4 -4
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +3 -3
- package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +4 -4
- package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +3 -3
- package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +4 -4
- package/esm2022/src/app/core/form/username/username.form.mjs +3 -3
- package/esm2022/src/app/core/form/username/username.module.mjs +4 -4
- package/esm2022/src/app/core/graphql/graphql.module.mjs +4 -4
- package/esm2022/src/app/core/graphql/graphql.service.mjs +3 -3
- package/esm2022/src/app/core/home/home.mjs +3 -3
- package/esm2022/src/app/core/home/home.module.mjs +4 -4
- package/esm2022/src/app/core/icon/icon.component.mjs +3 -3
- package/esm2022/src/app/core/icon/icon.module.mjs +4 -4
- package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +3 -3
- package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +4 -4
- package/esm2022/src/app/core/menu/menu.component.mjs +3 -3
- package/esm2022/src/app/core/menu/menu.module.mjs +4 -4
- package/esm2022/src/app/core/menu/menu.service.mjs +3 -3
- package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +3 -3
- package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +3 -3
- package/esm2022/src/app/core/menu/testing/menu.testing.mjs +3 -3
- package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +4 -4
- package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
- package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +4 -4
- package/esm2022/src/app/core/peer/select-peer.modal.mjs +3 -3
- package/esm2022/src/app/core/peer/select-peer.module.mjs +4 -4
- package/esm2022/src/app/core/register/register-confirm.page.mjs +3 -3
- package/esm2022/src/app/core/register/register.form.mjs +3 -3
- package/esm2022/src/app/core/register/register.modal.mjs +3 -3
- package/esm2022/src/app/core/register/register.module.mjs +4 -4
- package/esm2022/src/app/core/services/account.service.mjs +3 -3
- package/esm2022/src/app/core/services/auth-guard.service.mjs +3 -3
- package/esm2022/src/app/core/services/base-entity-service.class.mjs +3 -3
- package/esm2022/src/app/core/services/base-graphql-service.class.mjs +3 -3
- package/esm2022/src/app/core/services/config.service.mjs +3 -3
- package/esm2022/src/app/core/services/crypto.service.mjs +3 -3
- package/esm2022/src/app/core/services/local-settings.service.mjs +3 -3
- package/esm2022/src/app/core/services/network.service.mjs +3 -3
- package/esm2022/src/app/core/services/pipes/account.pipes.mjs +8 -8
- package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
- package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
- package/esm2022/src/app/core/services/pipes/pipes.module.mjs +4 -4
- package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +6 -6
- package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
- package/esm2022/src/app/core/services/platform.service.mjs +3 -3
- package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +3 -3
- package/esm2022/src/app/core/services/testing/referential.validator.mjs +3 -3
- package/esm2022/src/app/core/services/validator/account.validator.mjs +3 -3
- package/esm2022/src/app/core/services/validator/base.validator.class.mjs +3 -3
- package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +3 -3
- package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +3 -3
- package/esm2022/src/app/core/services/validator/user-token.validator.mjs +3 -3
- package/esm2022/src/app/core/settings/settings.module.mjs +4 -4
- package/esm2022/src/app/core/settings/settings.page.mjs +3 -3
- package/esm2022/src/app/core/table/async-table.class.mjs +3 -3
- package/esm2022/src/app/core/table/column/actions-column.component.mjs +3 -3
- package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +3 -3
- package/esm2022/src/app/core/table/column/row-field.component.mjs +3 -3
- package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +3 -3
- package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +3 -3
- package/esm2022/src/app/core/table/memory-table.class.mjs +3 -3
- package/esm2022/src/app/core/table/table-select-columns.component.mjs +3 -3
- package/esm2022/src/app/core/table/table.class.mjs +3 -3
- package/esm2022/src/app/core/table/table.module.mjs +4 -4
- package/esm2022/src/app/core/table/table.pipes.mjs +9 -9
- package/esm2022/src/app/core/table/testing/nested-table.testing.mjs +3 -3
- package/esm2022/src/app/core/table/testing/table-validator.service.mjs +3 -3
- package/esm2022/src/app/core/table/testing/table.testing.mjs +3 -3
- package/esm2022/src/app/core/table/testing/table.testing.module.mjs +4 -4
- package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +3 -3
- package/esm2022/src/app/core/table/testing/table2.testing.mjs +3 -3
- package/esm2022/src/app/shared/audio/audio.mjs +3 -3
- package/esm2022/src/app/shared/audio/audio.testing.mjs +3 -3
- package/esm2022/src/app/shared/audio/audio.testing.module.mjs +4 -4
- package/esm2022/src/app/shared/capacitor/keyboard.mjs +3 -3
- package/esm2022/src/app/shared/debug/debug.component.mjs +3 -3
- package/esm2022/src/app/shared/debug/debug.module.mjs +4 -4
- package/esm2022/src/app/shared/directives/autofocus.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/autoresize.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/autotitle.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/autotooltip.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/cell-selection/cell-identifier.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/cell-selection/cell-selection.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/cell-selection/cell-selection.service.mjs +3 -3
- package/esm2022/src/app/shared/directives/directives.module.mjs +4 -4
- package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/ng-var.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
- package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
- package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
- package/esm2022/src/app/shared/directives/throttled-click.directive.mjs +3 -3
- package/esm2022/src/app/shared/file/file.service.mjs +3 -3
- package/esm2022/src/app/shared/form/field.component.mjs +3 -3
- package/esm2022/src/app/shared/form/loading-spinner.mjs +3 -3
- package/esm2022/src/app/shared/gesture/gesture-config.mjs +3 -3
- package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +3 -3
- package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
- package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
- package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
- package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
- package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
- package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
- package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
- package/esm2022/src/app/shared/image/image.module.mjs +4 -4
- package/esm2022/src/app/shared/image/image.service.mjs +3 -3
- package/esm2022/src/app/shared/logging/logging-service.class.mjs +3 -3
- package/esm2022/src/app/shared/logging/logging-service.module.mjs +4 -4
- package/esm2022/src/app/shared/markdown/markdown.component.mjs +3 -3
- package/esm2022/src/app/shared/markdown/markdown.directive.mjs +3 -3
- package/esm2022/src/app/shared/markdown/markdown.modal.mjs +3 -3
- package/esm2022/src/app/shared/markdown/markdown.module.mjs +4 -4
- package/esm2022/src/app/shared/markdown/markdown.service.mjs +3 -3
- package/esm2022/src/app/shared/markdown/testing/markdown.test.mjs +3 -3
- package/esm2022/src/app/shared/markdown/testing/markdown.testing.module.mjs +4 -4
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +3 -3
- package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
- package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
- package/esm2022/src/app/shared/material/badge/badge.directive.mjs +3 -3
- package/esm2022/src/app/shared/material/badge/badge.module.mjs +4 -4
- package/esm2022/src/app/shared/material/badge/badge.test.mjs +3 -3
- package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +4 -4
- package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +3 -3
- package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +3 -3
- package/esm2022/src/app/shared/material/chips/chips.module.mjs +4 -4
- package/esm2022/src/app/shared/material/chips/material.chips.mjs +3 -3
- package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
- package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +4 -4
- package/esm2022/src/app/shared/material/datetime/material.date.mjs +3 -3
- package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +3 -3
- package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +3 -3
- package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +3 -3
- package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +3 -3
- package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +3 -3
- package/esm2022/src/app/shared/material/duration/duration.module.mjs +4 -4
- package/esm2022/src/app/shared/material/duration/material.duration.mjs +3 -3
- package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +3 -3
- package/esm2022/src/app/shared/material/latlong/material.latlong-input.mjs +3 -3
- package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +3 -3
- package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
- package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
- package/esm2022/src/app/shared/material/material.module.mjs +4 -4
- package/esm2022/src/app/shared/material/material.testing.module.mjs +4 -4
- package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
- package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
- package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +3 -3
- package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +4 -4
- package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
- package/esm2022/src/app/shared/material/test/test-component.mjs +6 -6
- package/esm2022/src/app/shared/material/testing/common.test.mjs +3 -3
- package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +3 -3
- package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +4 -4
- package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +3 -3
- package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +3 -3
- package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +4 -4
- package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +45 -45
- package/esm2022/src/app/shared/pipes/badge.pipes.mjs +3 -3
- package/esm2022/src/app/shared/pipes/colors.pipe.mjs +3 -3
- package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
- package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +6 -6
- package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
- package/esm2022/src/app/shared/pipes/date-from.pipe.mjs +4 -4
- package/esm2022/src/app/shared/pipes/dates.pipe.mjs +3 -3
- package/esm2022/src/app/shared/pipes/display-with.pipe.mjs +4 -4
- package/esm2022/src/app/shared/pipes/duration.pipe.mjs +4 -4
- package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +3 -3
- package/esm2022/src/app/shared/pipes/form.pipes.mjs +21 -21
- package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +4 -4
- package/esm2022/src/app/shared/pipes/html.pipes.mjs +12 -12
- package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
- package/esm2022/src/app/shared/pipes/maps.pipe.mjs +12 -12
- package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +3 -3
- package/esm2022/src/app/shared/pipes/math.pipes.mjs +16 -16
- package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
- package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +3 -3
- package/esm2022/src/app/shared/pipes/observable.pipes.mjs +12 -12
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +4 -4
- package/esm2022/src/app/shared/pipes/property.pipes.mjs +17 -17
- package/esm2022/src/app/shared/pipes/selection.pipes.mjs +21 -21
- package/esm2022/src/app/shared/pipes/string.pipes.mjs +39 -39
- package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
- package/esm2022/src/app/shared/pipes/types.pipes.mjs +15 -15
- package/esm2022/src/app/shared/pipes/url.pipes.mjs +3 -3
- package/esm2022/src/app/shared/print/print.service.mjs +3 -3
- package/esm2022/src/app/shared/rx-state/rx-state.module.mjs +4 -4
- package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +3 -3
- package/esm2022/src/app/shared/services/progress-bar.service.mjs +3 -3
- package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +3 -3
- package/esm2022/src/app/shared/services/startable-service.class.mjs +3 -3
- package/esm2022/src/app/shared/services/translate-context.service.mjs +3 -3
- package/esm2022/src/app/shared/shared-routing.module.mjs +7 -7
- package/esm2022/src/app/shared/shared.module.mjs +4 -4
- package/esm2022/src/app/shared/shared.testing.module.mjs +4 -4
- package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +3 -3
- package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +4 -4
- package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +4 -4
- package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +4 -4
- package/esm2022/src/app/shared/storage/storage.service.mjs +3 -3
- package/esm2022/src/app/shared/testing/maskito.test.mjs +3 -3
- package/esm2022/src/app/shared/testing/observable.test.mjs +3 -3
- package/esm2022/src/app/shared/testing/tests.page.mjs +3 -3
- package/esm2022/src/app/shared/toast/toast.testing.mjs +3 -3
- package/esm2022/src/app/shared/toast/toast.testing.module.mjs +4 -4
- package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +3 -3
- package/esm2022/src/app/shared/toolbar/toolbar.mjs +3 -3
- package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +4 -4
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
- package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
- package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
- package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +3 -3
- package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
- package/esm2022/src/app/social/feed/feed.component.mjs +5 -5
- package/esm2022/src/app/social/feed/feed.directive.mjs +3 -3
- package/esm2022/src/app/social/feed/feed.module.mjs +4 -4
- package/esm2022/src/app/social/feed/feed.page.mjs +3 -3
- package/esm2022/src/app/social/feed/feed.service.mjs +3 -3
- package/esm2022/src/app/social/feed/testing/feed.testing.mjs +3 -3
- package/esm2022/src/app/social/feed/testing/feed.testing.module.mjs +4 -4
- package/esm2022/src/app/social/job/job.module.mjs +4 -4
- package/esm2022/src/app/social/job/progression/job-progression.component.mjs +3 -3
- package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +3 -3
- package/esm2022/src/app/social/job/progression/job-progression.list.mjs +3 -3
- package/esm2022/src/app/social/job/progression/job-progression.service.mjs +3 -3
- package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +3 -3
- package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +3 -3
- package/esm2022/src/app/social/job/testing/job.testing.module.mjs +4 -4
- package/esm2022/src/app/social/message/message.form.mjs +3 -3
- package/esm2022/src/app/social/message/message.modal.mjs +3 -3
- package/esm2022/src/app/social/message/message.module.mjs +4 -4
- package/esm2022/src/app/social/message/message.service.mjs +3 -3
- package/esm2022/src/app/social/social.module.mjs +4 -4
- package/esm2022/src/app/social/social.testing.module.mjs +4 -4
- package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +3 -3
- package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +3 -3
- package/esm2022/src/app/social/user-event/notification/user-event-notification.modal.mjs +3 -3
- package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +3 -3
- package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
- package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
- package/esm2022/src/app/social/user-event/user-event.module.mjs +4 -4
- package/esm2022/src/app/social/user-event/user-event.service.mjs +3 -3
- package/esm2022/src/environments/environment.loader.mjs +3 -3
- package/fesm2022/sumaris-net.ngx-components.mjs +1180 -1180
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/assets/manifest.json +1 -1
|
@@ -14,8 +14,8 @@ import { NgIf } from '@angular/common';
|
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
import * as i1 from "@ngx-translate/core";
|
|
16
16
|
export class AppPropertiesFormModule {
|
|
17
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
18
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppPropertiesFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AppPropertiesFormModule, declarations: [
|
|
19
19
|
// Other components
|
|
20
20
|
AppPropertiesForm,
|
|
21
21
|
AppPropertiesTable], imports: [SharedModule, i1.TranslateModule, AppTableModule,
|
|
@@ -35,7 +35,7 @@ export class AppPropertiesFormModule {
|
|
|
35
35
|
// Components
|
|
36
36
|
AppPropertiesForm,
|
|
37
37
|
AppPropertiesTable] });
|
|
38
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
38
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppPropertiesFormModule, imports: [SharedModule,
|
|
39
39
|
TranslateModule.forChild(),
|
|
40
40
|
AppTableModule,
|
|
41
41
|
IonicModule,
|
|
@@ -48,7 +48,7 @@ export class AppPropertiesFormModule {
|
|
|
48
48
|
MatIconButton,
|
|
49
49
|
MatToolbar, TranslateModule] });
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppPropertiesFormModule, decorators: [{
|
|
52
52
|
type: NgModule,
|
|
53
53
|
args: [{
|
|
54
54
|
imports: [
|
|
@@ -102,10 +102,10 @@ export class PropertyEntityValidator extends AppValidatorService {
|
|
|
102
102
|
value: [data?.value ?? null],
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
106
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
105
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertyEntityValidator, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Directive });
|
|
106
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: PropertyEntityValidator, usesInheritance: true, ngImport: i0 });
|
|
107
107
|
}
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertyEntityValidator, decorators: [{
|
|
109
109
|
type: Directive
|
|
110
110
|
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
|
|
111
111
|
export class AppPropertiesTable extends AppInMemoryTable {
|
|
@@ -247,10 +247,10 @@ export class AppPropertiesTable extends AppInMemoryTable {
|
|
|
247
247
|
this.confirmEditCreate();
|
|
248
248
|
this.markRowAsDirty();
|
|
249
249
|
}
|
|
250
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
251
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AppPropertiesTable, selector: "app-properties-table", inputs: { definitions: "definitions", showToolbar: "showToolbar" }, providers: [{ provide: PropertyEntityValidator, useClass: PropertyEntityValidator }], viewQueries: [{ propertyName: "filterExpansionPanel", first: true, predicate: MatExpansionPanel, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar *ngIf=\"showToolbar\" [class.expanded]=\"filterExpansionPanel.expanded\">\n <!-- Refresh -->\n <button\n mat-icon-button\n *ngIf=\"!mobile\"\n [title]=\"!showTooltip ? ('COMMON.BTN_REFRESH' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_REFRESH' | translate) : ''\"\n (click)=\"emitRefresh()\"\n >\n <mat-icon>refresh</mat-icon>\n </button>\n\n <ion-item *ngIf=\"!mobile && error; let error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\" *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold\">close</mat-icon>\n </button>\n\n <!-- Show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon\n [matBadge]=\"filterCriteriaCount\"\n [matBadgeHidden]=\"filterIsEmpty\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >\n filter_list_alt\n </mat-icon>\n </button>\n</mat-toolbar>\n\n<ion-content class=\"ion-no-padding\">\n <!-- search -->\n <mat-expansion-panel\n #filterExpansionPanel\n class=\"filter-panel\"\n [class.ion-no-padding]=\"mobile\"\n [class.filter-panel-floating]=\"filterPanelFloating\"\n >\n <form class=\"form-container\" [formGroup]=\"filterForm\" (ngSubmit)=\"emitRefresh()\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.FILTER.SEARCH' | translate }}</mat-label>\n <input matInput formControlName=\"searchText\" />\n\n <button\n mat-icon-button\n matSuffix\n tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n\n <ion-col>\n <mat-boolean-field\n [style]=\"'checkbox'\"\n formControlName=\"notDefaultOnly\"\n [placeholder]=\"'SETTINGS.FILTER.ONLY_NOT_DEFAULT' | translate\"\n floatLabel=\"always\"\n ></mat-boolean-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label\n [hidden]=\"(loadingSubject | async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\"\n >\n {{\n (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT')\n | translate\n : {\n count: (totalRowCount | numberFormat),\n }\n }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <button\n mat-icon-button\n color=\"accent\"\n *ngIf=\"filterPanelFloating\"\n (click)=\"toggleFilterPanelFloating()\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"!showTooltip ? ((filterPanelFloating ? 'COMMON.BTN_EXPAND' : 'COMMON.BTN_HIDE') | translate) : ''\"\n [matTooltip]=\"showTooltip ? ((filterPanelFloating ? 'COMMON.BTN_EXPAND' : 'COMMON.BTN_HIDE') | translate) : ''\"\n >\n <mat-icon>\n <span style=\"transform: rotate(90deg)\">{{ filterPanelFloating ? '»' : '«' }}</span>\n </mat-icon>\n </button>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\" (click)=\"closeFilterPanel()\" [disabled]=\"loadingSubject | async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button\n mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\"\n [disabled]=\"loadingSubject | async\"\n >\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n </mat-action-row>\n </mat-expansion-panel>\n\n <ion-refresher slot=\"fixed\" *ngIf=\"mobile\" (ionRefresh)=\"doRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <!-- table -->\n <div class=\"table-container\">\n <table\n #table\n mat-table\n matSort\n matSortDisableClear\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\"\n [matSortDirection]=\"defaultSortDirection\"\n [trackBy]=\"trackByFn\"\n [style.--mat-row-height]=\"'52px'\"\n >\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"true\"></th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"true\"></td>\n </ng-container>\n\n <!-- id column (hidden) -->\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!debug\"></th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!debug\">\n {{ row.currentData.id }}\n </td>\n </ng-container>\n\n <!-- definition column -->\n <ng-container matColumnDef=\"definition\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header class=\"ion-padding-start\">\n <ion-label>{{ i18nColumnPrefix + 'DEFINITION' | translate }}</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"ion-padding-start\">\n {{ row.currentData | propertyGet: 'definition.label' }}\n </td>\n </ng-container>\n\n <!-- value column -->\n <app-row-field\n name=\"value\"\n floatLabel=\"never\"\n [definitionFn]=\"definitionByRow\"\n [headerI18n]=\"i18nColumnPrefix + 'VALUE'\"\n [required]=\"true\"\n ></app-row-field>\n\n <!-- Actions buttons column -->\n <app-actions-column\n [stickyEnd]=\"true\"\n [canCancel]=\"false\"\n [canDelete]=\"false\"\n [dirtyIcon]=\"false\"\n [cellTemplate]=\"cellInjection\"\n >\n <!-- cell injection-->\n <ng-template #cellInjection let-row>\n <button\n type=\"button\"\n mat-icon-button\n *ngIf=\"\n !mobile &&\n !disabled &&\n (row.validator | formGetValue: 'value') !== (row.validator | formGetValue: 'definition').defaultValue\n \"\n [class.visible-hover-row]=\"!mobile\"\n [tabindex]=\"-1\"\n [title]=\"!showTooltip ? ('SETTINGS.BTN_RESET_PROPERTY' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('SETTINGS.BTN_RESET_PROPERTY' | translate) : ''\"\n (click)=\"resetProperty($event, row)\"\n >\n <mat-icon>undo</mat-icon>\n </button>\n </ng-template>\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n [class.mat-row-selected]=\"row.editing\"\n [class.mat-row-error]=\"row.validator?.invalid\"\n [class.mat-row-dirty]=\"row.validator?.dirty\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator?.invalid\"\n ></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject | async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n </div>\n</ion-content>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: i3.IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i9.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: i14.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i15.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i16.MatBooleanField, selector: "mat-boolean-field", inputs: ["disabled", "formControl", "formControlName", "placeholder", "floatLabel", "appearance", "subscriptSizing", "readonly", "required", "compact", "autofocus", "style", "buttonsColCount", "class", "yesLabel", "noLabel", "showButtonIcons", "yesIcon", "noIcon", "clearable", "labelPosition", "tabindex", "showRadio", "value"], outputs: ["keyup.enter", "focus", "blur"] }, { kind: "component", type: i17.ActionsColumnComponent, selector: "app-actions-column", inputs: ["matColumnDef", "style", "showPendingSpinner", "stickyEnd", "canCancel", "canConfirm", "canDelete", "canBackward", "canForward", "canConfirmAndAdd", "dirtyIcon", "optionsTitle", "class", "cellTemplateStart", "cellTemplate"], outputs: ["optionsClick", "cancelOrDeleteClick", "confirmEditCreateClick", "confirmAndAddClick", "backward", "forward"] }, { kind: "component", type: i18.AppRowField, selector: "app-row-field", inputs: ["name", "definition", "definitionFn", "headerI18n", "sortable", "resizable", "required", "readonly", "sticky", "draggable", "disabled", "placeholder", "compact", "floatLabel", "appearance", "tabindex", "autofocus", "clearable", "chipColor", "class", "debug"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i19.PropertyGetPipe, name: "propertyGet" }, { kind: "pipe", type: i20.NumberFormatPipe, name: "numberFormat" }, { kind: "pipe", type: i21.FormGetValuePipe, name: "formGetValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
250
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppPropertiesTable, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: PropertyEntityValidator }, { token: ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Component });
|
|
251
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AppPropertiesTable, selector: "app-properties-table", inputs: { definitions: "definitions", showToolbar: "showToolbar" }, providers: [{ provide: PropertyEntityValidator, useClass: PropertyEntityValidator }], viewQueries: [{ propertyName: "filterExpansionPanel", first: true, predicate: MatExpansionPanel, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar *ngIf=\"showToolbar\" [class.expanded]=\"filterExpansionPanel.expanded\">\n <!-- Refresh -->\n <button\n mat-icon-button\n *ngIf=\"!mobile\"\n [title]=\"!showTooltip ? ('COMMON.BTN_REFRESH' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_REFRESH' | translate) : ''\"\n (click)=\"emitRefresh()\"\n >\n <mat-icon>refresh</mat-icon>\n </button>\n\n <ion-item *ngIf=\"!mobile && error; let error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\" *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold\">close</mat-icon>\n </button>\n\n <!-- Show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon\n [matBadge]=\"filterCriteriaCount\"\n [matBadgeHidden]=\"filterIsEmpty\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >\n filter_list_alt\n </mat-icon>\n </button>\n</mat-toolbar>\n\n<ion-content class=\"ion-no-padding\">\n <!-- search -->\n <mat-expansion-panel\n #filterExpansionPanel\n class=\"filter-panel\"\n [class.ion-no-padding]=\"mobile\"\n [class.filter-panel-floating]=\"filterPanelFloating\"\n >\n <form class=\"form-container\" [formGroup]=\"filterForm\" (ngSubmit)=\"emitRefresh()\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.FILTER.SEARCH' | translate }}</mat-label>\n <input matInput formControlName=\"searchText\" />\n\n <button\n mat-icon-button\n matSuffix\n tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n\n <ion-col>\n <mat-boolean-field\n [style]=\"'checkbox'\"\n formControlName=\"notDefaultOnly\"\n [placeholder]=\"'SETTINGS.FILTER.ONLY_NOT_DEFAULT' | translate\"\n floatLabel=\"always\"\n ></mat-boolean-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label\n [hidden]=\"(loadingSubject | async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\"\n >\n {{\n (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT')\n | translate\n : {\n count: (totalRowCount | numberFormat),\n }\n }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <button\n mat-icon-button\n color=\"accent\"\n *ngIf=\"filterPanelFloating\"\n (click)=\"toggleFilterPanelFloating()\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"!showTooltip ? ((filterPanelFloating ? 'COMMON.BTN_EXPAND' : 'COMMON.BTN_HIDE') | translate) : ''\"\n [matTooltip]=\"showTooltip ? ((filterPanelFloating ? 'COMMON.BTN_EXPAND' : 'COMMON.BTN_HIDE') | translate) : ''\"\n >\n <mat-icon>\n <span style=\"transform: rotate(90deg)\">{{ filterPanelFloating ? '»' : '«' }}</span>\n </mat-icon>\n </button>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\" (click)=\"closeFilterPanel()\" [disabled]=\"loadingSubject | async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button\n mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\"\n [disabled]=\"loadingSubject | async\"\n >\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n </mat-action-row>\n </mat-expansion-panel>\n\n <ion-refresher slot=\"fixed\" *ngIf=\"mobile\" (ionRefresh)=\"doRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <!-- table -->\n <div class=\"table-container\">\n <table\n #table\n mat-table\n matSort\n matSortDisableClear\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\"\n [matSortDirection]=\"defaultSortDirection\"\n [trackBy]=\"trackByFn\"\n [style.--mat-row-height]=\"'52px'\"\n >\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"true\"></th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"true\"></td>\n </ng-container>\n\n <!-- id column (hidden) -->\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!debug\"></th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!debug\">\n {{ row.currentData.id }}\n </td>\n </ng-container>\n\n <!-- definition column -->\n <ng-container matColumnDef=\"definition\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header class=\"ion-padding-start\">\n <ion-label>{{ i18nColumnPrefix + 'DEFINITION' | translate }}</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"ion-padding-start\">\n {{ row.currentData | propertyGet: 'definition.label' }}\n </td>\n </ng-container>\n\n <!-- value column -->\n <app-row-field\n name=\"value\"\n floatLabel=\"never\"\n [definitionFn]=\"definitionByRow\"\n [headerI18n]=\"i18nColumnPrefix + 'VALUE'\"\n [required]=\"true\"\n ></app-row-field>\n\n <!-- Actions buttons column -->\n <app-actions-column\n [stickyEnd]=\"true\"\n [canCancel]=\"false\"\n [canDelete]=\"false\"\n [dirtyIcon]=\"false\"\n [cellTemplate]=\"cellInjection\"\n >\n <!-- cell injection-->\n <ng-template #cellInjection let-row>\n <button\n type=\"button\"\n mat-icon-button\n *ngIf=\"\n !mobile &&\n !disabled &&\n (row.validator | formGetValue: 'value') !== (row.validator | formGetValue: 'definition').defaultValue\n \"\n [class.visible-hover-row]=\"!mobile\"\n [tabindex]=\"-1\"\n [title]=\"!showTooltip ? ('SETTINGS.BTN_RESET_PROPERTY' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('SETTINGS.BTN_RESET_PROPERTY' | translate) : ''\"\n (click)=\"resetProperty($event, row)\"\n >\n <mat-icon>undo</mat-icon>\n </button>\n </ng-template>\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n [class.mat-row-selected]=\"row.editing\"\n [class.mat-row-error]=\"row.validator?.invalid\"\n [class.mat-row-dirty]=\"row.validator?.dirty\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator?.invalid\"\n ></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject | async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n </div>\n</ion-content>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: i3.IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i9.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: i14.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i15.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i16.MatBooleanField, selector: "mat-boolean-field", inputs: ["disabled", "formControl", "formControlName", "placeholder", "floatLabel", "appearance", "subscriptSizing", "readonly", "required", "compact", "autofocus", "style", "buttonsColCount", "class", "yesLabel", "noLabel", "showButtonIcons", "yesIcon", "noIcon", "clearable", "labelPosition", "tabindex", "showRadio", "value"], outputs: ["keyup.enter", "focus", "blur"] }, { kind: "component", type: i17.ActionsColumnComponent, selector: "app-actions-column", inputs: ["matColumnDef", "style", "showPendingSpinner", "stickyEnd", "canCancel", "canConfirm", "canDelete", "canBackward", "canForward", "canConfirmAndAdd", "dirtyIcon", "optionsTitle", "class", "cellTemplateStart", "cellTemplate"], outputs: ["optionsClick", "cancelOrDeleteClick", "confirmEditCreateClick", "confirmAndAddClick", "backward", "forward"] }, { kind: "component", type: i18.AppRowField, selector: "app-row-field", inputs: ["name", "definition", "definitionFn", "headerI18n", "sortable", "resizable", "required", "readonly", "sticky", "draggable", "disabled", "placeholder", "compact", "floatLabel", "appearance", "tabindex", "autofocus", "clearable", "chipColor", "class", "debug"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i19.PropertyGetPipe, name: "propertyGet" }, { kind: "pipe", type: i20.NumberFormatPipe, name: "numberFormat" }, { kind: "pipe", type: i21.FormGetValuePipe, name: "formGetValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
252
252
|
}
|
|
253
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppPropertiesTable, decorators: [{
|
|
254
254
|
type: Component,
|
|
255
255
|
args: [{ selector: 'app-properties-table', providers: [{ provide: PropertyEntityValidator, useClass: PropertyEntityValidator }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-toolbar *ngIf=\"showToolbar\" [class.expanded]=\"filterExpansionPanel.expanded\">\n <!-- Refresh -->\n <button\n mat-icon-button\n *ngIf=\"!mobile\"\n [title]=\"!showTooltip ? ('COMMON.BTN_REFRESH' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_REFRESH' | translate) : ''\"\n (click)=\"emitRefresh()\"\n >\n <mat-icon>refresh</mat-icon>\n </button>\n\n <ion-item *ngIf=\"!mobile && error; let error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n\n <div class=\"toolbar-spacer\"></div>\n\n <!-- Reset filter -->\n <button mat-icon-button (click)=\"resetFilter()\" *ngIf=\"filterCriteriaCount\">\n <mat-icon color=\"accent\">filter_list_alt</mat-icon>\n <mat-icon class=\"icon-secondary\" style=\"left: 16px; top: 5px; font-weight: bold\">close</mat-icon>\n </button>\n\n <!-- Show filter -->\n <button mat-icon-button (click)=\"filterExpansionPanel.toggle()\">\n <mat-icon\n [matBadge]=\"filterCriteriaCount\"\n [matBadgeHidden]=\"filterIsEmpty\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n aria-hidden=\"false\"\n >\n filter_list_alt\n </mat-icon>\n </button>\n</mat-toolbar>\n\n<ion-content class=\"ion-no-padding\">\n <!-- search -->\n <mat-expansion-panel\n #filterExpansionPanel\n class=\"filter-panel\"\n [class.ion-no-padding]=\"mobile\"\n [class.filter-panel-floating]=\"filterPanelFloating\"\n >\n <form class=\"form-container\" [formGroup]=\"filterForm\" (ngSubmit)=\"emitRefresh()\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <!-- search -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.FILTER.SEARCH' | translate }}</mat-label>\n <input matInput formControlName=\"searchText\" />\n\n <button\n mat-icon-button\n matSuffix\n tabindex=\"-1\"\n type=\"button\"\n (click)=\"clearControlValue($event, filterForm.controls.searchText)\"\n [hidden]=\"filterForm.controls.searchText.disabled || !filterForm.controls.searchText.value\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </ion-col>\n\n <ion-col>\n <mat-boolean-field\n [style]=\"'checkbox'\"\n formControlName=\"notDefaultOnly\"\n [placeholder]=\"'SETTINGS.FILTER.ONLY_NOT_DEFAULT' | translate\"\n floatLabel=\"always\"\n ></mat-boolean-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n\n <mat-action-row>\n <!-- Counter -->\n <ion-label\n [hidden]=\"(loadingSubject | async) || filterForm.dirty\"\n [color]=\"empty && 'danger'\"\n class=\"ion-padding\"\n >\n {{\n (totalRowCount ? 'COMMON.RESULT_COUNT' : 'COMMON.NO_RESULT')\n | translate\n : {\n count: (totalRowCount | numberFormat),\n }\n }}\n </ion-label>\n\n <div class=\"toolbar-spacer\"></div>\n\n <button\n mat-icon-button\n color=\"accent\"\n *ngIf=\"filterPanelFloating\"\n (click)=\"toggleFilterPanelFloating()\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"!showTooltip ? ((filterPanelFloating ? 'COMMON.BTN_EXPAND' : 'COMMON.BTN_HIDE') | translate) : ''\"\n [matTooltip]=\"showTooltip ? ((filterPanelFloating ? 'COMMON.BTN_EXPAND' : 'COMMON.BTN_HIDE') | translate) : ''\"\n >\n <mat-icon>\n <span style=\"transform: rotate(90deg)\">{{ filterPanelFloating ? '»' : '«' }}</span>\n </mat-icon>\n </button>\n\n <!-- Close panel -->\n <ion-button mat-button fill=\"clear\" color=\"dark\" (click)=\"closeFilterPanel()\" [disabled]=\"loadingSubject | async\">\n <ion-text translate>COMMON.BTN_CLOSE</ion-text>\n </ion-button>\n\n <!-- Search button -->\n <ion-button\n mat-button\n [color]=\"filterForm.dirty ? 'tertiary' : 'dark'\"\n [fill]=\"filterForm.dirty ? 'solid' : 'clear'\"\n (click)=\"applyFilterAndClosePanel($event)\"\n [disabled]=\"loadingSubject | async\"\n >\n <ion-text translate>COMMON.BTN_APPLY</ion-text>\n </ion-button>\n </mat-action-row>\n </mat-expansion-panel>\n\n <ion-refresher slot=\"fixed\" *ngIf=\"mobile\" (ionRefresh)=\"doRefresh($event)\">\n <ion-refresher-content></ion-refresher-content>\n </ion-refresher>\n\n <!-- table -->\n <div class=\"table-container\">\n <table\n #table\n mat-table\n matSort\n matSortDisableClear\n [dataSource]=\"dataSource\"\n [matSortActive]=\"defaultSortBy\"\n [matSortDirection]=\"defaultSortDirection\"\n [trackBy]=\"trackByFn\"\n [style.--mat-row-height]=\"'52px'\"\n >\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"true\"></th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"true\"></td>\n </ng-container>\n\n <!-- id column (hidden) -->\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef [class.cdk-visually-hidden]=\"!debug\"></th>\n <td mat-cell *matCellDef=\"let row\" [class.cdk-visually-hidden]=\"!debug\">\n {{ row.currentData.id }}\n </td>\n </ng-container>\n\n <!-- definition column -->\n <ng-container matColumnDef=\"definition\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header class=\"ion-padding-start\">\n <ion-label>{{ i18nColumnPrefix + 'DEFINITION' | translate }}</ion-label>\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"ion-padding-start\">\n {{ row.currentData | propertyGet: 'definition.label' }}\n </td>\n </ng-container>\n\n <!-- value column -->\n <app-row-field\n name=\"value\"\n floatLabel=\"never\"\n [definitionFn]=\"definitionByRow\"\n [headerI18n]=\"i18nColumnPrefix + 'VALUE'\"\n [required]=\"true\"\n ></app-row-field>\n\n <!-- Actions buttons column -->\n <app-actions-column\n [stickyEnd]=\"true\"\n [canCancel]=\"false\"\n [canDelete]=\"false\"\n [dirtyIcon]=\"false\"\n [cellTemplate]=\"cellInjection\"\n >\n <!-- cell injection-->\n <ng-template #cellInjection let-row>\n <button\n type=\"button\"\n mat-icon-button\n *ngIf=\"\n !mobile &&\n !disabled &&\n (row.validator | formGetValue: 'value') !== (row.validator | formGetValue: 'definition').defaultValue\n \"\n [class.visible-hover-row]=\"!mobile\"\n [tabindex]=\"-1\"\n [title]=\"!showTooltip ? ('SETTINGS.BTN_RESET_PROPERTY' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('SETTINGS.BTN_RESET_PROPERTY' | translate) : ''\"\n (click)=\"resetProperty($event, row)\"\n >\n <mat-icon>undo</mat-icon>\n </button>\n </ng-template>\n </app-actions-column>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n [class.mat-row-selected]=\"row.editing\"\n [class.mat-row-error]=\"row.validator?.invalid\"\n [class.mat-row-dirty]=\"row.validator?.dirty\"\n (click)=\"clickRow($event, row)\"\n (keydown.escape)=\"escapeEditingRow($event)\"\n [cdkTrapFocus]=\"row.validator?.invalid\"\n ></tr>\n </table>\n\n <ng-container *ngIf=\"loadingSubject | async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"totalRowCount === 0\">\n <ion-text color=\"danger\" class=\"text-italic\" translate>COMMON.NO_RESULT</ion-text>\n </ion-item>\n </ng-template>\n </div>\n</ion-content>\n" }]
|
|
256
256
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.UntypedFormBuilder }, { type: PropertyEntityValidator }, { type: i22.Environment, decorators: [{
|
|
@@ -60,10 +60,10 @@ export class PropertyValidator extends AppValidatorService {
|
|
|
60
60
|
isEmpty(obj) {
|
|
61
61
|
return isNil(obj?.key) || isNil(obj.value);
|
|
62
62
|
}
|
|
63
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
64
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
63
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertyValidator, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
64
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertyValidator, providedIn: 'root' });
|
|
65
65
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertyValidator, decorators: [{
|
|
67
67
|
type: Injectable,
|
|
68
68
|
args: [{ providedIn: 'root' }]
|
|
69
69
|
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
|
|
@@ -90,10 +90,10 @@ export class PropertiesFormTestPage {
|
|
|
90
90
|
async suggestEntity(value, filter, sortBy, sortDirection, options) {
|
|
91
91
|
return suggestFromArray(FAKE_ENTITIES, value, filter, sortBy, sortDirection, options);
|
|
92
92
|
}
|
|
93
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
94
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
93
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertiesFormTestPage, deps: [{ token: i1.FormBuilder }, { token: i2.PropertyValidator }], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PropertiesFormTestPage, selector: "app-properties-form-test", viewQueries: [{ propertyName: "propertiesForm", first: true, predicate: ["propertiesForm"], descendants: true, read: AppPropertiesForm, static: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Properties form test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <form [formGroup]=\"form\">\n <app-properties-form\n #propertiesForm\n formArrayName=\"properties\"\n [definitions]=\"propertyDefinitions\"\n [options]=\"{ allowEmptyArray: true }\"\n [showToolbar]=\"true\"\n [canDownload]=\"true\"\n [canImport]=\"true\"\n ></app-properties-form>\n </form>\n</ion-content>\n", dependencies: [{ kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4.AppPropertiesForm, selector: "app-properties-form", inputs: ["showToolbar", "formArrayName", "formArray", "options", "chipColor", "mobile", "appearance", "subscriptSizing", "showHintKey", "hintKeyPrefix", "showMoreButton", "addButtonText", "addButtonTitle", "showAddButton", "panelClass", "panelWidth", "canDownload", "canImport", "showMoreButtonTitle", "definitions", "importPolicy"] }] });
|
|
95
95
|
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertiesFormTestPage, decorators: [{
|
|
97
97
|
type: Component,
|
|
98
98
|
args: [{ selector: 'app-properties-form-test', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Properties form test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <form [formGroup]=\"form\">\n <app-properties-form\n #propertiesForm\n formArrayName=\"properties\"\n [definitions]=\"propertyDefinitions\"\n [options]=\"{ allowEmptyArray: true }\"\n [showToolbar]=\"true\"\n [canDownload]=\"true\"\n [canImport]=\"true\"\n ></app-properties-form>\n </form>\n</ion-content>\n" }]
|
|
99
99
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.PropertyValidator }], propDecorators: { propertiesForm: [{
|
|
@@ -8,11 +8,11 @@ import { CoreModule } from '../../../core.module';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@ngx-translate/core";
|
|
10
10
|
export class PropertiesFormTestingModule {
|
|
11
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
12
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
13
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertiesFormTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PropertiesFormTestingModule, declarations: [PropertiesFormTestPage], imports: [CommonModule, SharedModule, CoreModule, i1.TranslateModule], exports: [RouterModule, PropertiesFormTestPage] });
|
|
13
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertiesFormTestingModule, imports: [CommonModule, SharedModule, CoreModule, TranslateModule.forChild(), RouterModule] });
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PropertiesFormTestingModule, decorators: [{
|
|
16
16
|
type: NgModule,
|
|
17
17
|
args: [{
|
|
18
18
|
imports: [CommonModule, SharedModule, CoreModule, TranslateModule.forChild()],
|
|
@@ -26,10 +26,10 @@ export class TextFormTestingPage {
|
|
|
26
26
|
this.standaloneTextForm1.enable();
|
|
27
27
|
this.standaloneTextForm2.enable();
|
|
28
28
|
}
|
|
29
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TextFormTestingPage, selector: "text-form-testing", viewQueries: [{ propertyName: "standaloneTextForm1", first: true, predicate: ["standaloneTextForm1"], descendants: true }, { propertyName: "standaloneTextForm2", first: true, predicate: ["standaloneTextForm2"], descendants: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Text form examples</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text><h4>Standalone mode (no form)</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Default validator</ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n #standaloneTextForm1\n [standalone]=\"true\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n ></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Required</ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n #standaloneTextForm2\n [standalone]=\"true\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n [validator]=\"Validators.required\"\n >\n @if (standaloneTextForm2.textControl.hasError('required')) {\n <mat-error matError>REQUIRED</mat-error>\n }\n </app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <form class=\"form-container\" [formGroup]=\"form\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text><h4>FormGroup mode, no placeholder</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Empty</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.empty.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form formControlName=\"empty\" [multiline]=\"false\" [maxLength]=\"10\"></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Required</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.required.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"required\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n [validator]=\"Validators.required\"\n >\n <mat-error matError *ngIf=\"form.controls.required.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <ion-text><h4>FormGroup mode, with placeholder</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Empty</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.empty.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"empty\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n placeholder=\"Empty field\"\n ></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Required</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.required.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"required\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n [validator]=\"Validators.required\"\n placeholder=\"Required field\"\n >\n <mat-error matError *ngIf=\"form.controls.required.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Outline</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.multiline.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"multiline\"\n [multiline]=\"true\"\n appearance=\"outline\"\n autoSize=\"true\"\n autoSizeMinRows=\"4\"\n [maxLength]=\"2000\"\n placeholder=\"Outline field\"\n ></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i6.TextForm, selector: "app-text-form", inputs: ["showError", "placeholder", "multiline", "autoSize", "autoSizeMinRows", "autoSizeMaxRows", "maxLength", "autofocus", "validator", "standalone", "formControl", "formControlName", "floatLabel", "appearance", "subscriptSizing", "autoHeight"], outputs: ["textAreaChanges"] }, { kind: "pipe", type: i2.JsonPipe, name: "json" }] });
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextFormTestingPage, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TextFormTestingPage, selector: "text-form-testing", viewQueries: [{ propertyName: "standaloneTextForm1", first: true, predicate: ["standaloneTextForm1"], descendants: true }, { propertyName: "standaloneTextForm2", first: true, predicate: ["standaloneTextForm2"], descendants: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Text form examples</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text><h4>Standalone mode (no form)</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Default validator</ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n #standaloneTextForm1\n [standalone]=\"true\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n ></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Required</ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n #standaloneTextForm2\n [standalone]=\"true\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n [validator]=\"Validators.required\"\n >\n @if (standaloneTextForm2.textControl.hasError('required')) {\n <mat-error matError>REQUIRED</mat-error>\n }\n </app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <form class=\"form-container\" [formGroup]=\"form\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text><h4>FormGroup mode, no placeholder</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Empty</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.empty.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form formControlName=\"empty\" [multiline]=\"false\" [maxLength]=\"10\"></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Required</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.required.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"required\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n [validator]=\"Validators.required\"\n >\n <mat-error matError *ngIf=\"form.controls.required.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <ion-text><h4>FormGroup mode, with placeholder</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Empty</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.empty.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"empty\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n placeholder=\"Empty field\"\n ></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Required</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.required.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"required\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n [validator]=\"Validators.required\"\n placeholder=\"Required field\"\n >\n <mat-error matError *ngIf=\"form.controls.required.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Outline</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.multiline.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"multiline\"\n [multiline]=\"true\"\n appearance=\"outline\"\n autoSize=\"true\"\n autoSizeMinRows=\"4\"\n [maxLength]=\"2000\"\n placeholder=\"Outline field\"\n ></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i3.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i3.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i3.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonRow, selector: "ion-row" }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i3.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i6.TextForm, selector: "app-text-form", inputs: ["showError", "placeholder", "multiline", "autoSize", "autoSizeMinRows", "autoSizeMaxRows", "maxLength", "autofocus", "validator", "standalone", "formControl", "formControlName", "floatLabel", "appearance", "subscriptSizing", "autoHeight"], outputs: ["textAreaChanges"] }, { kind: "pipe", type: i2.JsonPipe, name: "json" }] });
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextFormTestingPage, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ selector: 'text-form-testing', template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Text form examples</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text><h4>Standalone mode (no form)</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Default validator</ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n #standaloneTextForm1\n [standalone]=\"true\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n ></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Required</ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n #standaloneTextForm2\n [standalone]=\"true\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n [validator]=\"Validators.required\"\n >\n @if (standaloneTextForm2.textControl.hasError('required')) {\n <mat-error matError>REQUIRED</mat-error>\n }\n </app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <form class=\"form-container\" [formGroup]=\"form\">\n <ion-grid>\n <ion-row>\n <ion-col>\n <ion-text><h4>FormGroup mode, no placeholder</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Empty</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.empty.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form formControlName=\"empty\" [multiline]=\"false\" [maxLength]=\"10\"></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Required</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.required.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"required\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n [validator]=\"Validators.required\"\n >\n <mat-error matError *ngIf=\"form.controls.required.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <ion-text><h4>FormGroup mode, with placeholder</h4></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Empty</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.empty.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"empty\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n placeholder=\"Empty field\"\n ></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Required</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.required.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"required\"\n [multiline]=\"false\"\n [maxLength]=\"10\"\n [validator]=\"Validators.required\"\n placeholder=\"Required field\"\n >\n <mat-error matError *ngIf=\"form.controls.required.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n\n <ion-row>\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">Outline</ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <small>\n <pre>{{ form.controls.multiline.value | json }}</pre>\n </small>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <app-text-form\n formControlName=\"multiline\"\n [multiline]=\"true\"\n appearance=\"outline\"\n autoSize=\"true\"\n autoSizeMinRows=\"4\"\n [maxLength]=\"2000\"\n placeholder=\"Outline field\"\n ></app-text-form>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n" }]
|
|
35
35
|
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }], propDecorators: { standaloneTextForm1: [{
|
|
@@ -10,11 +10,11 @@ import { AppTextFormModule } from '../text-form.module';
|
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "@ngx-translate/core";
|
|
12
12
|
export class TextFormTestingModule {
|
|
13
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
14
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
15
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextFormTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TextFormTestingModule, declarations: [TextFormTestingPage], imports: [CommonModule, IonicModule, SharedModule, CoreModule, i1.TranslateModule, AppTextFormModule], exports: [RouterModule, TextFormTestingPage] });
|
|
15
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextFormTestingModule, imports: [CommonModule, IonicModule, SharedModule, CoreModule, TranslateModule.forChild(), AppTextFormModule, RouterModule] });
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextFormTestingModule, decorators: [{
|
|
18
18
|
type: NgModule,
|
|
19
19
|
args: [{
|
|
20
20
|
imports: [CommonModule, IonicModule, SharedModule, CoreModule, TranslateModule.forChild(), AppTextFormModule],
|
|
@@ -129,8 +129,8 @@ export class TextForm extends AppForm {
|
|
|
129
129
|
this.checkIfTouched();
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
133
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextForm, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i1.UntypedFormBuilder }, { token: i1.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TextForm, selector: "app-text-form", inputs: { showError: ["showError", "showError", booleanAttribute], placeholder: "placeholder", multiline: ["multiline", "multiline", booleanAttribute], autoSize: ["autoSize", "autoSize", booleanAttribute], autoSizeMinRows: ["autoSizeMinRows", "autoSizeMinRows", numberAttribute], autoSizeMaxRows: ["autoSizeMaxRows", "autoSizeMaxRows", numberAttribute], maxLength: ["maxLength", "maxLength", numberAttribute], autofocus: ["autofocus", "autofocus", booleanAttribute], validator: "validator", standalone: ["standalone", "standalone", booleanAttribute], formControl: "formControl", formControlName: "formControlName", floatLabel: "floatLabel", appearance: "appearance", subscriptSizing: "subscriptSizing", autoHeight: ["autoHeight", "autoHeight", booleanAttribute] }, outputs: { textAreaChanges: "textAreaChanges" }, providers: [
|
|
134
134
|
{
|
|
135
135
|
provide: NG_VALUE_ACCESSOR,
|
|
136
136
|
useExisting: forwardRef(() => TextForm),
|
|
@@ -138,7 +138,7 @@ export class TextForm extends AppForm {
|
|
|
138
138
|
},
|
|
139
139
|
], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "textInput", first: true, predicate: ["textInput"], descendants: true }, { propertyName: "autosizeDirective", first: true, predicate: CdkTextareaAutosize, descendants: true }], usesInheritance: true, ngImport: i0, template: "<form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"onSubmit.emit($event)\">\n @if (multiline) {\n <mat-form-field\n [floatLabel]=\"floatLabel | asFloatLabelType\"\n [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\"\n >\n @if (floatLabel !== 'never' && !!placeholder) {\n <mat-label>{{ placeholder }}</mat-label>\n }\n <textarea\n #textArea\n matInput\n [formControl]=\"textControl\"\n [readonly]=\"textControl.disabled\"\n [placeholder]=\"floatLabel === 'never' ? placeholder : null\"\n [class.fixed-height]=\"!autoSize\"\n [cdkTextareaAutosize]=\"autoSize\"\n [cdkAutosizeMinRows]=\"autoSizeMinRows\"\n [cdkAutosizeMaxRows]=\"autoSizeMaxRows\"\n (keydown.control.enter)=\"onSubmit.emit($event)\"\n ></textarea>\n <mat-error *ngIf=\"textControl.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: textControl.errors['maxlength'] }}\n </mat-error>\n <mat-hint *ngIf=\"maxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: textArea.value?.length || 0, max: maxLength } }}\n </mat-hint>\n </mat-form-field>\n } @else {\n <mat-form-field\n [floatLabel]=\"floatLabel | asFloatLabelType\"\n [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\"\n >\n @if (floatLabel !== 'never' && !!placeholder) {\n <mat-label>{{ placeholder }}</mat-label>\n }\n <input\n #textInput\n matInput\n [formControl]=\"textControl\"\n [readonly]=\"textControl.disabled\"\n [placeholder]=\"floatLabel === 'never' ? placeholder : null\"\n [appAutofocus]=\"autofocus\"\n (keydown.control.enter)=\"onSubmit.emit($event)\"\n />\n <mat-error *ngIf=\"textControl.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: textControl.errors['maxlength'] }}\n </mat-error>\n <mat-error *ngIf=\"textControl.hasError('pattern')\">\n {{ 'ERROR.FIELD_INVALID' | translate }}\n </mat-error>\n <mat-error *ngIf=\"errorSpan.innerHTML.trim() as error\" [innerHTML]=\"error\"></mat-error>\n <span #errorSpan class=\"cdk-visually-hidden\">\n <ng-content select=\"[matError]\"></ng-content>\n </span>\n <mat-hint *ngIf=\"maxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: textInput.value?.length || 0, max: maxLength } }}\n </mat-hint>\n </mat-form-field>\n }\n</form>\n", styles: ["textarea{--textarea-height: 11.5em;max-height:var(--textarea-height)}textarea.fixed-height{height:var(--textarea-height)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i6.AutofocusDirective, selector: "[autofocus], input[appAutofocus]", inputs: ["appAutofocus", "autofocusDelay"] }, { kind: "directive", type: i7.AutoResizeDirective, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMaxRows", "cdkAutosizeMinRows"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.AsFloatLabelTypePipe, name: "asFloatLabelType" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
140
140
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextForm, decorators: [{
|
|
142
142
|
type: Component,
|
|
143
143
|
args: [{ selector: 'app-text-form', providers: [
|
|
144
144
|
{
|
|
@@ -5,15 +5,15 @@ import { SharedModule } from '../../../shared/shared.module';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@ngx-translate/core";
|
|
7
7
|
export class AppTextFormModule {
|
|
8
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
9
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppTextFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AppTextFormModule, declarations: [
|
|
10
10
|
// Components
|
|
11
11
|
TextForm], imports: [SharedModule, i1.TranslateModule], exports: [TranslateModule,
|
|
12
12
|
// Components
|
|
13
13
|
TextForm] });
|
|
14
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
14
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppTextFormModule, imports: [SharedModule, TranslateModule.forChild(), TranslateModule] });
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppTextFormModule, decorators: [{
|
|
17
17
|
type: NgModule,
|
|
18
18
|
args: [{
|
|
19
19
|
imports: [SharedModule, TranslateModule.forChild()],
|
|
@@ -63,10 +63,10 @@ export class TextPopoverTestingPage {
|
|
|
63
63
|
};
|
|
64
64
|
return this.showPopover(event, opts);
|
|
65
65
|
}
|
|
66
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
67
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextPopoverTestingPage, deps: [{ token: i1.PopoverController }, { token: i1.ToastController }, { token: i2.TranslateService }, { token: i3.PlatformService }], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextPopoverTestingPage, selector: "text-popover-testing", ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>Text popover</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n <p>\n Multi lines examples:\n <br />\n <small>Press Ctrl+Enter to validate</small>\n <small>\n <pre>multiline: true</pre>\n </small>\n </p>\n\n <ion-button (click)=\"showPopover($event, {})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, { autofocus: true })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n (autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, { autofocus: true })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n (headerButtons)\n </ion-button>\n\n <p>\n One line examples:\n <small>\n <pre>multiline: false</pre>\n </small>\n </p>\n\n <ion-button (click)=\"showPopover($event, { multiline: false })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n \n </ion-button>\n\n <ion-button (click)=\"showPopover($event, { multiline: false, autofocus: true })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n (autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, { multiline: false })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n (headerButtons)\n </ion-button>\n</ion-content>\n", dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] });
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextPopoverTestingPage, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{ selector: 'text-popover-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>Text popover</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n <p>\n Multi lines examples:\n <br />\n <small>Press Ctrl+Enter to validate</small>\n <small>\n <pre>multiline: true</pre>\n </small>\n </p>\n\n <ion-button (click)=\"showPopover($event, {})\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n </ion-button>\n\n <ion-button (click)=\"showPopover($event, { autofocus: true })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n (autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, { autofocus: true })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n (headerButtons)\n </ion-button>\n\n <p>\n One line examples:\n <small>\n <pre>multiline: false</pre>\n </small>\n </p>\n\n <ion-button (click)=\"showPopover($event, { multiline: false })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n \n </ion-button>\n\n <ion-button (click)=\"showPopover($event, { multiline: false, autofocus: true })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n (autofocus)\n </ion-button>\n\n <ion-button (click)=\"showSharePopoverWithButtons($event, { multiline: false })\" color=\"tertiary\">\n <span translate>COMMON.BTN_SHOW</span>\n (headerButtons)\n </ion-button>\n</ion-content>\n" }]
|
|
72
72
|
}], ctorParameters: () => [{ type: i1.PopoverController }, { type: i1.ToastController }, { type: i2.TranslateService }, { type: i3.PlatformService }] });
|
|
@@ -7,11 +7,11 @@ import { TextPopoverTestingPage } from './text-popover.testing';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@ngx-translate/core";
|
|
9
9
|
export class TextPopoverTestingModule {
|
|
10
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
11
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
12
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextPopoverTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TextPopoverTestingModule, declarations: [TextPopoverTestingPage], imports: [CommonModule, IonicModule, i1.TranslateModule], exports: [RouterModule, TextPopoverTestingPage] });
|
|
12
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextPopoverTestingModule, imports: [CommonModule, IonicModule, TranslateModule.forChild(), RouterModule] });
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextPopoverTestingModule, decorators: [{
|
|
15
15
|
type: NgModule,
|
|
16
16
|
args: [{
|
|
17
17
|
imports: [CommonModule, IonicModule, TranslateModule.forChild()],
|
|
@@ -123,10 +123,10 @@ export class TextPopover {
|
|
|
123
123
|
isEndSide(button) {
|
|
124
124
|
return button?.side !== 'start';
|
|
125
125
|
}
|
|
126
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
127
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
126
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextPopover, deps: [{ token: i1.PopoverController }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
127
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextPopover, selector: "app-text-popover", inputs: { showHeader: "showHeader", headerColor: "headerColor", showFooter: "showFooter", title: "title", text: "text", placeholder: "placeholder", editing: "editing", multiline: "multiline", autoHeight: "autoHeight", maxLength: "maxLength", autofocus: "autofocus", validator: "validator", headerButtons: "headerButtons", mobile: "mobile" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true, static: true }], ngImport: i0, template: "<ion-header *ngIf=\"showHeader\">\n <ion-toolbar [color]=\"headerColor\">\n <ion-buttons slot=\"start\">\n <ion-button\n *ngIf=\"mobile && editing\"\n (click)=\"cancel()\"\n [title]=\"!showTooltip ? ('COMMON.BTN_CANCEL' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_CANCEL' | translate) : ''\"\n >\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n <ion-button\n *ngFor=\"let button of headerButtons | arrayFilter: isStartSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\"\n >\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{ button.text | translate }}</ion-text>\n </ion-button>\n </ion-buttons>\n\n <ion-title *ngIf=\"title\">{{ title | translate }}</ion-title>\n\n <ion-buttons slot=\"end\">\n <ion-button\n *ngFor=\"let button of headerButtons | arrayFilter: isEndSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\"\n >\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{ button.text | translate }}</ion-text>\n </ion-button>\n\n <ng-container *ngIf=\"mobile\">\n <ion-button\n *ngIf=\"editing\"\n (click)=\"onValidate($event)\"\n [disabled]=\"disabled\"\n [title]=\"!showTooltip ? ('COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP' | translate) : ''\"\n >\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n <ion-button\n *ngIf=\"!editing\"\n (click)=\"cancel()\"\n [title]=\"!showTooltip ? ('COMMON.BTN_CLOSE' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_CLOSE' | translate) : ''\"\n >\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n </ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\" [class.has-header]=\"showHeader\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error | translate\"></ion-label>\n </ion-item>\n\n <app-text-form\n #form\n [standalone]=\"true\"\n [placeholder]=\"placeholder\"\n [multiline]=\"multiline\"\n [maxLength]=\"maxLength\"\n [autoHeight]=\"autoHeight\"\n [autofocus]=\"editing && autofocus\"\n [validator]=\"validator\"\n (onSubmit)=\"onValidate($event)\"\n ></app-text-form>\n</ion-content>\n\n<ion-footer *ngIf=\"showFooter\">\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n [title]=\"!showTooltip ? ('COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP' | translate) : ''\"\n >\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: ["ion-content{--textarea-height: 11.5em}ion-content.has-header{--textarea-height: calc(11.5em - var(--ion-toolbar-height, 0em))}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i6.AutofocusDirective, selector: "[autofocus], input[appAutofocus]", inputs: ["appAutofocus", "autofocusDelay"] }, { kind: "component", type: i7.TextForm, selector: "app-text-form", inputs: ["showError", "placeholder", "multiline", "autoSize", "autoSizeMinRows", "autoSizeMaxRows", "maxLength", "autofocus", "validator", "standalone", "formControl", "formControlName", "floatLabel", "appearance", "subscriptSizing", "autoHeight"], outputs: ["textAreaChanges"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.ArrayFilterPipe, name: "arrayFilter" }] });
|
|
128
128
|
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextPopover, decorators: [{
|
|
130
130
|
type: Component,
|
|
131
131
|
args: [{ selector: 'app-text-popover', template: "<ion-header *ngIf=\"showHeader\">\n <ion-toolbar [color]=\"headerColor\">\n <ion-buttons slot=\"start\">\n <ion-button\n *ngIf=\"mobile && editing\"\n (click)=\"cancel()\"\n [title]=\"!showTooltip ? ('COMMON.BTN_CANCEL' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_CANCEL' | translate) : ''\"\n >\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n <ion-button\n *ngFor=\"let button of headerButtons | arrayFilter: isStartSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\"\n >\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{ button.text | translate }}</ion-text>\n </ion-button>\n </ion-buttons>\n\n <ion-title *ngIf=\"title\">{{ title | translate }}</ion-title>\n\n <ion-buttons slot=\"end\">\n <ion-button\n *ngFor=\"let button of headerButtons | arrayFilter: isEndSide\"\n [fill]=\"button.fill\"\n [color]=\"button.color\"\n (click)=\"clickButton(button)\"\n >\n <ion-icon *ngIf=\"button.icon\" [slot]=\"button.text ? 'start' : 'icon-only'\" [name]=\"button.icon\"></ion-icon>\n <ion-text *ngIf=\"button.text\">{{ button.text | translate }}</ion-text>\n </ion-button>\n\n <ng-container *ngIf=\"mobile\">\n <ion-button\n *ngIf=\"editing\"\n (click)=\"onValidate($event)\"\n [disabled]=\"disabled\"\n [title]=\"!showTooltip ? ('COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP' | translate) : ''\"\n >\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n <ion-button\n *ngIf=\"!editing\"\n (click)=\"cancel()\"\n [title]=\"!showTooltip ? ('COMMON.BTN_CLOSE' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_CLOSE' | translate) : ''\"\n >\n <ion-icon slot=\"icon-only\" name=\"close\"></ion-icon>\n </ion-button>\n </ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\" [class.has-header]=\"showHeader\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error | translate\"></ion-label>\n </ion-item>\n\n <app-text-form\n #form\n [standalone]=\"true\"\n [placeholder]=\"placeholder\"\n [multiline]=\"multiline\"\n [maxLength]=\"maxLength\"\n [autoHeight]=\"autoHeight\"\n [autofocus]=\"editing && autofocus\"\n [validator]=\"validator\"\n (onSubmit)=\"onValidate($event)\"\n ></app-text-form>\n</ion-content>\n\n<ion-footer *ngIf=\"showFooter\">\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n [title]=\"!showTooltip ? ('COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP' | translate) : ''\"\n [matTooltip]=\"showTooltip ? ('COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP' | translate) : ''\"\n >\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n", styles: ["ion-content{--textarea-height: 11.5em}ion-content.has-header{--textarea-height: calc(11.5em - var(--ion-toolbar-height, 0em))}\n"] }]
|
|
132
132
|
}], ctorParameters: () => [{ type: i1.PopoverController }, { type: i2.TranslateService }], propDecorators: { form: [{
|