@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-color-picker.mjs","sources":["../../../projects/components/color-picker/src/base.ts","../../../projects/components/color-picker/src/saturation/saturation.ts","../../../projects/components/color-picker/src/saturation/saturation.html","../../../projects/components/color-picker/src/hue/hue.ts","../../../projects/components/color-picker/src/hue/hue.html","../../../projects/components/color-picker/src/alpha/alpha.ts","../../../projects/components/color-picker/src/alpha/alpha.html","../../../projects/components/color-picker/src/color-picker/color-picker.ts","../../../projects/components/color-picker/src/color-picker/color-picker.html","../../../projects/components/color-picker/src/color-picker-thumbnail/color-picker-thumbnail.ts","../../../projects/components/color-picker/src/color-picker-thumbnail/color-picker-thumbnail.html","../../../projects/components/color-picker/src/position-manager.ts","../../../projects/components/color-picker/src/color-picker-trigger-for.directive.ts","../../../projects/components/color-picker/ngstarter-ui-components-color-picker.ts"],"sourcesContent":["import { afterNextRender, Directive, ElementRef, inject, DOCUMENT } from '@angular/core';\nimport { fromEvent, merge, Subject, takeUntil } from 'rxjs';\n\n\n@Directive()\nexport abstract class BaseComponent {\n private readonly subscriptions: any[] = [];\n private window: any = { pageXOffset: 0, pageYOffset: 0 };\n private readonly requestAnimationFrame: any;\n private mouseup = new Subject<void>();\n private readonly document = inject(DOCUMENT);\n protected readonly elementRef: ElementRef = inject(ElementRef);\n\n constructor() {\n this.window = this.document.defaultView;\n this.requestAnimationFrame = this.getRequestAnimationFrame();\n this.addEventListeners();\n }\n\n public abstract movePointer(coordinates: { x: number; y: number; height: number; width: number; }): void;\n\n private addEventListeners(): void {\n this.subscriptions.push(\n merge(\n fromEvent(this.elementRef.nativeElement, 'touchstart', { passive: true }),\n fromEvent(this.elementRef.nativeElement, 'mousedown')\n )\n // @ts-ignore\n .subscribe((e: TouchEvent | MouseEvent) => this.onEventChange(e))\n );\n }\n\n private onEventChange(event: MouseEvent | TouchEvent): void {\n this.calculate(event);\n\n merge(\n fromEvent(this.document, 'mouseup'),\n fromEvent(this.document, 'touchend')\n )\n .pipe(takeUntil(this.mouseup))\n .subscribe(() => this.mouseup.next());\n\n merge(\n fromEvent(this.document, 'mousemove'),\n fromEvent(this.document, 'touchmove', { passive: true })\n )\n .pipe(takeUntil(this.mouseup))\n // @ts-ignore\n .subscribe((e: MouseEvent | TouchEvent) => this.calculate(e));\n }\n\n private calculateCoordinates(event: MouseEvent | TouchEvent): void {\n const { width: elWidth, height: elHeight, top: elTop, left: elLeft } = this.elementRef.nativeElement.getBoundingClientRect();\n const pageX = typeof (event as MouseEvent).pageX === 'number'\n ? (event as MouseEvent).pageX : (event as TouchEvent).touches[0].pageX\n ;\n const pageY = typeof (event as MouseEvent).pageY === 'number'\n ? (event as MouseEvent).pageY : (event as TouchEvent).touches[0].pageY\n ;\n const x = Math.max(0, Math.min(pageX - (elLeft + this.window.pageXOffset), elWidth));\n const y = Math.max(0, Math.min(pageY - (elTop + this.window.pageYOffset), elHeight));\n this.movePointer({ x, y, height: elHeight, width: elWidth });\n }\n\n private calculate(event: MouseEvent | TouchEvent): void {\n if (!event.type.includes('touch')) {\n // event.preventDefault();\n }\n\n if (!this.requestAnimationFrame) {\n return this.calculateCoordinates(event);\n }\n\n // @ts-ignore\n this.requestAnimationFrame(() => this.calculateCoordinates(event));\n }\n\n private getRequestAnimationFrame(): () => void {\n return this.window.requestAnimationFrame ||\n this.window.webkitRequestAnimationFrame ||\n this.window.mozRequestAnimationFrame ||\n this.window.oRequestAnimationFrame ||\n this.window.msRequestAnimationFrame;\n }\n\n public ngOnDestroy(): void {\n this.mouseup.next();\n this.mouseup.complete();\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n this.subscriptions.length = 0;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input, model,\n OnInit,\n output,\n Renderer2,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { BaseComponent } from '../base';\nimport { TinyColor } from '@ctrl/tinycolor';\n\n@Component({\n selector: 'ngs-saturation',\n exportAs: 'ngsSaturation',\n templateUrl: './saturation.html',\n styleUrl: './saturation.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-saturation'\n }\n})\nexport class Saturation extends BaseComponent implements OnInit {\n private _renderer = inject(Renderer2);\n readonly pointer = viewChild.required<ElementRef>('pointer');\n\n tinyColor = model.required<TinyColor>();\n colorFromHue = input<TinyColor | undefined | null>();\n\n private tmpColor!: TinyColor;\n private pointerColor!: TinyColor;\n\n readonly colorChange = output<any>();\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.tmpColor = this.tinyColor();\n this._renderer.setStyle(\n this.elementRef.nativeElement, 'background-color', this.getBackgroundColor(this.tinyColor())\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['colorFromHue']) {\n const prevColor = changes['colorFromHue'].previousValue;\n const currentColor = changes['colorFromHue'].currentValue;\n\n if (!currentColor || prevColor?.equals(currentColor)) {\n return;\n }\n\n const oldColorHsv = this.pointerColor ? this.pointerColor.toHsv() : this.tmpColor.toHsv();\n const newColorHsv = currentColor.toHsv();\n const newColor = new TinyColor({\n h: newColorHsv.h,\n s: oldColorHsv.s,\n v: oldColorHsv.v,\n a: 1,\n format: 'hsv'\n });\n this.tmpColor = newColor;\n this._renderer.setStyle(\n this.elementRef.nativeElement, 'background-color', this.getBackgroundColor(changes['colorFromHue'].currentValue)\n );\n this._setPointerBgColor(newColor);\n // Removed this.colorChange.emit(newColor) to prevent NG0100 error.\n // Emitters in ngOnChanges can cause ExpressionChangedAfterItHasBeenCheckedError.\n // ColorPicker already knows about colorFromHue changes.\n }\n\n if (changes['tinyColor']) {\n const prevColor = changes['tinyColor'].previousValue;\n const currentColor = changes['tinyColor'].currentValue;\n\n if (prevColor?.equals(currentColor)) {\n return;\n }\n\n this.tmpColor = currentColor.clone();\n const hsv = this.tmpColor.toHsv();\n this._renderer.setStyle(\n this.elementRef.nativeElement, 'background-color', this.getBackgroundColor(this.tmpColor)\n );\n this.changePointerPosition(hsv.s * 100, hsv.v * 100);\n this._setPointerBgColor(this.tmpColor);\n }\n }\n\n // @ts-ignore\n movePointer({ x, y, height, width }): void {\n const saturationX = (x * 100) / width;\n const bright = -((y * 100) / height) + 100;\n this.changePointerPosition(saturationX, bright);\n const hsv = this.tmpColor.toHsv();\n\n const normalizedX = Math.max(0, Math.min(x / width, 1));\n const normalizedY = Math.max(0, Math.min(y / height, 1));\n\n const saturation = normalizedX;\n const value = 1 - normalizedY; // Y=0 (верх) это Value=1, Y=height (низ) это Value=0\n\n // Убедимся, что hue в пределах 0-360\n const validHue = ((hsv.h % 360) + 360) % 360;\n const newColor = new TinyColor({\n h: validHue,\n s: saturation,\n v: value,\n a: 1,\n format: 'hsv'\n });\n this._renderer.setStyle(this.pointer().nativeElement, 'background-color', newColor.toRgbString());\n this.pointerColor = newColor;\n this.colorChange.emit(newColor);\n }\n\n private getBackgroundColor(tinyColor: TinyColor) {\n const hsl = tinyColor.toHsl();\n return new TinyColor({\n h: hsl.h,\n s: 1,\n l: 0.5,\n a: 1,\n format: 'hsl'\n }).toRgbString();\n }\n\n private changePointerPosition(x: number, y: number): void {\n const pointer = this.pointer();\n this._renderer.setStyle(pointer.nativeElement, 'top', `${100 - y}%`);\n this._renderer.setStyle(pointer.nativeElement, 'left', `${x}%`);\n }\n\n private _setPointerBgColor(tinyColor: TinyColor) {\n this.pointerColor = tinyColor;\n this._renderer.setStyle(this.pointer().nativeElement, 'background-color', tinyColor.toRgbString());\n }\n}\n","<div #pointer class=\"pointer\"></div>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, ElementRef,\n inject, input,\n OnChanges, output,\n Renderer2, SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { BaseComponent } from '../base';\nimport { TinyColor } from '@ctrl/tinycolor';\n\n@Component({\n selector: 'ngs-hue',\n exportAs: 'ngsHue',\n templateUrl: './hue.html',\n styleUrl: './hue.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-hue',\n }\n})\nexport class Hue extends BaseComponent implements OnChanges {\n private cdr = inject(ChangeDetectorRef);\n private _renderer = inject(Renderer2);\n readonly pointer = viewChild.required<ElementRef>('pointer');\n\n tinyColor = input.required<TinyColor>();\n\n readonly colorChange = output<TinyColor>();\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['tinyColor'] && changes['tinyColor'].previousValue !== changes['tinyColor'].currentValue) {\n this.changePointerPosition(changes['tinyColor'].currentValue);\n this._setPointerBgColor(changes['tinyColor'].currentValue);\n }\n }\n\n // @ts-ignore\n public movePointer({ x, y, height, width }): void {\n let h = (x / width) * 360;\n\n if (h >= 360) {\n h = 359;\n }\n\n const newColor = new TinyColor(`hsv(${h}, 100%, 100%)`).setAlpha(1);\n this.changePointerPosition(newColor);\n this._renderer.setStyle(this.pointer().nativeElement, 'background-color', newColor.toRgbString());\n this.colorChange.emit(newColor);\n }\n\n /**\n * hue value is in range from 0 to 360°\n */\n private changePointerPosition(tinyColor: TinyColor): void {\n const x = tinyColor.toHsl().h / 360 * 100;\n this._renderer.setStyle(this.pointer().nativeElement, 'left', `${x}%`);\n }\n\n private _setPointerBgColor(tinyColor: TinyColor) {\n const hsv = tinyColor.toHsv();\n const newColor = new TinyColor(`hsv(${hsv.h}, 100%, 100%)`).setAlpha(1);\n this._renderer.setStyle(this.pointer().nativeElement, 'background-color', newColor.toRgbString());\n }\n}\n","<div #pointer class=\"pointer\"></div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject, input,\n OnChanges, OnInit, output,\n Renderer2, SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { BaseComponent } from '../base';\nimport { NgStyle } from '@angular/common';\nimport { TinyColor } from '@ctrl/tinycolor';\n\n@Component({\n selector: 'ngs-alpha',\n exportAs: 'ngsAlpha',\n imports: [\n NgStyle\n ],\n templateUrl: './alpha.html',\n styleUrl: './alpha.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-alpha'\n }\n})\nexport class Alpha extends BaseComponent implements OnChanges, OnInit {\n private _renderer = inject(Renderer2);\n private _pointer = viewChild.required<ElementRef>('pointer');\n private _pointerBg = viewChild.required<ElementRef>('pointerBg');\n\n tinyColor = input.required<TinyColor>();\n colorFromHue = input<TinyColor | undefined | null>();\n\n private tmpColor!: TinyColor;\n private alpha = 1;\n\n readonly alphaChange = output<any>();\n\n ngOnInit() {\n this.tmpColor = this.tinyColor();\n this.alpha = this.tmpColor.getAlpha();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tinyColor'] && changes['tinyColor'].previousValue !== changes['tinyColor'].currentValue) {\n if (!changes['tinyColor'].currentValue) {\n return;\n }\n\n this.tmpColor = changes['tinyColor'].currentValue.clone();\n this.alpha = this.tmpColor.getAlpha();\n this.changePointerPosition(this.tmpColor.getAlpha());\n this._setPointerBgColor(this.tmpColor);\n }\n\n if (changes['colorFromHue'] && changes['colorFromHue'].previousValue !== changes['colorFromHue'].currentValue) {\n if (!changes['colorFromHue'].currentValue) {\n return;\n }\n\n this.tmpColor = changes['colorFromHue'].currentValue.clone().setAlpha(this.alpha);\n this._setPointerBgColor(this.tmpColor);\n }\n }\n\n // @ts-ignore\n movePointer({ x, y, height, width }): void {\n const alpha = x / width;\n this.changePointerPosition(alpha);\n const newColor = this.tmpColor.clone().setAlpha(alpha);\n this._renderer.setStyle(this._pointerBg().nativeElement, 'background-color', newColor.toRgbString());\n this.alphaChange.emit(alpha);\n }\n\n get gradient(): string {\n const rgba = this.tmpColor.toRgb();\n const orientation = 'right';\n return `linear-gradient(to ${orientation}, rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, 0) 0%, rgb(${rgba.r}, ${rgba.g}, ${rgba.b}) 100%)`;\n }\n\n /**\n * hue value is in range from 0 to 360°\n */\n private changePointerPosition(alpha: number): void {\n const x = alpha * 100;\n const orientation = 'left';\n this._renderer.setStyle(this._pointer().nativeElement, orientation, `${x}%`);\n this.alpha = alpha;\n }\n\n private _setPointerBgColor(tinyColor: TinyColor) {\n this._renderer.setStyle(\n this._pointerBg().nativeElement, 'background-color', tinyColor.clone().setAlpha(this.alpha).toRgbString()\n );\n }\n}\n","<div #pointer class=\"pointer\">\n <div #pointerBg class=\"pointer-bg\"></div>\n</div>\n<div class=\"gradient\" [ngStyle]=\"{ 'background': gradient }\"></div>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n forwardRef, inject,\n input, OnChanges,\n OnInit, output, signal, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ColorPickerResultFormat } from '../properties';\nimport { Saturation } from '../saturation/saturation';\nimport { Hue } from '../hue/hue';\nimport { Alpha } from '../alpha/alpha';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport { Icon } from '@ngstarter-ui/components/icon';\nimport { Button } from '@ngstarter-ui/components/button';\nimport { FormField, IconButtonSuffix, Label } from '@ngstarter-ui/components/form-field';\nimport { Input } from '@ngstarter-ui/components/input';\n\n@Component({\n selector: 'ngs-color-picker',\n exportAs: 'ngsColorPicker',\n imports: [\n FormsModule,\n Alpha,\n Saturation,\n Hue,\n\n Icon,\n Button,\n FormField,\n Label,\n Input,\n IconButtonSuffix\n ],\n templateUrl: './color-picker.html',\n styleUrl: './color-picker.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPicker),\n multi: true\n }\n ],\n host: {\n 'class': 'ngs-color-picker',\n '[class.is-disabled]': '_disabled()',\n '[class.as-dropdown]': 'asDropdown()',\n '(contextmenu)': '_handleContextMenu($event)'\n }\n})\nexport class ColorPicker implements OnInit, OnChanges, ControlValueAccessor {\n private cdr = inject(ChangeDetectorRef);\n\n color = input<string>('');\n disabled = input(false, {\n transform: booleanAttribute\n });\n asDropdown = input(true, {\n transform: booleanAttribute\n });\n showOpacity = input(true, {\n transform: booleanAttribute\n });\n resultFormat = input<ColorPickerResultFormat>('rgb');\n\n readonly colorChange = output<string>();\n readonly rawColorChange = output<TinyColor>();\n\n private tmpColor!: TinyColor;\n protected hexColor!: string;\n\n protected _color = signal<TinyColor>(new TinyColor('red'));\n protected _colorFromHue = signal<TinyColor | undefined | null>(null);\n protected _disabled = signal(false);\n protected alpha = signal(1);\n\n ngOnInit() {\n if (this.color()) {\n this._setColor(this.color());\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['color'] && changes['color'].previousValue !== changes['color'].currentValue) {\n this._setColor(changes['color'].currentValue);\n }\n\n if (changes['disabled'] && changes['disabled'].previousValue !== changes['disabled'].currentValue) {\n this._disabled.set(coerceBooleanProperty(changes['disabled'].currentValue));\n }\n }\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n writeValue(color: string) {\n this._setColor(color);\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: BooleanInput) {\n this._disabled.set(coerceBooleanProperty(isDisabled));\n }\n\n protected async copyToClipboard(event: MouseEvent, hexInput: HTMLInputElement) {\n event.preventDefault();\n event.stopPropagation();\n const color = new TinyColor(this.hexColor);\n\n if (color.isValid) {\n await navigator.clipboard.writeText(color.toHexString());\n }\n\n hexInput.blur();\n }\n\n protected onSaturationColorChange(tinyColor: TinyColor) {\n this.tmpColor = tinyColor.clone();\n const newColor = tinyColor.clone().setAlpha(this.alpha());\n this.rawColorChange.emit(newColor);\n this.emitEvent(newColor);\n this._setHexColor(newColor);\n }\n\n protected _handleContextMenu(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n protected onAlphaChange(alpha: number) {\n this.alpha.set(alpha);\n const newColor = this.tmpColor.clone();\n newColor.setAlpha(alpha);\n this.rawColorChange.emit(newColor.clone().setAlpha(this.alpha()));\n this.emitEvent(newColor);\n }\n\n protected onHueColorChange(color: TinyColor) {\n this._colorFromHue.set(color);\n const newColor = color.clone().setAlpha(this.alpha());\n this.tmpColor = newColor.clone();\n this.rawColorChange.emit(newColor);\n this.emitEvent(newColor);\n this._setHexColor(newColor);\n }\n\n protected onHexColorChange(color: string) {\n if (!color.startsWith('#')) {\n return;\n }\n\n if (color.length === 4 || color.length === 7) {\n const hexColor = new TinyColor(color);\n\n if (!hexColor.isValid || hexColor.equals(this._color())) {\n return;\n }\n\n this._setColor(color, false);\n this.emitEvent(hexColor);\n }\n }\n\n protected onHexColorBlur() {\n if (!this.hexColor.trim()) {\n this.hexColor = this.tmpColor.toHexString();\n }\n }\n\n protected _setHexColor(tinyColor: TinyColor) {\n if (!tinyColor.isValid) {\n return;\n }\n\n const hexColor = new TinyColor(this.hexColor);\n\n if (hexColor.isValid && hexColor.equals(tinyColor)) {\n return;\n }\n\n this.hexColor = tinyColor.toHexString();\n }\n\n private _setColor(color: string, isSetHexColor = true) {\n if (!color) {\n color = 'red';\n }\n\n let newColor = new TinyColor(color);\n\n if (!newColor.isValid) {\n return;\n }\n\n if (!newColor.equals(this._color())) {\n this._color.set(newColor);\n this.tmpColor = this._color().clone();\n\n if (isSetHexColor) {\n this.hexColor = this.tmpColor.toHexString();\n }\n }\n }\n\n private emitEvent(newColor: TinyColor) {\n let format = newColor.toRgbString();\n\n if (this.resultFormat() === 'hex') {\n format = newColor.toHexString();\n } else if (this.resultFormat() === 'hsl') {\n format = newColor.toHslString();\n } else if (this.resultFormat() === 'hsv') {\n format = newColor.toHsvString();\n }\n\n this.colorChange.emit(format);\n this.onChange(format);\n }\n}\n","<ngs-saturation [colorFromHue]=\"_colorFromHue()\"\n [tinyColor]=\"_color()\"\n (colorChange)=\"onSaturationColorChange($event)\"/>\n<ngs-hue [tinyColor]=\"_color()\"\n (colorChange)=\"onHueColorChange($event)\"/>\n@if (showOpacity()) {\n <ngs-alpha [colorFromHue]=\"_colorFromHue()\"\n [tinyColor]=\"_color()\"\n (alphaChange)=\"onAlphaChange($event)\"/>\n}\n<ngs-form-field subscriptHiddenIfEmpty>\n <ngs-label>HEX</ngs-label>\n <input #hexInput\n type=\"text\"\n ngsInput\n maxlength=\"7\"\n [(ngModel)]=\"hexColor\"\n (ngModelChange)=\"onHexColorChange($event)\"\n (blur)=\"onHexColorBlur()\">\n <button ngsIconButton\n ngsIconButtonSuffix\n (mousedown)=\"copyToClipboard($event, hexInput)\">\n <ngs-icon name=\"fluent:copy-24-regular\"/>\n </button>\n</ngs-form-field>\n","import { Component, ElementRef, inject, input, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'ngs-color-picker-thumbnail,[ngs-color-picker-thumbnail]',\n exportAs: 'ngsColorPickerThumbnail',\n templateUrl: './color-picker-thumbnail.html',\n styleUrl: './color-picker-thumbnail.scss',\n host: {\n 'class': 'ngs-color-picker-thumbnail'\n }\n})\nexport class ColorPickerThumbnail {\n private _elementRef = inject(ElementRef);\n\n color = input('');\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.color()) {\n return;\n }\n\n this._elementRef.nativeElement.style.setProperty('--ngs-color-picker-thumbnail-bg', this.color());\n }\n}\n","","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { ColorPickerPosition } from './properties';\n\nexport class PositionManager {\n private _positions: { [prop: string]: ConnectedPosition } = {\n 'below-start': {\n originY: 'bottom',\n overlayY: 'top',\n originX: 'start',\n overlayX: 'start',\n panelClass: ['ngs-color-picker-below', 'ngs-color-picker-below-start']\n },\n 'below-center': {\n originY: 'bottom',\n overlayY: 'top',\n originX: 'center',\n overlayX: 'center',\n panelClass: ['ngs-color-picker-below', 'ngs-color-picker-below-center']\n },\n 'below-end': {\n originY: 'bottom',\n overlayY: 'top',\n originX: 'end',\n overlayX: 'end',\n panelClass: ['ngs-color-picker-below', 'ngs-color-picker-below-end']\n },\n 'above-start': {\n originY: 'top',\n overlayY: 'bottom',\n originX: 'start',\n overlayX: 'start',\n panelClass: ['ngs-color-picker-above', 'ngs-color-picker-above-start']\n },\n 'above-center': {\n originY: 'top',\n overlayY: 'bottom',\n originX: 'center',\n overlayX: 'center',\n panelClass: ['ngs-color-picker-above', 'ngs-color-picker-above-center']\n },\n 'above-end': {\n originY: 'top',\n overlayY: 'bottom',\n originX: 'end',\n overlayX: 'end',\n panelClass: ['ngs-color-picker-above', 'ngs-color-picker-above-end']\n },\n 'before-start': {\n originY: 'top',\n overlayY: 'top',\n originX: 'start',\n overlayX: 'end',\n panelClass: ['ngs-color-picker-before', 'ngs-color-picker-before-start']\n },\n 'before-center': {\n originY: 'center',\n overlayY: 'center',\n originX: 'start',\n overlayX: 'end',\n panelClass: ['ngs-color-picker-before', 'ngs-color-picker-before-center']\n },\n 'before-end': {\n originY: 'bottom',\n overlayY: 'bottom',\n originX: 'start',\n overlayX: 'end',\n panelClass: ['ngs-color-picker-before', 'ngs-color-picker-before-end']\n },\n 'after-end': {\n originY: 'bottom',\n overlayY: 'bottom',\n originX: 'end',\n overlayX: 'start',\n panelClass: ['ngs-color-picker-after', 'ngs-color-picker-after-end']\n },\n 'after-center': {\n originY: 'center',\n overlayY: 'center',\n originX: 'end',\n overlayX: 'start',\n panelClass: ['ngs-color-picker-after', 'ngs-color-picker-after-center']\n },\n 'after-start': {\n originY: 'top',\n overlayY: 'top',\n originX: 'end',\n overlayX: 'start',\n panelClass: ['ngs-color-picker-after', 'ngs-color-picker-after-start']\n }\n };\n\n private _positionPairs: any = {\n 'below-start': 'above-start',\n 'below-center': 'above-center',\n 'below-end': 'above-end',\n 'above-start': 'below-start',\n 'above-center': 'below-center',\n 'above-end': 'below-end',\n 'before-end': 'before-start',\n 'before-center': 'after-center',\n 'before-start': 'before-end',\n 'after-end': 'after-start',\n 'after-center': 'before-center',\n 'after-start': 'after-end'\n };\n\n build(position: ColorPickerPosition): ConnectedPosition[] {\n return [this._positions[position], this._positions[this._positionPairs[position]]];\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n inject, Injector, input, OnDestroy,\n output,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Subject, takeUntil } from 'rxjs';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { PositionManager } from './position-manager';\nimport { ColorPickerPosition } from './properties';\n\n@Directive({\n selector: '[ngsColorPickerTriggerFor]',\n exportAs: 'ngsColorPickerTriggerFor',\n host: {\n 'class': 'ngs-color-picker-trigger-for',\n '(click)': '_handleClick($event)'\n }\n})\nexport class ColorPickerTriggerForDirective implements OnDestroy{\n private _overlay = inject(Overlay);\n private _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n private _directionality = inject(Directionality, { optional: true });\n private _viewContainerRef = inject(ViewContainerRef);\n private _injector = inject(Injector);\n private _destroyRef = inject(DestroyRef);\n\n colorPickerTemplateRef = input.required<TemplateRef<any>>({\n alias: 'ngsColorPickerTriggerFor'\n });\n position = input<ColorPickerPosition>('below-center');\n\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n private _portal!: TemplatePortal;\n private _overlayRef: OverlayRef | null = null;\n private _destroy$: Subject<void> = new Subject();\n\n constructor() {\n this._setType();\n }\n\n ngOnDestroy() {\n this._close();\n this._destroyOverlay();\n }\n\n get api() {\n return {\n isOpen: () => this._isOpen(),\n open: () => this._open(),\n close: () => this._close(),\n };\n }\n\n protected _handleClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n !this._isOpen() ? this._open() : this._close();\n }\n\n private _isOpen() {\n return !!this._overlayRef?.hasAttached();\n }\n\n private _open() {\n if (!this._isOpen() && this.colorPickerTemplateRef() != null) {\n this.opened.emit();\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n this._overlayRef.attach(this._getPopoverContentPortal());\n this._subscribeToOutsideClicks();\n }\n }\n\n private _close() {\n this.closed.emit();\n this._overlayRef!?.detach();\n }\n\n private _destroyOverlay() {\n this._overlayRef?.dispose();\n this._overlayRef = null;\n }\n\n private _subscribeToOutsideClicks(): void {\n if (this._overlayRef) {\n this._overlayRef\n .outsidePointerEvents()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(event => {\n const target = _getEventTarget(event) as Element;\n const element = this._elementRef.nativeElement;\n\n if (target !== element && !element.contains(target)) {\n this._close();\n }\n })\n ;\n }\n }\n\n private _getPopoverContentPortal() {\n this._portal = new TemplatePortal(\n this.colorPickerTemplateRef(),\n this._viewContainerRef,\n null,\n this._injector\n );\n\n return this._portal;\n }\n\n private _getOverlayConfig() {\n return new OverlayConfig({\n positionStrategy: this._getOverlayPositionStrategy(),\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n direction: this._directionality || undefined,\n panelClass: 'ngs-color-picker-overlay-panel'\n });\n }\n\n private _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .withLockedPosition()\n .withGrowAfterOpen()\n .withPositions(this._getOverlayPositions());\n }\n\n private _getOverlayPositions(): ConnectedPosition[] {\n return (new PositionManager()).build(this.position());\n }\n\n private _setType() {\n const element = this._elementRef.nativeElement;\n\n if (element.nodeName === 'BUTTON' && !element.getAttribute('type')) {\n // Prevents form submissions.\n element.setAttribute('type', 'button');\n }\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,106 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, PLATFORM_ID, DOCUMENT, effect, TemplateRef, Directive, ViewContainerRef, contentChild, computed, output, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
4
|
+
import { signalStore, withState, withMethods, patchState, withHooks } from '@ngrx/signals';
|
|
5
|
+
import { TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';
|
|
6
|
+
import { Button } from '@ngstarter-ui/components/button';
|
|
7
|
+
|
|
8
|
+
const COLOR_SCHEME_LOCAL_KEY = 'ngstarter-color-scheme';
|
|
9
|
+
|
|
10
|
+
const initialState = {
|
|
11
|
+
theme: 'light',
|
|
12
|
+
};
|
|
13
|
+
const ColorSchemeStore = signalStore(withState(initialState), withMethods((store) => {
|
|
14
|
+
const platformId = inject(PLATFORM_ID);
|
|
15
|
+
return {
|
|
16
|
+
setScheme(scheme) {
|
|
17
|
+
patchState(store, { theme: scheme });
|
|
18
|
+
if (isPlatformBrowser(platformId)) {
|
|
19
|
+
localStorage.setItem(COLOR_SCHEME_LOCAL_KEY, scheme);
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}), withHooks({
|
|
24
|
+
onInit(store) {
|
|
25
|
+
const document = inject(DOCUMENT);
|
|
26
|
+
effect(() => {
|
|
27
|
+
const scheme = store.theme();
|
|
28
|
+
if (scheme === 'dark') {
|
|
29
|
+
document.documentElement.classList.add('dark');
|
|
30
|
+
}
|
|
31
|
+
else if (scheme === 'light') {
|
|
32
|
+
document.documentElement.classList.remove('dark');
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
}));
|
|
37
|
+
|
|
38
|
+
class ColorSchemeLightDirective {
|
|
39
|
+
templateRef = inject(TemplateRef);
|
|
40
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ColorSchemeLightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: ColorSchemeLightDirective, isStandalone: true, selector: "[ngsColorSchemeLight]", ngImport: i0 });
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ColorSchemeLightDirective, decorators: [{
|
|
44
|
+
type: Directive,
|
|
45
|
+
args: [{
|
|
46
|
+
selector: '[ngsColorSchemeLight]'
|
|
47
|
+
}]
|
|
48
|
+
}] });
|
|
49
|
+
|
|
50
|
+
class ColorSchemeDarkDirective {
|
|
51
|
+
templateRef = inject(TemplateRef);
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ColorSchemeDarkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
53
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: ColorSchemeDarkDirective, isStandalone: true, selector: "[ngsColorSchemeDark]", ngImport: i0 });
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ColorSchemeDarkDirective, decorators: [{
|
|
56
|
+
type: Directive,
|
|
57
|
+
args: [{
|
|
58
|
+
selector: '[ngsColorSchemeDark]'
|
|
59
|
+
}]
|
|
60
|
+
}] });
|
|
61
|
+
|
|
62
|
+
class ColorSchemeSwitcher {
|
|
63
|
+
store = inject(ColorSchemeStore);
|
|
64
|
+
viewContainerRef = inject(ViewContainerRef);
|
|
65
|
+
lightRef = contentChild.required(ColorSchemeLightDirective);
|
|
66
|
+
darkRef = contentChild.required(ColorSchemeDarkDirective);
|
|
67
|
+
colorScheme = computed(() => this.store.theme(), ...(ngDevMode ? [{ debugName: "colorScheme" }] : /* istanbul ignore next */ []));
|
|
68
|
+
colorSchemeChanged = output();
|
|
69
|
+
portal;
|
|
70
|
+
ngOnInit() {
|
|
71
|
+
this.setPortal();
|
|
72
|
+
}
|
|
73
|
+
toggleScheme() {
|
|
74
|
+
const newScheme = this.store.theme() === 'dark' ? 'light' : 'dark';
|
|
75
|
+
this.store.setScheme(newScheme);
|
|
76
|
+
this.setPortal();
|
|
77
|
+
this.colorSchemeChanged.emit(this.store.theme());
|
|
78
|
+
}
|
|
79
|
+
setPortal() {
|
|
80
|
+
if (this.colorScheme() === 'light') {
|
|
81
|
+
this.portal = new TemplatePortal(this.lightRef().templateRef, this.viewContainerRef);
|
|
82
|
+
}
|
|
83
|
+
else if (this.colorScheme() === 'dark') {
|
|
84
|
+
this.portal = new TemplatePortal(this.darkRef().templateRef, this.viewContainerRef);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ColorSchemeSwitcher, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
88
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: ColorSchemeSwitcher, isStandalone: true, selector: "ngs-color-scheme-switcher", outputs: { colorSchemeChanged: "colorSchemeChanged" }, host: { attributes: { "ngSkipHydration": "true" }, classAttribute: "ngs-color-scheme-switcher" }, queries: [{ propertyName: "lightRef", first: true, predicate: ColorSchemeLightDirective, descendants: true, isSignal: true }, { propertyName: "darkRef", first: true, predicate: ColorSchemeDarkDirective, descendants: true, isSignal: true }], exportAs: ["ngsColorSchemeSwitcher"], ngImport: i0, template: "<button ngsIconButton (click)=\"toggleScheme()\">\n <ng-container [cdkPortalOutlet]=\"portal\"/>\n</button>\n", styles: [":host{display:block;width:max-content}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: Button, selector: " button[ngsButton], button[ngsIconButton], a[ngsButton], a[ngsIconButton] ", inputs: ["ngsButton", "ngsIconButton", "loading", "disabled", "disabledInteractive", "disableRipple", "reverse", "fullWidth", "hideTextOnMobile"], exportAs: ["ngsButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
89
|
+
}
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ColorSchemeSwitcher, decorators: [{
|
|
91
|
+
type: Component,
|
|
92
|
+
args: [{ selector: 'ngs-color-scheme-switcher', exportAs: 'ngsColorSchemeSwitcher', imports: [
|
|
93
|
+
CdkPortalOutlet,
|
|
94
|
+
Button,
|
|
95
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
96
|
+
'class': 'ngs-color-scheme-switcher',
|
|
97
|
+
ngSkipHydration: 'true' // important! to prevent double render for icons
|
|
98
|
+
}, template: "<button ngsIconButton (click)=\"toggleScheme()\">\n <ng-container [cdkPortalOutlet]=\"portal\"/>\n</button>\n", styles: [":host{display:block;width:max-content}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
99
|
+
}], propDecorators: { lightRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ColorSchemeLightDirective), { isSignal: true }] }], darkRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ColorSchemeDarkDirective), { isSignal: true }] }], colorSchemeChanged: [{ type: i0.Output, args: ["colorSchemeChanged"] }] } });
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Generated bundle index. Do not edit.
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
export { COLOR_SCHEME_LOCAL_KEY, ColorSchemeDarkDirective, ColorSchemeLightDirective, ColorSchemeStore, ColorSchemeSwitcher };
|
|
106
|
+
//# sourceMappingURL=ngstarter-ui-components-color-scheme.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-color-scheme.mjs","sources":["../../../projects/components/color-scheme/src/color-scheme.model.ts","../../../projects/components/color-scheme/src/color-scheme.store.ts","../../../projects/components/color-scheme/src/color-scheme-light.directive.ts","../../../projects/components/color-scheme/src/color-scheme-dark.directive.ts","../../../projects/components/color-scheme/src/color-scheme-switcher/color-scheme-switcher.ts","../../../projects/components/color-scheme/src/color-scheme-switcher/color-scheme-switcher.html","../../../projects/components/color-scheme/ngstarter-ui-components-color-scheme.ts"],"sourcesContent":["export const COLOR_SCHEME_LOCAL_KEY = 'ngstarter-color-scheme';\nexport type ColorScheme = 'light' | 'dark';\n","import { effect, inject, PLATFORM_ID, DOCUMENT } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { patchState, signalStore, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { COLOR_SCHEME_LOCAL_KEY, ColorScheme } from './color-scheme.model';\n\ntype ColorSchemeState = {\n theme: ColorScheme;\n};\n\nconst initialState: ColorSchemeState = {\n theme: 'light',\n};\n\nexport const ColorSchemeStore = signalStore(\n withState(initialState),\n withMethods((store) => {\n const platformId = inject(PLATFORM_ID);\n return {\n setScheme(scheme: ColorScheme): void {\n patchState(store, { theme: scheme });\n if (isPlatformBrowser(platformId)) {\n localStorage.setItem(COLOR_SCHEME_LOCAL_KEY, scheme);\n }\n },\n };\n }),\n withHooks({\n onInit(store) {\n const document = inject(DOCUMENT);\n\n effect(() => {\n const scheme = store.theme();\n\n if (scheme === 'dark') {\n document.documentElement.classList.add('dark');\n } else if (scheme === 'light') {\n document.documentElement.classList.remove('dark');\n }\n });\n },\n }),\n);\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsColorSchemeLight]'\n})\nexport class ColorSchemeLightDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsColorSchemeDark]'\n})\nexport class ColorSchemeDarkDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n Component, computed,\n contentChild,\n inject,\n OnInit, output,\n ViewContainerRef\n} from '@angular/core';\nimport { ColorSchemeStore } from '../color-scheme.store';\nimport { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ColorSchemeLightDirective } from '../color-scheme-light.directive';\nimport { ColorSchemeDarkDirective } from '../color-scheme-dark.directive';\nimport { ColorScheme } from '../color-scheme.model';\nimport { Button } from '@ngstarter-ui/components/button';\n\n@Component({\n selector: 'ngs-color-scheme-switcher',\n exportAs: 'ngsColorSchemeSwitcher',\n imports: [\n\n CdkPortalOutlet,\n Button,\n ],\n templateUrl: './color-scheme-switcher.html',\n styleUrl: './color-scheme-switcher.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-color-scheme-switcher',\n ngSkipHydration: 'true' // important! to prevent double render for icons\n }\n})\nexport class ColorSchemeSwitcher implements OnInit {\n private store = inject(ColorSchemeStore);\n private viewContainerRef = inject(ViewContainerRef);\n\n private lightRef = contentChild.required(ColorSchemeLightDirective);\n private darkRef = contentChild.required(ColorSchemeDarkDirective);\n\n readonly colorScheme = computed(() => this.store.theme());\n readonly colorSchemeChanged = output<ColorScheme>();\n\n protected portal!: TemplatePortal<any>;\n\n ngOnInit() {\n this.setPortal();\n }\n\n protected toggleScheme() {\n const newScheme = this.store.theme() === 'dark' ? 'light' : 'dark';\n this.store.setScheme(newScheme);\n this.setPortal();\n this.colorSchemeChanged.emit(this.store.theme());\n }\n\n private setPortal() {\n if (this.colorScheme() === 'light') {\n this.portal = new TemplatePortal(this.lightRef().templateRef, this.viewContainerRef);\n } else if (this.colorScheme() === 'dark') {\n this.portal = new TemplatePortal(this.darkRef().templateRef, this.viewContainerRef);\n }\n }\n}\n","<button ngsIconButton (click)=\"toggleScheme()\">\n <ng-container [cdkPortalOutlet]=\"portal\"/>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAO,MAAM,sBAAsB,GAAG;;ACStC,MAAM,YAAY,GAAqB;AACrC,IAAA,KAAK,EAAE,OAAO;CACf;AAEM,MAAM,gBAAgB,GAAG,WAAW,CACzC,SAAS,CAAC,YAAY,CAAC,EACvB,WAAW,CAAC,CAAC,KAAK,KAAI;AACpB,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;IACtC,OAAO;AACL,QAAA,SAAS,CAAC,MAAmB,EAAA;YAC3B,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,YAAA,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE;AACjC,gBAAA,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC;YACtD;QACF,CAAC;KACF;AACH,CAAC,CAAC,EACF,SAAS,CAAC;AACR,IAAA,MAAM,CAAC,KAAK,EAAA;AACV,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEjC,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;AAE5B,YAAA,IAAI,MAAM,KAAK,MAAM,EAAE;gBACrB,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAChD;AAAO,iBAAA,IAAI,MAAM,KAAK,OAAO,EAAE;gBAC7B,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACnD;AACF,QAAA,CAAC,CAAC;IACJ,CAAC;AACF,CAAA,CAAC;;MCnCS,yBAAyB,CAAA;AAC3B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;uGAD/B,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;;MCCY,wBAAwB,CAAA;AAC1B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;uGAD/B,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;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;;MC2BY,mBAAmB,CAAA;AACtB,IAAA,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAChC,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE3C,IAAA,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC;AAC3D,IAAA,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC;AAExD,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,kFAAC;IAChD,kBAAkB,GAAG,MAAM,EAAe;AAEzC,IAAA,MAAM;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE;IAClB;IAEU,YAAY,GAAA;AACpB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM;AAClE,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAClD;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AAClC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;QACtF;AAAO,aAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;AACxC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;QACrF;IACF;uGA7BW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIW,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAC1B,wBAAwB,sGCpClE,gHAGA,EAAA,MAAA,EAAA,CAAA,6GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDiBI,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,MAAM,EAAA,QAAA,EAAA,mFAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAUG,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAhB/B,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAC3B,wBAAwB,EAAA,OAAA,EACzB;wBAEP,eAAe;wBACf,MAAM;qBACP,EAAA,eAAA,EAGgB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,OAAO,EAAE,2BAA2B;wBACpC,eAAe,EAAE,MAAM;AACxB,qBAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,6GAAA,CAAA,EAAA;AAMwC,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,yBAAyB,yFAC1B,wBAAwB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEpClE;;AAEG;;;;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ChangeDetectorRef, input, booleanAttribute, output, forwardRef, Component } from '@angular/core';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
+
|
|
6
|
+
const defaultColors = [
|
|
7
|
+
'#35d1b3', '#08b0fe', '#8268f2', '#ae52d3', '#eb4ea3',
|
|
8
|
+
'#fb811e', '#fac624', '#c2c2c2', '#4ed7ff'
|
|
9
|
+
];
|
|
10
|
+
class ColorSwitcher {
|
|
11
|
+
_cdr = inject(ChangeDetectorRef);
|
|
12
|
+
_disabled = false;
|
|
13
|
+
_selectedColor;
|
|
14
|
+
colors = input(defaultColors, ...(ngDevMode ? [{ debugName: "colors" }] : /* istanbul ignore next */ []));
|
|
15
|
+
selectedColor = input(...(ngDevMode ? [undefined, { debugName: "selectedColor" }] : /* istanbul ignore next */ []));
|
|
16
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
17
|
+
colorChange = output();
|
|
18
|
+
_onChange = () => { };
|
|
19
|
+
_onTouched = () => { };
|
|
20
|
+
ngOnChanges(changes) {
|
|
21
|
+
if (changes['selectedColor']) {
|
|
22
|
+
this._selectedColor = changes['selectedColor'].currentValue;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
selectColor(color) {
|
|
26
|
+
this._selectedColor = color;
|
|
27
|
+
this.colorChange.emit(color);
|
|
28
|
+
this._onChange(color);
|
|
29
|
+
this._onTouched(color);
|
|
30
|
+
}
|
|
31
|
+
writeValue(_selectedColor) {
|
|
32
|
+
this._selectedColor = _selectedColor;
|
|
33
|
+
this._cdr.detectChanges();
|
|
34
|
+
}
|
|
35
|
+
registerOnChange(fn) {
|
|
36
|
+
this._onChange = fn;
|
|
37
|
+
}
|
|
38
|
+
registerOnTouched(fn) {
|
|
39
|
+
this._onTouched = fn;
|
|
40
|
+
}
|
|
41
|
+
setDisabledState(isDisabled) {
|
|
42
|
+
this._disabled = coerceBooleanProperty(isDisabled);
|
|
43
|
+
}
|
|
44
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ColorSwitcher, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: ColorSwitcher, isStandalone: true, selector: "ngs-color-switcher", inputs: { colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: false, transformFunction: null }, selectedColor: { classPropertyName: "selectedColor", publicName: "selectedColor", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { colorChange: "colorChange" }, host: { properties: { "class.is-disabled": "disabled() || _disabled" }, classAttribute: "ngs-brand-colors" }, providers: [
|
|
46
|
+
{
|
|
47
|
+
provide: NG_VALUE_ACCESSOR,
|
|
48
|
+
useExisting: forwardRef(() => ColorSwitcher),
|
|
49
|
+
multi: true
|
|
50
|
+
}
|
|
51
|
+
], exportAs: ["ngsColorSwitcher"], usesOnChanges: true, ngImport: i0, template: "@for (color of colors(); track color) {\n <button class=\"color\"\n [style.--color]=\"color\"\n [class.is-selected]=\"_selectedColor === color\"\n (click)=\"selectColor(color)\">\n </button>\n}\n\n", styles: [":host{--ngs-brand-colors-color-size: calc(var(--spacing, .25rem) * 7);--ngs-brand-colors-gap: calc(var(--spacing, .25rem) * 3);display:inline-flex;flex-wrap:wrap;gap:var(--ngs-brand-colors-gap);line-height:0}:host .color{--color: transparent;width:var(--ngs-brand-colors-color-size);height:var(--ngs-brand-colors-color-size);border-radius:calc(infinity * 1px);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;position:relative;background:var(--color);line-height:0;flex:none;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:#32325d26 0 2px 8px inset}:host .color:hover{scale:1.05}:host .color:active{scale:.95}:host .color.is-selected:before{content:\"\";position:absolute;border-radius:calc(infinity * 1px);background:#fff;width:calc(var(--spacing, .25rem) * 3);height:calc(var(--spacing, .25rem) * 3);top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}:host.is-disabled{pointer-events:none;opacity:60%}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ColorSwitcher, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'ngs-color-switcher', exportAs: 'ngsColorSwitcher', imports: [], providers: [
|
|
56
|
+
{
|
|
57
|
+
provide: NG_VALUE_ACCESSOR,
|
|
58
|
+
useExisting: forwardRef(() => ColorSwitcher),
|
|
59
|
+
multi: true
|
|
60
|
+
}
|
|
61
|
+
], host: {
|
|
62
|
+
'class': 'ngs-brand-colors',
|
|
63
|
+
'[class.is-disabled]': 'disabled() || _disabled',
|
|
64
|
+
}, template: "@for (color of colors(); track color) {\n <button class=\"color\"\n [style.--color]=\"color\"\n [class.is-selected]=\"_selectedColor === color\"\n (click)=\"selectColor(color)\">\n </button>\n}\n\n", styles: [":host{--ngs-brand-colors-color-size: calc(var(--spacing, .25rem) * 7);--ngs-brand-colors-gap: calc(var(--spacing, .25rem) * 3);display:inline-flex;flex-wrap:wrap;gap:var(--ngs-brand-colors-gap);line-height:0}:host .color{--color: transparent;width:var(--ngs-brand-colors-color-size);height:var(--ngs-brand-colors-color-size);border-radius:calc(infinity * 1px);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;position:relative;background:var(--color);line-height:0;flex:none;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:#32325d26 0 2px 8px inset}:host .color:hover{scale:1.05}:host .color:active{scale:.95}:host .color.is-selected:before{content:\"\";position:absolute;border-radius:calc(infinity * 1px);background:#fff;width:calc(var(--spacing, .25rem) * 3);height:calc(var(--spacing, .25rem) * 3);top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}:host.is-disabled{pointer-events:none;opacity:60%}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
65
|
+
}], propDecorators: { colors: [{ type: i0.Input, args: [{ isSignal: true, alias: "colors", required: false }] }], selectedColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedColor", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], colorChange: [{ type: i0.Output, args: ["colorChange"] }] } });
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Generated bundle index. Do not edit.
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
export { ColorSwitcher };
|
|
72
|
+
//# sourceMappingURL=ngstarter-ui-components-color-switcher.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-color-switcher.mjs","sources":["../../../projects/components/color-switcher/src/color-switcher/color-switcher.ts","../../../projects/components/color-switcher/src/color-switcher/color-switcher.html","../../../projects/components/color-switcher/ngstarter-ui-components-color-switcher.ts"],"sourcesContent":["import {\n Component,\n OnChanges,\n SimpleChanges,\n input,\n output,\n forwardRef,\n inject,\n ChangeDetectorRef, booleanAttribute\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nconst defaultColors = [\n '#35d1b3', '#08b0fe', '#8268f2', '#ae52d3', '#eb4ea3',\n '#fb811e', '#fac624', '#c2c2c2', '#4ed7ff'\n];\n\n@Component({\n selector: 'ngs-color-switcher',\n exportAs: 'ngsColorSwitcher',\n imports: [],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorSwitcher),\n multi: true\n }\n ],\n templateUrl: './color-switcher.html',\n styleUrl: './color-switcher.scss',\n host: {\n 'class': 'ngs-brand-colors',\n '[class.is-disabled]': 'disabled() || _disabled',\n }\n})\nexport class ColorSwitcher implements ControlValueAccessor, OnChanges {\n private _cdr = inject(ChangeDetectorRef);\n protected _disabled = false;\n protected _selectedColor: string;\n\n colors = input<string[]>(defaultColors);\n selectedColor = input<string>();\n disabled = input(false, {\n transform: booleanAttribute\n });\n\n readonly colorChange = output<string>();\n\n _onChange: any = () => {};\n _onTouched: any = () => {};\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selectedColor']) {\n this._selectedColor = changes['selectedColor'].currentValue;\n }\n }\n\n selectColor(color: string): void {\n this._selectedColor = color;\n this.colorChange.emit(color);\n this._onChange(color);\n this._onTouched(color);\n }\n\n writeValue(_selectedColor: any) {\n this._selectedColor = _selectedColor;\n this._cdr.detectChanges();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: BooleanInput): void {\n this._disabled = coerceBooleanProperty(isDisabled);\n }\n}\n","@for (color of colors(); track color) {\n <button class=\"color\"\n [style.--color]=\"color\"\n [class.is-selected]=\"_selectedColor === color\"\n (click)=\"selectColor(color)\">\n </button>\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,57 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, Renderer2, input, booleanAttribute, effect, Component } from '@angular/core';
|
|
3
|
+
import * as i1 from '@ngstarter-ui/components/core';
|
|
4
|
+
import { Ripple } from '@ngstarter-ui/components/core';
|
|
5
|
+
|
|
6
|
+
class CommandBar {
|
|
7
|
+
_elementRef = inject(ElementRef);
|
|
8
|
+
_renderer = inject(Renderer2);
|
|
9
|
+
open = input(false, { ...(ngDevMode ? { debugName: "open" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
10
|
+
position = input('bottom', ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
|
|
11
|
+
constructor() {
|
|
12
|
+
effect(() => {
|
|
13
|
+
this._renderer.setAttribute(this._elementRef.nativeElement, 'ngs-command-bar-position', this.position());
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CommandBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: CommandBar, isStandalone: true, selector: "ngs-command-bar", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-open": "open()" }, classAttribute: "ngs-command-bar" }, exportAs: ["ngsCommandBar"], ngImport: i0, template: "<div class=\"content\"><ng-content/></div>\n<ng-content select=\"ngs-command-bar-command,[ngs-command-bar-command],ngs-command-bar-divider\" />\n", styles: [":host{--ngs-command-bar-height: calc(var(--spacing, .25rem) * 12);--ngs-command-bar-padding: 0 calc(var(--spacing, .25rem) * 1);--ngs-command-bar-margin: calc(var(--spacing, .25rem) * 8) 0;--ngs-command-bar-zindex: 50;--ngs-command-bar-bg: var(--color-neutral-950);--ngs-command-bar-color: var(--color-neutral-200);--ngs-command-bar-border: 1px solid var(--color-neutral-700);--ngs-command-bar-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ngs-command-bar-border-radius: calc(infinity * 1px);--ngs-command-bar-command-height: calc(var(--spacing, .25rem) * 10);--ngs-command-bar-command-padding: 0 calc(var(--spacing, .25rem) * 3.5);--ngs-command-bar-command-font-size: .875rem;--ngs-command-bar-command-color: var(--color-neutral-200);--ngs-command-bar-command-hover-color: var(--color-neutral-100);--ngs-command-bar-command-hover-bg: var(--color-neutral-800);--ngs-command-bar-value-color: var(--color-neutral-200);--ngs-command-bar-command-gap: calc(var(--spacing, .25rem) * 3);--ngs-command-bar-content-padding: 0 calc(var(--spacing, .25rem) * 4);--ngs-command-bar-font-size: .875rem;--ngs-command-bar-divider-width: 1px;--ngs-command-bar-divider-height: calc(var(--spacing, .25rem) * 6);--ngs-command-bar-divider-bg: var(--color-neutral-600);--ngs-command-bar-command-shortcut-bg: var(--color-neutral-700);--ngs-command-bar-command-shortcut-border-radius: .5rem;--ngs-command-bar-command-shortcut-font-size: .75rem;--ngs-command-bar-command-shortcut-color: var(--color-neutral-300);--ngs-command-bar-command-shortcut-padding: 0 5px;--ngs-command-bar-command-shortcut-border: 1px solid var(--color-neutral-600);--ngs-command-bar-command-shortcut-size: calc(var(--spacing, .25rem) * 5);left:50%;translate:-50% 0;height:var(--ngs-command-bar-height);border:var(--ngs-command-bar-border);box-shadow:var(--ngs-command-bar-shadow);border-radius:var(--ngs-command-bar-border-radius);z-index:-1;font-size:var(--ngs-command-bar-font-size);color:var(--ngs-command-bar-color);padding:var(--ngs-command-bar-padding);overflow:hidden;opacity:0;display:flex;align-items:center;width:min-content;position:fixed;background:var(--ngs-command-bar-bg);margin:var(--ngs-command-bar-margin);gap:calc(var(--spacing, .25rem) * 1)}:host .content:empty{display:none}:host .content{white-space:nowrap;padding:var(--ngs-command-bar-content-padding)}:host.is-open{opacity:1;z-index:var(--ngs-command-bar-zindex)}:host[ngs-command-bar-position=top]{top:0}:host[ngs-command-bar-position=top].is-open{animation:.3s ngs-command-bar-animation-from-top}:host[ngs-command-bar-position=bottom]{bottom:0}:host[ngs-command-bar-position=bottom].is-open{animation:.3s ngs-command-bar-animation-from-bottom}@keyframes ngs-command-bar-animation-from-top{0%{transform:translateY(-150%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes ngs-command-bar-animation-from-bottom{0%{transform:translateY(150%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}:host-context(html.dark){--ngs-command-bar-bg: var(--color-primary-200);--ngs-command-bar-color: var(--color-neutral-950);--ngs-command-bar-command-color: var(--color-neutral-950)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CommandBar, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'ngs-command-bar', exportAs: 'ngsCommandBar', standalone: true, host: {
|
|
22
|
+
'class': 'ngs-command-bar',
|
|
23
|
+
'[class.is-open]': 'open()',
|
|
24
|
+
}, template: "<div class=\"content\"><ng-content/></div>\n<ng-content select=\"ngs-command-bar-command,[ngs-command-bar-command],ngs-command-bar-divider\" />\n", styles: [":host{--ngs-command-bar-height: calc(var(--spacing, .25rem) * 12);--ngs-command-bar-padding: 0 calc(var(--spacing, .25rem) * 1);--ngs-command-bar-margin: calc(var(--spacing, .25rem) * 8) 0;--ngs-command-bar-zindex: 50;--ngs-command-bar-bg: var(--color-neutral-950);--ngs-command-bar-color: var(--color-neutral-200);--ngs-command-bar-border: 1px solid var(--color-neutral-700);--ngs-command-bar-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ngs-command-bar-border-radius: calc(infinity * 1px);--ngs-command-bar-command-height: calc(var(--spacing, .25rem) * 10);--ngs-command-bar-command-padding: 0 calc(var(--spacing, .25rem) * 3.5);--ngs-command-bar-command-font-size: .875rem;--ngs-command-bar-command-color: var(--color-neutral-200);--ngs-command-bar-command-hover-color: var(--color-neutral-100);--ngs-command-bar-command-hover-bg: var(--color-neutral-800);--ngs-command-bar-value-color: var(--color-neutral-200);--ngs-command-bar-command-gap: calc(var(--spacing, .25rem) * 3);--ngs-command-bar-content-padding: 0 calc(var(--spacing, .25rem) * 4);--ngs-command-bar-font-size: .875rem;--ngs-command-bar-divider-width: 1px;--ngs-command-bar-divider-height: calc(var(--spacing, .25rem) * 6);--ngs-command-bar-divider-bg: var(--color-neutral-600);--ngs-command-bar-command-shortcut-bg: var(--color-neutral-700);--ngs-command-bar-command-shortcut-border-radius: .5rem;--ngs-command-bar-command-shortcut-font-size: .75rem;--ngs-command-bar-command-shortcut-color: var(--color-neutral-300);--ngs-command-bar-command-shortcut-padding: 0 5px;--ngs-command-bar-command-shortcut-border: 1px solid var(--color-neutral-600);--ngs-command-bar-command-shortcut-size: calc(var(--spacing, .25rem) * 5);left:50%;translate:-50% 0;height:var(--ngs-command-bar-height);border:var(--ngs-command-bar-border);box-shadow:var(--ngs-command-bar-shadow);border-radius:var(--ngs-command-bar-border-radius);z-index:-1;font-size:var(--ngs-command-bar-font-size);color:var(--ngs-command-bar-color);padding:var(--ngs-command-bar-padding);overflow:hidden;opacity:0;display:flex;align-items:center;width:min-content;position:fixed;background:var(--ngs-command-bar-bg);margin:var(--ngs-command-bar-margin);gap:calc(var(--spacing, .25rem) * 1)}:host .content:empty{display:none}:host .content{white-space:nowrap;padding:var(--ngs-command-bar-content-padding)}:host.is-open{opacity:1;z-index:var(--ngs-command-bar-zindex)}:host[ngs-command-bar-position=top]{top:0}:host[ngs-command-bar-position=top].is-open{animation:.3s ngs-command-bar-animation-from-top}:host[ngs-command-bar-position=bottom]{bottom:0}:host[ngs-command-bar-position=bottom].is-open{animation:.3s ngs-command-bar-animation-from-bottom}@keyframes ngs-command-bar-animation-from-top{0%{transform:translateY(-150%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes ngs-command-bar-animation-from-bottom{0%{transform:translateY(150%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}:host-context(html.dark){--ngs-command-bar-bg: var(--color-primary-200);--ngs-command-bar-color: var(--color-neutral-950);--ngs-command-bar-command-color: var(--color-neutral-950)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
25
|
+
}], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }] } });
|
|
26
|
+
|
|
27
|
+
class CommandBarDivider {
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CommandBarDivider, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: CommandBarDivider, isStandalone: true, selector: "ngs-command-bar-divider", host: { classAttribute: "ngs-command-bar-divider" }, exportAs: ["ngsCommandBarDivider"], ngImport: i0, template: "\n", styles: [":host{display:block;width:var(--ngs-command-bar-divider-width);height:var(--ngs-command-bar-divider-height);background:var(--ngs-command-bar-divider-bg)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CommandBarDivider, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'ngs-command-bar-divider', exportAs: 'ngsCommandBarDivider', host: {
|
|
34
|
+
'class': 'ngs-command-bar-divider'
|
|
35
|
+
}, template: "\n", styles: [":host{display:block;width:var(--ngs-command-bar-divider-width);height:var(--ngs-command-bar-divider-height);background:var(--ngs-command-bar-divider-bg)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
36
|
+
}] });
|
|
37
|
+
|
|
38
|
+
class CommandBarCommand {
|
|
39
|
+
shortcut = input('', ...(ngDevMode ? [{ debugName: "shortcut" }] : /* istanbul ignore next */ []));
|
|
40
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CommandBarCommand, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: CommandBarCommand, isStandalone: true, selector: "ngs-command-bar-command,[ngs-command-bar-command]", inputs: { shortcut: { classPropertyName: "shortcut", publicName: "shortcut", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "ngs-command-bar-command" }, exportAs: ["ngsCommandBarCommand"], hostDirectives: [{ directive: i1.Ripple }], ngImport: i0, template: "<ng-content/>\n@if (shortcut()) {\n <div class=\"shortcut\">{{ shortcut() }}</div>\n}\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;padding:var(--ngs-command-bar-command-padding);font-size:var(--ngs-command-bar-command-font-size);cursor:pointer;gap:var(--ngs-command-bar-command-gap);color:var(--ngs-command-bar-command-color);-webkit-user-select:none;user-select:none;border-radius:calc(infinity * 1px);height:var(--ngs-command-bar-command-height)}:host:hover{color:var(--ngs-command-bar-command-hover-color);background:var(--ngs-command-bar-command-hover-bg)}:host .shortcut{text-transform:uppercase;display:flex;align-items:center;justify-content:center;background:var(--ngs-command-bar-command-shortcut-bg);border-radius:var(--ngs-command-bar-command-shortcut-border-radius);font-size:var(--ngs-command-bar-command-shortcut-font-size);color:var(--ngs-command-bar-command-shortcut-color);padding:var(--ngs-command-bar-command-shortcut-padding);border:var(--ngs-command-bar-command-shortcut-border);flex:none;width:var(--ngs-command-bar-command-shortcut-size);height:var(--ngs-command-bar-command-shortcut-size)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CommandBarCommand, decorators: [{
|
|
44
|
+
type: Component,
|
|
45
|
+
args: [{ selector: 'ngs-command-bar-command,[ngs-command-bar-command]', exportAs: 'ngsCommandBarCommand', standalone: true, hostDirectives: [
|
|
46
|
+
Ripple,
|
|
47
|
+
], host: {
|
|
48
|
+
'class': 'ngs-command-bar-command'
|
|
49
|
+
}, template: "<ng-content/>\n@if (shortcut()) {\n <div class=\"shortcut\">{{ shortcut() }}</div>\n}\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;padding:var(--ngs-command-bar-command-padding);font-size:var(--ngs-command-bar-command-font-size);cursor:pointer;gap:var(--ngs-command-bar-command-gap);color:var(--ngs-command-bar-command-color);-webkit-user-select:none;user-select:none;border-radius:calc(infinity * 1px);height:var(--ngs-command-bar-command-height)}:host:hover{color:var(--ngs-command-bar-command-hover-color);background:var(--ngs-command-bar-command-hover-bg)}:host .shortcut{text-transform:uppercase;display:flex;align-items:center;justify-content:center;background:var(--ngs-command-bar-command-shortcut-bg);border-radius:var(--ngs-command-bar-command-shortcut-border-radius);font-size:var(--ngs-command-bar-command-shortcut-font-size);color:var(--ngs-command-bar-command-shortcut-color);padding:var(--ngs-command-bar-command-shortcut-padding);border:var(--ngs-command-bar-command-shortcut-border);flex:none;width:var(--ngs-command-bar-command-shortcut-size);height:var(--ngs-command-bar-command-shortcut-size)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
50
|
+
}], propDecorators: { shortcut: [{ type: i0.Input, args: [{ isSignal: true, alias: "shortcut", required: false }] }] } });
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Generated bundle index. Do not edit.
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
export { CommandBar, CommandBarCommand, CommandBarDivider };
|
|
57
|
+
//# sourceMappingURL=ngstarter-ui-components-command-bar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-command-bar.mjs","sources":["../../../projects/components/command-bar/src/command-bar/command-bar.ts","../../../projects/components/command-bar/src/command-bar/command-bar.html","../../../projects/components/command-bar/src/command-bar-divider/command-bar-divider.ts","../../../projects/components/command-bar/src/command-bar-divider/command-bar-divider.html","../../../projects/components/command-bar/src/command-bar-command/command-bar-command.ts","../../../projects/components/command-bar/src/command-bar-command/command-bar-command.html","../../../projects/components/command-bar/ngstarter-ui-components-command-bar.ts"],"sourcesContent":["import {\n booleanAttribute,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n Renderer2\n} from '@angular/core';\nimport { CommandBarPosition } from '../types';\n\n@Component({\n selector: 'ngs-command-bar',\n exportAs: 'ngsCommandBar',\n standalone: true,\n templateUrl: './command-bar.html',\n styleUrl: './command-bar.scss',\n host: {\n 'class': 'ngs-command-bar',\n '[class.is-open]': 'open()',\n }\n})\nexport class CommandBar {\n private _elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n\n open = input(false, {\n transform: booleanAttribute\n });\n position = input<CommandBarPosition>('bottom');\n\n constructor() {\n effect(() => {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'ngs-command-bar-position', this.position());\n });\n }\n}\n","<div class=\"content\"><ng-content/></div>\n<ng-content select=\"ngs-command-bar-command,[ngs-command-bar-command],ngs-command-bar-divider\" />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-command-bar-divider',\n exportAs: 'ngsCommandBarDivider',\n templateUrl: './command-bar-divider.html',\n styleUrl: './command-bar-divider.scss',\n host: {\n 'class': 'ngs-command-bar-divider'\n }\n})\nexport class CommandBarDivider {\n}\n","\n","import { Component, input, Input } from '@angular/core';\nimport { Ripple } from '@ngstarter-ui/components/core';\n\n@Component({\n selector: 'ngs-command-bar-command,[ngs-command-bar-command]',\n exportAs: 'ngsCommandBarCommand',\n standalone: true,\n templateUrl: './command-bar-command.html',\n styleUrl: './command-bar-command.scss',\n hostDirectives: [\n Ripple,\n ],\n host: {\n 'class': 'ngs-command-bar-command'\n }\n})\nexport class CommandBarCommand {\n shortcut = input('');\n}\n","<ng-content/>\n@if (shortcut()) {\n <div class=\"shortcut\">{{ shortcut() }}</div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAsBa,UAAU,CAAA;AACb,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAErC,IAAI,GAAG,KAAK,CAAC,KAAK,4EAChB,SAAS,EAAE,gBAAgB,EAAA,CAC3B;AACF,IAAA,QAAQ,GAAG,KAAK,CAAqB,QAAQ,+EAAC;AAE9C,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,0BAA0B,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC1G,QAAA,CAAC,CAAC;IACJ;uGAbW,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,kcCtBvB,mJAEA,EAAA,MAAA,EAAA,CAAA,uqGAAA,CAAA,EAAA,CAAA;;2FDoBa,UAAU,EAAA,UAAA,EAAA,CAAA;kBAXtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,QAAA,EACjB,eAAe,EAAA,UAAA,EACb,IAAI,EAAA,IAAA,EAGV;AACJ,wBAAA,OAAO,EAAE,iBAAiB;AAC1B,wBAAA,iBAAiB,EAAE,QAAQ;AAC5B,qBAAA,EAAA,QAAA,EAAA,mJAAA,EAAA,MAAA,EAAA,CAAA,uqGAAA,CAAA,EAAA;;;METU,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,4KCX9B,IACA,EAAA,MAAA,EAAA,CAAA,gOAAA,CAAA,EAAA,CAAA;;2FDUa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;+BACE,yBAAyB,EAAA,QAAA,EACzB,sBAAsB,EAAA,IAAA,EAG1B;AACJ,wBAAA,OAAO,EAAE;AACV,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gOAAA,CAAA,EAAA;;;MEOU,iBAAiB,CAAA;AAC5B,IAAA,QAAQ,GAAG,KAAK,CAAC,EAAE,+EAAC;uGADT,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,+XChB9B,0FAIA,EAAA,MAAA,EAAA,CAAA,onCAAA,CAAA,EAAA,CAAA;;2FDYa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mDAAmD,EAAA,QAAA,EACnD,sBAAsB,EAAA,UAAA,EACpB,IAAI,EAAA,cAAA,EAGA;wBACd,MAAM;qBACP,EAAA,IAAA,EACK;AACJ,wBAAA,OAAO,EAAE;AACV,qBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,MAAA,EAAA,CAAA,onCAAA,CAAA,EAAA;;;AEdH;;AAEG;;;;"}
|