@ngstarter-ui/components 1.0.21
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 +0 -0
- package/fesm2022/ngstarter-ui-components-action-required.mjs +42 -0
- package/fesm2022/ngstarter-ui-components-action-required.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-alert.mjs +132 -0
- package/fesm2022/ngstarter-ui-components-alert.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-announcement.mjs +86 -0
- package/fesm2022/ngstarter-ui-components-announcement.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-autocomplete.mjs +360 -0
- package/fesm2022/ngstarter-ui-components-autocomplete.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-avatar.mjs +235 -0
- package/fesm2022/ngstarter-ui-components-avatar.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-badge.mjs +97 -0
- package/fesm2022/ngstarter-ui-components-badge.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-block-loader.mjs +48 -0
- package/fesm2022/ngstarter-ui-components-block-loader.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-bottom-sheet.mjs +327 -0
- package/fesm2022/ngstarter-ui-components-bottom-sheet.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs +209 -0
- package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-button-toggle.mjs +175 -0
- package/fesm2022/ngstarter-ui-components-button-toggle.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-button.mjs +70 -0
- package/fesm2022/ngstarter-ui-components-button.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-card-overlay.mjs +49 -0
- package/fesm2022/ngstarter-ui-components-card-overlay.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-card.mjs +199 -0
- package/fesm2022/ngstarter-ui-components-card.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-carousel.mjs +614 -0
- package/fesm2022/ngstarter-ui-components-carousel.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-checkbox.mjs +300 -0
- package/fesm2022/ngstarter-ui-components-checkbox.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-chips.mjs +589 -0
- package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-code-highlighter.mjs +347 -0
- package/fesm2022/ngstarter-ui-components-code-highlighter.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-color-picker.mjs +713 -0
- package/fesm2022/ngstarter-ui-components-color-picker.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-color-scheme.mjs +106 -0
- package/fesm2022/ngstarter-ui-components-color-scheme.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-color-switcher.mjs +72 -0
- package/fesm2022/ngstarter-ui-components-color-switcher.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-command-bar.mjs +57 -0
- package/fesm2022/ngstarter-ui-components-command-bar.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-comment-editor.mjs +1024 -0
- package/fesm2022/ngstarter-ui-components-comment-editor.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-comparison-slider.mjs +177 -0
- package/fesm2022/ngstarter-ui-components-comparison-slider.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-confirm.mjs +85 -0
- package/fesm2022/ngstarter-ui-components-confirm.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs +173 -0
- package/fesm2022/ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-content-editor-content-editable.directive-Bvfa2dqh.mjs +124 -0
- package/fesm2022/ngstarter-ui-components-content-editor-content-editor-content-editable.directive-Bvfa2dqh.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-cursor-controller-4Ak8VqGX.mjs +99 -0
- package/fesm2022/ngstarter-ui-components-content-editor-cursor-controller-4Ak8VqGX.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-divider-block.component-C_iRTCPH.mjs +33 -0
- package/fesm2022/ngstarter-ui-components-content-editor-divider-block.component-C_iRTCPH.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs +354 -0
- package/fesm2022/ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs +114 -0
- package/fesm2022/ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs +146 -0
- package/fesm2022/ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs +215 -0
- package/fesm2022/ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs +2548 -0
- package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs +110 -0
- package/fesm2022/ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs +141 -0
- package/fesm2022/ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs +1604 -0
- package/fesm2022/ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs +175 -0
- package/fesm2022/ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-editor.mjs +2 -0
- package/fesm2022/ngstarter-ui-components-content-editor.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-content-fade.mjs +35 -0
- package/fesm2022/ngstarter-ui-components-content-fade.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-cookie-popup.mjs +107 -0
- package/fesm2022/ngstarter-ui-components-cookie-popup.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-core.mjs +1330 -0
- package/fesm2022/ngstarter-ui-components-core.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-country-select.mjs +489 -0
- package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-crop.mjs +183 -0
- package/fesm2022/ngstarter-ui-components-crop.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-currency-select.mjs +397 -0
- package/fesm2022/ngstarter-ui-components-currency-select.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-data-view.mjs +1494 -0
- package/fesm2022/ngstarter-ui-components-data-view.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-date-format-select.mjs +154 -0
- package/fesm2022/ngstarter-ui-components-date-format-select.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-datepicker.mjs +1159 -0
- package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-dialog.mjs +357 -0
- package/fesm2022/ngstarter-ui-components-dialog.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-divider.mjs +42 -0
- package/fesm2022/ngstarter-ui-components-divider.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-drawer.mjs +132 -0
- package/fesm2022/ngstarter-ui-components-drawer.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-emoji-picker.mjs +245 -0
- package/fesm2022/ngstarter-ui-components-emoji-picker.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-empty-state.mjs +75 -0
- package/fesm2022/ngstarter-ui-components-empty-state.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-expand.mjs +56 -0
- package/fesm2022/ngstarter-ui-components-expand.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-expansion.mjs +193 -0
- package/fesm2022/ngstarter-ui-components-expansion.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-filter-builder.mjs +333 -0
- package/fesm2022/ngstarter-ui-components-filter-builder.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-field.mjs +230 -0
- package/fesm2022/ngstarter-ui-components-form-field.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-BKQVlZHV.mjs +124 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-BKQVlZHV.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs +22 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Bzc0TPO9.mjs +44 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Bzc0TPO9.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs +17 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs +17 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-input-field-RYxi-Mpw.mjs +35 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-input-field-RYxi-Mpw.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs +38 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-select-field-eLcwI-BY.mjs +39 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-select-field-eLcwI-BY.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs +24 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-4zH7FTQ1.mjs +37 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-4zH7FTQ1.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-BpH65Hd-.mjs +35 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-BpH65Hd-.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs +22 -0
- package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-form-renderer.mjs +317 -0
- package/fesm2022/ngstarter-ui-components-form-renderer.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-gauge.mjs +44 -0
- package/fesm2022/ngstarter-ui-components-gauge.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-grid.mjs +78 -0
- package/fesm2022/ngstarter-ui-components-grid.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-guided-tour.mjs +736 -0
- package/fesm2022/ngstarter-ui-components-guided-tour.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-headless-stepper.mjs +192 -0
- package/fesm2022/ngstarter-ui-components-headless-stepper.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-icon.mjs +61 -0
- package/fesm2022/ngstarter-ui-components-icon.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-image-designer.mjs +4016 -0
- package/fesm2022/ngstarter-ui-components-image-designer.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-image-placeholder.mjs +20 -0
- package/fesm2022/ngstarter-ui-components-image-placeholder.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-image-resizer.mjs +151 -0
- package/fesm2022/ngstarter-ui-components-image-resizer.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-image-viewer.mjs +349 -0
- package/fesm2022/ngstarter-ui-components-image-viewer.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs +162 -0
- package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-incidents.mjs +257 -0
- package/fesm2022/ngstarter-ui-components-incidents.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs +179 -0
- package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-input-mask.mjs +180 -0
- package/fesm2022/ngstarter-ui-components-input-mask.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-input-validator.mjs +24 -0
- package/fesm2022/ngstarter-ui-components-input-validator.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-input.mjs +152 -0
- package/fesm2022/ngstarter-ui-components-input.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-kanban-board.mjs +156 -0
- package/fesm2022/ngstarter-ui-components-kanban-board.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-kbd.mjs +31 -0
- package/fesm2022/ngstarter-ui-components-kbd.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-layout.mjs +199 -0
- package/fesm2022/ngstarter-ui-components-layout.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-list.mjs +279 -0
- package/fesm2022/ngstarter-ui-components-list.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-logo.mjs +51 -0
- package/fesm2022/ngstarter-ui-components-logo.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-marquee.mjs +76 -0
- package/fesm2022/ngstarter-ui-components-marquee.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-menu.mjs +851 -0
- package/fesm2022/ngstarter-ui-components-menu.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-micro-chart.mjs +928 -0
- package/fesm2022/ngstarter-ui-components-micro-chart.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-navigation.mjs +439 -0
- package/fesm2022/ngstarter-ui-components-navigation.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-notifications.mjs +181 -0
- package/fesm2022/ngstarter-ui-components-notifications.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-number-input.mjs +293 -0
- package/fesm2022/ngstarter-ui-components-number-input.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-option.mjs +157 -0
- package/fesm2022/ngstarter-ui-components-option.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-overlay.mjs +112 -0
- package/fesm2022/ngstarter-ui-components-overlay.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-page-loading-bar.mjs +77 -0
- package/fesm2022/ngstarter-ui-components-page-loading-bar.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-paginator.mjs +297 -0
- package/fesm2022/ngstarter-ui-components-paginator.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-panel.mjs +123 -0
- package/fesm2022/ngstarter-ui-components-panel.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-password-strength.mjs +335 -0
- package/fesm2022/ngstarter-ui-components-password-strength.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-phone-input.mjs +651 -0
- package/fesm2022/ngstarter-ui-components-phone-input.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-pin-input.mjs +193 -0
- package/fesm2022/ngstarter-ui-components-pin-input.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-popover.mjs +302 -0
- package/fesm2022/ngstarter-ui-components-popover.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-progress-bar.mjs +68 -0
- package/fesm2022/ngstarter-ui-components-progress-bar.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-radio-card.mjs +102 -0
- package/fesm2022/ngstarter-ui-components-radio-card.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-radio.mjs +147 -0
- package/fesm2022/ngstarter-ui-components-radio.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-rail-nav.mjs +87 -0
- package/fesm2022/ngstarter-ui-components-rail-nav.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-resizable-container.mjs +74 -0
- package/fesm2022/ngstarter-ui-components-resizable-container.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-screen-loader.mjs +95 -0
- package/fesm2022/ngstarter-ui-components-screen-loader.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-scroll-spy.mjs +219 -0
- package/fesm2022/ngstarter-ui-components-scroll-spy.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs +459 -0
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-segmented.mjs +218 -0
- package/fesm2022/ngstarter-ui-components-segmented.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-select.mjs +496 -0
- package/fesm2022/ngstarter-ui-components-select.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-side-panel.mjs +107 -0
- package/fesm2022/ngstarter-ui-components-side-panel.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-sidebar.mjs +435 -0
- package/fesm2022/ngstarter-ui-components-sidebar.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-sidenav.mjs +354 -0
- package/fesm2022/ngstarter-ui-components-sidenav.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-signature-pad.mjs +452 -0
- package/fesm2022/ngstarter-ui-components-signature-pad.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-skeleton.mjs +22 -0
- package/fesm2022/ngstarter-ui-components-skeleton.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-slide-toggle.mjs +93 -0
- package/fesm2022/ngstarter-ui-components-slide-toggle.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-slider.mjs +481 -0
- package/fesm2022/ngstarter-ui-components-slider.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-snack-bar.mjs +354 -0
- package/fesm2022/ngstarter-ui-components-snack-bar.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-sort.mjs +140 -0
- package/fesm2022/ngstarter-ui-components-sort.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-spinner.mjs +75 -0
- package/fesm2022/ngstarter-ui-components-spinner.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-splash-screen.mjs +93 -0
- package/fesm2022/ngstarter-ui-components-splash-screen.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-split.mjs +948 -0
- package/fesm2022/ngstarter-ui-components-split.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-stepper.mjs +103 -0
- package/fesm2022/ngstarter-ui-components-stepper.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-suggestions.mjs +72 -0
- package/fesm2022/ngstarter-ui-components-suggestions.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-tab-panel.mjs +265 -0
- package/fesm2022/ngstarter-ui-components-tab-panel.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-table.mjs +648 -0
- package/fesm2022/ngstarter-ui-components-table.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-tabs.mjs +591 -0
- package/fesm2022/ngstarter-ui-components-tabs.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-text-editor.mjs +1012 -0
- package/fesm2022/ngstarter-ui-components-text-editor.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs +212 -0
- package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-tiles.mjs +634 -0
- package/fesm2022/ngstarter-ui-components-tiles.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-timeline.mjs +122 -0
- package/fesm2022/ngstarter-ui-components-timeline.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-timepicker.mjs +486 -0
- package/fesm2022/ngstarter-ui-components-timepicker.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-timezone-select.mjs +371 -0
- package/fesm2022/ngstarter-ui-components-timezone-select.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-toolbar.mjs +299 -0
- package/fesm2022/ngstarter-ui-components-toolbar.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-tooltip.mjs +506 -0
- package/fesm2022/ngstarter-ui-components-tooltip.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-tree.mjs +200 -0
- package/fesm2022/ngstarter-ui-components-tree.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-upload.mjs +330 -0
- package/fesm2022/ngstarter-ui-components-upload.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-video-player.mjs +516 -0
- package/fesm2022/ngstarter-ui-components-video-player.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-video-viewer.mjs +218 -0
- package/fesm2022/ngstarter-ui-components-video-viewer.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components-visual-builder.mjs +18 -0
- package/fesm2022/ngstarter-ui-components-visual-builder.mjs.map +1 -0
- package/fesm2022/ngstarter-ui-components.mjs +6 -0
- package/fesm2022/ngstarter-ui-components.mjs.map +1 -0
- package/package.json +535 -0
- package/styles/_common.scss +456 -0
- package/styles/_global.scss +91 -0
- package/styles/themes/default.scss +2 -0
- package/types/ngstarter-ui-components-action-required.d.ts +14 -0
- package/types/ngstarter-ui-components-alert.d.ts +50 -0
- package/types/ngstarter-ui-components-announcement.d.ts +59 -0
- package/types/ngstarter-ui-components-autocomplete.d.ts +83 -0
- package/types/ngstarter-ui-components-avatar.d.ts +69 -0
- package/types/ngstarter-ui-components-badge.d.ts +38 -0
- package/types/ngstarter-ui-components-block-loader.d.ts +21 -0
- package/types/ngstarter-ui-components-bottom-sheet.d.ts +149 -0
- package/types/ngstarter-ui-components-breadcrumbs.d.ts +104 -0
- package/types/ngstarter-ui-components-button-toggle.d.ts +54 -0
- package/types/ngstarter-ui-components-button.d.ts +27 -0
- package/types/ngstarter-ui-components-card-overlay.d.ts +20 -0
- package/types/ngstarter-ui-components-card.d.ts +85 -0
- package/types/ngstarter-ui-components-carousel.d.ts +76 -0
- package/types/ngstarter-ui-components-checkbox.d.ts +94 -0
- package/types/ngstarter-ui-components-chips.d.ts +189 -0
- package/types/ngstarter-ui-components-code-highlighter.d.ts +28 -0
- package/types/ngstarter-ui-components-color-picker.d.ts +92 -0
- package/types/ngstarter-ui-components-color-scheme.d.ts +44 -0
- package/types/ngstarter-ui-components-color-switcher.d.ts +26 -0
- package/types/ngstarter-ui-components-command-bar.d.ts +28 -0
- package/types/ngstarter-ui-components-comment-editor.d.ts +194 -0
- package/types/ngstarter-ui-components-comparison-slider.d.ts +42 -0
- package/types/ngstarter-ui-components-confirm.d.ts +34 -0
- package/types/ngstarter-ui-components-content-editor.d.ts +321 -0
- package/types/ngstarter-ui-components-content-fade.d.ts +17 -0
- package/types/ngstarter-ui-components-cookie-popup.d.ts +41 -0
- package/types/ngstarter-ui-components-core.d.ts +421 -0
- package/types/ngstarter-ui-components-country-select.d.ts +78 -0
- package/types/ngstarter-ui-components-crop.d.ts +59 -0
- package/types/ngstarter-ui-components-currency-select.d.ts +82 -0
- package/types/ngstarter-ui-components-data-view.d.ts +391 -0
- package/types/ngstarter-ui-components-date-format-select.d.ts +59 -0
- package/types/ngstarter-ui-components-datepicker.d.ts +384 -0
- package/types/ngstarter-ui-components-dialog.d.ts +115 -0
- package/types/ngstarter-ui-components-divider.d.ts +18 -0
- package/types/ngstarter-ui-components-drawer.d.ts +32 -0
- package/types/ngstarter-ui-components-emoji-picker.d.ts +49 -0
- package/types/ngstarter-ui-components-empty-state.d.ts +33 -0
- package/types/ngstarter-ui-components-expand.d.ts +26 -0
- package/types/ngstarter-ui-components-expansion.d.ts +68 -0
- package/types/ngstarter-ui-components-filter-builder.d.ts +106 -0
- package/types/ngstarter-ui-components-form-field.d.ts +107 -0
- package/types/ngstarter-ui-components-form-renderer.d.ts +121 -0
- package/types/ngstarter-ui-components-gauge.d.ts +21 -0
- package/types/ngstarter-ui-components-grid.d.ts +45 -0
- package/types/ngstarter-ui-components-guided-tour.d.ts +227 -0
- package/types/ngstarter-ui-components-headless-stepper.d.ts +65 -0
- package/types/ngstarter-ui-components-icon.d.ts +17 -0
- package/types/ngstarter-ui-components-image-designer.d.ts +357 -0
- package/types/ngstarter-ui-components-image-placeholder.d.ts +8 -0
- package/types/ngstarter-ui-components-image-resizer.d.ts +35 -0
- package/types/ngstarter-ui-components-image-viewer.d.ts +63 -0
- package/types/ngstarter-ui-components-image-zoom-viewer.d.ts +34 -0
- package/types/ngstarter-ui-components-incidents.d.ts +119 -0
- package/types/ngstarter-ui-components-inline-text-edit.d.ts +39 -0
- package/types/ngstarter-ui-components-input-mask.d.ts +36 -0
- package/types/ngstarter-ui-components-input-validator.d.ts +5 -0
- package/types/ngstarter-ui-components-input.d.ts +53 -0
- package/types/ngstarter-ui-components-kanban-board.d.ts +68 -0
- package/types/ngstarter-ui-components-kbd.d.ts +13 -0
- package/types/ngstarter-ui-components-layout.d.ts +83 -0
- package/types/ngstarter-ui-components-list.d.ts +98 -0
- package/types/ngstarter-ui-components-logo.d.ts +26 -0
- package/types/ngstarter-ui-components-marquee.d.ts +27 -0
- package/types/ngstarter-ui-components-menu.d.ts +199 -0
- package/types/ngstarter-ui-components-micro-chart.d.ts +195 -0
- package/types/ngstarter-ui-components-navigation.d.ts +136 -0
- package/types/ngstarter-ui-components-notifications.d.ts +84 -0
- package/types/ngstarter-ui-components-number-input.d.ts +99 -0
- package/types/ngstarter-ui-components-option.d.ts +61 -0
- package/types/ngstarter-ui-components-overlay.d.ts +12 -0
- package/types/ngstarter-ui-components-page-loading-bar.d.ts +20 -0
- package/types/ngstarter-ui-components-paginator.d.ts +145 -0
- package/types/ngstarter-ui-components-panel.d.ts +59 -0
- package/types/ngstarter-ui-components-password-strength.d.ts +109 -0
- package/types/ngstarter-ui-components-phone-input.d.ts +103 -0
- package/types/ngstarter-ui-components-pin-input.d.ts +48 -0
- package/types/ngstarter-ui-components-popover.d.ts +94 -0
- package/types/ngstarter-ui-components-progress-bar.d.ts +30 -0
- package/types/ngstarter-ui-components-radio-card.d.ts +37 -0
- package/types/ngstarter-ui-components-radio.d.ts +45 -0
- package/types/ngstarter-ui-components-rail-nav.d.ts +36 -0
- package/types/ngstarter-ui-components-resizable-container.d.ts +25 -0
- package/types/ngstarter-ui-components-screen-loader.d.ts +34 -0
- package/types/ngstarter-ui-components-scroll-spy.d.ts +63 -0
- package/types/ngstarter-ui-components-scrollbar-area.d.ts +67 -0
- package/types/ngstarter-ui-components-segmented.d.ts +65 -0
- package/types/ngstarter-ui-components-select.d.ts +126 -0
- package/types/ngstarter-ui-components-side-panel.d.ts +42 -0
- package/types/ngstarter-ui-components-sidebar.d.ts +143 -0
- package/types/ngstarter-ui-components-sidenav.d.ts +86 -0
- package/types/ngstarter-ui-components-signature-pad.d.ts +49 -0
- package/types/ngstarter-ui-components-skeleton.d.ts +9 -0
- package/types/ngstarter-ui-components-slide-toggle.d.ts +41 -0
- package/types/ngstarter-ui-components-slider.d.ts +85 -0
- package/types/ngstarter-ui-components-snack-bar.d.ts +142 -0
- package/types/ngstarter-ui-components-sort.d.ts +66 -0
- package/types/ngstarter-ui-components-spinner.d.ts +28 -0
- package/types/ngstarter-ui-components-splash-screen.d.ts +31 -0
- package/types/ngstarter-ui-components-split.d.ts +210 -0
- package/types/ngstarter-ui-components-stepper.d.ts +44 -0
- package/types/ngstarter-ui-components-suggestions.d.ts +32 -0
- package/types/ngstarter-ui-components-tab-panel.d.ts +96 -0
- package/types/ngstarter-ui-components-table.d.ts +277 -0
- package/types/ngstarter-ui-components-tabs.d.ts +145 -0
- package/types/ngstarter-ui-components-text-editor.d.ts +191 -0
- package/types/ngstarter-ui-components-thumbnail-maker.d.ts +35 -0
- package/types/ngstarter-ui-components-tiles.d.ts +109 -0
- package/types/ngstarter-ui-components-timeline.d.ts +57 -0
- package/types/ngstarter-ui-components-timepicker.d.ts +115 -0
- package/types/ngstarter-ui-components-timezone-select.d.ts +75 -0
- package/types/ngstarter-ui-components-toolbar.d.ts +74 -0
- package/types/ngstarter-ui-components-tooltip.d.ts +52 -0
- package/types/ngstarter-ui-components-tree.d.ts +60 -0
- package/types/ngstarter-ui-components-upload.d.ts +134 -0
- package/types/ngstarter-ui-components-video-player.d.ts +67 -0
- package/types/ngstarter-ui-components-video-viewer.d.ts +98 -0
- package/types/ngstarter-ui-components-visual-builder.d.ts +8 -0
- package/types/ngstarter-ui-components.d.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-carousel.mjs","sources":["../../../projects/components/carousel/src/types.ts","../../../projects/components/carousel/src/draggable-carousel.directive.ts","../../../projects/components/carousel/src/carousel/carousel.ts","../../../projects/components/carousel/src/carousel/carousel.html","../../../projects/components/carousel/src/carousel-card/carousel-card.ts","../../../projects/components/carousel/src/carousel-card/carousel-card.html","../../../projects/components/carousel/src/carousel-controls.directive.ts","../../../projects/components/carousel/src/carousel-previous.directive.ts","../../../projects/components/carousel/src/carousel-next.directive.ts","../../../projects/components/carousel/ngstarter-ui-components-carousel.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface CarouselApiInterface {\n previous: () => void;\n next: () => void;\n isPreviousDisabled: () => boolean;\n isNextDisabled: () => boolean;\n selectedIndex: () => number;\n}\n\nexport interface CarouselInterface {\n api: CarouselApiInterface\n}\n\nexport interface CarouselCardInterface {\n element: HTMLElement;\n}\n\nexport const CAROUSEL = new InjectionToken('CAROUSEL');\nexport const CAROUSEL_CARD = new InjectionToken('CAROUSEL_CARD');\n","import {\n Directive,\n ElementRef,\n Renderer2,\n OnInit,\n OnDestroy,\n NgZone,\n AfterContentInit,\n signal,\n input,\n inject,\n output, booleanAttribute\n} from '@angular/core';\n\nfunction easeOutQuad(t: number): number {\n return t * (2 - t);\n}\n\n@Directive({\n selector: '[ngsDraggableCarousel]',\n host: {\n '(scroll)': 'onScroll($event)',\n '(click)': 'onClick($event)',\n '(mousedown)': 'onMouseDown($event)',\n '(mouseleave)': 'onMouseLeaveElement($event)',\n '(document:mousemove)': 'onMouseMove($event)',\n '(document:mouseup)': 'onMouseUpOrLeave($event)',\n '(document:mouseleave)': 'onMouseUpOrLeave($event)',\n '[class.dragging-active]': 'isDragging()'\n }\n})\nexport class DraggableCarouselDirective implements OnInit, AfterContentInit, OnDestroy {\n cardSelector = input<string>('.ngs-carousel-card');\n snapToCenter = input<boolean>(true);\n snapDebounceTime = input<number>(50);\n snapDuration = input<number>(300);\n resistanceFactor = input<number>(0.5);\n velocityThreshold = input<number>(0.5);\n visibilityDebounceTime = input<number>(100);\n stopPropagation = input(true, {\n transform: booleanAttribute\n });\n\n indexChange = output<number>();\n\n isDragging = signal(false);\n private startX = signal(0);\n private scrollLeftStart = signal(0);\n private currentTranslateX = signal(0);\n private lastMoveX = signal<number | null>(null);\n private lastMoveTime = signal<number | null>(null);\n private currentVelocityX = signal(0);\n private lastEmittedIndex = signal<number | null>(null);\n\n private snapTimeoutId: ReturnType<typeof setTimeout> | null = null;\n private scrollAnimationId: number | null = null;\n private transformAnimationId: number | null = null;\n private visibilityDebounceTimeoutId: ReturnType<typeof setTimeout> | null = null;\n\n private el = inject(ElementRef<HTMLElement>);\n private renderer = inject(Renderer2);\n private zone = inject(NgZone);\n\n private hostElement!: HTMLElement;\n private cards: HTMLElement[] = [];\n\n ngOnInit(): void {\n this.hostElement = this.el.nativeElement;\n this.renderer.setStyle(this.hostElement, 'cursor', 'grab');\n this.hostElement.style.scrollBehavior = 'auto';\n }\n\n ngAfterContentInit(): void {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n\n // Initial state calculation after content is initialized and layout is stable\n setTimeout(() => {\n const actualInitialIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(actualInitialIndex);\n this.updateCardVisibilityClasses();\n }, 0);\n }\n\n ngOnDestroy(): void {\n this.clearSnapTimeout();\n this.cancelScrollAnimation();\n this.cancelTransformAnimation();\n clearTimeout(this.visibilityDebounceTimeoutId as any);\n }\n\n onScroll(event: Event): void {\n if (this.isDragging() || this.scrollAnimationId !== null || this.transformAnimationId !== null) {\n return;\n }\n\n if (this.visibilityDebounceTimeoutId !== null) {\n clearTimeout(this.visibilityDebounceTimeoutId);\n }\n this.visibilityDebounceTimeoutId = setTimeout(() => {\n this.updateCardVisibilityClasses();\n const currentIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(currentIndex);\n this.visibilityDebounceTimeoutId = null;\n }, this.visibilityDebounceTime());\n }\n\n onMouseDown(event: MouseEvent): void {\n clearTimeout(this.visibilityDebounceTimeoutId as any);\n this.clearSnapTimeout();\n this.cancelScrollAnimation();\n this.cancelTransformAnimation();\n\n if (this.currentTranslateX() !== 0) {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n }\n this.hostElement.style.scrollBehavior = 'auto';\n\n if (event.button !== 0) return;\n\n this.isDragging.set(true);\n this.startX.set(event.pageX - this.hostElement.offsetLeft);\n this.scrollLeftStart.set(this.hostElement.scrollLeft);\n\n this.lastMoveX.set(event.pageX);\n this.lastMoveTime.set(event.timeStamp);\n this.currentVelocityX.set(0);\n\n this.renderer.setStyle(this.hostElement, 'cursor', 'grabbing');\n event.preventDefault();\n }\n\n onMouseMove(event: MouseEvent): void {\n if (!this.isDragging()) return;\n event.preventDefault();\n\n const currentX = event.pageX;\n const currentTime = event.timeStamp;\n const lastMoveTime = this.lastMoveTime();\n const lastMoveX = this.lastMoveX();\n\n if (lastMoveTime !== null && lastMoveX !== null && currentTime > lastMoveTime) {\n const deltaX = currentX - lastMoveX;\n const deltaTime = currentTime - lastMoveTime;\n if (deltaTime > 0) {\n this.currentVelocityX.set(-deltaX / deltaTime);\n }\n }\n this.lastMoveX.set(currentX);\n this.lastMoveTime.set(currentTime);\n\n const dragDeltaX = currentX - (this.startX() + this.hostElement.offsetLeft);\n const intendedScrollLeft = this.scrollLeftStart() - dragDeltaX;\n const maxScrollLeft = this.hostElement.scrollWidth - this.hostElement.clientWidth;\n let targetScrollLeft = intendedScrollLeft;\n let translateX = 0;\n\n if (intendedScrollLeft < 0) {\n targetScrollLeft = 0;\n const overpull = -intendedScrollLeft;\n translateX = Math.min(overpull * this.resistanceFactor(), this.hostElement.clientWidth * 0.4);\n } else if (intendedScrollLeft > maxScrollLeft) {\n targetScrollLeft = maxScrollLeft;\n const overpull = intendedScrollLeft - maxScrollLeft;\n translateX = -Math.min(overpull * this.resistanceFactor(), this.hostElement.clientWidth * 0.4);\n }\n\n if (this.hostElement.scrollLeft !== targetScrollLeft) {\n this.hostElement.scrollLeft = targetScrollLeft;\n }\n\n if (this.currentTranslateX() !== translateX) {\n this.currentTranslateX.set(translateX);\n if (Math.abs(translateX) > 0.1) {\n this.renderer.setStyle(this.hostElement, 'transform', `translateX(${translateX}px)`);\n } else {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n }\n }\n }\n\n onMouseUpOrLeave(event: MouseEvent): void {\n if (!this.isDragging()) {\n return;\n }\n\n this.stopDragging();\n\n if (this.stopPropagation()) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n onMouseLeaveElement(event: MouseEvent): void {\n if (!this.isDragging()) {\n this.renderer.setStyle(this.hostElement, 'cursor', 'grab');\n }\n }\n\n private stopDragging(): void {\n if (!this.isDragging()) return;\n\n this.isDragging.set(false);\n this.renderer.setStyle(this.hostElement, 'cursor', 'grab');\n this.clearSnapTimeout();\n\n const wasPulled = Math.abs(this.currentTranslateX()) > 0.1;\n\n if (wasPulled) {\n this.snapTimeoutId = setTimeout(() => {\n this.animateTransformReset();\n this.snapTimeoutId = null;\n }, this.snapDebounceTime() / 2);\n } else if (this.snapToCenter()) {\n this.snapTimeoutId = setTimeout(() => {\n this.initiateSnap();\n this.snapTimeoutId = null;\n }, this.snapDebounceTime());\n } else {\n this.updateCardVisibilityClasses();\n const currentIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(currentIndex);\n }\n }\n\n private initiateSnap(): void {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n if (!this.cards.length) return;\n\n let targetCardIndex = -1;\n const currentScroll = this.hostElement.scrollLeft;\n const containerCenter = currentScroll + this.hostElement.clientWidth / 2;\n\n let currentNearestCardIndex = this.findNearestCardIndex(this.cards, containerCenter);\n if (currentNearestCardIndex < 0) return;\n\n const absVelocity = Math.abs(this.currentVelocityX());\n const threshold = this.velocityThreshold();\n\n if (absVelocity > threshold) {\n if (this.currentVelocityX() < 0) {\n targetCardIndex = currentNearestCardIndex - 1;\n } else {\n targetCardIndex = currentNearestCardIndex + 1;\n }\n targetCardIndex = Math.max(0, Math.min(targetCardIndex, this.cards.length - 1));\n } else {\n targetCardIndex = currentNearestCardIndex;\n }\n\n if (targetCardIndex >= 0 && targetCardIndex < this.cards.length) {\n this.scrollToCard(targetCardIndex, false);\n } else {\n this.updateCardVisibilityClasses();\n }\n }\n\n private scrollToCard(index: number, immediate: boolean = false): void {\n if (index < 0 || index >= this.cards.length) {\n return;\n }\n const targetCard = this.cards[index];\n if (!targetCard) return;\n\n const container = this.hostElement;\n const containerWidth = container.clientWidth;\n const targetCardLeft = targetCard.offsetLeft;\n const targetCardWidth = targetCard.offsetWidth;\n let targetScrollLeft = targetCardLeft + targetCardWidth / 2 - containerWidth / 2;\n const maxScrollLeft = container.scrollWidth - containerWidth;\n targetScrollLeft = Math.max(0, Math.min(targetScrollLeft, maxScrollLeft));\n\n this.cancelScrollAnimation();\n\n if (immediate) {\n container.scrollLeft = targetScrollLeft;\n this.updateCardVisibilityClasses();\n this.emitActiveIndex(index);\n } else {\n this.animateScroll(targetScrollLeft);\n }\n }\n\n private findNearestCardIndex(cards: HTMLElement[], position: number): number {\n let nearestIndex = -1;\n let minDistance = Infinity;\n cards.forEach((card, index) => {\n if (card instanceof HTMLElement) {\n const cardLeft = card.offsetLeft;\n const cardWidth = card.offsetWidth;\n const cardCenter = cardLeft + cardWidth / 2;\n const distance = Math.abs(cardCenter - position);\n if (distance < minDistance) {\n minDistance = distance;\n nearestIndex = index;\n }\n }\n });\n return nearestIndex;\n }\n\n private animateTransformReset(): void {\n this.cancelTransformAnimation();\n const startTranslateX = this.currentTranslateX();\n const distance = 0 - startTranslateX;\n if (Math.abs(distance) < 1) {\n if (startTranslateX !== 0) {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n }\n return;\n }\n const duration = this.snapDuration();\n let startTime: number | null = null;\n const step = (timestamp: number) => {\n if (startTime === null) startTime = timestamp;\n const elapsed = timestamp - startTime;\n const progress = Math.min(1, elapsed / duration);\n const easedProgress = easeOutQuad(progress);\n const newTranslateX = startTranslateX + distance * easedProgress;\n this.currentTranslateX.set(newTranslateX);\n this.renderer.setStyle(this.hostElement, 'transform', `translateX(${newTranslateX}px)`);\n if (progress < 1) {\n this.transformAnimationId = requestAnimationFrame(step);\n } else {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n this.transformAnimationId = null;\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n }\n };\n this.zone.runOutsideAngular(() => {\n this.transformAnimationId = requestAnimationFrame(step);\n });\n }\n\n private animateScroll(targetScrollLeft: number): void {\n this.cancelScrollAnimation();\n const container = this.hostElement;\n const startScrollLeft = container.scrollLeft;\n const distance = targetScrollLeft - startScrollLeft;\n if (Math.abs(distance) < 1) {\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n return;\n }\n const duration = this.snapDuration();\n let startTime: number | null = null;\n const step = (timestamp: number) => {\n if (startTime === null) startTime = timestamp;\n const elapsed = timestamp - startTime;\n const progress = Math.min(1, elapsed / duration);\n const easedProgress = easeOutQuad(progress);\n container.scrollLeft = startScrollLeft + distance * easedProgress;\n if (progress < 1) {\n this.scrollAnimationId = requestAnimationFrame(step);\n } else {\n container.scrollLeft = targetScrollLeft;\n this.scrollAnimationId = null;\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n }\n };\n this.zone.runOutsideAngular(() => {\n this.scrollAnimationId = requestAnimationFrame(step);\n });\n }\n\n private findCurrentCenterIndex(): number {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n if (!this.cards.length) return -1;\n const currentScroll = this.hostElement.scrollLeft;\n const containerCenter = currentScroll + this.hostElement.clientWidth / 2;\n return this.findNearestCardIndex(this.cards, containerCenter);\n }\n\n private emitActiveIndex(index: number): void {\n if (index >= 0 && index !== this.lastEmittedIndex()) {\n this.lastEmittedIndex.set(index);\n this.zone.run(() => {\n this.indexChange.emit(index);\n });\n }\n }\n\n private updateCardVisibilityClasses(): void {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n if (!this.cards.length || !this.hostElement.clientWidth) return;\n\n const viewportStart = this.hostElement.scrollLeft;\n const viewportWidth = this.hostElement.clientWidth;\n const viewportEnd = viewportStart + viewportWidth;\n const tolerance = 1;\n\n this.cards.forEach(card => {\n if (card instanceof HTMLElement) {\n const cardStart = card.offsetLeft;\n const cardEnd = cardStart + card.offsetWidth;\n const isSpanned = cardStart >= viewportStart - tolerance && cardEnd <= viewportEnd + tolerance;\n const isInView = cardEnd > viewportStart + tolerance && cardStart < viewportEnd - tolerance;\n\n if (isSpanned) {\n this.renderer.addClass(card, 'is-spanned');\n } else {\n this.renderer.removeClass(card, 'is-spanned');\n }\n\n if (isInView) {\n this.renderer.addClass(card, 'is-in-view');\n } else {\n this.renderer.removeClass(card, 'is-in-view');\n }\n }\n });\n }\n\n private cancelScrollAnimation(): void {\n if (this.scrollAnimationId !== null) {\n cancelAnimationFrame(this.scrollAnimationId);\n this.scrollAnimationId = null;\n }\n }\n\n private cancelTransformAnimation(): void {\n if (this.transformAnimationId !== null) {\n cancelAnimationFrame(this.transformAnimationId);\n this.transformAnimationId = null;\n }\n }\n\n private clearSnapTimeout(): void {\n if (this.snapTimeoutId !== null) {\n clearTimeout(this.snapTimeoutId);\n this.snapTimeoutId = null;\n }\n }\n\n protected onClick(event: MouseEvent): void {\n if (this.stopPropagation()) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\n","import {\n booleanAttribute,\n Component,\n contentChildren,\n ElementRef, input,\n output, signal,\n viewChild\n} from '@angular/core';\nimport { CAROUSEL, CAROUSEL_CARD, CarouselApiInterface, CarouselCardInterface } from '../types';\nimport { DraggableCarouselDirective } from '../draggable-carousel.directive';\n\n@Component({\n selector: 'ngs-carousel',\n exportAs: 'ngsCarousel',\n providers: [\n {\n provide: CAROUSEL,\n useExisting: Carousel\n }\n ],\n templateUrl: './carousel.html',\n styleUrl: './carousel.scss',\n hostDirectives: [],\n imports: [\n DraggableCarouselDirective\n ],\n host: {\n 'class': 'ngs-carousel',\n '[class.fade]': 'fade()',\n }\n})\nexport class Carousel {\n private _content = viewChild.required<ElementRef>('content');\n private _cards = contentChildren<CarouselCardInterface>(CAROUSEL_CARD);\n\n fade = input(false, {\n transform: booleanAttribute\n });\n snapToCenter = input<boolean>(true);\n snapDebounceTime = input<number>(50);\n snapDuration = input<number>(300);\n resistanceFactor = input<number>(0.5);\n velocityThreshold = input<number>(0.5);\n visibilityDebounceTime = input<number>(100);\n stopPropagation = input(true, {\n transform: booleanAttribute\n });\n\n readonly indexChange = output<number>();\n\n protected _index = signal(0);\n\n get api(): CarouselApiInterface {\n return {\n isNextDisabled: () => this._isNextDisabled,\n isPreviousDisabled: () => this._isPreviousDisabled,\n previous: () => this._previous(),\n next: () => this._next(),\n selectedIndex: () => this._index()\n }\n }\n\n protected onIndexChanged(index: number): void {\n if (this._index() === index) {\n return;\n }\n\n this._index.set(index);\n this.indexChange.emit(index);\n }\n\n private _previous(): void {\n const contentElement = this._content()?.nativeElement as HTMLElement;\n\n for (let index = this._cards().length - 1; index >= 0; index--) {\n if (index >= this._index()) {\n continue;\n }\n\n const card = this._cards().at(index) as CarouselCardInterface;\n\n if (!this._visibleInParentViewport(contentElement, card.element)) {\n this._scrollToCard(card);\n break;\n }\n }\n }\n\n private _next(): void {\n const contentElement = this._content().nativeElement as HTMLElement;\n const notVisibleCard = this._cards().find(\n (card: CarouselCardInterface, index: number) =>\n !this._visibleInParentViewport(contentElement, card.element) && index > this._index()\n );\n\n if (notVisibleCard) {\n this._scrollToCard(notVisibleCard);\n }\n }\n\n private _scrollToCard(notVisibleCard: CarouselCardInterface): void {\n this._index.set(this._cards().findIndex(card => card === notVisibleCard));\n this.indexChange.emit(this._index());\n notVisibleCard.element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n inline: 'center'\n });\n }\n\n private _visibleInParentViewport = (parent: HTMLElement, el: HTMLElement) => {\n const parentRect = parent.getBoundingClientRect();\n const elementRect = el.getBoundingClientRect();\n\n return (\n elementRect.right <= parentRect.right &&\n elementRect.left >= parentRect.left\n );\n }\n\n private get _isPreviousDisabled(): boolean {\n return this._index() === 0;\n }\n\n private get _isNextDisabled(): boolean {\n return this._index() === this._cards().length - 1;\n }\n}\n","<div #content class=\"content\"\n ngsDraggableCarousel\n [stopPropagation]=\"stopPropagation()\"\n [snapToCenter]=\"snapToCenter()\"\n [snapDebounceTime]=\"snapDebounceTime()\"\n [snapDuration]=\"snapDuration()\"\n [resistanceFactor]=\"resistanceFactor()\"\n [velocityThreshold]=\"velocityThreshold()\"\n [visibilityDebounceTime]=\"visibilityDebounceTime()\"\n (indexChange)=\"onIndexChanged($event)\">\n <ng-content select=\"ngs-carousel-card,[ngs-carousel-card]\" />\n</div>\n<div class=\"controls\">\n <ng-content select=\"[ngsCarouselControls]\" />\n</div>\n","import { Component, ElementRef, inject } from '@angular/core';\nimport { CAROUSEL_CARD } from '../types';\n\n@Component({\n selector: 'ngs-carousel-card,[ngs-carousel-card]',\n exportAs: 'ngsCarouselCard',\n imports: [],\n providers: [\n {\n provide: CAROUSEL_CARD,\n useExisting: CarouselCard\n }\n ],\n templateUrl: './carousel-card.html',\n styleUrl: './carousel-card.scss',\n host: {\n 'class': 'ngs-carousel-card',\n }\n})\nexport class CarouselCard {\n private _elementRef = inject(ElementRef);\n\n get element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n}\n","<ng-content />\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsCarouselControls]',\n standalone: true,\n host: {\n 'class': 'ngs-carousel-controls',\n }\n})\nexport class CarouselControlsDirective {\n\n}\n","import { Directive, inject, input, OnInit } from '@angular/core';\nimport { CAROUSEL, CarouselInterface } from './types';\n\n@Directive({\n selector: '[ngsCarouselPrevious]',\n exportAs: 'ngsCarouselPrevious',\n standalone: true,\n host: {\n 'class': 'ngs-carousel-previous',\n '[attr.disabled]': '_carousel?.api?.isPreviousDisabled() ? true : null',\n '(click)': '_handleClick()'\n }\n})\nexport class CarouselPreviousDirective implements OnInit {\n protected _carousel = inject<CarouselInterface>(CAROUSEL, {\n optional: true\n });\n\n carousel = input<CarouselInterface | null>(null);\n\n ngOnInit(): void {\n if (this.carousel() && !this._carousel) {\n this._carousel = this.carousel();\n }\n }\n\n _handleClick(): void {\n this._carousel?.api.previous();\n }\n}\n","import { Directive, inject, input, OnInit } from '@angular/core';\nimport { CAROUSEL, CarouselInterface } from './types';\n\n@Directive({\n selector: '[ngsCarouselNext]',\n exportAs: 'ngsCarouselNext',\n standalone: true,\n host: {\n 'class': 'ngs-carousel-next',\n '[attr.disabled]': '_carousel?.api?.isNextDisabled() ? true : null',\n '(click)': '_handleClick()'\n }\n})\nexport class CarouselNextDirective implements OnInit {\n protected _carousel = inject<CarouselInterface>(CAROUSEL, {\n optional: true\n });\n\n carousel = input<CarouselInterface | null>(null);\n\n ngOnInit(): void {\n if (this.carousel() && !this._carousel) {\n this._carousel = this.carousel();\n }\n }\n\n _handleClick(): void {\n this._carousel?.api.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, NgZone, input, booleanAttribute, numberAttribute, model, output, viewChild, effect, untracked, forwardRef, ChangeDetectionStrategy, Component, Directive } from '@angular/core';
|
|
3
|
+
import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
4
|
+
import { _IdGenerator } from '@angular/cdk/a11y';
|
|
5
|
+
import { Ripple } from '@ngstarter-ui/components/core';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Represents the different states that require custom transitions between them.
|
|
9
|
+
* @docs-private
|
|
10
|
+
*/
|
|
11
|
+
var TransitionCheckState;
|
|
12
|
+
(function (TransitionCheckState) {
|
|
13
|
+
/** The initial state of the component before any user interaction. */
|
|
14
|
+
TransitionCheckState[TransitionCheckState["Init"] = 0] = "Init";
|
|
15
|
+
/** The state representing the component when it's becoming checked. */
|
|
16
|
+
TransitionCheckState[TransitionCheckState["Checked"] = 1] = "Checked";
|
|
17
|
+
/** The state representing the component when it's becoming unchecked. */
|
|
18
|
+
TransitionCheckState[TransitionCheckState["Unchecked"] = 2] = "Unchecked";
|
|
19
|
+
/** The state representing the component when it's becoming indeterminate. */
|
|
20
|
+
TransitionCheckState[TransitionCheckState["Indeterminate"] = 3] = "Indeterminate";
|
|
21
|
+
})(TransitionCheckState || (TransitionCheckState = {}));
|
|
22
|
+
/** Change event object emitted by checkbox. */
|
|
23
|
+
class CheckboxChange {
|
|
24
|
+
/** The source checkbox of the event. */
|
|
25
|
+
source;
|
|
26
|
+
/** The new `checked` value of the checkbox. */
|
|
27
|
+
checked;
|
|
28
|
+
}
|
|
29
|
+
class Checkbox {
|
|
30
|
+
_ngZone = inject(NgZone);
|
|
31
|
+
_idGenerator = inject(_IdGenerator);
|
|
32
|
+
ariaLabel = input('', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
33
|
+
ariaLabelledby = input(null, { ...(ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {}), alias: 'aria-labelledby' });
|
|
34
|
+
ariaDescribedby = input('', { ...(ngDevMode ? { debugName: "ariaDescribedby" } : /* istanbul ignore next */ {}), alias: 'aria-describedby' });
|
|
35
|
+
ariaExpanded = input(undefined, { ...(ngDevMode ? { debugName: "ariaExpanded" } : /* istanbul ignore next */ {}), alias: 'aria-expanded', transform: booleanAttribute });
|
|
36
|
+
ariaControls = input('', { ...(ngDevMode ? { debugName: "ariaControls" } : /* istanbul ignore next */ {}), alias: 'aria-controls' });
|
|
37
|
+
ariaOwns = input('', { ...(ngDevMode ? { debugName: "ariaOwns" } : /* istanbul ignore next */ {}), alias: 'aria-owns' });
|
|
38
|
+
id = input(this._idGenerator.getId('ngs-checkbox-'), ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
39
|
+
required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
40
|
+
labelPosition = input('after', ...(ngDevMode ? [{ debugName: "labelPosition" }] : /* istanbul ignore next */ []));
|
|
41
|
+
name = input(null, ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
42
|
+
value = input('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
43
|
+
disableRipple = input(false, { ...(ngDevMode ? { debugName: "disableRipple" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
44
|
+
tabIndex = input(0, { ...(ngDevMode ? { debugName: "tabIndex" } : /* istanbul ignore next */ {}), transform: (value) => (value == null ? 0 : numberAttribute(value)) });
|
|
45
|
+
color = input(undefined, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
46
|
+
disabledInteractive = input(false, { ...(ngDevMode ? { debugName: "disabledInteractive" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
47
|
+
checked = model(false, ...(ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []));
|
|
48
|
+
disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
49
|
+
indeterminate = model(false, ...(ngDevMode ? [{ debugName: "indeterminate" }] : /* istanbul ignore next */ []));
|
|
50
|
+
change = output();
|
|
51
|
+
indeterminateChange = output();
|
|
52
|
+
_inputElement = viewChild('input', ...(ngDevMode ? [{ debugName: "_inputElement" }] : /* istanbul ignore next */ []));
|
|
53
|
+
_labelElement = viewChild('label', ...(ngDevMode ? [{ debugName: "_labelElement" }] : /* istanbul ignore next */ []));
|
|
54
|
+
_currentAnimationClass = '';
|
|
55
|
+
_currentCheckState = TransitionCheckState.Init;
|
|
56
|
+
_controlValueAccessorChangeFn = (value) => { };
|
|
57
|
+
_validatorChangeFn = () => { };
|
|
58
|
+
_onTouched = () => { };
|
|
59
|
+
_animationClasses = {
|
|
60
|
+
uncheckedToChecked: 'ngs-checkbox--anim-unchecked-checked',
|
|
61
|
+
uncheckedToIndeterminate: 'ngs-checkbox--anim-unchecked-indeterminate',
|
|
62
|
+
checkedToUnchecked: 'ngs-checkbox--anim-checked-unchecked',
|
|
63
|
+
checkedToIndeterminate: 'ngs-checkbox--anim-checked-indeterminate',
|
|
64
|
+
indeterminateToChecked: 'ngs-checkbox--anim-indeterminate-checked',
|
|
65
|
+
indeterminateToUnchecked: 'ngs-checkbox--anim-indeterminate-unchecked',
|
|
66
|
+
};
|
|
67
|
+
constructor() {
|
|
68
|
+
effect(() => {
|
|
69
|
+
this.required();
|
|
70
|
+
untracked(() => this._validatorChangeFn());
|
|
71
|
+
});
|
|
72
|
+
effect(() => {
|
|
73
|
+
const indeterminate = this.indeterminate();
|
|
74
|
+
untracked(() => {
|
|
75
|
+
if (this._currentCheckState === TransitionCheckState.Init) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (indeterminate) {
|
|
79
|
+
this._transitionCheckState(TransitionCheckState.Indeterminate);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this._transitionCheckState(this.checked() ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);
|
|
83
|
+
}
|
|
84
|
+
this._syncIndeterminate(indeterminate);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
effect(() => {
|
|
88
|
+
const checked = this.checked();
|
|
89
|
+
untracked(() => {
|
|
90
|
+
if (this._currentCheckState === TransitionCheckState.Init) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (!this.indeterminate()) {
|
|
94
|
+
this._transitionCheckState(checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
get inputId() {
|
|
100
|
+
return `${this.id()}-input`;
|
|
101
|
+
}
|
|
102
|
+
ngAfterViewInit() {
|
|
103
|
+
this._syncIndeterminate(this.indeterminate());
|
|
104
|
+
}
|
|
105
|
+
focus() {
|
|
106
|
+
this._inputElement()?.nativeElement.focus();
|
|
107
|
+
}
|
|
108
|
+
writeValue(value) {
|
|
109
|
+
this.checked.set(!!value);
|
|
110
|
+
}
|
|
111
|
+
registerOnChange(fn) {
|
|
112
|
+
this._controlValueAccessorChangeFn = fn;
|
|
113
|
+
}
|
|
114
|
+
registerOnTouched(fn) {
|
|
115
|
+
this._onTouched = fn;
|
|
116
|
+
}
|
|
117
|
+
setDisabledState(isDisabled) {
|
|
118
|
+
this.disabled.set(isDisabled);
|
|
119
|
+
}
|
|
120
|
+
validate(control) {
|
|
121
|
+
return this.required() && control.value !== true ? { 'required': true } : null;
|
|
122
|
+
}
|
|
123
|
+
registerOnValidatorChange(fn) {
|
|
124
|
+
this._validatorChangeFn = fn;
|
|
125
|
+
}
|
|
126
|
+
toggle() {
|
|
127
|
+
this.checked.set(!this.checked());
|
|
128
|
+
this._controlValueAccessorChangeFn(this.checked());
|
|
129
|
+
}
|
|
130
|
+
_handleInputClick() {
|
|
131
|
+
if (!this.disabled()) {
|
|
132
|
+
if (this.indeterminate()) {
|
|
133
|
+
this.indeterminate.set(false);
|
|
134
|
+
}
|
|
135
|
+
this.checked.set(!this.checked());
|
|
136
|
+
this._emitChangeEvent();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
_emitChangeEvent() {
|
|
140
|
+
this._controlValueAccessorChangeFn(this.checked());
|
|
141
|
+
this.change.emit(this._createChangeEvent(this.checked()));
|
|
142
|
+
const inputElement = this._inputElement();
|
|
143
|
+
if (inputElement) {
|
|
144
|
+
inputElement.nativeElement.checked = this.checked();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
_createChangeEvent(isChecked) {
|
|
148
|
+
const event = new CheckboxChange();
|
|
149
|
+
event.source = this;
|
|
150
|
+
event.checked = isChecked;
|
|
151
|
+
return event;
|
|
152
|
+
}
|
|
153
|
+
_onInteractionEvent(event) {
|
|
154
|
+
event.stopPropagation();
|
|
155
|
+
}
|
|
156
|
+
_onBlur() {
|
|
157
|
+
this._onTouched();
|
|
158
|
+
}
|
|
159
|
+
_transitionCheckState(newState) {
|
|
160
|
+
let oldState = this._currentCheckState;
|
|
161
|
+
let element = this._inputElement()?.nativeElement;
|
|
162
|
+
if (oldState === newState || !element) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (this._currentAnimationClass) {
|
|
166
|
+
element.classList.remove(this._currentAnimationClass);
|
|
167
|
+
}
|
|
168
|
+
this._currentAnimationClass = this._getAnimationClassForCheckStateTransition(oldState, newState);
|
|
169
|
+
this._currentCheckState = newState;
|
|
170
|
+
if (this._currentAnimationClass.length > 0) {
|
|
171
|
+
element.classList.add(this._currentAnimationClass);
|
|
172
|
+
const animationClass = this._currentAnimationClass;
|
|
173
|
+
this._ngZone.runOutsideAngular(() => {
|
|
174
|
+
setTimeout(() => {
|
|
175
|
+
element.classList.remove(animationClass);
|
|
176
|
+
}, 1000);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
_getAnimationClassForCheckStateTransition(oldState, newState) {
|
|
181
|
+
switch (oldState) {
|
|
182
|
+
case TransitionCheckState.Init:
|
|
183
|
+
if (newState === TransitionCheckState.Checked) {
|
|
184
|
+
return this._animationClasses.uncheckedToChecked;
|
|
185
|
+
}
|
|
186
|
+
else if (newState == TransitionCheckState.Indeterminate) {
|
|
187
|
+
return this.checked()
|
|
188
|
+
? this._animationClasses.checkedToIndeterminate
|
|
189
|
+
: this._animationClasses.uncheckedToIndeterminate;
|
|
190
|
+
}
|
|
191
|
+
break;
|
|
192
|
+
case TransitionCheckState.Unchecked:
|
|
193
|
+
return newState === TransitionCheckState.Checked
|
|
194
|
+
? this._animationClasses.uncheckedToChecked
|
|
195
|
+
: this._animationClasses.uncheckedToIndeterminate;
|
|
196
|
+
case TransitionCheckState.Checked:
|
|
197
|
+
return newState === TransitionCheckState.Unchecked
|
|
198
|
+
? this._animationClasses.checkedToUnchecked
|
|
199
|
+
: this._animationClasses.checkedToIndeterminate;
|
|
200
|
+
case TransitionCheckState.Indeterminate:
|
|
201
|
+
return newState === TransitionCheckState.Checked
|
|
202
|
+
? this._animationClasses.indeterminateToChecked
|
|
203
|
+
: this._animationClasses.indeterminateToUnchecked;
|
|
204
|
+
}
|
|
205
|
+
return '';
|
|
206
|
+
}
|
|
207
|
+
_syncIndeterminate(value) {
|
|
208
|
+
const inputElement = this._inputElement();
|
|
209
|
+
if (inputElement) {
|
|
210
|
+
inputElement.nativeElement.indeterminate = value;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
_onInputClick() {
|
|
214
|
+
this._handleInputClick();
|
|
215
|
+
}
|
|
216
|
+
_onTouchTargetClick() {
|
|
217
|
+
this._handleInputClick();
|
|
218
|
+
const inputElement = this._inputElement();
|
|
219
|
+
if (!this.disabled() && inputElement) {
|
|
220
|
+
inputElement.nativeElement.focus();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
_preventBubblingFromLabel(event) {
|
|
224
|
+
const labelElement = this._labelElement();
|
|
225
|
+
if (!!event.target && labelElement && labelElement.nativeElement.contains(event.target)) {
|
|
226
|
+
event.stopPropagation();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Checkbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
230
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: Checkbox, isStandalone: true, selector: "ngs-checkbox", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, ariaExpanded: { classPropertyName: "ariaExpanded", publicName: "aria-expanded", isSignal: true, isRequired: false, transformFunction: null }, ariaControls: { classPropertyName: "ariaControls", publicName: "aria-controls", isSignal: true, isRequired: false, transformFunction: null }, ariaOwns: { classPropertyName: "ariaOwns", publicName: "aria-owns", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disableRipple: { classPropertyName: "disableRipple", publicName: "disableRipple", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, disabledInteractive: { classPropertyName: "disabledInteractive", publicName: "disabledInteractive", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", disabled: "disabledChange", indeterminate: "indeterminateChange", change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "class.ngs-checkbox-disabled": "disabled()", "class.ngs-checkbox-checked": "checked()", "class.ngs-checkbox-indeterminate": "indeterminate()", "class.ngs-checkbox-disabled-interactive": "disabledInteractive()", "class": "color() ? \"ngs-\" + color() : \"ngs-primary\"" }, classAttribute: "ngs-checkbox" }, providers: [
|
|
231
|
+
{
|
|
232
|
+
provide: NG_VALUE_ACCESSOR,
|
|
233
|
+
useExisting: forwardRef(() => Checkbox),
|
|
234
|
+
multi: true,
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
provide: NG_VALIDATORS,
|
|
238
|
+
useExisting: Checkbox,
|
|
239
|
+
multi: true,
|
|
240
|
+
},
|
|
241
|
+
], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }, { propertyName: "_labelElement", first: true, predicate: ["label"], descendants: true, isSignal: true }], exportAs: ["ngsCheckbox"], ngImport: i0, template: "<div class=\"ngs-checkbox-layout\" [class.ngs-checkbox-label-before]=\"labelPosition() === 'before'\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <div #checkbox class=\"ngs-checkbox-frame\">\n <div class=\"ngs-checkbox-touch-target\" (click)=\"_onTouchTargetClick()\"></div>\n <input #input\n type=\"checkbox\"\n class=\"ngs-checkbox-native-control\"\n [class.ngs-checkbox--selected]=\"checked()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : null\"\n [attr.aria-controls]=\"ariaControls()\"\n [attr.aria-disabled]=\"disabled() && disabledInteractive() ? true : null\"\n [attr.aria-expanded]=\"ariaExpanded()\"\n [attr.aria-owns]=\"ariaOwns()\"\n [attr.name]=\"name()\"\n [attr.value]=\"value()\"\n [checked]=\"checked()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabled() && !disabledInteractive()\"\n [id]=\"inputId\"\n [required]=\"required()\"\n [tabIndex]=\"disabled() && !disabledInteractive() ? -1 : tabIndex()\"\n (blur)=\"_onBlur()\"\n (click)=\"_onInputClick()\"\n (change)=\"_onInteractionEvent($event)\"/>\n <div class=\"ngs-checkbox-ripple-container\"></div>\n <div class=\"ngs-checkbox-background\">\n @if (indeterminate()) {\n <div class=\"ngs-checkbox-mixedmark\"></div>\n } @else if (checked()) {\n <svg class=\"ngs-checkbox-checkmark\"\n focusable=\"false\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path class=\"ngs-checkbox-checkmark-path\"\n fill=\"none\"\n d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"/>\n </svg>\n }\n </div>\n <div class=\"ngs-checkbox-ripple\" ngsRipple\n [ngsRippleTrigger]=\"checkbox\"\n [ngsRippleDisabled]=\"disableRipple() || disabled()\"\n [ngsRippleCentered]=\"true\"></div>\n </div>\n <label class=\"ngs-checkbox-label\" #label [for]=\"inputId\">\n <span class=\"content\"><ng-content /></span>\n <span class=\"description\">\n <ng-content select=\"[ngsCheckboxDecription]\" />\n </span>\n </label>\n</div>\n", styles: [":host{--ngs-checkbox-size: 19px;--ngs-checkbox-checked-color: var(--color-primary);--ngs-checkbox-unchecked-color: var(--input-border-color);--ngs-checkbox-disabled-color: var(--color-on-surface-variant);--ngs-checkbox-checkmark-color: var(--color-on-primary);--ngs-checkbox-description-font-size: .875rem;--ngs-checkbox-description-color: var(--color-neutral-500);--ngs-checkbox-gap: calc(var(--spacing, .25rem) * 2.5);--ngs-checkbox-label-font-size: 1rem;display:inline-block;position:relative}:host .description{font-size:var(--ngs-checkbox-description-font-size);color:var(--ngs-checkbox-description-color)}:host .description:empty{display:none}:host .content{font-size:var(--ngs-checkbox-label-font-size)}:host .ngs-checkbox-layout{display:flex;align-items:center;gap:var(--ngs-checkbox-gap);cursor:pointer}:host .ngs-checkbox-layout.ngs-checkbox-label-before{flex-direction:row-reverse}:host:has(.description:not(:empty)) .ngs-checkbox-layout{align-items:start}:host:has(.description:not(:empty)) .ngs-checkbox-frame{position:relative;top:calc(var(--spacing, .25rem) * 1.1)}:host .ngs-checkbox-frame{width:var(--ngs-checkbox-size);height:var(--ngs-checkbox-size);position:relative;display:flex;align-items:center;justify-content:center;flex:none}:host .ngs-checkbox-native-control{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}:host .ngs-checkbox-background{width:100%;height:100%;border:1px solid var(--ngs-checkbox-unchecked-color);border-radius:3px;background:transparent;transition:background-color 90ms cubic-bezier(0,0,.2,1),border-color 90ms cubic-bezier(0,0,.2,1);box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:2px}:host .ngs-checkbox-checkmark{width:100%;height:100%}:host .ngs-checkbox-checkmark-path{stroke:var(--ngs-checkbox-checkmark-color);stroke-width:3.12px;stroke-dasharray:29.7833385;stroke-dashoffset:0}:host .ngs-checkbox-mixedmark{width:12px;height:2px;background:var(--ngs-checkbox-checkmark-color)}:host.ngs-checkbox-checked .ngs-checkbox-background,:host.ngs-checkbox-indeterminate .ngs-checkbox-background{background:var(--ngs-checkbox-checked-color);border-color:var(--ngs-checkbox-checked-color)}:host.ngs-checkbox-disabled{cursor:default;color:var(--color-on-surface)}@supports (color: color-mix(in lab,red,red)){:host.ngs-checkbox-disabled{color:color-mix(in srgb,var(--color-on-surface),transparent 62%)}}:host.ngs-checkbox-disabled .ngs-checkbox-layout{cursor:default}:host.ngs-checkbox-disabled .ngs-checkbox-background{border-color:var(--color-on-surface);background:transparent}@supports (color: color-mix(in lab,red,red)){:host.ngs-checkbox-disabled .ngs-checkbox-background{border-color:color-mix(in srgb,var(--color-on-surface),transparent 62%)}}:host.ngs-checkbox-disabled.ngs-checkbox-checked .ngs-checkbox-background,:host.ngs-checkbox-disabled.ngs-checkbox-indeterminate .ngs-checkbox-background{background:var(--color-on-surface);border-color:transparent}@supports (color: color-mix(in lab,red,red)){:host.ngs-checkbox-disabled.ngs-checkbox-checked .ngs-checkbox-background,:host.ngs-checkbox-disabled.ngs-checkbox-indeterminate .ngs-checkbox-background{background:color-mix(in srgb,var(--color-on-surface),transparent 62%)}}:host .ngs-checkbox-ripple{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;pointer-events:none;overflow:hidden}:host .ngs-checkbox-label{cursor:inherit}:host .ngs-checkbox-label:has(.description:empty):has(.content:empty){display:none}:host.ngs-accent{--ngs-checkbox-checked-color: var(--color-secondary);--ngs-checkbox-checkmark-color: var(--color-on-secondary)}:host.ngs-warn{--ngs-checkbox-checked-color: var(--color-error);--ngs-checkbox-checkmark-color: var(--color-on-error)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: Ripple, selector: "[ngsRipple]", inputs: ["ngsRippleColor", "ngsRippleUnbounded", "ngsRippleCentered", "ngsRippleRadius", "ngsRippleAnimation", "ngsRippleDisabled", "ngsRippleTrigger"], outputs: ["ngsRippleCenteredChange", "ngsRippleDisabledChange", "ngsRippleTriggerChange"], exportAs: ["ngsRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
242
|
+
}
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Checkbox, decorators: [{
|
|
244
|
+
type: Component,
|
|
245
|
+
args: [{ selector: 'ngs-checkbox', imports: [
|
|
246
|
+
Ripple
|
|
247
|
+
], host: {
|
|
248
|
+
'class': 'ngs-checkbox',
|
|
249
|
+
'[attr.tabindex]': 'null',
|
|
250
|
+
'[attr.aria-label]': 'null',
|
|
251
|
+
'[attr.aria-labelledby]': 'null',
|
|
252
|
+
'[class.ngs-checkbox-disabled]': 'disabled()',
|
|
253
|
+
'[class.ngs-checkbox-checked]': 'checked()',
|
|
254
|
+
'[class.ngs-checkbox-indeterminate]': 'indeterminate()',
|
|
255
|
+
'[class.ngs-checkbox-disabled-interactive]': 'disabledInteractive()',
|
|
256
|
+
'[class]': 'color() ? "ngs-" + color() : "ngs-primary"',
|
|
257
|
+
}, providers: [
|
|
258
|
+
{
|
|
259
|
+
provide: NG_VALUE_ACCESSOR,
|
|
260
|
+
useExisting: forwardRef(() => Checkbox),
|
|
261
|
+
multi: true,
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
provide: NG_VALIDATORS,
|
|
265
|
+
useExisting: Checkbox,
|
|
266
|
+
multi: true,
|
|
267
|
+
},
|
|
268
|
+
], exportAs: 'ngsCheckbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ngs-checkbox-layout\" [class.ngs-checkbox-label-before]=\"labelPosition() === 'before'\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <div #checkbox class=\"ngs-checkbox-frame\">\n <div class=\"ngs-checkbox-touch-target\" (click)=\"_onTouchTargetClick()\"></div>\n <input #input\n type=\"checkbox\"\n class=\"ngs-checkbox-native-control\"\n [class.ngs-checkbox--selected]=\"checked()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : null\"\n [attr.aria-controls]=\"ariaControls()\"\n [attr.aria-disabled]=\"disabled() && disabledInteractive() ? true : null\"\n [attr.aria-expanded]=\"ariaExpanded()\"\n [attr.aria-owns]=\"ariaOwns()\"\n [attr.name]=\"name()\"\n [attr.value]=\"value()\"\n [checked]=\"checked()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabled() && !disabledInteractive()\"\n [id]=\"inputId\"\n [required]=\"required()\"\n [tabIndex]=\"disabled() && !disabledInteractive() ? -1 : tabIndex()\"\n (blur)=\"_onBlur()\"\n (click)=\"_onInputClick()\"\n (change)=\"_onInteractionEvent($event)\"/>\n <div class=\"ngs-checkbox-ripple-container\"></div>\n <div class=\"ngs-checkbox-background\">\n @if (indeterminate()) {\n <div class=\"ngs-checkbox-mixedmark\"></div>\n } @else if (checked()) {\n <svg class=\"ngs-checkbox-checkmark\"\n focusable=\"false\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path class=\"ngs-checkbox-checkmark-path\"\n fill=\"none\"\n d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"/>\n </svg>\n }\n </div>\n <div class=\"ngs-checkbox-ripple\" ngsRipple\n [ngsRippleTrigger]=\"checkbox\"\n [ngsRippleDisabled]=\"disableRipple() || disabled()\"\n [ngsRippleCentered]=\"true\"></div>\n </div>\n <label class=\"ngs-checkbox-label\" #label [for]=\"inputId\">\n <span class=\"content\"><ng-content /></span>\n <span class=\"description\">\n <ng-content select=\"[ngsCheckboxDecription]\" />\n </span>\n </label>\n</div>\n", styles: [":host{--ngs-checkbox-size: 19px;--ngs-checkbox-checked-color: var(--color-primary);--ngs-checkbox-unchecked-color: var(--input-border-color);--ngs-checkbox-disabled-color: var(--color-on-surface-variant);--ngs-checkbox-checkmark-color: var(--color-on-primary);--ngs-checkbox-description-font-size: .875rem;--ngs-checkbox-description-color: var(--color-neutral-500);--ngs-checkbox-gap: calc(var(--spacing, .25rem) * 2.5);--ngs-checkbox-label-font-size: 1rem;display:inline-block;position:relative}:host .description{font-size:var(--ngs-checkbox-description-font-size);color:var(--ngs-checkbox-description-color)}:host .description:empty{display:none}:host .content{font-size:var(--ngs-checkbox-label-font-size)}:host .ngs-checkbox-layout{display:flex;align-items:center;gap:var(--ngs-checkbox-gap);cursor:pointer}:host .ngs-checkbox-layout.ngs-checkbox-label-before{flex-direction:row-reverse}:host:has(.description:not(:empty)) .ngs-checkbox-layout{align-items:start}:host:has(.description:not(:empty)) .ngs-checkbox-frame{position:relative;top:calc(var(--spacing, .25rem) * 1.1)}:host .ngs-checkbox-frame{width:var(--ngs-checkbox-size);height:var(--ngs-checkbox-size);position:relative;display:flex;align-items:center;justify-content:center;flex:none}:host .ngs-checkbox-native-control{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}:host .ngs-checkbox-background{width:100%;height:100%;border:1px solid var(--ngs-checkbox-unchecked-color);border-radius:3px;background:transparent;transition:background-color 90ms cubic-bezier(0,0,.2,1),border-color 90ms cubic-bezier(0,0,.2,1);box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:2px}:host .ngs-checkbox-checkmark{width:100%;height:100%}:host .ngs-checkbox-checkmark-path{stroke:var(--ngs-checkbox-checkmark-color);stroke-width:3.12px;stroke-dasharray:29.7833385;stroke-dashoffset:0}:host .ngs-checkbox-mixedmark{width:12px;height:2px;background:var(--ngs-checkbox-checkmark-color)}:host.ngs-checkbox-checked .ngs-checkbox-background,:host.ngs-checkbox-indeterminate .ngs-checkbox-background{background:var(--ngs-checkbox-checked-color);border-color:var(--ngs-checkbox-checked-color)}:host.ngs-checkbox-disabled{cursor:default;color:var(--color-on-surface)}@supports (color: color-mix(in lab,red,red)){:host.ngs-checkbox-disabled{color:color-mix(in srgb,var(--color-on-surface),transparent 62%)}}:host.ngs-checkbox-disabled .ngs-checkbox-layout{cursor:default}:host.ngs-checkbox-disabled .ngs-checkbox-background{border-color:var(--color-on-surface);background:transparent}@supports (color: color-mix(in lab,red,red)){:host.ngs-checkbox-disabled .ngs-checkbox-background{border-color:color-mix(in srgb,var(--color-on-surface),transparent 62%)}}:host.ngs-checkbox-disabled.ngs-checkbox-checked .ngs-checkbox-background,:host.ngs-checkbox-disabled.ngs-checkbox-indeterminate .ngs-checkbox-background{background:var(--color-on-surface);border-color:transparent}@supports (color: color-mix(in lab,red,red)){:host.ngs-checkbox-disabled.ngs-checkbox-checked .ngs-checkbox-background,:host.ngs-checkbox-disabled.ngs-checkbox-indeterminate .ngs-checkbox-background{background:color-mix(in srgb,var(--color-on-surface),transparent 62%)}}:host .ngs-checkbox-ripple{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;pointer-events:none;overflow:hidden}:host .ngs-checkbox-label{cursor:inherit}:host .ngs-checkbox-label:has(.description:empty):has(.content:empty){display:none}:host.ngs-accent{--ngs-checkbox-checked-color: var(--color-secondary);--ngs-checkbox-checkmark-color: var(--color-on-secondary)}:host.ngs-warn{--ngs-checkbox-checked-color: var(--color-error);--ngs-checkbox-checkmark-color: var(--color-on-error)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
269
|
+
}], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], ariaDescribedby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], ariaExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-expanded", required: false }] }], ariaControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-controls", required: false }] }], ariaOwns: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-owns", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], disableRipple: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableRipple", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], disabledInteractive: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledInteractive", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }, { type: i0.Output, args: ["indeterminateChange"] }], change: [{ type: i0.Output, args: ["change"] }], indeterminateChange: [{ type: i0.Output, args: ["indeterminateChange"] }], _inputElement: [{ type: i0.ViewChild, args: ['input', { isSignal: true }] }], _labelElement: [{ type: i0.ViewChild, args: ['label', { isSignal: true }] }] } });
|
|
270
|
+
|
|
271
|
+
class CheckboxDescription {
|
|
272
|
+
constructor() { }
|
|
273
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CheckboxDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
274
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: CheckboxDescription, isStandalone: true, selector: "[ngsCheckboxDescription]", ngImport: i0 });
|
|
275
|
+
}
|
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CheckboxDescription, decorators: [{
|
|
277
|
+
type: Directive,
|
|
278
|
+
args: [{
|
|
279
|
+
selector: '[ngsCheckboxDescription]',
|
|
280
|
+
}]
|
|
281
|
+
}], ctorParameters: () => [] });
|
|
282
|
+
|
|
283
|
+
class CheckboxGroup {
|
|
284
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CheckboxGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
285
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: CheckboxGroup, isStandalone: true, selector: "ngs-checkbox-group", host: { attributes: { "role": "group" }, classAttribute: "ngs-checkbox-group" }, ngImport: i0, template: "<ng-content />\n", styles: [":host{--ngs-checkbox-group-gap: calc(var(--spacing, .25rem) * 4);display:flex;flex-direction:column;gap:var(--ngs-checkbox-group-gap)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
286
|
+
}
|
|
287
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CheckboxGroup, decorators: [{
|
|
288
|
+
type: Component,
|
|
289
|
+
args: [{ selector: 'ngs-checkbox-group', imports: [], host: {
|
|
290
|
+
'class': 'ngs-checkbox-group',
|
|
291
|
+
'role': 'group',
|
|
292
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content />\n", styles: [":host{--ngs-checkbox-group-gap: calc(var(--spacing, .25rem) * 4);display:flex;flex-direction:column;gap:var(--ngs-checkbox-group-gap)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
293
|
+
}] });
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Generated bundle index. Do not edit.
|
|
297
|
+
*/
|
|
298
|
+
|
|
299
|
+
export { Checkbox, CheckboxChange, CheckboxDescription, CheckboxGroup, TransitionCheckState };
|
|
300
|
+
//# sourceMappingURL=ngstarter-ui-components-checkbox.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-checkbox.mjs","sources":["../../../projects/components/checkbox/src/checkbox/checkbox.ts","../../../projects/components/checkbox/src/checkbox/checkbox.html","../../../projects/components/checkbox/src/checkbox-description.ts","../../../projects/components/checkbox/src/checkbox-group/checkbox-group.ts","../../../projects/components/checkbox/src/checkbox-group/checkbox-group.html","../../../projects/components/checkbox/ngstarter-ui-components-checkbox.ts"],"sourcesContent":["import {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n NgZone,\n numberAttribute,\n output,\n viewChild,\n effect,\n untracked,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { _IdGenerator } from '@angular/cdk/a11y';\nimport { Ripple } from '@ngstarter-ui/components/core';\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport enum TransitionCheckState {\n /** The initial state of the component before any user interaction. */\n Init = 0,\n /** The state representing the component when it's becoming checked. */\n Checked = 1,\n /** The state representing the component when it's becoming unchecked. */\n Unchecked = 2,\n /** The state representing the component when it's becoming indeterminate. */\n Indeterminate = 3\n}\n\n/** Change event object emitted by checkbox. */\nexport class CheckboxChange {\n /** The source checkbox of the event. */\n source: Checkbox;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\n@Component({\n selector: 'ngs-checkbox',\n imports: [\n Ripple\n ],\n templateUrl: './checkbox.html',\n styleUrl: './checkbox.scss',\n host: {\n 'class': 'ngs-checkbox',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[class.ngs-checkbox-disabled]': 'disabled()',\n '[class.ngs-checkbox-checked]': 'checked()',\n '[class.ngs-checkbox-indeterminate]': 'indeterminate()',\n '[class.ngs-checkbox-disabled-interactive]': 'disabledInteractive()',\n '[class]': 'color() ? \"ngs-\" + color() : \"ngs-primary\"',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Checkbox),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: Checkbox,\n multi: true,\n },\n ],\n exportAs: 'ngsCheckbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Checkbox implements ControlValueAccessor, Validator, AfterViewInit {\n private _ngZone = inject(NgZone);\n private _idGenerator = inject(_IdGenerator);\n\n readonly ariaLabel = input('', { alias: 'aria-label' });\n readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n readonly ariaDescribedby = input<string>('', { alias: 'aria-describedby' });\n readonly ariaExpanded = input(undefined, { alias: 'aria-expanded', transform: booleanAttribute });\n readonly ariaControls = input('', { alias: 'aria-controls' });\n readonly ariaOwns = input('', { alias: 'aria-owns' });\n readonly id = input(this._idGenerator.getId('ngs-checkbox-'));\n readonly required = input(false, { transform: booleanAttribute });\n readonly labelPosition = input<'before' | 'after'>('after');\n readonly name = input<string | null>(null);\n readonly value = input('');\n readonly disableRipple = input(false, { transform: booleanAttribute });\n readonly tabIndex = input(0, {\n transform: (value: any) => (value == null ? 0 : numberAttribute(value))\n });\n readonly color = input<string | undefined>(undefined);\n readonly disabledInteractive = input(false, { transform: booleanAttribute });\n\n readonly checked = model(false);\n readonly disabled = model(false);\n readonly indeterminate = model(false);\n\n readonly change = output<CheckboxChange>();\n readonly indeterminateChange = output<boolean>();\n\n readonly _inputElement = viewChild<ElementRef<HTMLInputElement>>('input');\n readonly _labelElement = viewChild<ElementRef<HTMLElement>>('label');\n\n private _currentAnimationClass = '';\n private _currentCheckState = TransitionCheckState.Init;\n private _controlValueAccessorChangeFn = (value: any) => {};\n private _validatorChangeFn = () => {};\n _onTouched = () => {};\n\n private _animationClasses = {\n uncheckedToChecked: 'ngs-checkbox--anim-unchecked-checked',\n uncheckedToIndeterminate: 'ngs-checkbox--anim-unchecked-indeterminate',\n checkedToUnchecked: 'ngs-checkbox--anim-checked-unchecked',\n checkedToIndeterminate: 'ngs-checkbox--anim-checked-indeterminate',\n indeterminateToChecked: 'ngs-checkbox--anim-indeterminate-checked',\n indeterminateToUnchecked: 'ngs-checkbox--anim-indeterminate-unchecked',\n };\n\n constructor() {\n effect(() => {\n this.required();\n untracked(() => this._validatorChangeFn());\n });\n\n effect(() => {\n const indeterminate = this.indeterminate();\n untracked(() => {\n if (this._currentCheckState === TransitionCheckState.Init) {\n return;\n }\n\n if (indeterminate) {\n this._transitionCheckState(TransitionCheckState.Indeterminate);\n } else {\n this._transitionCheckState(this.checked() ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n this._syncIndeterminate(indeterminate);\n });\n });\n\n effect(() => {\n const checked = this.checked();\n untracked(() => {\n if (this._currentCheckState === TransitionCheckState.Init) {\n return;\n }\n\n if (!this.indeterminate()) {\n this._transitionCheckState(checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n });\n });\n }\n\n get inputId(): string {\n return `${this.id()}-input`;\n }\n\n ngAfterViewInit() {\n this._syncIndeterminate(this.indeterminate());\n }\n\n focus() {\n this._inputElement()?.nativeElement.focus();\n }\n\n writeValue(value: any): void {\n this.checked.set(!!value);\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this._controlValueAccessorChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n validate(control: AbstractControl<boolean>): ValidationErrors | null {\n return this.required() && control.value !== true ? { 'required': true } : null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorChangeFn = fn;\n }\n\n toggle() {\n this.checked.set(!this.checked());\n this._controlValueAccessorChangeFn(this.checked());\n }\n\n _handleInputClick() {\n if (!this.disabled()) {\n if (this.indeterminate()) {\n this.indeterminate.set(false);\n }\n this.checked.set(!this.checked());\n this._emitChangeEvent();\n }\n }\n\n _emitChangeEvent() {\n this._controlValueAccessorChangeFn(this.checked());\n this.change.emit(this._createChangeEvent(this.checked()));\n const inputElement = this._inputElement();\n if (inputElement) {\n inputElement.nativeElement.checked = this.checked();\n }\n }\n\n private _createChangeEvent(isChecked: boolean): CheckboxChange {\n const event = new CheckboxChange();\n event.source = this;\n event.checked = isChecked;\n return event;\n }\n\n _onInteractionEvent(event: Event) {\n event.stopPropagation();\n }\n\n _onBlur() {\n this._onTouched();\n }\n\n private _transitionCheckState(newState: TransitionCheckState) {\n let oldState = this._currentCheckState;\n let element = this._inputElement()?.nativeElement;\n if (oldState === newState || !element) {\n return;\n }\n if (this._currentAnimationClass) {\n element.classList.remove(this._currentAnimationClass);\n }\n this._currentAnimationClass = this._getAnimationClassForCheckStateTransition(oldState, newState);\n this._currentCheckState = newState;\n if (this._currentAnimationClass.length > 0) {\n element.classList.add(this._currentAnimationClass);\n const animationClass = this._currentAnimationClass;\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n element.classList.remove(animationClass);\n }, 1000);\n });\n }\n }\n\n private _getAnimationClassForCheckStateTransition(oldState: TransitionCheckState, newState: TransitionCheckState): string {\n switch (oldState) {\n case TransitionCheckState.Init:\n if (newState === TransitionCheckState.Checked) {\n return this._animationClasses.uncheckedToChecked;\n } else if (newState == TransitionCheckState.Indeterminate) {\n return this.checked()\n ? this._animationClasses.checkedToIndeterminate\n : this._animationClasses.uncheckedToIndeterminate;\n }\n break;\n case TransitionCheckState.Unchecked:\n return newState === TransitionCheckState.Checked\n ? this._animationClasses.uncheckedToChecked\n : this._animationClasses.uncheckedToIndeterminate;\n case TransitionCheckState.Checked:\n return newState === TransitionCheckState.Unchecked\n ? this._animationClasses.checkedToUnchecked\n : this._animationClasses.checkedToIndeterminate;\n case TransitionCheckState.Indeterminate:\n return newState === TransitionCheckState.Checked\n ? this._animationClasses.indeterminateToChecked\n : this._animationClasses.indeterminateToUnchecked;\n }\n return '';\n }\n\n private _syncIndeterminate(value: boolean) {\n const inputElement = this._inputElement();\n if (inputElement) {\n inputElement.nativeElement.indeterminate = value;\n }\n }\n\n _onInputClick() {\n this._handleInputClick();\n }\n\n _onTouchTargetClick() {\n this._handleInputClick();\n const inputElement = this._inputElement();\n if (!this.disabled() && inputElement) {\n inputElement.nativeElement.focus();\n }\n }\n\n _preventBubblingFromLabel(event: MouseEvent) {\n const labelElement = this._labelElement();\n if (!!event.target && labelElement && labelElement.nativeElement.contains(event.target as HTMLElement)) {\n event.stopPropagation();\n }\n }\n}\n","<div class=\"ngs-checkbox-layout\" [class.ngs-checkbox-label-before]=\"labelPosition() === 'before'\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <div #checkbox class=\"ngs-checkbox-frame\">\n <div class=\"ngs-checkbox-touch-target\" (click)=\"_onTouchTargetClick()\"></div>\n <input #input\n type=\"checkbox\"\n class=\"ngs-checkbox-native-control\"\n [class.ngs-checkbox--selected]=\"checked()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : null\"\n [attr.aria-controls]=\"ariaControls()\"\n [attr.aria-disabled]=\"disabled() && disabledInteractive() ? true : null\"\n [attr.aria-expanded]=\"ariaExpanded()\"\n [attr.aria-owns]=\"ariaOwns()\"\n [attr.name]=\"name()\"\n [attr.value]=\"value()\"\n [checked]=\"checked()\"\n [indeterminate]=\"indeterminate()\"\n [disabled]=\"disabled() && !disabledInteractive()\"\n [id]=\"inputId\"\n [required]=\"required()\"\n [tabIndex]=\"disabled() && !disabledInteractive() ? -1 : tabIndex()\"\n (blur)=\"_onBlur()\"\n (click)=\"_onInputClick()\"\n (change)=\"_onInteractionEvent($event)\"/>\n <div class=\"ngs-checkbox-ripple-container\"></div>\n <div class=\"ngs-checkbox-background\">\n @if (indeterminate()) {\n <div class=\"ngs-checkbox-mixedmark\"></div>\n } @else if (checked()) {\n <svg class=\"ngs-checkbox-checkmark\"\n focusable=\"false\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path class=\"ngs-checkbox-checkmark-path\"\n fill=\"none\"\n d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"/>\n </svg>\n }\n </div>\n <div class=\"ngs-checkbox-ripple\" ngsRipple\n [ngsRippleTrigger]=\"checkbox\"\n [ngsRippleDisabled]=\"disableRipple() || disabled()\"\n [ngsRippleCentered]=\"true\"></div>\n </div>\n <label class=\"ngs-checkbox-label\" #label [for]=\"inputId\">\n <span class=\"content\"><ng-content /></span>\n <span class=\"description\">\n <ng-content select=\"[ngsCheckboxDecription]\" />\n </span>\n </label>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsCheckboxDescription]',\n})\nexport class CheckboxDescription {\n\n constructor() { }\n\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-checkbox-group',\n imports: [],\n templateUrl: './checkbox-group.html',\n styleUrl: './checkbox-group.scss',\n host: {\n 'class': 'ngs-checkbox-group',\n 'role': 'group',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxGroup {\n\n}\n","<ng-content />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|