@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-split.mjs","sources":["../../../projects/components/split/src/utils.ts","../../../projects/components/split/src/split/split.ts","../../../projects/components/split/src/split/split.html","../../../projects/components/split/src/split-pane.ts","../../../projects/components/split/ngstarter-ui-components-split.ts"],"sourcesContent":["import { ElementRef } from '@angular/core';\n\nimport {\n SplitArea,\n SplitPoint,\n SplitAreaSnapshot,\n SplitSideAbsorptionCapacity,\n SplitAreaAbsorptionCapacity,\n} from './interfaces';\n\nexport function getPointFromEvent(event: MouseEvent | TouchEvent): SplitPoint | null {\n // TouchEvent\n if (\n (event as TouchEvent).changedTouches !== undefined &&\n (event as TouchEvent).changedTouches.length > 0\n ) {\n return {\n x: (event as TouchEvent).changedTouches[0].clientX,\n y: (event as TouchEvent).changedTouches[0].clientY,\n };\n }\n // MouseEvent\n else if (\n (event as MouseEvent).clientX !== undefined &&\n (event as MouseEvent).clientY !== undefined\n ) {\n return {\n x: (event as MouseEvent).clientX,\n y: (event as MouseEvent).clientY,\n };\n }\n return null;\n}\n\nexport function getElementPixelSize(\n elRef: ElementRef,\n direction: 'horizontal' | 'vertical'\n): number {\n const rect = (elRef.nativeElement as HTMLElement).getBoundingClientRect();\n\n return direction === 'horizontal' ? rect.width : rect.height;\n}\n\nexport function getInputPositiveNumber<T>(v: any, defaultValue: T): number | T {\n if (v === null || v === undefined) {\n return defaultValue;\n }\n\n v = Number(v);\n return !isNaN(v) && v >= 0 ? v : defaultValue;\n}\n\nexport function isUserSizesValid(\n unit: 'percent' | 'pixel',\n sizes: number[]\n): boolean | number | void {\n // All sizes have to be not null and total should be 100\n if (unit === 'percent') {\n const total = sizes.reduce((_total, s) => (s !== null ? _total + s : _total), 0);\n return sizes.every(s => s !== null) && total && total > 99.9 && total < 100.1;\n }\n\n // A size at null is mandatory but only one.\n if (unit === 'pixel') {\n return sizes.filter(s => s === null).length === 1;\n }\n}\n\nexport function getAreaMinSize(a: SplitArea): number {\n if (a.size === null) {\n return 0;\n }\n\n if (a.component.isLocked() === true) {\n return a.size;\n }\n\n if (a.component.getMinSize() === null) {\n return 0;\n }\n\n if ((a.component.getMinSize() as number) > a.size) {\n return a.size;\n }\n\n return a.component.getMinSize() as number;\n}\n\nexport function getAreaMaxSize(a: SplitArea): null | number {\n if (a.size === null) {\n return null;\n }\n\n if (a.component.isLocked() === true) {\n return a.size;\n }\n\n if (a.component.getMaxSize() === null) {\n return null;\n }\n\n if ((a.component.getMaxSize() as number) < a.size) {\n return a.size;\n }\n\n return a.component.getMaxSize() as number;\n}\n\nexport function getGutterSideAbsorptionCapacity(\n unit: 'percent' | 'pixel',\n sideAreas: SplitAreaSnapshot[],\n pixels: number,\n allAreasSizePixel: number\n): SplitSideAbsorptionCapacity {\n return sideAreas.reduce(\n (acc: any, area) => {\n const res = getAreaAbsorptionCapacity(unit, area, acc.remain, allAreasSizePixel);\n acc.list.push(res);\n acc.remain = res && res.pixelRemain;\n return acc;\n },\n { remain: pixels, list: [] }\n );\n}\n\nexport function getAreaAbsorptionCapacity(\n unit: 'percent' | 'pixel',\n areaSnapshot: SplitAreaSnapshot,\n pixels: number,\n allAreasSizePixel: number\n): SplitAreaAbsorptionCapacity | void {\n // No pain no gain\n if (pixels === 0) {\n return {\n areaSnapshot,\n pixelAbsorb: 0,\n percentAfterAbsorption: areaSnapshot.sizePercentAtStart,\n pixelRemain: 0,\n };\n }\n\n // Area start at zero and need to be reduced, not possible\n if (areaSnapshot.sizePixelAtStart === 0 && pixels < 0) {\n return {\n areaSnapshot,\n pixelAbsorb: 0,\n percentAfterAbsorption: 0,\n pixelRemain: pixels,\n };\n }\n\n if (unit === 'percent') {\n return getAreaAbsorptionCapacityPercent(areaSnapshot, pixels, allAreasSizePixel);\n }\n\n if (unit === 'pixel') {\n return getAreaAbsorptionCapacityPixel(areaSnapshot, pixels, allAreasSizePixel);\n }\n}\n\nexport function getAreaAbsorptionCapacityPercent(\n areaSnapshot: SplitAreaSnapshot,\n pixels: number,\n allAreasSizePixel: number\n): SplitAreaAbsorptionCapacity | void {\n const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;\n const tempPercentSize = (tempPixelSize / allAreasSizePixel) * 100;\n\n // ENLARGE AREA\n\n if (pixels > 0) {\n // If maxSize & newSize bigger than it > absorb to max and return remaining pixels\n if (areaSnapshot.area.maxSize !== null && tempPercentSize > areaSnapshot.area.maxSize) {\n // Use area.area.maxSize as newPercentSize and return calculate pixels remaining\n const maxSizePixel = (areaSnapshot.area.maxSize / 100) * allAreasSizePixel;\n return {\n areaSnapshot,\n pixelAbsorb: maxSizePixel,\n percentAfterAbsorption: areaSnapshot.area.maxSize,\n pixelRemain: areaSnapshot.sizePixelAtStart + pixels - maxSizePixel,\n };\n }\n return {\n areaSnapshot,\n pixelAbsorb: pixels,\n percentAfterAbsorption: tempPercentSize > 100 ? 100 : tempPercentSize,\n pixelRemain: 0,\n };\n }\n\n // REDUCE AREA\n else if (pixels < 0) {\n // If minSize & newSize smaller than it > absorb to min and return remaining pixels\n if (areaSnapshot.area.minSize !== null && tempPercentSize < areaSnapshot.area.minSize) {\n // Use area.area.minSize as newPercentSize and return calculate pixels remaining\n const minSizePixel = (areaSnapshot.area.minSize / 100) * allAreasSizePixel;\n return {\n areaSnapshot,\n pixelAbsorb: minSizePixel,\n percentAfterAbsorption: areaSnapshot.area.minSize,\n pixelRemain: areaSnapshot.sizePixelAtStart + pixels - minSizePixel,\n };\n }\n // If reduced under zero > return remaining pixels\n else if (tempPercentSize < 0) {\n // Use 0 as newPercentSize and return calculate pixels remaining\n return {\n areaSnapshot,\n pixelAbsorb: -areaSnapshot.sizePixelAtStart,\n percentAfterAbsorption: 0,\n pixelRemain: pixels + areaSnapshot.sizePixelAtStart,\n };\n }\n return {\n areaSnapshot,\n pixelAbsorb: pixels,\n percentAfterAbsorption: tempPercentSize,\n pixelRemain: 0,\n };\n }\n}\n\nexport function getAreaAbsorptionCapacityPixel(\n areaSnapshot: SplitAreaSnapshot,\n pixels: number,\n containerSizePixel: number\n): SplitAreaAbsorptionCapacity | void {\n const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;\n\n // ENLARGE AREA\n\n if (pixels > 0) {\n // If maxSize & newSize bigger than it > absorb to max and return remaining pixels\n if (areaSnapshot.area.maxSize !== null && tempPixelSize > areaSnapshot.area.maxSize) {\n return {\n areaSnapshot,\n pixelAbsorb: areaSnapshot.area.maxSize - areaSnapshot.sizePixelAtStart,\n percentAfterAbsorption: -1,\n pixelRemain: tempPixelSize - areaSnapshot.area.maxSize,\n };\n }\n return {\n areaSnapshot,\n pixelAbsorb: pixels,\n percentAfterAbsorption: -1,\n pixelRemain: 0,\n };\n }\n\n // REDUCE AREA\n else if (pixels < 0) {\n // If minSize & newSize smaller than it > absorb to min and return remaining pixels\n if (areaSnapshot.area.minSize !== null && tempPixelSize < areaSnapshot.area.minSize) {\n return {\n areaSnapshot,\n pixelAbsorb: areaSnapshot.area.minSize + pixels - tempPixelSize,\n percentAfterAbsorption: -1,\n pixelRemain: tempPixelSize - areaSnapshot.area.minSize,\n };\n }\n // If reduced under zero > return remaining pixels\n else if (tempPixelSize < 0) {\n return {\n areaSnapshot,\n pixelAbsorb: -areaSnapshot.sizePixelAtStart,\n percentAfterAbsorption: -1,\n pixelRemain: pixels + areaSnapshot.sizePixelAtStart,\n };\n }\n return {\n areaSnapshot,\n pixelAbsorb: pixels,\n percentAfterAbsorption: -1,\n pixelRemain: 0,\n };\n }\n}\n\nexport function updateAreaSize(unit: 'percent' | 'pixel', item: SplitAreaAbsorptionCapacity) {\n if (unit === 'percent') {\n item.areaSnapshot.area.component.setSize(item.percentAfterAbsorption);\n } else if (unit === 'pixel') {\n // Update size except for the wildcard size area\n if (item.areaSnapshot.area.size !== null) {\n item.areaSnapshot.area.component.setSize(\n item.areaSnapshot.sizePixelAtStart + item.pixelAbsorb\n );\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EnvironmentProviders,\n InjectionToken,\n NgZone,\n OnDestroy,\n Renderer2,\n booleanAttribute,\n effect,\n inject,\n input,\n makeEnvironmentProviders,\n output,\n signal,\n viewChildren,\n} from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport {\n SplitArea,\n SplitAreaSnapshot,\n SplitDefaultOptions,\n SplitOutputAreaSizes,\n SplitOutputData,\n SplitPoint,\n SplitSnapshot,\n} from '../interfaces';\nimport { SplitPane } from '../split-pane';\nimport {\n getAreaMaxSize,\n getAreaMinSize,\n getElementPixelSize,\n getGutterSideAbsorptionCapacity,\n getInputPositiveNumber,\n getPointFromEvent,\n isUserSizesValid,\n updateAreaSize,\n} from '../utils';\n\n/** Injection token that can be used to specify default split options. */\nexport const SPLIT_DEFAULT_OPTIONS = new InjectionToken<SplitDefaultOptions>(\n 'SPLIT_DEFAULT_OPTIONS'\n);\n\n/**\n * Configures the default options for the split component.\n * @param options The default options to use.\n * @returns The environment providers.\n */\nexport function provideSplit(options: SplitDefaultOptions): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: SPLIT_DEFAULT_OPTIONS, useValue: options },\n ]);\n}\n\n@Component({\n selector: 'ngs-split',\n exportAs: 'ngsSplit',\n standalone: true,\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './split.html',\n styleUrl: './split.scss',\n host: {\n class: 'ngs-split',\n '[class.ngs-split-horizontal]': 'direction() === \"horizontal\"',\n '[class.ngs-split-vertical]': 'direction() === \"vertical\"',\n '[class.ngs-split-percent]': 'unit() === \"percent\"',\n '[class.ngs-split-pixel]': 'unit() === \"pixel\"',\n '[class.ngs-split-disabled]': 'disabled()',\n '[class.ngs-split-transition]': 'useTransition()',\n '[class.ngs-dragging]': 'isDraggingSignal()',\n '[class.ngs-split-init]': 'isInitSignal()',\n },\n})\nexport class Split implements AfterViewInit, OnDestroy {\n shouldShowHandle(gutterIndex: number): boolean {\n // show if either adjacent pane has withHandle=true\n const left = this.displayedAreas[gutterIndex]?.component as SplitPane | undefined;\n const right = this.displayedAreas[gutterIndex + 1]?.component as SplitPane | undefined;\n return !!(left?.hasHandle() || right?.hasHandle());\n }\n private ngZone = inject(NgZone);\n private elRef = inject(ElementRef);\n private cdRef = inject(ChangeDetectorRef);\n private renderer = inject(Renderer2);\n private isInit = signal(false);\n protected _defaultOptions = inject<SplitDefaultOptions>(SPLIT_DEFAULT_OPTIONS, {\n optional: true,\n });\n\n /** The split direction. */\n direction = input<'horizontal' | 'vertical'>(this._defaultOptions?.direction ?? 'horizontal');\n\n /** The unit you want to specify area sizes. */\n unit = input<'percent' | 'pixel'>(this._defaultOptions?.unit ?? 'percent');\n\n /** Gutters's size (dragging elements) in pixels. */\n gutterSize = input(this._defaultOptions?.gutterSize ?? 5, {\n transform: (v: number | string) => getInputPositiveNumber(v, 4),\n });\n\n /** Gutter step while moving in pixels. */\n gutterStep = input(this._defaultOptions?.gutterStep ?? 1, {\n transform: (v: number | string) => getInputPositiveNumber(v, 1),\n });\n\n /** Set to true if you want to limit gutter move to adjacent areas only. */\n restrictMove = input(this._defaultOptions?.restrictMove ?? false, { transform: booleanAttribute });\n\n /** Add transition when toggling visibility using `visible` or `size` changes. */\n useTransition = input(this._defaultOptions?.useTransition ?? false, { transform: booleanAttribute });\n\n /**\n * Disable the dragging feature (remove cursor/image on gutters).\n * `gutterClick`/`gutterDblClick` still emits.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /** Indicates the directionality of the areas. */\n dir = input<'ltr' | 'rtl'>(this._defaultOptions?.dir ?? 'ltr');\n\n /**\n * Milliseconds to detect a double click on a gutter. Set it around 300-500ms if\n * you want to use `gutterDblClick` event.\n */\n gutterDblClickDuration = input(this._defaultOptions?.gutterDblClickDuration ?? 0, {\n transform: (v: number | string) => getInputPositiveNumber(v, 0),\n });\n\n /** Event emitted when drag starts. */\n dragStart = output<SplitOutputData>();\n /** Event emitted when drag ends. */\n dragEnd = output<SplitOutputData>();\n /** Event emitted when user clicks on a gutter. */\n gutterClick = output<SplitOutputData>();\n /** Event emitted when user double clicks on a gutter. */\n gutterDblClick = output<SplitOutputData>();\n /** Event emitted when transition ends (debounced). */\n transitionEnd = output<SplitOutputAreaSizes>();\n private transitionEndSubject = new Subject<SplitOutputAreaSizes>();\n\n private dragProgressSubject = new Subject<SplitOutputData>();\n dragProgress$: Observable<SplitOutputData> = this.dragProgressSubject.asObservable();\n\n\n private isDragging = signal(false);\n private dragListeners: (() => void)[] = [];\n private snapshot: SplitSnapshot | null = null;\n private startPoint: SplitPoint | null = null;\n private endPoint: SplitPoint | null = null;\n\n public readonly displayedAreas: SplitArea[] = [];\n private readonly hidedAreas: SplitArea[] = [];\n\n private gutterEls = viewChildren<ElementRef>('gutterEls');\n\n protected isDraggingSignal = this.isDragging.asReadonly();\n public readonly isDraggingPublic = this.isDragging.asReadonly();\n protected isInitSignal = this.isInit.asReadonly();\n\n constructor() {\n // Debounce transitionEnd output\n this.transitionEndSubject.pipe(debounceTime<any>(20)).subscribe(sizes => {\n this.transitionEnd.emit(sizes);\n });\n\n effect(() => {\n this.direction();\n this.cdRef.markForCheck();\n this.build(false, false);\n });\n\n effect(() => {\n this.unit();\n this.cdRef.markForCheck();\n this.build(false, true);\n });\n\n effect(() => {\n this.gutterSize();\n this.build(false, false);\n });\n\n effect(() => {\n this.useTransition();\n this.cdRef.markForCheck();\n });\n\n effect(() => {\n this.disabled();\n this.cdRef.markForCheck();\n });\n\n effect(() => {\n this.renderer.setAttribute(this.elRef.nativeElement, 'dir', this.dir());\n });\n }\n\n ngAfterViewInit() {\n this.ngZone.runOutsideAngular(() => {\n // To avoid transition at first rendering\n setTimeout(() => {\n this.isInit.set(true);\n this.cdRef.markForCheck();\n });\n });\n }\n\n private getNbGutters(): number {\n return this.displayedAreas.length === 0 ? 0 : this.displayedAreas.length - 1;\n }\n\n addArea(component: SplitPane): void {\n const newArea: SplitArea = {\n component,\n order: 0,\n size: 0,\n minSize: null,\n maxSize: null,\n };\n\n if (component.isVisible() === true) {\n this.displayedAreas.push(newArea);\n\n this.build(true, true);\n } else {\n this.hidedAreas.push(newArea);\n }\n }\n\n removeArea(component: SplitPane): void {\n if (this.displayedAreas.some(a => a.component === component)) {\n const area = this.displayedAreas.find(a => a.component === component) as SplitArea;\n this.displayedAreas.splice(this.displayedAreas.indexOf(area), 1);\n\n this.build(true, true);\n } else if (this.hidedAreas.some(a => a.component === component)) {\n const area = this.hidedAreas.find(a => a.component === component) as SplitArea;\n this.hidedAreas.splice(this.hidedAreas.indexOf(area), 1);\n }\n }\n\n updateArea(component: SplitPane, resetOrders: boolean, resetSizes: boolean): void {\n if (component.isVisible() === true) {\n this.build(resetOrders, resetSizes);\n }\n }\n\n updateAreaInternal(component: SplitPane): void {\n const area = this.displayedAreas.find(a => a.component === component);\n if (area) {\n area.size = component.getSize();\n }\n }\n\n showArea(component: SplitPane): void {\n const area = this.hidedAreas.find(a => a.component === component);\n if (area === undefined) {\n return;\n }\n\n const areas = this.hidedAreas.splice(this.hidedAreas.indexOf(area), 1);\n this.displayedAreas.push(...areas);\n\n this.build(true, true);\n }\n\n hideArea(comp: SplitPane): void {\n const area = this.displayedAreas.find(a => a.component === comp);\n if (area === undefined) {\n return;\n }\n\n const areas = this.displayedAreas.splice(this.displayedAreas.indexOf(area), 1);\n areas.forEach(_area => {\n _area.order = 0;\n _area.size = 0;\n });\n this.hidedAreas.push(...areas);\n\n this.build(true, true);\n }\n\n getVisibleAreaSizes(): SplitOutputAreaSizes {\n return this.displayedAreas.map(a => (a.size === null ? '*' : a.size));\n }\n\n setVisibleAreaSizes(sizes: SplitOutputAreaSizes): boolean {\n if (sizes.length !== this.displayedAreas.length) {\n return false;\n }\n\n const formatedSizes = sizes.map(s => getInputPositiveNumber(s, null)) as number[];\n const isValid = isUserSizesValid(this.unit(), formatedSizes);\n\n if (isValid === false) {\n return false;\n }\n\n this.displayedAreas.forEach((area, i) => area.component.setSize(formatedSizes[i]));\n\n this.build(false, true);\n return true;\n }\n\n private build(resetOrders: boolean, resetSizes: boolean): void {\n // ¤ AREAS ORDER\n\n if (resetOrders === true) {\n // If user provided 'order' for each area, use it to sort them.\n if (this.displayedAreas.every(a => a.component.getOrder() !== null)) {\n this.displayedAreas.sort(\n (a, b) => (a.component.getOrder() as number) - (b.component.getOrder() as number)\n );\n }\n\n // Then set real order with multiples of 2, numbers between will be used by gutters.\n this.displayedAreas.forEach((area, i) => {\n area.order = i * 2;\n area.component.setStyleOrder(area.order);\n });\n }\n\n // ¤ AREAS SIZE\n\n if (resetSizes === true) {\n const useUserSizes = isUserSizesValid(\n this.unit(),\n this.displayedAreas.map(a => a.component.getSize()) as number[]\n );\n\n switch (this.unit()) {\n case 'percent': {\n const defaultSize = 100 / this.displayedAreas.length;\n\n this.displayedAreas.forEach(area => {\n area.size = useUserSizes ? (area.component.getSize() as number) : defaultSize;\n area.minSize = getAreaMinSize(area);\n area.maxSize = getAreaMaxSize(area);\n });\n break;\n }\n case 'pixel': {\n if (useUserSizes) {\n this.displayedAreas.forEach(area => {\n area.size = area.component.getSize();\n area.minSize = getAreaMinSize(area);\n area.maxSize = getAreaMaxSize(area);\n });\n } else {\n const wildcardSizeAreas = this.displayedAreas.filter(a => a.component.getSize() === null);\n\n // No wildcard area > Need to select one arbitrarily > first\n if (wildcardSizeAreas.length === 0 && this.displayedAreas.length > 0) {\n this.displayedAreas.forEach((area, i) => {\n area.size = i === 0 ? null : area.component.getSize();\n area.minSize = i === 0 ? null : getAreaMinSize(area);\n area.maxSize = i === 0 ? null : getAreaMaxSize(area);\n });\n }\n // More than one wildcard area > Need to keep only one arbitrarly > first\n else if (wildcardSizeAreas.length > 1) {\n let alreadyGotOne = false;\n this.displayedAreas.forEach(area => {\n if (area.component.getSize() === null) {\n if (alreadyGotOne === false) {\n area.size = null;\n area.minSize = null;\n area.maxSize = null;\n alreadyGotOne = true;\n } else {\n area.size = 100;\n area.minSize = null;\n area.maxSize = null;\n }\n } else {\n area.size = area.component.getSize();\n area.minSize = getAreaMinSize(area);\n area.maxSize = getAreaMaxSize(area);\n }\n });\n }\n }\n break;\n }\n }\n }\n\n this.refreshStyleSizes();\n this.cdRef.markForCheck();\n }\n\n private refreshStyleSizes(): void {\n ///////////////////////////////////////////\n // PERCENT MODE\n if (this.unit() === 'percent') {\n // Only one area > flex-basis 100%\n if (this.displayedAreas.length === 1) {\n this.displayedAreas[0].component.setStyleFlex(0, 0, `100%`, false, false);\n }\n // Multiple areas > use each percent basis\n else {\n const sumGutterSize = this.getNbGutters() * this.gutterSize();\n\n this.displayedAreas.forEach(area => {\n area.component.setStyleFlex(\n 0,\n 0,\n `calc( ${area.size}% - ${((area.size as number) / 100) * sumGutterSize}px )`,\n area.minSize !== null && area.minSize === area.size ? true : false,\n area.maxSize !== null && area.maxSize === area.size ? true : false\n );\n });\n }\n }\n ///////////////////////////////////////////\n // PIXEL MODE\n else if (this.unit() === 'pixel') {\n this.displayedAreas.forEach(area => {\n // Area with wildcard size\n if (area.size === null) {\n if (this.displayedAreas.length === 1) {\n area.component.setStyleFlex(1, 1, `100%`, false, false);\n } else {\n area.component.setStyleFlex(1, 1, `auto`, false, false);\n }\n }\n // Area with pixel size\n else {\n // Only one area > flex-basis 100%\n if (this.displayedAreas.length === 1) {\n area.component.setStyleFlex(0, 0, `100%`, false, false);\n }\n // Multiple areas > use each pixel basis\n else {\n area.component.setStyleFlex(\n 0,\n 0,\n `${area.size}px`,\n area.minSize !== null && area.minSize === area.size ? true : false,\n area.maxSize !== null && area.maxSize === area.size ? true : false\n );\n }\n }\n });\n }\n }\n\n _clickTimeout: number | null = null;\n\n clickGutter(event: MouseEvent | TouchEvent, gutterNum: number): void {\n const tempPoint = getPointFromEvent(event) as SplitPoint;\n\n // Be sure mouseup/touchend happened at same point as mousedown/touchstart to trigger click/dblclick\n if (this.startPoint && this.startPoint.x === tempPoint.x && this.startPoint.y === tempPoint.y) {\n // If timeout in progress and new click > clearTimeout & dblClickEvent\n if (this._clickTimeout !== null) {\n window.clearTimeout(this._clickTimeout);\n this._clickTimeout = null;\n this.notify('dblclick', gutterNum);\n this.stopDragging();\n }\n // Else start timeout to call clickEvent at end\n else {\n this._clickTimeout = window.setTimeout(() => {\n this._clickTimeout = null;\n this.notify('click', gutterNum);\n this.stopDragging();\n }, this.gutterDblClickDuration());\n }\n }\n }\n\n startDragging(event: MouseEvent | TouchEvent, gutterOrder: number, gutterNum: number): void {\n if (event.cancelable) {\n event.preventDefault();\n }\n event.stopPropagation();\n\n this.startPoint = getPointFromEvent(event);\n if (this.startPoint === null || this.disabled() === true) {\n return;\n }\n\n this.isDragging.set(true);\n this.cdRef.markForCheck();\n\n this.snapshot = {\n gutterNum,\n lastSteppedOffset: 0,\n allAreasSizePixel:\n getElementPixelSize(this.elRef, this.direction()) - this.getNbGutters() * this.gutterSize(),\n allInvolvedAreasSizePercent: 100,\n areasBeforeGutter: [],\n areasAfterGutter: [],\n };\n\n this.displayedAreas.forEach(area => {\n const areaSnapshot: SplitAreaSnapshot = {\n area,\n sizePixelAtStart: getElementPixelSize(area.component.elRef, this.direction()),\n sizePercentAtStart: (this.unit() === 'percent' ? area.size : -1) as number, // If pixel mode, anyway, will not be used.\n };\n\n if (area.order < gutterOrder) {\n if (this.restrictMove() === true) {\n (this.snapshot as SplitSnapshot).areasBeforeGutter = [areaSnapshot];\n } else {\n (this.snapshot as SplitSnapshot).areasBeforeGutter.unshift(areaSnapshot);\n }\n } else if (area.order > gutterOrder) {\n if (this.restrictMove() === true) {\n if ((this.snapshot as SplitSnapshot).areasAfterGutter.length === 0) {\n (this.snapshot as SplitSnapshot).areasAfterGutter = [areaSnapshot];\n }\n } else {\n (this.snapshot as SplitSnapshot).areasAfterGutter.push(areaSnapshot);\n }\n }\n });\n\n this.snapshot.allInvolvedAreasSizePercent = [\n ...this.snapshot.areasBeforeGutter,\n ...this.snapshot.areasAfterGutter,\n ].reduce((t, a) => t + (a.sizePercentAtStart > 0 ? a.sizePercentAtStart : 0), 0);\n\n if (\n this.snapshot.areasBeforeGutter.length === 0 ||\n this.snapshot.areasAfterGutter.length === 0\n ) {\n return;\n }\n\n this.dragListeners.push(\n this.renderer.listen('document', 'mouseup', this.stopDragging.bind(this))\n );\n this.dragListeners.push(\n this.renderer.listen('document', 'touchend', this.stopDragging.bind(this))\n );\n this.dragListeners.push(\n this.renderer.listen('document', 'touchcancel', this.stopDragging.bind(this))\n );\n\n this.ngZone.runOutsideAngular(() => {\n this.dragListeners.push(\n this.renderer.listen('document', 'mousemove', this.dragEvent.bind(this))\n );\n this.dragListeners.push(\n this.renderer.listen('document', 'touchmove', this.dragEvent.bind(this))\n );\n });\n\n this.displayedAreas.forEach(area => area.component.lockEvents());\n\n this.isDragging.set(true);\n this.renderer.addClass(this.elRef.nativeElement, 'ngs-dragging');\n this.renderer.addClass(\n this.gutterEls()![this.snapshot.gutterNum - 1].nativeElement,\n 'ngs-dragged'\n );\n\n this.notify('start', this.snapshot.gutterNum);\n }\n\n private dragEvent(event: MouseEvent | TouchEvent): void {\n if (event.cancelable) {\n event.preventDefault();\n }\n event.stopPropagation();\n\n if (this._clickTimeout !== null) {\n window.clearTimeout(this._clickTimeout);\n this._clickTimeout = null;\n }\n\n if (this.isDragging() === false) {\n return;\n }\n\n this.endPoint = getPointFromEvent(event);\n if (this.endPoint === null) {\n return;\n }\n\n // Calculate steppedOffset\n\n let offset =\n this.direction() === 'horizontal'\n ? (this.startPoint as SplitPoint).x - this.endPoint.x\n : (this.startPoint as SplitPoint).y - this.endPoint.y;\n if (this.dir() === 'rtl' && this.direction() === 'horizontal') {\n offset = -offset;\n }\n const steppedOffset = Math.round(offset / this.gutterStep()) * this.gutterStep();\n\n if (steppedOffset === (this.snapshot as SplitSnapshot).lastSteppedOffset) {\n return;\n }\n\n (this.snapshot as SplitSnapshot).lastSteppedOffset = steppedOffset;\n\n // Need to know if each gutter side areas could reacts to steppedOffset\n\n let areasBefore = getGutterSideAbsorptionCapacity(\n this.unit(),\n (this.snapshot as SplitSnapshot).areasBeforeGutter,\n -steppedOffset,\n (this.snapshot as SplitSnapshot).allAreasSizePixel\n );\n let areasAfter = getGutterSideAbsorptionCapacity(\n this.unit(),\n (this.snapshot as SplitSnapshot).areasAfterGutter,\n steppedOffset,\n (this.snapshot as SplitSnapshot).allAreasSizePixel\n );\n\n // Each gutter side areas can't absorb all offset\n if (areasBefore.remain !== 0 && areasAfter.remain !== 0) {\n if (Math.abs(areasBefore.remain) === Math.abs(areasAfter.remain)) {\n /** */\n } else if (Math.abs(areasBefore.remain) > Math.abs(areasAfter.remain)) {\n areasAfter = getGutterSideAbsorptionCapacity(\n this.unit(),\n (this.snapshot as SplitSnapshot).areasAfterGutter,\n steppedOffset + areasBefore.remain,\n (this.snapshot as SplitSnapshot).allAreasSizePixel\n );\n } else {\n areasBefore = getGutterSideAbsorptionCapacity(\n this.unit(),\n (this.snapshot as SplitSnapshot).areasBeforeGutter,\n -(steppedOffset - areasAfter.remain),\n (this.snapshot as SplitSnapshot).allAreasSizePixel\n );\n }\n }\n // Areas before gutter can't absorbs all offset > need to recalculate sizes for areas after gutter.\n else if (areasBefore.remain !== 0) {\n areasAfter = getGutterSideAbsorptionCapacity(\n this.unit(),\n (this.snapshot as SplitSnapshot).areasAfterGutter,\n steppedOffset + areasBefore.remain,\n (this.snapshot as SplitSnapshot).allAreasSizePixel\n );\n }\n // Areas after gutter can't absorbs all offset > need to recalculate sizes for areas before gutter.\n else if (areasAfter.remain !== 0) {\n areasBefore = getGutterSideAbsorptionCapacity(\n this.unit(),\n (this.snapshot as SplitSnapshot).areasBeforeGutter,\n -(steppedOffset - areasAfter.remain),\n (this.snapshot as SplitSnapshot).allAreasSizePixel\n );\n }\n\n if (this.unit() === 'percent') {\n // Hack because of browser messing up with sizes using calc(X% - Ypx) -> el.getBoundingClientRect()\n // If not there, playing with gutters makes total going down to 99.99875% then 99.99286%, 99.98986%,..\n const all = [...areasBefore.list, ...areasAfter.list];\n const areaToReset = all.find(\n a =>\n a.percentAfterAbsorption !== 0 &&\n a.percentAfterAbsorption !== a.areaSnapshot.area.minSize &&\n a.percentAfterAbsorption !== a.areaSnapshot.area.maxSize\n );\n\n if (areaToReset) {\n areaToReset.percentAfterAbsorption =\n (this.snapshot as SplitSnapshot).allInvolvedAreasSizePercent -\n all\n .filter(a => a !== areaToReset)\n .reduce((total, a) => total + a.percentAfterAbsorption, 0);\n }\n }\n\n // Now we know areas could absorb steppedOffset, time to really update sizes\n\n areasBefore.list.forEach(item => updateAreaSize(this.unit(), item));\n areasAfter.list.forEach(item => updateAreaSize(this.unit(), item));\n\n this.refreshStyleSizes();\n this.notify('progress', (this.snapshot as SplitSnapshot).gutterNum);\n }\n\n private stopDragging(event?: Event): void {\n if (event && event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (this.isDragging() === false) {\n return;\n }\n\n this.displayedAreas.forEach(area => area.component.unlockEvents());\n\n while (this.dragListeners.length > 0) {\n const fct = this.dragListeners.pop();\n if (fct) {\n fct();\n }\n }\n\n // Warning: Have to be before \"notify('end')\"\n // because \"notify('end')\"\" can be linked to \"[size]='x'\" > \"build()\" > \"stopDragging()\"\n this.isDragging.set(false);\n this.cdRef.markForCheck();\n\n // If moved from starting point, notify end\n if (\n this.endPoint &&\n ((this.startPoint as SplitPoint).x !== this.endPoint.x ||\n (this.startPoint as SplitPoint).y !== this.endPoint.y)\n ) {\n this.notify('end', (this.snapshot as SplitSnapshot).gutterNum);\n }\n\n this.renderer.removeClass(this.elRef.nativeElement, 'ngs-dragging');\n this.renderer.removeClass(\n this.gutterEls()![ (this.snapshot as SplitSnapshot).gutterNum - 1].nativeElement,\n 'ngs-dragged'\n );\n this.snapshot = null;\n\n // Needed to let (click)=\"clickGutter(...)\" event run and verify if mouse moved or not\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.startPoint = null;\n this.endPoint = null;\n });\n });\n }\n\n notify(\n type: 'start' | 'progress' | 'end' | 'click' | 'dblclick' | 'transitionEnd',\n gutterNum: number\n ): void {\n const sizes = this.getVisibleAreaSizes();\n\n if (type === 'start') {\n this.dragStart.emit({ gutterNum, sizes });\n } else if (type === 'end') {\n this.dragEnd.emit({ gutterNum, sizes });\n } else if (type === 'click') {\n this.gutterClick.emit({ gutterNum, sizes });\n } else if (type === 'dblclick') {\n this.gutterDblClick.emit({ gutterNum, sizes });\n } else if (type === 'transitionEnd') {\n this.ngZone.run(() => this.transitionEndSubject.next(sizes));\n } else if (type === 'progress') {\n // Stay outside zone to allow users do what they want about change detection mechanism.\n this.dragProgressSubject.next({ gutterNum, sizes });\n }\n }\n\n ngOnDestroy(): void {\n this.stopDragging();\n }\n}\n","<ng-content/>\n@for (area of displayedAreas; track area; let index = $index; let last = $last) {\n @if (!last) {\n <div\n #gutterEls\n class=\"ngs-split-gutter\"\n [style.flex-basis.px]=\"gutterSize()\"\n [style.order]=\"index * 2 + 1\"\n (mousedown)=\"startDragging($event, index * 2 + 1, index + 1)\"\n (touchstart)=\"startDragging($event, index * 2 + 1, index + 1)\"\n (mouseup)=\"clickGutter($event, index + 1)\"\n (touchend)=\"clickGutter($event, index + 1)\"\n >\n <div class=\"ngs-split-gutter-handle\" [class.has-dots]=\"shouldShowHandle(index)\">\n @if (shouldShowHandle(index)) {\n <div class=\"ngs-split-gutter-dot\"></div>\n <div class=\"ngs-split-gutter-dot\"></div>\n <div class=\"ngs-split-gutter-dot\"></div>\n }\n </div>\n </div>\n }\n}\n","import {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n Renderer2,\n booleanAttribute,\n effect,\n inject,\n input,\n} from '@angular/core';\n\nimport { Split } from './split/split';\nimport { getInputPositiveNumber } from './utils';\nimport { signal, WritableSignal } from '@angular/core';\n\n@Directive({\n selector: 'ngs-split-pane, [ngs-split-pane]',\n exportAs: 'ngsSplitPane',\n standalone: true,\n})\nexport class SplitPane implements OnDestroy {\n private ngZone = inject(NgZone);\n private renderer = inject(Renderer2);\n private split = inject(Split);\n\n elRef = inject(ElementRef);\n\n /**\n * Order of the area. Used to maintain the order of areas when toggling their visibility.\n * Toggling area visibility without specifying an `order` leads to weird behavior.\n */\n orderIn = input<number | null, number | string | null>(null, {\n alias: 'order',\n transform: v => getInputPositiveNumber(v, null),\n });\n\n /**\n * Size of the area in selected unit (percent/pixel).\n * - Percent: All areas sizes should equal to `100`, If not, all areas will have the same size.\n * - Pixel: An area with wildcard size (`size=\"*\"`) is mandatory (only one) and\n * can't have `visible=\"false\"` or `minSize`/`maxSize`/`lockSize` properties.\n */\n sizeIn = input<number | null, number | string | null>(null, {\n alias: 'size',\n transform: v => getInputPositiveNumber(v, null),\n });\n\n /** Minimum pixel or percent size, should be equal to or smaller than provided `size`. */\n minSizeIn = input<number | null, number | string | null>(null, {\n alias: 'minSize',\n transform: v => getInputPositiveNumber(v, null),\n });\n\n /** Maximum pixel or percent size, should be equal to or larger than provided `size`. */\n maxSizeIn = input<number | null, number | string | null>(null, {\n alias: 'maxSize',\n transform: v => getInputPositiveNumber(v, null),\n });\n\n /** Lock area size, same as `minSize`=`maxSize`=`size`. */\n lockSizeIn = input(false, { alias: 'lockSize', transform: booleanAttribute });\n\n /** Hide area visually but still present in the DOM, use `ngIf` to completely remove it. */\n visibleIn = input(true, { alias: 'visible', transform: booleanAttribute });\n\n /** Show handle (three dots) on the gutter adjacent to this pane. */\n withHandleIn = input(false, { alias: 'withHandle', transform: booleanAttribute });\n\n // Writable state reflecting current effective values (can be changed programmatically by Split)\n private orderSig: WritableSignal<number | null> = signal<number | null>(null, { equal: Object.is });\n private sizeSig: WritableSignal<number | null> = signal<number | null>(null, { equal: Object.is });\n private minSizeSig: WritableSignal<number | null> = signal<number | null>(null, { equal: Object.is });\n private maxSizeSig: WritableSignal<number | null> = signal<number | null>(null, { equal: Object.is });\n private lockSizeSig: WritableSignal<boolean> = signal(false, { equal: Object.is });\n private visibleSig: WritableSignal<boolean> = signal(true, { equal: Object.is });\n private withHandleSig: WritableSignal<boolean> = signal(false, { equal: Object.is });\n\n private transitionListener!: () => void;\n private readonly lockListeners: (() => void)[] = [];\n\n constructor() {\n this.renderer.addClass(this.elRef.nativeElement, 'ngs-split-pane');\n this.split.addArea(this);\n\n this.ngZone.runOutsideAngular(() => {\n this.transitionListener = this.renderer.listen(\n this.elRef.nativeElement,\n 'transitionend',\n (event: TransitionEvent) => {\n // Limit only flex-basis transition to trigger the event\n if (event.propertyName === 'flex-basis') {\n this.split.notify('transitionEnd', -1);\n }\n }\n );\n });\n\n // Sync inputs to writable state\n effect(() => this.orderSig.set(this.orderIn()));\n effect(() => this.sizeSig.set(this.sizeIn()));\n effect(() => this.minSizeSig.set(this.minSizeIn()));\n effect(() => this.maxSizeSig.set(this.maxSizeIn()));\n effect(() => this.lockSizeSig.set(this.lockSizeIn()));\n effect(() => this.withHandleSig.set(this.withHandleIn()));\n\n // React to visibility changes\n effect(() => {\n const isVisible = this.visibleIn();\n this.visibleSig.set(isVisible);\n if (isVisible) {\n this.split.showArea(this);\n this.renderer.removeClass(this.elRef.nativeElement, 'ngs-split-pane-hidden');\n } else {\n this.split.hideArea(this);\n this.renderer.addClass(this.elRef.nativeElement, 'ngs-split-pane-hidden');\n }\n });\n\n // React to state changes that require rebuild\n effect(() => {\n this.orderSig();\n if (!this.split.isDraggingPublic()) {\n this.split.updateArea(this, true, false);\n }\n });\n effect(() => {\n this.sizeSig();\n this.minSizeSig();\n this.maxSizeSig();\n this.lockSizeSig();\n if (!this.split.isDraggingPublic()) {\n this.split.updateArea(this, false, true);\n }\n });\n effect(() => {\n this.withHandleSig();\n if (!this.split.isDraggingPublic()) {\n this.split.updateArea(this, false, false);\n }\n });\n }\n\n // Imperative API used by Split\n getOrder(): number | null { return this.orderSig(); }\n getSize(): number | null { return this.sizeSig(); }\n setSize(v: number | null): void {\n this.sizeSig.set(v);\n this.split.updateAreaInternal(this);\n }\n getMinSize(): number | null { return this.minSizeSig(); }\n getMaxSize(): number | null { return this.maxSizeSig(); }\n isLocked(): boolean { return this.lockSizeSig(); }\n isVisible(): boolean { return this.visibleSig(); }\n hasHandle(): boolean { return this.withHandleSig(); }\n\n setStyleOrder(value: number): void {\n this.renderer.setStyle(this.elRef.nativeElement, 'order', value);\n }\n\n setStyleFlex(grow: number, shrink: number, basis: string, isMin: boolean, isMax: boolean): void {\n // Need 3 separated properties to work on IE11 (https://github.com/angular/flex-layout/issues/323)\n this.renderer.setStyle(this.elRef.nativeElement, 'flex-grow', grow);\n this.renderer.setStyle(this.elRef.nativeElement, 'flex-shrink', shrink);\n this.renderer.setStyle(this.elRef.nativeElement, 'flex-basis', basis);\n\n if (basis === '0px' || basis === '0%') {\n this.renderer.setStyle(this.elRef.nativeElement, 'overflow', 'hidden');\n } else {\n this.renderer.removeStyle(this.elRef.nativeElement, 'overflow');\n }\n\n if (isMin === true) {\n this.renderer.addClass(this.elRef.nativeElement, 'ngs-min');\n } else {\n this.renderer.removeClass(this.elRef.nativeElement, 'ngs-min');\n }\n\n if (isMax === true) {\n this.renderer.addClass(this.elRef.nativeElement, 'ngs-max');\n } else {\n this.renderer.removeClass(this.elRef.nativeElement, 'ngs-max');\n }\n }\n\n lockEvents(): void {\n this.ngZone.runOutsideAngular(() => {\n this.lockListeners.push(\n this.renderer.listen(this.elRef.nativeElement, 'selectstart', (e: Event) => false)\n );\n this.lockListeners.push(\n this.renderer.listen(this.elRef.nativeElement, 'dragstart', (e: Event) => false)\n );\n });\n }\n\n unlockEvents(): void {\n while (this.lockListeners.length > 0) {\n const fct = this.lockListeners.pop();\n if (fct) {\n fct();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.unlockEvents();\n\n if (this.transitionListener) {\n this.transitionListener();\n }\n\n this.split.removeArea(this);\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,103 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, forwardRef, ContentChild, Inject, ViewEncapsulation, Component, input, contentChildren } from '@angular/core';
|
|
3
|
+
import { CdkStep, CdkStepper, CdkStepperNext, CdkStepperPrevious } from '@angular/cdk/stepper';
|
|
4
|
+
import * as i1 from '@angular/common';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
|
|
7
|
+
class StepLabel {
|
|
8
|
+
template;
|
|
9
|
+
constructor(template) {
|
|
10
|
+
this.template = template;
|
|
11
|
+
}
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: StepLabel, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
13
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: StepLabel, isStandalone: true, selector: "[ngsStepLabel]", ngImport: i0 });
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: StepLabel, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{
|
|
18
|
+
selector: '[ngsStepLabel]',
|
|
19
|
+
standalone: true
|
|
20
|
+
}]
|
|
21
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
22
|
+
|
|
23
|
+
class Step extends CdkStep {
|
|
24
|
+
stepLabel = undefined;
|
|
25
|
+
constructor(stepper) {
|
|
26
|
+
super(stepper);
|
|
27
|
+
}
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Step, deps: [{ token: forwardRef(() => Stepper) }], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: Step, isStandalone: true, selector: "ngs-step", providers: [{ provide: CdkStep, useExisting: Step }], queries: [{ propertyName: "stepLabel", first: true, predicate: StepLabel, descendants: true }], exportAs: ["ngsStep"], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <ng-content />\n</ng-template>\n", styles: [".ngs-step{display:block}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Step, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'ngs-step', exportAs: 'ngsStep', standalone: true, imports: [], encapsulation: ViewEncapsulation.None, providers: [{ provide: CdkStep, useExisting: Step }], template: "<ng-template>\n <ng-content />\n</ng-template>\n", styles: [".ngs-step{display:block}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
34
|
+
}], ctorParameters: () => [{ type: Stepper, decorators: [{
|
|
35
|
+
type: Inject,
|
|
36
|
+
args: [forwardRef(() => Stepper)]
|
|
37
|
+
}] }], propDecorators: { stepLabel: [{
|
|
38
|
+
type: ContentChild,
|
|
39
|
+
args: [StepLabel]
|
|
40
|
+
}] } });
|
|
41
|
+
|
|
42
|
+
class Stepper extends CdkStepper {
|
|
43
|
+
headerPosition = input('top', ...(ngDevMode ? [{ debugName: "headerPosition" }] : /* istanbul ignore next */ []));
|
|
44
|
+
labelPosition = input('top', ...(ngDevMode ? [{ debugName: "labelPosition" }] : /* istanbul ignore next */ []));
|
|
45
|
+
_stepperOrientation = 'horizontal';
|
|
46
|
+
get orientation() {
|
|
47
|
+
return this._stepperOrientation;
|
|
48
|
+
}
|
|
49
|
+
set orientation(value) {
|
|
50
|
+
this._stepperOrientation = value;
|
|
51
|
+
}
|
|
52
|
+
// Use a separate signal for template iteration to avoid overriding CdkStepper's QueryList `_steps`.
|
|
53
|
+
stepItems = contentChildren(Step, { ...(ngDevMode ? { debugName: "stepItems" } : /* istanbul ignore next */ {}), descendants: true });
|
|
54
|
+
_stepLabels = contentChildren(StepLabel, { ...(ngDevMode ? { debugName: "_stepLabels" } : /* istanbul ignore next */ {}), descendants: true });
|
|
55
|
+
ngAfterContentInit() {
|
|
56
|
+
super.ngAfterContentInit();
|
|
57
|
+
}
|
|
58
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Stepper, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: Stepper, isStandalone: true, selector: "ngs-stepper", inputs: { headerPosition: { classPropertyName: "headerPosition", publicName: "headerPosition", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: CdkStepper, useExisting: Stepper }], queries: [{ propertyName: "stepItems", predicate: Step, descendants: true, isSignal: true }, { propertyName: "_stepLabels", predicate: StepLabel, descendants: true, isSignal: true }], exportAs: ["ngsStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n", styles: [":root{--ngs-stepper-header-padding: 16px;--ngs-stepper-header-gap: 8px;--ngs-stepper-icon-size: 24px;--ngs-stepper-icon-bg: var(--color-surface-container-high);--ngs-stepper-icon-color: var(--color-on-surface);--ngs-stepper-icon-active-bg: var(--color-primary);--ngs-stepper-icon-completed-bg: var(--color-positive);--ngs-stepper-label-color: var(--color-on-surface-variant);--ngs-stepper-label-active-color: var(--color-on-surface);--ngs-stepper-line-color: var(--color-outline-variant);--ngs-stepper-content-padding: 24px}.ngs-stepper{display:flex;flex-direction:column}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper{margin-left:calc(var(--ngs-stepper-icon-size) / 2 - .5px);padding-left:calc(var(--ngs-stepper-icon-size) / 2 + var(--ngs-stepper-header-gap) + .5px);position:relative}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-vertical-line{position:absolute;left:0;top:-16px;bottom:-16px;width:1px;background:var(--ngs-stepper-line-color)}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}.ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}.ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}.ngs-stepper-header-container{display:flex;align-items:center;padding:0 var(--ngs-stepper-header-padding);border-bottom:1px solid var(--ngs-stepper-line-color);overflow-x:hidden}.ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}.ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}.ngs-stepper-header{display:flex;align-items:center;gap:var(--ngs-stepper-header-gap);padding:16px 0;cursor:pointer;white-space:nowrap;outline:none;position:relative;min-width:0}.ngs-stepper-header:hover .ngs-stepper-icon:not(.ngs-stepper-header-active .ngs-stepper-icon){background:var(--color-surface-container-highest)}.ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}.ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}.ngs-stepper-header.ngs-stepper-label-bottom:before,.ngs-stepper-header.ngs-stepper-label-bottom:after{content:\"\";position:absolute;top:calc(var(--ngs-stepper-icon-size) / 2 + 16px);height:1px;background:var(--ngs-stepper-line-color);width:calc(50% - var(--ngs-stepper-icon-size) / 2 - 8px)}.ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}.ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}.ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,.ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}.ngs-stepper-icon{width:var(--ngs-stepper-icon-size);height:var(--ngs-stepper-icon-size);border-radius:50%;background:var(--ngs-stepper-icon-bg);color:var(--ngs-stepper-icon-color);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;transition:background-color .2s ease;z-index:1}.ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg)}.ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}.ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg)}.ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}.ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}.ngs-stepper-content{outline:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Stepper, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'ngs-stepper', exportAs: 'ngsStepper', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, providers: [{ provide: CdkStepper, useExisting: Stepper }], template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n", styles: [":root{--ngs-stepper-header-padding: 16px;--ngs-stepper-header-gap: 8px;--ngs-stepper-icon-size: 24px;--ngs-stepper-icon-bg: var(--color-surface-container-high);--ngs-stepper-icon-color: var(--color-on-surface);--ngs-stepper-icon-active-bg: var(--color-primary);--ngs-stepper-icon-completed-bg: var(--color-positive);--ngs-stepper-label-color: var(--color-on-surface-variant);--ngs-stepper-label-active-color: var(--color-on-surface);--ngs-stepper-line-color: var(--color-outline-variant);--ngs-stepper-content-padding: 24px}.ngs-stepper{display:flex;flex-direction:column}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper{margin-left:calc(var(--ngs-stepper-icon-size) / 2 - .5px);padding-left:calc(var(--ngs-stepper-icon-size) / 2 + var(--ngs-stepper-header-gap) + .5px);position:relative}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-vertical-line{position:absolute;left:0;top:-16px;bottom:-16px;width:1px;background:var(--ngs-stepper-line-color)}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}.ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}.ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}.ngs-stepper-header-container{display:flex;align-items:center;padding:0 var(--ngs-stepper-header-padding);border-bottom:1px solid var(--ngs-stepper-line-color);overflow-x:hidden}.ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}.ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}.ngs-stepper-header{display:flex;align-items:center;gap:var(--ngs-stepper-header-gap);padding:16px 0;cursor:pointer;white-space:nowrap;outline:none;position:relative;min-width:0}.ngs-stepper-header:hover .ngs-stepper-icon:not(.ngs-stepper-header-active .ngs-stepper-icon){background:var(--color-surface-container-highest)}.ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}.ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}.ngs-stepper-header.ngs-stepper-label-bottom:before,.ngs-stepper-header.ngs-stepper-label-bottom:after{content:\"\";position:absolute;top:calc(var(--ngs-stepper-icon-size) / 2 + 16px);height:1px;background:var(--ngs-stepper-line-color);width:calc(50% - var(--ngs-stepper-icon-size) / 2 - 8px)}.ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}.ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}.ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,.ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}.ngs-stepper-icon{width:var(--ngs-stepper-icon-size);height:var(--ngs-stepper-icon-size);border-radius:50%;background:var(--ngs-stepper-icon-bg);color:var(--ngs-stepper-icon-color);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;transition:background-color .2s ease;z-index:1}.ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg)}.ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}.ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg)}.ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}.ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}.ngs-stepper-content{outline:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
64
|
+
}], propDecorators: { headerPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerPosition", required: false }] }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }], stepItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => Step), { ...{ descendants: true }, isSignal: true }] }], _stepLabels: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => StepLabel), { ...{ descendants: true }, isSignal: true }] }] } });
|
|
65
|
+
|
|
66
|
+
class StepperNext extends CdkStepperNext {
|
|
67
|
+
type = 'submit';
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: StepperNext, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
69
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: StepperNext, isStandalone: true, selector: "button[ngsStepperNext]", host: { properties: { "type": "type" } }, usesInheritance: true, ngImport: i0 });
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: StepperNext, decorators: [{
|
|
72
|
+
type: Directive,
|
|
73
|
+
args: [{
|
|
74
|
+
selector: 'button[ngsStepperNext]',
|
|
75
|
+
host: {
|
|
76
|
+
'[type]': 'type',
|
|
77
|
+
},
|
|
78
|
+
standalone: true
|
|
79
|
+
}]
|
|
80
|
+
}] });
|
|
81
|
+
|
|
82
|
+
class StepperPrevious extends CdkStepperPrevious {
|
|
83
|
+
type = 'button';
|
|
84
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: StepperPrevious, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
85
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: StepperPrevious, isStandalone: true, selector: "button[ngsStepperPrevious]", host: { properties: { "type": "type" } }, usesInheritance: true, ngImport: i0 });
|
|
86
|
+
}
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: StepperPrevious, decorators: [{
|
|
88
|
+
type: Directive,
|
|
89
|
+
args: [{
|
|
90
|
+
selector: 'button[ngsStepperPrevious]',
|
|
91
|
+
host: {
|
|
92
|
+
'[type]': 'type',
|
|
93
|
+
},
|
|
94
|
+
standalone: true
|
|
95
|
+
}]
|
|
96
|
+
}] });
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Generated bundle index. Do not edit.
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
export { Step, StepLabel, Stepper, StepperNext, StepperPrevious };
|
|
103
|
+
//# sourceMappingURL=ngstarter-ui-components-stepper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-stepper.mjs","sources":["../../../projects/components/stepper/src/step-label.ts","../../../projects/components/stepper/src/step/step.ts","../../../projects/components/stepper/src/step/step.html","../../../projects/components/stepper/src/stepper/stepper.ts","../../../projects/components/stepper/src/stepper/stepper.html","../../../projects/components/stepper/src/stepper-next.ts","../../../projects/components/stepper/src/stepper-previous.ts","../../../projects/components/stepper/ngstarter-ui-components-stepper.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsStepLabel]',\n standalone: true\n})\nexport class StepLabel {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { Component, ContentChild, Input, ViewEncapsulation, forwardRef, Inject } from '@angular/core';\nimport { CdkStep, CdkStepper } from '@angular/cdk/stepper';\nimport { StepLabel } from '../step-label';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Stepper } from '../stepper/stepper';\n\n@Component({\n selector: 'ngs-step',\n exportAs: 'ngsStep',\n standalone: true,\n imports: [],\n templateUrl: './step.html',\n styleUrl: './step.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: CdkStep, useExisting: Step }],\n})\nexport class Step extends CdkStep {\n @ContentChild(StepLabel) override stepLabel: StepLabel = undefined!;\n\n constructor(@Inject(forwardRef(() => Stepper)) stepper: Stepper) {\n super(stepper);\n }\n}\n","<ng-template>\n <ng-content />\n</ng-template>\n","import { Component, input, ViewEncapsulation, contentChildren } from '@angular/core';\nimport { CdkStepper, StepperOrientation } from '@angular/cdk/stepper';\nimport { Step } from '../step/step';\nimport { StepLabel } from '../step-label';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ngs-stepper',\n exportAs: 'ngsStepper',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './stepper.html',\n styleUrl: './stepper.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: CdkStepper, useExisting: Stepper }],\n})\nexport class Stepper extends CdkStepper {\n headerPosition = input<'top' | 'bottom'>('top');\n labelPosition = input<'top' | 'bottom'>('top');\n\n private _stepperOrientation: StepperOrientation = 'horizontal';\n\n override get orientation(): StepperOrientation {\n return this._stepperOrientation;\n }\n override set orientation(value: StepperOrientation) {\n this._stepperOrientation = value;\n }\n\n // Use a separate signal for template iteration to avoid overriding CdkStepper's QueryList `_steps`.\n readonly stepItems = contentChildren(Step, { descendants: true });\n readonly _stepLabels = contentChildren(StepLabel, { descendants: true });\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n}\n","<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperNext } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperNext]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperNext extends CdkStepperNext {\n override type: string = 'submit';\n}\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperPrevious } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperPrevious]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperPrevious extends CdkStepperPrevious {\n override type: string = 'button';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,SAAS,CAAA;AACD,IAAA,QAAA;AAAnB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAsB;uGADtC,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACYK,MAAO,IAAK,SAAQ,OAAO,CAAA;IACG,SAAS,GAAc,SAAU;AAEnE,IAAA,WAAA,CAA+C,OAAgB,EAAA;QAC7D,KAAK,CAAC,OAAO,CAAC;IAChB;AALW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAI,kBAGK,UAAU,CAAC,MAAM,OAAO,CAAC,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAHlC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAI,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAFJ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGtC,SAAS,8FClBzB,mDAGA,EAAA,MAAA,EAAA,CAAA,+FAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDca,IAAI,EAAA,UAAA,EAAA,CAAA;kBAVhB,SAAS;+BACE,UAAU,EAAA,QAAA,EACV,SAAS,EAAA,UAAA,EACP,IAAI,WACP,EAAE,EAAA,aAAA,EAGI,iBAAiB,CAAC,IAAI,aAC1B,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAA,IAAM,EAAE,CAAC,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,+FAAA,CAAA,EAAA;;0BAKvC,MAAM;AAAC,oBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,OAAO,CAAC;;sBAF5C,YAAY;uBAAC,SAAS;;;AEDnB,MAAO,OAAQ,SAAQ,UAAU,CAAA;AACrC,IAAA,cAAc,GAAG,KAAK,CAAmB,KAAK,qFAAC;AAC/C,IAAA,aAAa,GAAG,KAAK,CAAmB,KAAK,oFAAC;IAEtC,mBAAmB,GAAuB,YAAY;AAE9D,IAAA,IAAa,WAAW,GAAA;QACtB,OAAO,IAAI,CAAC,mBAAmB;IACjC;IACA,IAAa,WAAW,CAAC,KAAyB,EAAA;AAChD,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;IAClC;;IAGS,SAAS,GAAG,eAAe,CAAC,IAAI,iFAAI,WAAW,EAAE,IAAI,EAAA,CAAG;IACxD,WAAW,GAAG,eAAe,CAAC,SAAS,mFAAI,WAAW,EAAE,IAAI,EAAA,CAAG;IAE/D,kBAAkB,GAAA;QACzB,KAAK,CAAC,kBAAkB,EAAE;IAC5B;uGAnBW,OAAO,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,yWAFP,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,oDAgBrB,IAAI,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EACF,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChClD,mmHAwFA,y9HD7EY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAMX,OAAO,EAAA,UAAA,EAAA,CAAA;kBAVnB,SAAS;+BACE,aAAa,EAAA,QAAA,EACb,YAAY,EAAA,UAAA,EACV,IAAI,WACP,CAAC,YAAY,CAAC,EAAA,aAAA,EAGR,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAA,OAAS,EAAE,CAAC,EAAA,QAAA,EAAA,mmHAAA,EAAA,MAAA,EAAA,CAAA,k6HAAA,CAAA,EAAA;AAgBrB,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,IAAI,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MACzB,SAAS,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEtBnE,MAAO,WAAY,SAAQ,cAAc,CAAA;IACpC,IAAI,GAAW,QAAQ;uGADrB,WAAW,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,QAAQ,EAAE,MAAM;AACjB,qBAAA;AACD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACCK,MAAO,eAAgB,SAAQ,kBAAkB,CAAA;IAC5C,IAAI,GAAW,QAAQ;uGADrB,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,IAAI,EAAE;AACJ,wBAAA,QAAQ,EAAE,MAAM;AACjB,qBAAA;AACD,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACTD;;AAEG;;;;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, input, booleanAttribute, Directive } from '@angular/core';
|
|
3
|
+
import * as i1 from '@ngstarter-ui/components/core';
|
|
4
|
+
import { Ripple } from '@ngstarter-ui/components/core';
|
|
5
|
+
import { Divider } from '@ngstarter-ui/components/divider';
|
|
6
|
+
|
|
7
|
+
class Suggestions {
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Suggestions, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: Suggestions, isStandalone: true, selector: "ngs-suggestions", host: { classAttribute: "ngs-suggestions" }, exportAs: ["ngsSuggestions"], ngImport: i0, template: "<ng-content />\n", styles: [":host{--ngs-suggestions-bg: var(--color-surface-container-lowest);--ngs-suggestion-block-heading-color: var(--color-on-surface);--ngs-suggestion-block-font-size: .75rem;--ngs-suggestion-block-font-weight: 600;--ngs-suggestion-block-content-padding: calc(var(--spacing, .25rem) * 2) 0;--ngs-suggestion-height: calc(var(--spacing, .25rem) * 11);--ngs-suggestion-padding: 0 calc(var(--spacing, .25rem) * 2);--ngs-suggestion-hover-bg: var(--color-surface-container-low);--ngs-suggestion-border-radius: calc(infinity * 1px);display:block;overflow-y:auto;background:var(--ngs-suggestions-bg)}:host-context(html.dark){--ngs-suggestions-bg: var(--color-surface-container-high);--ngs-suggestion-hover-bg: var(--color-surface-bright)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Suggestions, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'ngs-suggestions', exportAs: 'ngsSuggestions', imports: [], host: {
|
|
14
|
+
'class': 'ngs-suggestions'
|
|
15
|
+
}, template: "<ng-content />\n", styles: [":host{--ngs-suggestions-bg: var(--color-surface-container-lowest);--ngs-suggestion-block-heading-color: var(--color-on-surface);--ngs-suggestion-block-font-size: .75rem;--ngs-suggestion-block-font-weight: 600;--ngs-suggestion-block-content-padding: calc(var(--spacing, .25rem) * 2) 0;--ngs-suggestion-height: calc(var(--spacing, .25rem) * 11);--ngs-suggestion-padding: 0 calc(var(--spacing, .25rem) * 2);--ngs-suggestion-hover-bg: var(--color-surface-container-low);--ngs-suggestion-border-radius: calc(infinity * 1px);display:block;overflow-y:auto;background:var(--ngs-suggestions-bg)}:host-context(html.dark){--ngs-suggestions-bg: var(--color-surface-container-high);--ngs-suggestion-hover-bg: var(--color-surface-bright)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
16
|
+
}] });
|
|
17
|
+
|
|
18
|
+
class Suggestion {
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Suggestion, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: Suggestion, isStandalone: true, selector: "ngs-suggestion,[ngs-suggestion]", exportAs: ["ngsSuggestion"], hostDirectives: [{ directive: i1.Ripple }], ngImport: i0, template: "<div class=\"figure\">\n <div class=\"icon\">\n <ng-content select=\"[ngsSuggestionIcon]\"/>\n </div>\n <div class=\"thumb\">\n <ng-content select=\"[ngsSuggestionThumb]\"/>\n </div>\n</div>\n<div class=\"content\">\n <ng-content/>\n</div>\n", styles: [":host{display:flex;align-items:center;width:100%;gap:calc(var(--spacing, .25rem) * 2.5);height:var(--ngs-suggestion-height);padding:var(--ngs-suggestion-padding);border-radius:var(--ngs-suggestion-border-radius)}:host:hover{background:var(--ngs-suggestion-hover-bg);cursor:pointer}:host .figure{line-height:0}:host .icon,:host .thumb{line-height:0;display:inline-flex;align-items:center;justify-content:center;--ngs-avatar-size: calc(var(--spacing, .25rem) * 8);border-radius:calc(infinity * 1px)}:host .icon:empty,:host .thumb:empty{display:none}:host .content{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2.5);font-size:.875rem}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Suggestion, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'ngs-suggestion,[ngs-suggestion]', exportAs: 'ngsSuggestion', imports: [], hostDirectives: [
|
|
25
|
+
Ripple
|
|
26
|
+
], template: "<div class=\"figure\">\n <div class=\"icon\">\n <ng-content select=\"[ngsSuggestionIcon]\"/>\n </div>\n <div class=\"thumb\">\n <ng-content select=\"[ngsSuggestionThumb]\"/>\n </div>\n</div>\n<div class=\"content\">\n <ng-content/>\n</div>\n", styles: [":host{display:flex;align-items:center;width:100%;gap:calc(var(--spacing, .25rem) * 2.5);height:var(--ngs-suggestion-height);padding:var(--ngs-suggestion-padding);border-radius:var(--ngs-suggestion-border-radius)}:host:hover{background:var(--ngs-suggestion-hover-bg);cursor:pointer}:host .figure{line-height:0}:host .icon,:host .thumb{line-height:0;display:inline-flex;align-items:center;justify-content:center;--ngs-avatar-size: calc(var(--spacing, .25rem) * 8);border-radius:calc(infinity * 1px)}:host .icon:empty,:host .thumb:empty{display:none}:host .content{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2.5);font-size:.875rem}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
27
|
+
}] });
|
|
28
|
+
|
|
29
|
+
class SuggestionBlock {
|
|
30
|
+
heading = input(...(ngDevMode ? [undefined, { debugName: "heading" }] : /* istanbul ignore next */ []));
|
|
31
|
+
showDivider = input(false, { ...(ngDevMode ? { debugName: "showDivider" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
32
|
+
inline = input(false, { ...(ngDevMode ? { debugName: "inline" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
33
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SuggestionBlock, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: SuggestionBlock, isStandalone: true, selector: "ngs-suggestion-block", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, showDivider: { classPropertyName: "showDivider", publicName: "showDivider", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ngsSuggestionBlock"], ngImport: i0, template: "@if (showDivider()) {\n <div class=\"my-4 px-2\">\n <ngs-divider/>\n </div>\n}\n\n@if (heading()) {\n <div class=\"heading\">{{ heading() }}</div>\n}\n\n<div class=\"content\" [class.is-inline]=\"inline()\">\n <ng-content/>\n</div>\n", styles: [":host{display:block}:host .heading{color:var(--ngs-suggestion-block-heading-color);font-size:var(--ngs-suggestion-block-font-size);font-weight:var(--ngs-suggestion-block-font-weight);padding:var(--ngs-suggestion-padding)}:host .content{padding:var(--ngs-suggestion-block-content-padding)}:host .content.is-inline{display:flex;gap:calc(var(--spacing, .25rem) * 3)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: Divider, selector: "ngs-divider", inputs: ["vertical", "inset", "fixedHeight"], exportAs: ["ngsDivider"] }] });
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SuggestionBlock, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'ngs-suggestion-block', exportAs: 'ngsSuggestionBlock', imports: [
|
|
39
|
+
Divider
|
|
40
|
+
], template: "@if (showDivider()) {\n <div class=\"my-4 px-2\">\n <ngs-divider/>\n </div>\n}\n\n@if (heading()) {\n <div class=\"heading\">{{ heading() }}</div>\n}\n\n<div class=\"content\" [class.is-inline]=\"inline()\">\n <ng-content/>\n</div>\n", styles: [":host{display:block}:host .heading{color:var(--ngs-suggestion-block-heading-color);font-size:var(--ngs-suggestion-block-font-size);font-weight:var(--ngs-suggestion-block-font-weight);padding:var(--ngs-suggestion-padding)}:host .content{padding:var(--ngs-suggestion-block-content-padding)}:host .content.is-inline{display:flex;gap:calc(var(--spacing, .25rem) * 3)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
41
|
+
}], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], showDivider: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDivider", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }] } });
|
|
42
|
+
|
|
43
|
+
class SuggestionIconDirective {
|
|
44
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SuggestionIconDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
45
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: SuggestionIconDirective, isStandalone: true, selector: "[ngsSuggestionIcon]", ngImport: i0 });
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SuggestionIconDirective, decorators: [{
|
|
48
|
+
type: Directive,
|
|
49
|
+
args: [{
|
|
50
|
+
selector: '[ngsSuggestionIcon]',
|
|
51
|
+
standalone: true
|
|
52
|
+
}]
|
|
53
|
+
}] });
|
|
54
|
+
|
|
55
|
+
class SuggestionThumbDirective {
|
|
56
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SuggestionThumbDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
57
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: SuggestionThumbDirective, isStandalone: true, selector: "[ngsSuggestionThumb]", ngImport: i0 });
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SuggestionThumbDirective, decorators: [{
|
|
60
|
+
type: Directive,
|
|
61
|
+
args: [{
|
|
62
|
+
selector: '[ngsSuggestionThumb]',
|
|
63
|
+
standalone: true
|
|
64
|
+
}]
|
|
65
|
+
}] });
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Generated bundle index. Do not edit.
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
export { Suggestion, SuggestionBlock, SuggestionIconDirective, SuggestionThumbDirective, Suggestions };
|
|
72
|
+
//# sourceMappingURL=ngstarter-ui-components-suggestions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-suggestions.mjs","sources":["../../../projects/components/suggestions/src/suggestions/suggestions.ts","../../../projects/components/suggestions/src/suggestions/suggestions.html","../../../projects/components/suggestions/src/suggestion/suggestion.ts","../../../projects/components/suggestions/src/suggestion/suggestion.html","../../../projects/components/suggestions/src/suggestion-block/suggestion-block.ts","../../../projects/components/suggestions/src/suggestion-block/suggestion-block.html","../../../projects/components/suggestions/src/suggestion-icon.directive.ts","../../../projects/components/suggestions/src/suggestion-thumb.directive.ts","../../../projects/components/suggestions/ngstarter-ui-components-suggestions.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-suggestions',\n exportAs: 'ngsSuggestions',\n imports: [],\n templateUrl: './suggestions.html',\n styleUrl: './suggestions.scss',\n host: {\n 'class': 'ngs-suggestions'\n }\n})\nexport class Suggestions {\n\n}\n","<ng-content />\n","import { Component } from '@angular/core';\nimport { Ripple } from '@ngstarter-ui/components/core';\n\n@Component({\n selector: 'ngs-suggestion,[ngs-suggestion]',\n exportAs: 'ngsSuggestion',\n imports: [],\n templateUrl: './suggestion.html',\n styleUrl: './suggestion.scss',\n hostDirectives: [\n Ripple\n ]\n})\nexport class Suggestion {\n\n}\n","<div class=\"figure\">\n <div class=\"icon\">\n <ng-content select=\"[ngsSuggestionIcon]\"/>\n </div>\n <div class=\"thumb\">\n <ng-content select=\"[ngsSuggestionThumb]\"/>\n </div>\n</div>\n<div class=\"content\">\n <ng-content/>\n</div>\n","import { booleanAttribute, Component, input } from '@angular/core';\nimport { Divider } from '@ngstarter-ui/components/divider';\n\n@Component({\n selector: 'ngs-suggestion-block',\n exportAs: 'ngsSuggestionBlock',\n imports: [\n Divider\n ],\n templateUrl: './suggestion-block.html',\n styleUrl: './suggestion-block.scss'\n})\nexport class SuggestionBlock {\n heading = input();\n showDivider = input(false, {\n transform: booleanAttribute,\n });\n inline = input(false, {\n transform: booleanAttribute,\n });\n}\n","@if (showDivider()) {\n <div class=\"my-4 px-2\">\n <ngs-divider/>\n </div>\n}\n\n@if (heading()) {\n <div class=\"heading\">{{ heading() }}</div>\n}\n\n<div class=\"content\" [class.is-inline]=\"inline()\">\n <ng-content/>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsSuggestionIcon]',\n standalone: true\n})\nexport class SuggestionIconDirective {\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsSuggestionThumb]',\n standalone: true\n})\nexport class SuggestionThumbDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAYa,WAAW,CAAA;uGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,sJCZxB,kBACA,EAAA,MAAA,EAAA,CAAA,2xBAAA,CAAA,EAAA,CAAA;;2FDWa,WAAW,EAAA,UAAA,EAAA,CAAA;kBAVvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,QAAA,EACjB,gBAAgB,EAAA,OAAA,EACjB,EAAE,EAAA,IAAA,EAGL;AACJ,wBAAA,OAAO,EAAE;AACV,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,2xBAAA,CAAA,EAAA;;;MEGU,UAAU,CAAA;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,oKCbvB,8PAWA,EAAA,MAAA,EAAA,CAAA,ktBAAA,CAAA,EAAA,CAAA;;2FDEa,UAAU,EAAA,UAAA,EAAA,CAAA;kBAVtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,EAAA,QAAA,EACjC,eAAe,EAAA,OAAA,EAChB,EAAE,EAAA,cAAA,EAGK;wBACd;AACD,qBAAA,EAAA,QAAA,EAAA,8PAAA,EAAA,MAAA,EAAA,CAAA,ktBAAA,CAAA,EAAA;;;MECU,eAAe,CAAA;IAC1B,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAE;IACjB,WAAW,GAAG,KAAK,CAAC,KAAK,mFACvB,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACF,MAAM,GAAG,KAAK,CAAC,KAAK,8EAClB,SAAS,EAAE,gBAAgB,EAAA,CAC3B;uGAPS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ5B,kPAaA,EAAA,MAAA,EAAA,CAAA,kbAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNI,OAAO,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKE,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;+BACE,sBAAsB,EAAA,QAAA,EACtB,oBAAoB,EAAA,OAAA,EACrB;wBACP;AACD,qBAAA,EAAA,QAAA,EAAA,kPAAA,EAAA,MAAA,EAAA,CAAA,kbAAA,CAAA,EAAA;;;MEFU,uBAAuB,CAAA;uGAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,wBAAwB,CAAA;uGAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACLD;;AAEG;;;;"}
|