@siemens/element-ng 49.16.0 → 51.0.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/fesm2022/siemens-element-ng-about.mjs +41 -25
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +59 -41
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +83 -53
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +143 -148
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +180 -188
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +34 -28
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +27 -22
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +34 -24
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +9 -8
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +17 -14
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +21 -17
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +72 -47
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +58 -34
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +323 -215
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +39 -25
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +44 -34
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +58 -37
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +22 -22
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs +14 -12
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +37 -28
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-copyright-notice.mjs +19 -14
- package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +337 -223
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +12 -15
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +126 -76
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +393 -251
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +22 -17
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +15 -12
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +105 -91
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +33 -25
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +274 -165
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +12 -10
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +361 -116
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly-legacy.mjs +99 -0
- package/fesm2022/siemens-element-ng-formly-legacy.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-formly.mjs +224 -318
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +40 -30
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +6 -6
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +56 -57
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +17 -11
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +19 -14
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +19 -15
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +121 -75
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +16 -12
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +31 -21
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +132 -66
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +51 -64
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-localization.mjs +14 -12
- package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +116 -51
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-maplibre.mjs +401 -0
- package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-directives-tabs.mjs +70 -0
- package/fesm2022/siemens-element-ng-markdown-directives-tabs.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-citations.mjs +215 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-citations.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +76 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs +86 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs +130 -0
- package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown.mjs +800 -0
- package/fesm2022/siemens-element-ng-markdown.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-menu.mjs +71 -57
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +14 -11
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +251 -206
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +123 -86
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +72 -45
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +19 -11
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +41 -29
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +31 -20
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs +33 -24
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -14
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +144 -139
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +85 -52
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +56 -41
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +43 -28
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +35 -27
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs +23 -16
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +32 -43
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +12 -10
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +38 -37
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +265 -170
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +4 -4
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +181 -104
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +21 -24
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +45 -30
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-source-chip.mjs +79 -0
- package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-split.mjs +290 -306
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +66 -52
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs +15 -11
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +26 -16
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +25 -16
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +27 -17
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +13 -10
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +20 -17
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +156 -131
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +29 -6
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +62 -42
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +59 -40
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +108 -82
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +36 -19
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs +0 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +113 -84
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +69 -49
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +95 -54
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/formly-legacy/package.json +4 -0
- package/maplibre/package.json +4 -0
- package/maplibre/styles/_index.scss +1 -0
- package/maplibre/styles/maplibre-gl.scss +724 -0
- package/markdown/directives/tabs/package.json +4 -0
- package/markdown/extensions/citations/package.json +4 -0
- package/markdown/extensions/katex/package.json +4 -0
- package/markdown/extensions/mermaid/package.json +4 -0
- package/markdown/hightlighter/highlightjs/package.json +4 -0
- package/markdown/package.json +4 -0
- package/package.json +96 -25
- package/schematics/collection.json +5 -0
- package/schematics/{migrations/icon-path-migration → migrate-tabs-legacy}/index.js +1 -1
- package/schematics/migrate-tabs-legacy/migrate-tabs-legacy-rule.js +675 -0
- package/schematics/migrate-tabs-legacy/schema.json +14 -0
- package/schematics/migration.json +4 -4
- package/schematics/migrations/data/class-member-replacement.js +1 -19
- package/schematics/migrations/data/component-property-names.js +1 -25
- package/schematics/migrations/data/component-property-to-child.js +11 -0
- package/schematics/migrations/data/css-custom-properties.js +224 -0
- package/schematics/migrations/data/element-class-changes.js +116 -18
- package/schematics/migrations/data/element-migration-data.js +6 -0
- package/schematics/migrations/data/element-selectors.js +1 -9
- package/schematics/migrations/data/index.js +0 -4
- package/schematics/migrations/data/migration-test-data.js +49 -6
- package/schematics/migrations/data/provider-function-removals.js +7 -0
- package/schematics/migrations/data/symbol-removals.js +17 -7
- package/schematics/migrations/data/symbol-renaming.js +3 -44
- package/schematics/migrations/element-migration/element-migration.js +6 -6
- package/schematics/migrations/utilities/component-property-to-child.migration.js +73 -0
- package/schematics/migrations/utilities/css-custom-property.migration.js +51 -0
- package/schematics/migrations/utilities/element-class-change.migration.js +10 -5
- package/schematics/migrations/utilities/import-removal.js +39 -0
- package/schematics/migrations/utilities/index.js +4 -0
- package/schematics/migrations/utilities/provider-function-removal.migration.js +116 -0
- package/schematics/ng-update/index.js +1 -1
- package/schematics/ng-update/migrate-content-formatter.js +288 -0
- package/schematics/ng-update/migrate-list-details-units.js +86 -0
- package/schematics/ng-update/migrate-main-detail-units.js +89 -0
- package/schematics/ng-update/migrate-markdown-renderer.js +106 -0
- package/schematics/ng-update/migrate-spacers.js +32 -0
- package/schematics/ng-update/migrate-split-collapse.js +276 -0
- package/schematics/ng-update/migrate-split-scale.js +524 -0
- package/schematics/ng-update/migrate-split-sizes.js +107 -0
- package/schematics/ng-update/migrate-to-v51.js +35 -0
- package/schematics/utils/index.js +1 -0
- package/schematics/utils/template-edit-utils.js +35 -0
- package/schematics/utils/template-utils.js +31 -45
- package/source-chip/package.json +4 -0
- package/template-i18n.json +78 -47
- package/types/siemens-element-ng-application-header.d.ts +7 -33
- package/types/siemens-element-ng-avatar.d.ts +1 -1
- package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
- package/types/siemens-element-ng-chat-messages.d.ts +118 -70
- package/types/siemens-element-ng-circle-status.d.ts +1 -1
- package/types/siemens-element-ng-content-action-bar.d.ts +1 -1
- package/types/siemens-element-ng-dashboard.d.ts +2 -2
- package/types/siemens-element-ng-datatable.d.ts +5 -56
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-datepicker.d.ts +8 -15
- package/types/siemens-element-ng-electron-titlebar.d.ts +1 -1
- package/types/siemens-element-ng-file-uploader.d.ts +13 -31
- package/types/siemens-element-ng-filter-bar.d.ts +1 -1
- package/types/siemens-element-ng-filtered-search.d.ts +4 -4
- package/types/siemens-element-ng-form.d.ts +183 -44
- package/types/siemens-element-ng-formly-legacy.d.ts +40 -0
- package/types/siemens-element-ng-formly.d.ts +34 -167
- package/types/siemens-element-ng-icon.d.ts +2 -19
- package/types/siemens-element-ng-landing-page.d.ts +2 -2
- package/types/siemens-element-ng-list-details.d.ts +25 -3
- package/types/siemens-element-ng-loading-spinner.d.ts +11 -17
- package/types/siemens-element-ng-main-detail-container.d.ts +23 -3
- package/types/siemens-element-ng-maplibre.d.ts +190 -0
- package/types/siemens-element-ng-markdown-directives-tabs.d.ts +10 -0
- package/types/siemens-element-ng-markdown-extensions-citations.d.ts +11 -0
- package/types/siemens-element-ng-markdown-extensions-katex.d.ts +19 -0
- package/types/siemens-element-ng-markdown-extensions-mermaid.d.ts +11 -0
- package/types/siemens-element-ng-markdown-hightlighter-highlightjs.d.ts +48 -0
- package/types/siemens-element-ng-markdown.d.ts +367 -0
- package/types/siemens-element-ng-menu.d.ts +2 -0
- package/types/siemens-element-ng-navbar-vertical-next.d.ts +87 -39
- package/types/siemens-element-ng-navbar-vertical.d.ts +1 -1
- package/types/siemens-element-ng-navbar.d.ts +3 -3
- package/types/siemens-element-ng-notification-item.d.ts +12 -0
- package/types/siemens-element-ng-phone-number.d.ts +28 -10
- package/types/siemens-element-ng-photo-upload.d.ts +4 -4
- package/types/siemens-element-ng-resize-observer.d.ts +0 -17
- package/types/siemens-element-ng-search-bar.d.ts +2 -9
- package/types/siemens-element-ng-select.d.ts +32 -5
- package/types/siemens-element-ng-side-panel.d.ts +25 -11
- package/types/siemens-element-ng-source-chip.d.ts +53 -0
- package/types/siemens-element-ng-split.d.ts +101 -78
- package/types/siemens-element-ng-status-bar.d.ts +5 -13
- package/types/siemens-element-ng-status-counter.d.ts +1 -1
- package/types/siemens-element-ng-system-banner.d.ts +2 -2
- package/types/siemens-element-ng-tabs.d.ts +1 -2
- package/types/siemens-element-ng-theme.d.ts +12 -2
- package/types/siemens-element-ng-threshold.d.ts +1 -1
- package/types/siemens-element-ng-toast-notification.d.ts +0 -1
- package/types/siemens-element-ng-tooltip.d.ts +7 -7
- package/types/siemens-element-ng-translate.d.ts +35 -5
- package/types/siemens-element-ng-tree-view.d.ts +3 -0
- package/types/siemens-element-ng-wizard.d.ts +18 -3
- package/fesm2022/siemens-element-ng-icon-status.mjs +0 -46
- package/fesm2022/siemens-element-ng-icon-status.mjs.map +0 -1
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +0 -263
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +0 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +0 -99
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +0 -1
- package/icon-status/package.json +0 -4
- package/markdown-renderer/package.json +0 -4
- package/schematics/migrations/icon-path-migration/icon-path-migration.js +0 -95
- package/schematics/ng-update/migrate-to-v49.js +0 -21
- package/schematics/vitest-setup.js +0 -5
- package/sort-bar/package.json +0 -4
- package/types/siemens-element-ng-icon-status.d.ts +0 -25
- package/types/siemens-element-ng-markdown-renderer.d.ts +0 -36
- package/types/siemens-element-ng-sort-bar.d.ts +0 -59
- /package/{LICENSE.md → LICENSE} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, numberAttribute, booleanAttribute, computed, output, viewChild, signal, inject, ChangeDetectorRef,
|
|
2
|
+
import { input, numberAttribute, booleanAttribute, computed, output, viewChild, signal, inject, ChangeDetectorRef, Component, NgModule } from '@angular/core';
|
|
3
3
|
import { Validators, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
4
4
|
import { elementPlus, elementMinus } from '@siemens/element-icons';
|
|
5
5
|
import { SI_FORM_ITEM_CONTROL } from '@siemens/element-ng/form';
|
|
@@ -24,7 +24,7 @@ class SiNumberInputComponent {
|
|
|
24
24
|
*
|
|
25
25
|
* @defaultValue undefined
|
|
26
26
|
*/
|
|
27
|
-
minInput = input(undefined, { ...(ngDevMode ? { debugName: "minInput" } : {}),
|
|
27
|
+
minInput = input(undefined, { ...(ngDevMode ? { debugName: "minInput" } : /* istanbul ignore next */ {}),
|
|
28
28
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
29
29
|
alias: 'min',
|
|
30
30
|
transform: numberAttribute });
|
|
@@ -33,7 +33,7 @@ class SiNumberInputComponent {
|
|
|
33
33
|
*
|
|
34
34
|
* @defaultValue undefined
|
|
35
35
|
*/
|
|
36
|
-
maxInput = input(undefined, { ...(ngDevMode ? { debugName: "maxInput" } : {}),
|
|
36
|
+
maxInput = input(undefined, { ...(ngDevMode ? { debugName: "maxInput" } : /* istanbul ignore next */ {}),
|
|
37
37
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
38
38
|
alias: 'max',
|
|
39
39
|
transform: numberAttribute });
|
|
@@ -42,24 +42,27 @@ class SiNumberInputComponent {
|
|
|
42
42
|
*
|
|
43
43
|
* @defaultValue 1
|
|
44
44
|
*/
|
|
45
|
-
step = input(1,
|
|
45
|
+
step = input(1, /* @ts-ignore */
|
|
46
|
+
...(ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []));
|
|
46
47
|
/** The value */
|
|
47
48
|
// eslint-disable-next-line @angular-eslint/prefer-signal-model
|
|
48
|
-
value = input(
|
|
49
|
+
value = input(/* @ts-ignore */
|
|
50
|
+
...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
|
|
49
51
|
/** Optional unit label */
|
|
50
|
-
unit = input(
|
|
52
|
+
unit = input(/* @ts-ignore */
|
|
53
|
+
...(ngDevMode ? [undefined, { debugName: "unit" }] : /* istanbul ignore next */ []));
|
|
51
54
|
/**
|
|
52
55
|
* Show increment/decrement buttons?
|
|
53
56
|
*
|
|
54
57
|
* @defaultValue true
|
|
55
58
|
*/
|
|
56
|
-
showButtons = input(true, { ...(ngDevMode ? { debugName: "showButtons" } : {}), transform: booleanAttribute });
|
|
59
|
+
showButtons = input(true, { ...(ngDevMode ? { debugName: "showButtons" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
57
60
|
/**
|
|
58
61
|
* The aria-label passed to the input
|
|
59
62
|
*
|
|
60
63
|
* @defaultValue undefined
|
|
61
64
|
*/
|
|
62
|
-
ariaLabel = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabel" } : {}), alias: 'aria-label' });
|
|
65
|
+
ariaLabel = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
63
66
|
/**
|
|
64
67
|
* ID that is set on the input, e.g. for `<label for="...">`
|
|
65
68
|
*
|
|
@@ -68,28 +71,32 @@ class SiNumberInputComponent {
|
|
|
68
71
|
* `__si-number-input-${SiNumberInputComponent.idCounter++}`
|
|
69
72
|
* ```
|
|
70
73
|
*/
|
|
71
|
-
inputId = input(`__si-number-input-${SiNumberInputComponent.idCounter++}`,
|
|
72
|
-
|
|
74
|
+
inputId = input(`__si-number-input-${SiNumberInputComponent.idCounter++}`, /* @ts-ignore */
|
|
75
|
+
...(ngDevMode ? [{ debugName: "inputId" }] : /* istanbul ignore next */ []));
|
|
76
|
+
id = computed(() => this.inputId(), /* @ts-ignore */
|
|
77
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
73
78
|
/**
|
|
74
79
|
* Whether the input is disabled.
|
|
75
80
|
*
|
|
76
81
|
* @defaultValue false
|
|
77
82
|
*/
|
|
78
83
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
79
|
-
disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : {}), alias: 'disabled', transform: booleanAttribute });
|
|
84
|
+
disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled', transform: booleanAttribute });
|
|
80
85
|
/**
|
|
81
86
|
* Whether the input can be focused but not edited.
|
|
82
87
|
*
|
|
83
88
|
* @defaultValue false
|
|
84
89
|
*/
|
|
85
|
-
readonly = input(false, { ...(ngDevMode ? { debugName: "readonly" } : {}), transform: booleanAttribute });
|
|
90
|
+
readonly = input(false, { ...(ngDevMode ? { debugName: "readonly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
86
91
|
/**
|
|
87
92
|
* The placeholder for input field.
|
|
88
93
|
*/
|
|
89
|
-
placeholder = input(
|
|
94
|
+
placeholder = input(/* @ts-ignore */
|
|
95
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
90
96
|
/** Emits the current value when the user changes it. */
|
|
91
97
|
valueChange = output();
|
|
92
|
-
inputElement = viewChild.required('inputElement'
|
|
98
|
+
inputElement = viewChild.required('inputElement', /* @ts-ignore */
|
|
99
|
+
...(ngDevMode ? [{ debugName: "inputElement" }] : /* istanbul ignore next */ []));
|
|
93
100
|
/**
|
|
94
101
|
* This ID will be bound to the `aria-describedby` attribute of the number-input.
|
|
95
102
|
* Use this to reference the element containing the error message(s) for the number-input.
|
|
@@ -100,11 +107,14 @@ class SiNumberInputComponent {
|
|
|
100
107
|
* `${this.id()}-errormessage`
|
|
101
108
|
* ```
|
|
102
109
|
*/
|
|
103
|
-
errormessageId = input(`${this.id()}-errormessage`,
|
|
110
|
+
errormessageId = input(`${this.id()}-errormessage`, /* @ts-ignore */
|
|
111
|
+
...(ngDevMode ? [{ debugName: "errormessageId" }] : /* istanbul ignore next */ []));
|
|
104
112
|
canInc = true;
|
|
105
113
|
canDec = true;
|
|
106
|
-
disabled = computed(() => this.disabledInput() || this.disabledNgControl(),
|
|
107
|
-
|
|
114
|
+
disabled = computed(() => this.disabledInput() || this.disabledNgControl(), /* @ts-ignore */
|
|
115
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
116
|
+
disabledNgControl = signal(false, /* @ts-ignore */
|
|
117
|
+
...(ngDevMode ? [{ debugName: "disabledNgControl" }] : /* istanbul ignore next */ []));
|
|
108
118
|
onTouched = () => { };
|
|
109
119
|
onChange = () => { };
|
|
110
120
|
validator = SiNumberInputComponent.formatValidator;
|
|
@@ -112,11 +122,13 @@ class SiNumberInputComponent {
|
|
|
112
122
|
min = computed(() => {
|
|
113
123
|
const minVal = this.minInput();
|
|
114
124
|
return minVal === undefined || isNaN(minVal) ? undefined : minVal;
|
|
115
|
-
},
|
|
125
|
+
}, /* @ts-ignore */
|
|
126
|
+
...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
|
|
116
127
|
max = computed(() => {
|
|
117
128
|
const maxVal = this.maxInput();
|
|
118
129
|
return maxVal === undefined || isNaN(maxVal) ? undefined : maxVal;
|
|
119
|
-
},
|
|
130
|
+
}, /* @ts-ignore */
|
|
131
|
+
...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
120
132
|
icons = addIcons({ elementMinus, elementPlus });
|
|
121
133
|
internalValue;
|
|
122
134
|
autoUpdate$ = timer(400, 80);
|
|
@@ -212,8 +224,8 @@ class SiNumberInputComponent {
|
|
|
212
224
|
this.inputElement().nativeElement.value = value == null ? '' : value.toString();
|
|
213
225
|
this.internalValue = value;
|
|
214
226
|
}
|
|
215
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
216
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
227
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
228
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiNumberInputComponent, isStandalone: true, selector: "si-number-input", inputs: { minInput: { classPropertyName: "minInput", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, maxInput: { classPropertyName: "maxInput", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, showButtons: { classPropertyName: "showButtons", publicName: "showButtons", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, errormessageId: { classPropertyName: "errormessageId", publicName: "errormessageId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.show-step-buttons": "showButtons()", "class.disabled": "disabled()", "class.readonly": "readonly()" } }, providers: [
|
|
217
229
|
{
|
|
218
230
|
provide: NG_VALUE_ACCESSOR,
|
|
219
231
|
useExisting: SiNumberInputComponent,
|
|
@@ -228,9 +240,9 @@ class SiNumberInputComponent {
|
|
|
228
240
|
provide: SI_FORM_ITEM_CONTROL,
|
|
229
241
|
useExisting: SiNumberInputComponent
|
|
230
242
|
}
|
|
231
|
-
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<input\n #inputElement\n type=\"number\"\n class=\"focus-none\"\n [attr.id]=\"inputId()\"\n [step]=\"step()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [attr.placeholder]=\"placeholder() | translate\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n (blur)=\"onTouched()\"\n (input)=\"modelChanged()\"\n/>\n@if (unit()) {\n <span class=\"unit\" [class.text-secondary]=\"!disabled()\" [class.text-disabled]=\"disabled()\">{{\n unit()\n }}</span>\n}\n@if (showButtons()) {\n <div class=\"form-control-actions\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"dec btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canDec\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"inc btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canInc\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n </div>\n}\n", styles: [":host{display:flex;align-items:center}:host:focus-within{outline:var(--element-button-focus-width) solid var(--
|
|
243
|
+
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<input\n #inputElement\n type=\"number\"\n class=\"focus-none\"\n [attr.id]=\"inputId()\"\n [step]=\"step()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [attr.placeholder]=\"placeholder() | translate\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n (blur)=\"onTouched()\"\n (input)=\"modelChanged()\"\n/>\n@if (unit()) {\n <span class=\"unit\" [class.text-secondary]=\"!disabled()\" [class.text-disabled]=\"disabled()\">{{\n unit()\n }}</span>\n}\n@if (showButtons()) {\n <div class=\"form-control-actions\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"dec btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canDec\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"inc btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canInc\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n </div>\n}\n", styles: [":host{display:flex;align-items:center}:host:focus-within{outline:var(--element-button-focus-width) solid var(--si-sys-effects-focus);outline-offset:var(--element-button-focus-overlay-width)}input{-moz-appearance:textfield;border:0;margin:0;padding-block:0;background:transparent;color:inherit;text-align:inherit;flex:1 0 0;min-inline-size:0}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
232
244
|
}
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNumberInputComponent, decorators: [{
|
|
234
246
|
type: Component,
|
|
235
247
|
args: [{ selector: 'si-number-input', imports: [SiIconComponent, SiTranslatePipe], providers: [
|
|
236
248
|
{
|
|
@@ -247,11 +259,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
247
259
|
provide: SI_FORM_ITEM_CONTROL,
|
|
248
260
|
useExisting: SiNumberInputComponent
|
|
249
261
|
}
|
|
250
|
-
],
|
|
262
|
+
], host: {
|
|
251
263
|
'[class.show-step-buttons]': 'showButtons()',
|
|
252
264
|
'[class.disabled]': 'disabled()',
|
|
253
265
|
'[class.readonly]': 'readonly()'
|
|
254
|
-
}, template: "<input\n #inputElement\n type=\"number\"\n class=\"focus-none\"\n [attr.id]=\"inputId()\"\n [step]=\"step()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [attr.placeholder]=\"placeholder() | translate\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n (blur)=\"onTouched()\"\n (input)=\"modelChanged()\"\n/>\n@if (unit()) {\n <span class=\"unit\" [class.text-secondary]=\"!disabled()\" [class.text-disabled]=\"disabled()\">{{\n unit()\n }}</span>\n}\n@if (showButtons()) {\n <div class=\"form-control-actions\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"dec btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canDec\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"inc btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canInc\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n </div>\n}\n", styles: [":host{display:flex;align-items:center}:host:focus-within{outline:var(--element-button-focus-width) solid var(--
|
|
266
|
+
}, template: "<input\n #inputElement\n type=\"number\"\n class=\"focus-none\"\n [attr.id]=\"inputId()\"\n [step]=\"step()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [attr.placeholder]=\"placeholder() | translate\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n (blur)=\"onTouched()\"\n (input)=\"modelChanged()\"\n/>\n@if (unit()) {\n <span class=\"unit\" [class.text-secondary]=\"!disabled()\" [class.text-disabled]=\"disabled()\">{{\n unit()\n }}</span>\n}\n@if (showButtons()) {\n <div class=\"form-control-actions\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"dec btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canDec\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"inc btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canInc\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n </div>\n}\n", styles: [":host{display:flex;align-items:center}:host:focus-within{outline:var(--element-button-focus-width) solid var(--si-sys-effects-focus);outline-offset:var(--element-button-focus-overlay-width)}input{-moz-appearance:textfield;border:0;margin:0;padding-block:0;background:transparent;color:inherit;text-align:inherit;flex:1 0 0;min-inline-size:0}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
|
255
267
|
}], propDecorators: { minInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], maxInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }], showButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showButtons", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], inputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputId", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], inputElement: [{ type: i0.ViewChild, args: ['inputElement', { isSignal: true }] }], errormessageId: [{ type: i0.Input, args: [{ isSignal: true, alias: "errormessageId", required: false }] }] } });
|
|
256
268
|
|
|
257
269
|
/**
|
|
@@ -259,11 +271,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
259
271
|
* SPDX-License-Identifier: MIT
|
|
260
272
|
*/
|
|
261
273
|
class SiNumberInputModule {
|
|
262
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
263
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
264
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
274
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNumberInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
275
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SiNumberInputModule, imports: [SiNumberInputComponent], exports: [SiNumberInputComponent] });
|
|
276
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNumberInputModule, imports: [SiNumberInputComponent] });
|
|
265
277
|
}
|
|
266
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNumberInputModule, decorators: [{
|
|
267
279
|
type: NgModule,
|
|
268
280
|
args: [{
|
|
269
281
|
imports: [SiNumberInputComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-number-input.mjs","sources":["../../../../projects/element-ng/number-input/si-number-input.component.ts","../../../../projects/element-ng/number-input/si-number-input.component.html","../../../../projects/element-ng/number-input/si-number-input.module.ts","../../../../projects/element-ng/number-input/index.ts","../../../../projects/element-ng/number-input/siemens-element-ng-number-input.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n numberAttribute,\n OnChanges,\n output,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { elementMinus, elementPlus } from '@siemens/element-icons';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { Subscription, timer } from 'rxjs';\n\n@Component({\n selector: 'si-number-input',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-number-input.component.html',\n styleUrl: './si-number-input.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiNumberInputComponent,\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: SiNumberInputComponent,\n multi: true\n },\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiNumberInputComponent\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.show-step-buttons]': 'showButtons()',\n '[class.disabled]': 'disabled()',\n '[class.readonly]': 'readonly()'\n }\n})\nexport class SiNumberInputComponent\n implements OnChanges, ControlValueAccessor, Validator, SiFormItemControl\n{\n private static idCounter = 0;\n private static formatValidator: ValidatorFn = control => {\n if (control.value != null && isNaN(control.value)) {\n return { numberFormat: true };\n }\n return null;\n };\n\n /**\n * The min. value for HTML input\n *\n * @defaultValue undefined\n */\n readonly minInput = input<number | undefined, unknown>(undefined, {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'min',\n transform: numberAttribute\n });\n /**\n * The max. value for HTML input\n *\n * @defaultValue undefined\n */\n readonly maxInput = input<number | undefined, unknown>(undefined, {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'max',\n transform: numberAttribute\n });\n /**\n * The step size for HTML input\n *\n * @defaultValue 1\n */\n readonly step = input<number | 'any'>(1);\n /** The value */\n // eslint-disable-next-line @angular-eslint/prefer-signal-model\n readonly value = input<number>();\n /** Optional unit label */\n readonly unit = input<string>();\n /**\n * Show increment/decrement buttons?\n *\n * @defaultValue true\n */\n readonly showButtons = input(true, { transform: booleanAttribute });\n /**\n * The aria-label passed to the input\n *\n * @defaultValue undefined\n */\n readonly ariaLabel = input<TranslatableString>(undefined, { alias: 'aria-label' });\n /**\n * ID that is set on the input, e.g. for `<label for=\"...\">`\n *\n * @defaultValue\n * ```\n * `__si-number-input-${SiNumberInputComponent.idCounter++}`\n * ```\n */\n readonly inputId = input(`__si-number-input-${SiNumberInputComponent.idCounter++}`);\n\n readonly id = computed(() => this.inputId());\n\n /**\n * Whether the input is disabled.\n *\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n /**\n * Whether the input can be focused but not edited.\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n /**\n * The placeholder for input field.\n */\n readonly placeholder = input<TranslatableString>();\n\n /** Emits the current value when the user changes it. */\n readonly valueChange = output<number | undefined>();\n\n readonly inputElement = viewChild.required<ElementRef<HTMLInputElement>>('inputElement');\n\n /**\n * This ID will be bound to the `aria-describedby` attribute of the number-input.\n * Use this to reference the element containing the error message(s) for the number-input.\n * It will be picked by the {@link SiFormItemComponent} if the number-input is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected canInc = true;\n protected canDec = true;\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n private readonly disabledNgControl = signal(false);\n protected onTouched: () => void = () => {};\n protected onChange: (val: any) => void = () => {};\n protected validator: ValidatorFn | null = SiNumberInputComponent.formatValidator;\n protected onValidatorChanged: () => void = () => {};\n protected readonly min = computed(() => {\n const minVal = this.minInput();\n return minVal === undefined || isNaN(minVal) ? undefined : minVal;\n });\n protected readonly max = computed(() => {\n const maxVal = this.maxInput();\n return maxVal === undefined || isNaN(maxVal) ? undefined : maxVal;\n });\n protected readonly icons = addIcons({ elementMinus, elementPlus });\n private internalValue?: number;\n private autoUpdate$ = timer(400, 80);\n private autoUpdateSubs?: Subscription;\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.value) {\n this.writeValueToInput(this.value());\n }\n if (changes.minInput || changes.maxInput) {\n const minValue = this.min();\n const maxValue = this.max();\n this.validator = Validators.compose([\n minValue != null ? Validators.min(minValue) : null,\n maxValue != null ? Validators.max(maxValue) : null,\n SiNumberInputComponent.formatValidator\n ])!;\n this.onValidatorChanged();\n }\n this.updateStepButtons();\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n /** @internal */\n writeValue(value: number | undefined): void {\n this.writeValueToInput(value);\n this.updateStepButtons();\n this.changeDetectorRef.markForCheck();\n }\n\n /** @internal */\n validate(control: AbstractControl): ValidationErrors | null {\n return this.validator ? this.validator(control) : null;\n }\n\n /** @internal */\n registerOnValidatorChange?(fn: () => void): void {\n this.onValidatorChanged = fn;\n }\n\n protected modelChanged(): void {\n const value = this.inputElement().nativeElement.value\n ? this.inputElement().nativeElement.valueAsNumber\n : undefined;\n this.internalValue = value;\n this.updateStepButtons();\n this.onChange(value);\n this.valueChange.emit(value);\n }\n\n protected autoUpdateStart(event: Event, isIncrement: boolean): void {\n const mouseButton = (event as MouseEvent).button;\n if (mouseButton) {\n return;\n }\n\n this.onTouched();\n event.preventDefault();\n const trigger = isIncrement ? () => this.increment() : () => this.decrement();\n this.autoUpdateSubs?.unsubscribe();\n this.autoUpdateSubs = this.autoUpdate$.subscribe(trigger);\n trigger();\n }\n\n protected autoUpdateStop(): void {\n this.autoUpdateSubs?.unsubscribe();\n this.autoUpdateSubs = undefined;\n }\n\n private updateStepButtons(): void {\n const stepValue = this.step();\n const step = typeof stepValue === 'number' ? stepValue : 1;\n const max = this.max();\n this.canInc = max == null || this.internalValue == null || this.internalValue + step <= max;\n const min = this.min();\n this.canDec = min == null || this.internalValue == null || this.internalValue - step >= min;\n if (!this.canInc || !this.canDec) {\n this.autoUpdateStop();\n }\n }\n\n private decrement(): void {\n this.inputElement().nativeElement.stepDown();\n this.modelChanged();\n }\n\n private increment(): void {\n this.inputElement().nativeElement.stepUp();\n this.modelChanged();\n }\n\n private writeValueToInput(value: number | undefined): void {\n this.inputElement().nativeElement.value = value == null ? '' : value.toString();\n this.internalValue = value;\n }\n}\n","<input\n #inputElement\n type=\"number\"\n class=\"focus-none\"\n [attr.id]=\"inputId()\"\n [step]=\"step()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [attr.placeholder]=\"placeholder() | translate\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n (blur)=\"onTouched()\"\n (input)=\"modelChanged()\"\n/>\n@if (unit()) {\n <span class=\"unit\" [class.text-secondary]=\"!disabled()\" [class.text-disabled]=\"disabled()\">{{\n unit()\n }}</span>\n}\n@if (showButtons()) {\n <div class=\"form-control-actions\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"dec btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canDec\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"inc btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canInc\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiNumberInputComponent } from './si-number-input.component';\n\n@NgModule({\n imports: [SiNumberInputComponent],\n exports: [SiNumberInputComponent]\n})\nexport class SiNumberInputModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-number-input.component';\nexport * from './si-number-input.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-number-input.mjs","sources":["../../../../projects/element-ng/number-input/si-number-input.component.ts","../../../../projects/element-ng/number-input/si-number-input.component.html","../../../../projects/element-ng/number-input/si-number-input.module.ts","../../../../projects/element-ng/number-input/index.ts","../../../../projects/element-ng/number-input/siemens-element-ng-number-input.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n numberAttribute,\n OnChanges,\n output,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { elementMinus, elementPlus } from '@siemens/element-icons';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { Subscription, timer } from 'rxjs';\n\n@Component({\n selector: 'si-number-input',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-number-input.component.html',\n styleUrl: './si-number-input.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiNumberInputComponent,\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: SiNumberInputComponent,\n multi: true\n },\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiNumberInputComponent\n }\n ],\n host: {\n '[class.show-step-buttons]': 'showButtons()',\n '[class.disabled]': 'disabled()',\n '[class.readonly]': 'readonly()'\n }\n})\nexport class SiNumberInputComponent\n implements OnChanges, ControlValueAccessor, Validator, SiFormItemControl\n{\n private static idCounter = 0;\n private static formatValidator: ValidatorFn = control => {\n if (control.value != null && isNaN(control.value)) {\n return { numberFormat: true };\n }\n return null;\n };\n\n /**\n * The min. value for HTML input\n *\n * @defaultValue undefined\n */\n readonly minInput = input<number | undefined, unknown>(undefined, {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'min',\n transform: numberAttribute\n });\n /**\n * The max. value for HTML input\n *\n * @defaultValue undefined\n */\n readonly maxInput = input<number | undefined, unknown>(undefined, {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: 'max',\n transform: numberAttribute\n });\n /**\n * The step size for HTML input\n *\n * @defaultValue 1\n */\n readonly step = input<number | 'any'>(1);\n /** The value */\n // eslint-disable-next-line @angular-eslint/prefer-signal-model\n readonly value = input<number>();\n /** Optional unit label */\n readonly unit = input<string>();\n /**\n * Show increment/decrement buttons?\n *\n * @defaultValue true\n */\n readonly showButtons = input(true, { transform: booleanAttribute });\n /**\n * The aria-label passed to the input\n *\n * @defaultValue undefined\n */\n readonly ariaLabel = input<TranslatableString>(undefined, { alias: 'aria-label' });\n /**\n * ID that is set on the input, e.g. for `<label for=\"...\">`\n *\n * @defaultValue\n * ```\n * `__si-number-input-${SiNumberInputComponent.idCounter++}`\n * ```\n */\n readonly inputId = input(`__si-number-input-${SiNumberInputComponent.idCounter++}`);\n\n readonly id = computed(() => this.inputId());\n\n /**\n * Whether the input is disabled.\n *\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n /**\n * Whether the input can be focused but not edited.\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n /**\n * The placeholder for input field.\n */\n readonly placeholder = input<TranslatableString>();\n\n /** Emits the current value when the user changes it. */\n readonly valueChange = output<number | undefined>();\n\n readonly inputElement = viewChild.required<ElementRef<HTMLInputElement>>('inputElement');\n\n /**\n * This ID will be bound to the `aria-describedby` attribute of the number-input.\n * Use this to reference the element containing the error message(s) for the number-input.\n * It will be picked by the {@link SiFormItemComponent} if the number-input is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected canInc = true;\n protected canDec = true;\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n private readonly disabledNgControl = signal(false);\n protected onTouched: () => void = () => {};\n protected onChange: (val: any) => void = () => {};\n protected validator: ValidatorFn | null = SiNumberInputComponent.formatValidator;\n protected onValidatorChanged: () => void = () => {};\n protected readonly min = computed(() => {\n const minVal = this.minInput();\n return minVal === undefined || isNaN(minVal) ? undefined : minVal;\n });\n protected readonly max = computed(() => {\n const maxVal = this.maxInput();\n return maxVal === undefined || isNaN(maxVal) ? undefined : maxVal;\n });\n protected readonly icons = addIcons({ elementMinus, elementPlus });\n private internalValue?: number;\n private autoUpdate$ = timer(400, 80);\n private autoUpdateSubs?: Subscription;\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.value) {\n this.writeValueToInput(this.value());\n }\n if (changes.minInput || changes.maxInput) {\n const minValue = this.min();\n const maxValue = this.max();\n this.validator = Validators.compose([\n minValue != null ? Validators.min(minValue) : null,\n maxValue != null ? Validators.max(maxValue) : null,\n SiNumberInputComponent.formatValidator\n ])!;\n this.onValidatorChanged();\n }\n this.updateStepButtons();\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n /** @internal */\n writeValue(value: number | undefined): void {\n this.writeValueToInput(value);\n this.updateStepButtons();\n this.changeDetectorRef.markForCheck();\n }\n\n /** @internal */\n validate(control: AbstractControl): ValidationErrors | null {\n return this.validator ? this.validator(control) : null;\n }\n\n /** @internal */\n registerOnValidatorChange?(fn: () => void): void {\n this.onValidatorChanged = fn;\n }\n\n protected modelChanged(): void {\n const value = this.inputElement().nativeElement.value\n ? this.inputElement().nativeElement.valueAsNumber\n : undefined;\n this.internalValue = value;\n this.updateStepButtons();\n this.onChange(value);\n this.valueChange.emit(value);\n }\n\n protected autoUpdateStart(event: Event, isIncrement: boolean): void {\n const mouseButton = (event as MouseEvent).button;\n if (mouseButton) {\n return;\n }\n\n this.onTouched();\n event.preventDefault();\n const trigger = isIncrement ? () => this.increment() : () => this.decrement();\n this.autoUpdateSubs?.unsubscribe();\n this.autoUpdateSubs = this.autoUpdate$.subscribe(trigger);\n trigger();\n }\n\n protected autoUpdateStop(): void {\n this.autoUpdateSubs?.unsubscribe();\n this.autoUpdateSubs = undefined;\n }\n\n private updateStepButtons(): void {\n const stepValue = this.step();\n const step = typeof stepValue === 'number' ? stepValue : 1;\n const max = this.max();\n this.canInc = max == null || this.internalValue == null || this.internalValue + step <= max;\n const min = this.min();\n this.canDec = min == null || this.internalValue == null || this.internalValue - step >= min;\n if (!this.canInc || !this.canDec) {\n this.autoUpdateStop();\n }\n }\n\n private decrement(): void {\n this.inputElement().nativeElement.stepDown();\n this.modelChanged();\n }\n\n private increment(): void {\n this.inputElement().nativeElement.stepUp();\n this.modelChanged();\n }\n\n private writeValueToInput(value: number | undefined): void {\n this.inputElement().nativeElement.value = value == null ? '' : value.toString();\n this.internalValue = value;\n }\n}\n","<input\n #inputElement\n type=\"number\"\n class=\"focus-none\"\n [attr.id]=\"inputId()\"\n [step]=\"step()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n [attr.aria-describedby]=\"errormessageId()\"\n [attr.placeholder]=\"placeholder() | translate\"\n [attr.min]=\"min()\"\n [attr.max]=\"max()\"\n (blur)=\"onTouched()\"\n (input)=\"modelChanged()\"\n/>\n@if (unit()) {\n <span class=\"unit\" [class.text-secondary]=\"!disabled()\" [class.text-disabled]=\"disabled()\">{{\n unit()\n }}</span>\n}\n@if (showButtons()) {\n <div class=\"form-control-actions\">\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"dec btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canDec\"\n (mousedown)=\"autoUpdateStart($event, false)\"\n (touchstart)=\"autoUpdateStart($event, false)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementMinus\" />\n </button>\n <button\n type=\"button\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n class=\"inc btn btn-icon btn-tertiary btn-sm\"\n [disabled]=\"disabled() || readonly() || !canInc\"\n (mousedown)=\"autoUpdateStart($event, true)\"\n (touchstart)=\"autoUpdateStart($event, true)\"\n (touchend)=\"autoUpdateStop()\"\n (mouseup)=\"autoUpdateStop()\"\n (mouseleave)=\"autoUpdateStop()\"\n >\n <si-icon [icon]=\"icons.elementPlus\" />\n </button>\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiNumberInputComponent } from './si-number-input.component';\n\n@NgModule({\n imports: [SiNumberInputComponent],\n exports: [SiNumberInputComponent]\n})\nexport class SiNumberInputModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-number-input.component';\nexport * from './si-number-input.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, model, computed,
|
|
2
|
+
import { input, model, computed, Component, NgModule } from '@angular/core';
|
|
3
3
|
import { elementRight3, elementLeft3 } from '@siemens/element-icons';
|
|
4
4
|
import { addIcons, SiIconComponent } from '@siemens/element-ng/icon';
|
|
5
5
|
import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
|
|
@@ -14,23 +14,27 @@ class SiPaginationComponent {
|
|
|
14
14
|
* The total number of pages.
|
|
15
15
|
* Alternatively use `itemsPerPage` and `totalItems`
|
|
16
16
|
*/
|
|
17
|
-
totalPages = input(
|
|
17
|
+
totalPages = input(/* @ts-ignore */
|
|
18
|
+
...(ngDevMode ? [undefined, { debugName: "totalPages" }] : /* istanbul ignore next */ []));
|
|
18
19
|
/**
|
|
19
20
|
* The current active page, counting starts from 1
|
|
20
21
|
*
|
|
21
22
|
* @defaultValue 1
|
|
22
23
|
*/
|
|
23
|
-
currentPage = model(1,
|
|
24
|
+
currentPage = model(1, /* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [{ debugName: "currentPage" }] : /* istanbul ignore next */ []));
|
|
24
26
|
/**
|
|
25
27
|
* The number of items per page.
|
|
26
28
|
* Used to calculate the total number of page if `totalPages` is not available
|
|
27
29
|
*/
|
|
28
|
-
pageSize = input(
|
|
30
|
+
pageSize = input(/* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [undefined, { debugName: "pageSize" }] : /* istanbul ignore next */ []));
|
|
29
32
|
/**
|
|
30
33
|
* The total number of items.
|
|
31
34
|
* Used to calculate the total number of page if `totalPages` is not available
|
|
32
35
|
*/
|
|
33
|
-
totalRowCount = input(
|
|
36
|
+
totalRowCount = input(/* @ts-ignore */
|
|
37
|
+
...(ngDevMode ? [undefined, { debugName: "totalRowCount" }] : /* istanbul ignore next */ []));
|
|
34
38
|
/**
|
|
35
39
|
* The text of the back button for pagination. Required for a11y.
|
|
36
40
|
*
|
|
@@ -39,7 +43,8 @@ class SiPaginationComponent {
|
|
|
39
43
|
* t(() => $localize`:@@SI_PAGINATION.BACK:Back`)
|
|
40
44
|
* ```
|
|
41
45
|
*/
|
|
42
|
-
backButtonText = input(t(() => $localize `:@@SI_PAGINATION.BACK:Back`),
|
|
46
|
+
backButtonText = input(t(() => $localize `:@@SI_PAGINATION.BACK:Back`), /* @ts-ignore */
|
|
47
|
+
...(ngDevMode ? [{ debugName: "backButtonText" }] : /* istanbul ignore next */ []));
|
|
43
48
|
/**
|
|
44
49
|
* The text of the forward button for pagination. Required for a11y.
|
|
45
50
|
*
|
|
@@ -48,7 +53,8 @@ class SiPaginationComponent {
|
|
|
48
53
|
* t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`)
|
|
49
54
|
* ```
|
|
50
55
|
*/
|
|
51
|
-
forwardButtonText = input(t(() => $localize `:@@SI_PAGINATION.FORWARD:Forward`),
|
|
56
|
+
forwardButtonText = input(t(() => $localize `:@@SI_PAGINATION.FORWARD:Forward`), /* @ts-ignore */
|
|
57
|
+
...(ngDevMode ? [{ debugName: "forwardButtonText" }] : /* istanbul ignore next */ []));
|
|
52
58
|
/**
|
|
53
59
|
* When multiple paginations are used on the same page each pagination needs a distinct aria label.
|
|
54
60
|
* Required for a11y.
|
|
@@ -58,13 +64,17 @@ class SiPaginationComponent {
|
|
|
58
64
|
* t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`)
|
|
59
65
|
* ```
|
|
60
66
|
*/
|
|
61
|
-
navAriaLabel = input(t(() => $localize `:@@SI_PAGINATION.NAV_LABEL:Pagination`),
|
|
67
|
+
navAriaLabel = input(t(() => $localize `:@@SI_PAGINATION.NAV_LABEL:Pagination`), /* @ts-ignore */
|
|
68
|
+
...(ngDevMode ? [{ debugName: "navAriaLabel" }] : /* istanbul ignore next */ []));
|
|
62
69
|
calculatedTotalPages = computed(() => {
|
|
63
70
|
const safePageSize = Math.max(this.pageSize() ?? 0, 1);
|
|
64
71
|
return this.totalPages() ?? Math.ceil((this.totalRowCount() ?? 0) / safePageSize);
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
}, /* @ts-ignore */
|
|
73
|
+
...(ngDevMode ? [{ debugName: "calculatedTotalPages" }] : /* istanbul ignore next */ []));
|
|
74
|
+
prevDisabled = computed(() => this.currentPage() === 1, /* @ts-ignore */
|
|
75
|
+
...(ngDevMode ? [{ debugName: "prevDisabled" }] : /* istanbul ignore next */ []));
|
|
76
|
+
nextDisabled = computed(() => this.currentPage() === this.calculatedTotalPages(), /* @ts-ignore */
|
|
77
|
+
...(ngDevMode ? [{ debugName: "nextDisabled" }] : /* istanbul ignore next */ []));
|
|
68
78
|
pageButtons = computed(() => {
|
|
69
79
|
const pageButtons = [];
|
|
70
80
|
const totalPages = this.calculatedTotalPages();
|
|
@@ -101,7 +111,8 @@ class SiPaginationComponent {
|
|
|
101
111
|
pageButtons.push({ page: totalPages, sep: false });
|
|
102
112
|
}
|
|
103
113
|
return pageButtons;
|
|
104
|
-
},
|
|
114
|
+
}, /* @ts-ignore */
|
|
115
|
+
...(ngDevMode ? [{ debugName: "pageButtons" }] : /* istanbul ignore next */ []));
|
|
105
116
|
icons = addIcons({ elementLeft3, elementRight3 });
|
|
106
117
|
direction(event, delta) {
|
|
107
118
|
this.setPage(event, this.currentPage() + delta);
|
|
@@ -113,12 +124,12 @@ class SiPaginationComponent {
|
|
|
113
124
|
event.currentTarget.blur();
|
|
114
125
|
this.currentPage.set(page);
|
|
115
126
|
}
|
|
116
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
117
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
127
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiPaginationComponent, isStandalone: true, selector: "si-pagination", inputs: { totalPages: { classPropertyName: "totalPages", publicName: "totalPages", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, totalRowCount: { classPropertyName: "totalRowCount", publicName: "totalRowCount", isSignal: true, isRequired: false, transformFunction: null }, backButtonText: { classPropertyName: "backButtonText", publicName: "backButtonText", isSignal: true, isRequired: false, transformFunction: null }, forwardButtonText: { classPropertyName: "forwardButtonText", publicName: "forwardButtonText", isSignal: true, isRequired: false, transformFunction: null }, navAriaLabel: { classPropertyName: "navAriaLabel", publicName: "navAriaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { currentPage: "currentPageChange" }, ngImport: i0, template: "<nav [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [attr.aria-disabled]=\"page.page === currentPage() ? 'true' : null\"\n [class.active]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">…</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
118
129
|
}
|
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiPaginationComponent, decorators: [{
|
|
120
131
|
type: Component,
|
|
121
|
-
args: [{ selector: 'si-pagination', imports: [SiIconComponent, SiTranslatePipe],
|
|
132
|
+
args: [{ selector: 'si-pagination', imports: [SiIconComponent, SiTranslatePipe], template: "<nav [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [attr.aria-disabled]=\"page.page === currentPage() ? 'true' : null\"\n [class.active]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">…</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n" }]
|
|
122
133
|
}], propDecorators: { totalPages: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPages", required: false }] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: false }] }, { type: i0.Output, args: ["currentPageChange"] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], totalRowCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRowCount", required: false }] }], backButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "backButtonText", required: false }] }], forwardButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "forwardButtonText", required: false }] }], navAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "navAriaLabel", required: false }] }] } });
|
|
123
134
|
|
|
124
135
|
/**
|
|
@@ -126,11 +137,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
126
137
|
* SPDX-License-Identifier: MIT
|
|
127
138
|
*/
|
|
128
139
|
class SiPaginationModule {
|
|
129
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
130
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
131
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
140
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
141
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: SiPaginationModule, imports: [SiPaginationComponent], exports: [SiPaginationComponent] });
|
|
142
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiPaginationModule, imports: [SiPaginationComponent] });
|
|
132
143
|
}
|
|
133
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiPaginationModule, decorators: [{
|
|
134
145
|
type: NgModule,
|
|
135
146
|
args: [{
|
|
136
147
|
imports: [SiPaginationComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-pagination.mjs","sources":["../../../../projects/element-ng/pagination/si-pagination.component.ts","../../../../projects/element-ng/pagination/si-pagination.component.html","../../../../projects/element-ng/pagination/si-pagination.module.ts","../../../../projects/element-ng/pagination/index.ts","../../../../projects/element-ng/pagination/siemens-element-ng-pagination.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { elementLeft3, elementRight3 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-pagination',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiPaginationComponent {\n private static maxItems = 7;\n\n /**\n * The total number of pages.\n * Alternatively use `itemsPerPage` and `totalItems`\n */\n readonly totalPages = input<number>();\n /**\n * The current active page, counting starts from 1\n *\n * @defaultValue 1\n */\n readonly currentPage = model<number>(1);\n /**\n * The number of items per page.\n * Used to calculate the total number of page if `totalPages` is not available\n */\n readonly pageSize = input<number>();\n /**\n * The total number of items.\n * Used to calculate the total number of page if `totalPages` is not available\n */\n readonly totalRowCount = input<number>();\n\n /**\n * The text of the back button for pagination. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.BACK:Back`)\n * ```\n */\n readonly backButtonText = input(t(() => $localize`:@@SI_PAGINATION.BACK:Back`));\n\n /**\n * The text of the forward button for pagination. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`)\n * ```\n */\n readonly forwardButtonText = input(t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`));\n /**\n * When multiple paginations are used on the same page each pagination needs a distinct aria label.\n * Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`)\n * ```\n */\n readonly navAriaLabel = input(t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`));\n\n private readonly calculatedTotalPages = computed(() => {\n const safePageSize = Math.max(this.pageSize() ?? 0, 1);\n return this.totalPages() ?? Math.ceil((this.totalRowCount() ?? 0) / safePageSize);\n });\n\n protected readonly prevDisabled = computed(() => this.currentPage() === 1);\n\n protected readonly nextDisabled = computed(\n () => this.currentPage() === this.calculatedTotalPages()\n );\n\n protected readonly pageButtons = computed(() => {\n const pageButtons: { page: number; sep: boolean }[] = [];\n const totalPages = this.calculatedTotalPages();\n const currentPage = this.currentPage();\n\n if (totalPages <= SiPaginationComponent.maxItems) {\n for (let i = 0; i < totalPages; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n } else if (currentPage < SiPaginationComponent.maxItems - 2) {\n // separator only on the right (in LTR)\n for (let i = 0; i < SiPaginationComponent.maxItems - 2; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n pageButtons.push({ page: 0, sep: true });\n pageButtons.push({ page: totalPages, sep: false });\n } else if (currentPage >= totalPages - 3) {\n // separator only on the left (in LTR)\n pageButtons.push({ page: 1, sep: false });\n pageButtons.push({ page: 0, sep: true });\n for (let i = totalPages - SiPaginationComponent.maxItems + 2; i < totalPages; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n } else {\n // separator on both sides\n pageButtons.push({ page: 1, sep: false });\n pageButtons.push({ page: 0, sep: true });\n for (let i = -1; i <= 1; i++) {\n pageButtons.push({ page: currentPage + i, sep: false });\n }\n pageButtons.push({ page: 0, sep: true });\n pageButtons.push({ page: totalPages, sep: false });\n }\n\n return pageButtons;\n });\n\n protected readonly icons = addIcons({ elementLeft3, elementRight3 });\n\n protected direction(event: Event, delta: number): void {\n this.setPage(event, this.currentPage() + delta);\n }\n\n protected setPage(event: Event, page: number): void {\n if (page === this.currentPage()) {\n return;\n }\n (event.currentTarget as HTMLElement).blur();\n this.currentPage.set(page);\n }\n}\n","<nav [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [attr.aria-disabled]=\"page.page === currentPage() ? 'true' : null\"\n [class.active]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">…</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPaginationComponent } from './si-pagination.component';\n\n@NgModule({\n imports: [SiPaginationComponent],\n exports: [SiPaginationComponent]\n})\nexport class SiPaginationModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-pagination.component';\nexport * from './si-pagination.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-pagination.mjs","sources":["../../../../projects/element-ng/pagination/si-pagination.component.ts","../../../../projects/element-ng/pagination/si-pagination.component.html","../../../../projects/element-ng/pagination/si-pagination.module.ts","../../../../projects/element-ng/pagination/index.ts","../../../../projects/element-ng/pagination/siemens-element-ng-pagination.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input, model } from '@angular/core';\nimport { elementLeft3, elementRight3 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-pagination',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-pagination.component.html'\n})\nexport class SiPaginationComponent {\n private static maxItems = 7;\n\n /**\n * The total number of pages.\n * Alternatively use `itemsPerPage` and `totalItems`\n */\n readonly totalPages = input<number>();\n /**\n * The current active page, counting starts from 1\n *\n * @defaultValue 1\n */\n readonly currentPage = model<number>(1);\n /**\n * The number of items per page.\n * Used to calculate the total number of page if `totalPages` is not available\n */\n readonly pageSize = input<number>();\n /**\n * The total number of items.\n * Used to calculate the total number of page if `totalPages` is not available\n */\n readonly totalRowCount = input<number>();\n\n /**\n * The text of the back button for pagination. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.BACK:Back`)\n * ```\n */\n readonly backButtonText = input(t(() => $localize`:@@SI_PAGINATION.BACK:Back`));\n\n /**\n * The text of the forward button for pagination. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`)\n * ```\n */\n readonly forwardButtonText = input(t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`));\n /**\n * When multiple paginations are used on the same page each pagination needs a distinct aria label.\n * Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`)\n * ```\n */\n readonly navAriaLabel = input(t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`));\n\n private readonly calculatedTotalPages = computed(() => {\n const safePageSize = Math.max(this.pageSize() ?? 0, 1);\n return this.totalPages() ?? Math.ceil((this.totalRowCount() ?? 0) / safePageSize);\n });\n\n protected readonly prevDisabled = computed(() => this.currentPage() === 1);\n\n protected readonly nextDisabled = computed(\n () => this.currentPage() === this.calculatedTotalPages()\n );\n\n protected readonly pageButtons = computed(() => {\n const pageButtons: { page: number; sep: boolean }[] = [];\n const totalPages = this.calculatedTotalPages();\n const currentPage = this.currentPage();\n\n if (totalPages <= SiPaginationComponent.maxItems) {\n for (let i = 0; i < totalPages; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n } else if (currentPage < SiPaginationComponent.maxItems - 2) {\n // separator only on the right (in LTR)\n for (let i = 0; i < SiPaginationComponent.maxItems - 2; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n pageButtons.push({ page: 0, sep: true });\n pageButtons.push({ page: totalPages, sep: false });\n } else if (currentPage >= totalPages - 3) {\n // separator only on the left (in LTR)\n pageButtons.push({ page: 1, sep: false });\n pageButtons.push({ page: 0, sep: true });\n for (let i = totalPages - SiPaginationComponent.maxItems + 2; i < totalPages; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n } else {\n // separator on both sides\n pageButtons.push({ page: 1, sep: false });\n pageButtons.push({ page: 0, sep: true });\n for (let i = -1; i <= 1; i++) {\n pageButtons.push({ page: currentPage + i, sep: false });\n }\n pageButtons.push({ page: 0, sep: true });\n pageButtons.push({ page: totalPages, sep: false });\n }\n\n return pageButtons;\n });\n\n protected readonly icons = addIcons({ elementLeft3, elementRight3 });\n\n protected direction(event: Event, delta: number): void {\n this.setPage(event, this.currentPage() + delta);\n }\n\n protected setPage(event: Event, page: number): void {\n if (page === this.currentPage()) {\n return;\n }\n (event.currentTarget as HTMLElement).blur();\n this.currentPage.set(page);\n }\n}\n","<nav [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [attr.aria-disabled]=\"page.page === currentPage() ? 'true' : null\"\n [class.active]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">…</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPaginationComponent } from './si-pagination.component';\n\n@NgModule({\n imports: [SiPaginationComponent],\n exports: [SiPaginationComponent]\n})\nexport class SiPaginationModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-pagination.component';\nexport * from './si-pagination.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|