@ngstarter-ui/components 1.0.27 → 1.0.30
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/fesm2022/ngstarter-ui-components-action-required.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-action-required.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-alert.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-alert.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-announcement.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-announcement.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-autocomplete.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-avatar.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-badge.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-badge.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-block-loader.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-block-loader.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-button-toggle.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-button-toggle.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-button.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-button.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-card.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-card.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-checkbox.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-chips.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-code-highlighter.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-code-highlighter.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-color-picker.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-color-picker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-color-switcher.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-color-switcher.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-command-bar.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-command-bar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-comment-editor.mjs +34 -21
- package/fesm2022/ngstarter-ui-components-comment-editor.mjs.map +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs → ngstarter-ui-components-content-editor-code-block.component-CpZ5gJOc.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs.map → ngstarter-ui-components-content-editor-code-block.component-CpZ5gJOc.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs → ngstarter-ui-components-content-editor-embed-block-ghm0_0AF.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs.map → ngstarter-ui-components-content-editor-embed-block-ghm0_0AF.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs → ngstarter-ui-components-content-editor-heading-block.component-C1FH89Sj.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs.map → ngstarter-ui-components-content-editor-heading-block.component-C1FH89Sj.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs → ngstarter-ui-components-content-editor-image-block.component-ahCIfpvQ.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs.map → ngstarter-ui-components-content-editor-image-block.component-ahCIfpvQ.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs → ngstarter-ui-components-content-editor-list-block.component-guhW_EyK.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs.map → ngstarter-ui-components-content-editor-list-block.component-guhW_EyK.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs → ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-DNLTNGYa.mjs} +15 -15
- package/fesm2022/{ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs.map → ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-DNLTNGYa.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs → ngstarter-ui-components-content-editor-paragraph-block.component-DjgGUc7s.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs.map → ngstarter-ui-components-content-editor-paragraph-block.component-DjgGUc7s.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs → ngstarter-ui-components-content-editor-quote-block.component-B3pek1H6.mjs} +4 -4
- package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs.map → ngstarter-ui-components-content-editor-quote-block.component-B3pek1H6.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs → ngstarter-ui-components-content-editor-table-block.component-bgBNjf4d.mjs} +6 -6
- package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs.map → ngstarter-ui-components-content-editor-table-block.component-bgBNjf4d.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs → ngstarter-ui-components-content-editor-video-block.component-DPlYe-_8.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs.map → ngstarter-ui-components-content-editor-video-block.component-DPlYe-_8.mjs.map} +1 -1
- package/fesm2022/ngstarter-ui-components-content-editor.mjs +1 -1
- package/fesm2022/ngstarter-ui-components-content-fade.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-content-fade.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-cookie-popup.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-cookie-popup.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-core.mjs +137 -34
- package/fesm2022/ngstarter-ui-components-core.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-country-select.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-data-view.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-data-view.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-datepicker.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-dialog.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-divider.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-divider.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-drawer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-drawer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-emoji-picker.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-emoji-picker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-empty-state.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-empty-state.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-expand.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-expand.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-expansion.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-expansion.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-filter-builder.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-filter-builder.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-form-field.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-form-field.mjs.map +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs → ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs} +3 -3
- package/fesm2022/{ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs.map → ngstarter-ui-components-form-renderer-divider-content-D8Sffofu.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs → ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs} +3 -3
- package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs.map → ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs.map} +1 -1
- package/fesm2022/ngstarter-ui-components-form-renderer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-gauge.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-gauge.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-grid.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-grid.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-guided-tour.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-guided-tour.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-image-placeholder.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-image-placeholder.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-image-resizer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-image-resizer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-image-viewer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-image-viewer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-incidents.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-incidents.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-kanban-board.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-kanban-board.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-kbd.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-kbd.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-list.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-list.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-logo.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-logo.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-menu.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-menu.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-micro-chart.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-micro-chart.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-navigation.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-navigation.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-notifications.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-notifications.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-number-input.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-number-input.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-option.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-option.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-paginator.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-password-strength.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-password-strength.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-phone-input.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-phone-input.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-popover.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-popover.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-progress-bar.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-progress-bar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-radio-card.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-radio-card.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-radio.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-radio.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-rail-nav.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-rail-nav.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-resizable-container.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-resizable-container.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-screen-loader.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-screen-loader.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-scroll-spy.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-scroll-spy.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-segmented.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-segmented.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-select.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-select.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-side-panel.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-side-panel.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-sidebar.mjs +14 -14
- package/fesm2022/ngstarter-ui-components-sidebar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-sidenav.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-sidenav.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-signature-pad.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-signature-pad.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-skeleton.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-skeleton.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-slide-toggle.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-slide-toggle.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-slider.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-slider.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-snack-bar.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-snack-bar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-spinner.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-spinner.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-splash-screen.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-splash-screen.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-split.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-split.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-stepper.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-suggestions.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-suggestions.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tab-panel.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-tab-panel.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-table.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-table.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tabs.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-text-editor.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-text-editor.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tiles.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-tiles.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-timeline.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-timeline.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-timepicker.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-timepicker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-toolbar.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-toolbar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tooltip.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-upload.mjs +10 -10
- package/fesm2022/ngstarter-ui-components-upload.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-video-viewer.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-video-viewer.mjs.map +1 -1
- package/package.json +15 -3
- package/schematics/collection.json +10 -0
- package/schematics/migrations.json +11 -0
- package/schematics/ng-add/index.d.ts +6 -0
- package/schematics/ng-add/index.js +14 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/schema.json +17 -0
- package/schematics/ng-update/index.d.ts +6 -0
- package/schematics/ng-update/index.js +14 -0
- package/schematics/ng-update/index.js.map +1 -0
- package/schematics/ng-update/schema.json +17 -0
- package/schematics/utils.d.ts +8 -0
- package/schematics/utils.js +305 -0
- package/schematics/utils.js.map +1 -0
- package/styles/_common.scss +84 -390
- package/styles/_global.scss +12 -12
- package/styles/_tokens.scss +1041 -0
- package/styles/themes/compact.scss +9 -0
- package/styles/themes/enterprise.scss +349 -0
- package/styles/themes/modern.scss +352 -0
- package/types/ngstarter-ui-components-comment-editor.d.ts +10 -2
- package/types/ngstarter-ui-components-core.d.ts +41 -5
|
@@ -154,7 +154,7 @@ class DialogContainer extends CdkDialogContainer {
|
|
|
154
154
|
this._cdr.markForCheck();
|
|
155
155
|
}
|
|
156
156
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DialogContainer, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
157
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: DialogContainer, isStandalone: true, selector: "ngs-dialog-container", host: { listeners: { "transitionend": "_onTransitionEnd($event)" }, properties: { "class.ngs-dialog-container-enter": "_animationState === \"enter\"", "class.ngs-dialog-container-exit": "_animationState === \"exit\"" }, classAttribute: "ngs-dialog-container" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet />\n", styles: [":host{background:var(--ngs-dialog-background, var(--
|
|
157
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: DialogContainer, isStandalone: true, selector: "ngs-dialog-container", host: { listeners: { "transitionend": "_onTransitionEnd($event)" }, properties: { "class.ngs-dialog-container-enter": "_animationState === \"enter\"", "class.ngs-dialog-container-exit": "_animationState === \"exit\"" }, classAttribute: "ngs-dialog-container" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet />\n", styles: [":host{background:var(--ngs-dialog-background, var(--ngs-dialog-bg));color:var(--ngs-dialog-color, var(--ngs-color-on-surface));border-radius:var(--ngs-dialog-border-radius, var(--ngs-dialog-radius));box-shadow:var(--ngs-dialog-box-shadow, var(--ngs-dialog-shadow));max-width:var(--ngs-dialog-container-max-width, 560px);min-width:var(--ngs-dialog-container-min-width, 280px);width:100%;height:100%;max-height:inherit;min-height:inherit;box-sizing:border-box;outline:0;overflow:hidden;margin:auto;opacity:0;transform:scale(.8);position:relative;display:flex;flex-direction:column}:host.ngs-dialog-container-enter{opacity:1;transform:scale(1);transition:opacity linear .15s,transform .2s cubic-bezier(0,0,.2,1)}:host.ngs-dialog-container-exit{opacity:0}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "directive", type: i1.ɵɵCdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
|
|
158
158
|
}
|
|
159
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DialogContainer, decorators: [{
|
|
160
160
|
type: Component,
|
|
@@ -163,7 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
163
163
|
'[class.ngs-dialog-container-enter]': '_animationState === "enter"',
|
|
164
164
|
'[class.ngs-dialog-container-exit]': '_animationState === "exit"',
|
|
165
165
|
'(transitionend)': '_onTransitionEnd($event)',
|
|
166
|
-
}, template: "<ng-template cdkPortalOutlet />\n", styles: [":host{background:var(--ngs-dialog-background, var(--
|
|
166
|
+
}, template: "<ng-template cdkPortalOutlet />\n", styles: [":host{background:var(--ngs-dialog-background, var(--ngs-dialog-bg));color:var(--ngs-dialog-color, var(--ngs-color-on-surface));border-radius:var(--ngs-dialog-border-radius, var(--ngs-dialog-radius));box-shadow:var(--ngs-dialog-box-shadow, var(--ngs-dialog-shadow));max-width:var(--ngs-dialog-container-max-width, 560px);min-width:var(--ngs-dialog-container-min-width, 280px);width:100%;height:100%;max-height:inherit;min-height:inherit;box-sizing:border-box;outline:0;overflow:hidden;margin:auto;opacity:0;transform:scale(.8);position:relative;display:flex;flex-direction:column}:host.ngs-dialog-container-enter{opacity:1;transform:scale(1);transition:opacity linear .15s,transform .2s cubic-bezier(0,0,.2,1)}:host.ngs-dialog-container-exit{opacity:0}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
167
167
|
}], propDecorators: { _portalOutlet: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkPortalOutlet), { isSignal: true }] }] } });
|
|
168
168
|
|
|
169
169
|
class Dialog {
|
|
@@ -285,31 +285,31 @@ class DialogTitle {
|
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
287
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DialogTitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
288
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: DialogTitle, isStandalone: true, selector: "ngs-dialog-title, [ngs-dialog-title], [ngsDialogTitle]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" }, classAttribute: "ngs-dialog-title" }, exportAs: ["ngsDialogTitle"], ngImport: i0, template: '<ng-content/>', isInline: true, styles: [":host{display:block;font-size:var(--ngs-dialog-title-font-size
|
|
288
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: DialogTitle, isStandalone: true, selector: "ngs-dialog-title, [ngs-dialog-title], [ngsDialogTitle]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "id()" }, classAttribute: "ngs-dialog-title" }, exportAs: ["ngsDialogTitle"], ngImport: i0, template: '<ng-content/>', isInline: true, styles: [":host{display:block;font-size:var(--ngs-dialog-title-font-size);font-weight:var(--ngs-dialog-title-font-weight);padding:var(--ngs-dialog-headline-padding, var(--ngs-dialog-header-padding));flex:none}:host:before{display:inline-block;width:0;height:40px;content:\"\";vertical-align:0}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
289
289
|
}
|
|
290
290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DialogTitle, decorators: [{
|
|
291
291
|
type: Component,
|
|
292
292
|
args: [{ selector: 'ngs-dialog-title, [ngs-dialog-title], [ngsDialogTitle]', exportAs: 'ngsDialogTitle', template: '<ng-content/>', host: {
|
|
293
293
|
'class': 'ngs-dialog-title',
|
|
294
294
|
'[id]': 'id()',
|
|
295
|
-
}, styles: [":host{display:block;font-size:var(--ngs-dialog-title-font-size
|
|
295
|
+
}, styles: [":host{display:block;font-size:var(--ngs-dialog-title-font-size);font-weight:var(--ngs-dialog-title-font-weight);padding:var(--ngs-dialog-headline-padding, var(--ngs-dialog-header-padding));flex:none}:host:before{display:inline-block;width:0;height:40px;content:\"\";vertical-align:0}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
296
296
|
}], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
|
|
297
297
|
|
|
298
298
|
class DialogContent {
|
|
299
299
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DialogContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
300
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: DialogContent, isStandalone: true, selector: "ngs-dialog-content,[ngs-dialog-content],[ngsDialogContent]", host: { classAttribute: "ngs-dialog-content" }, ngImport: i0, template: '<ng-content/>', isInline: true, styles: [":host{display:block;margin:0;padding:var(--ngs-dialog-with-content-padding,
|
|
300
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: DialogContent, isStandalone: true, selector: "ngs-dialog-content,[ngs-dialog-content],[ngsDialogContent]", host: { classAttribute: "ngs-dialog-content" }, ngImport: i0, template: '<ng-content/>', isInline: true, styles: [":host{display:block;margin:0;padding:var(--ngs-dialog-with-content-padding, calc(var(--spacing, .25rem) * 5) calc(var(--spacing, .25rem) * 6) calc(var(--spacing, .25rem) * 6));overflow:auto;-webkit-overflow-scrolling:touch;flex-grow:1}@media(min-height:640px){:host{max-height:65vh}}:host-context(ngs-dialog-container:has(.ngs-dialog-title)){padding-top:2px}:host-context(ngs-dialog-container:has(.ngs-dialog-actions)){padding-bottom:2px}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
301
301
|
}
|
|
302
302
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DialogContent, decorators: [{
|
|
303
303
|
type: Component,
|
|
304
304
|
args: [{ selector: 'ngs-dialog-content,[ngs-dialog-content],[ngsDialogContent]', template: '<ng-content/>', host: {
|
|
305
305
|
'class': 'ngs-dialog-content'
|
|
306
|
-
}, styles: [":host{display:block;margin:0;padding:var(--ngs-dialog-with-content-padding,
|
|
306
|
+
}, styles: [":host{display:block;margin:0;padding:var(--ngs-dialog-with-content-padding, calc(var(--spacing, .25rem) * 5) calc(var(--spacing, .25rem) * 6) calc(var(--spacing, .25rem) * 6));overflow:auto;-webkit-overflow-scrolling:touch;flex-grow:1}@media(min-height:640px){:host{max-height:65vh}}:host-context(ngs-dialog-container:has(.ngs-dialog-title)){padding-top:2px}:host-context(ngs-dialog-container:has(.ngs-dialog-actions)){padding-bottom:2px}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
307
307
|
}] });
|
|
308
308
|
|
|
309
309
|
class DialogActions {
|
|
310
310
|
align = input('end', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
311
311
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DialogActions, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
312
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: DialogActions, isStandalone: true, selector: "ngs-dialog-actions, [ngs-dialog-actions], [ngsDialogActions]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ngs-dialog-actions-align-center": "align() === \"center\"", "class.ngs-dialog-actions-align-end": "align() === \"end\"" }, classAttribute: "ngs-dialog-actions" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:flex;flex-wrap:wrap;min-height:
|
|
312
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: DialogActions, isStandalone: true, selector: "ngs-dialog-actions, [ngs-dialog-actions], [ngsDialogActions]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ngs-dialog-actions-align-center": "align() === \"center\"", "class.ngs-dialog-actions-align-end": "align() === \"end\"" }, classAttribute: "ngs-dialog-actions" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:flex;flex-wrap:wrap;min-height:var(--ngs-control-height-lg);align-items:center;box-sizing:content-box;gap:calc(var(--spacing, .25rem) * 2);padding:var(--ngs-dialog-actions-padding, calc(var(--spacing, .25rem) * 4) calc(var(--spacing, .25rem) * 6));flex:none}:host.ngs-dialog-actions-align-center{justify-content:center}:host.ngs-dialog-actions-align-end{justify-content:flex-end}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
313
313
|
}
|
|
314
314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DialogActions, decorators: [{
|
|
315
315
|
type: Component,
|
|
@@ -317,7 +317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
317
317
|
'class': 'ngs-dialog-actions',
|
|
318
318
|
'[class.ngs-dialog-actions-align-center]': 'align() === "center"',
|
|
319
319
|
'[class.ngs-dialog-actions-align-end]': 'align() === "end"',
|
|
320
|
-
}, styles: [":host{display:flex;flex-wrap:wrap;min-height:
|
|
320
|
+
}, styles: [":host{display:flex;flex-wrap:wrap;min-height:var(--ngs-control-height-lg);align-items:center;box-sizing:content-box;gap:calc(var(--spacing, .25rem) * 2);padding:var(--ngs-dialog-actions-padding, calc(var(--spacing, .25rem) * 4) calc(var(--spacing, .25rem) * 6));flex:none}:host.ngs-dialog-actions-align-center{justify-content:center}:host.ngs-dialog-actions-align-end{justify-content:flex-end}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
321
321
|
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }] } });
|
|
322
322
|
|
|
323
323
|
class DialogClose {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-dialog.mjs","sources":["../../../projects/components/dialog/src/dialog-config.ts","../../../projects/components/dialog/src/dialog-ref.ts","../../../projects/components/dialog/src/dialog-container/dialog-container.ts","../../../projects/components/dialog/src/dialog-container/dialog-container.html","../../../projects/components/dialog/src/dialog.service.ts","../../../projects/components/dialog/src/dialog-title/dialog-title.ts","../../../projects/components/dialog/src/dialog-content/dialog-content.ts","../../../projects/components/dialog/src/dialog-actions/dialog-actions.ts","../../../projects/components/dialog/src/dialog-close.ts","../../../projects/components/dialog/ngstarter-ui-components-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport class DialogConfig<D = any> {\n data?: D | null = null;\n width?: string = '';\n height?: string = '';\n minWidth?: string | number;\n minHeight?: string | number;\n maxWidth?: string | number;\n maxHeight?: string | number;\n hasBackdrop?: boolean = true;\n backdropClass?: string | string[] = 'ngs-dialog-backdrop';\n panelClass?: string | string[] = '';\n disableClose?: boolean = false;\n autoFocus?: boolean | string = 'first-tabbable';\n restoreFocus?: boolean = true;\n ariaDescribedBy?: string | null = null;\n ariaLabelledBy?: string | null = null;\n ariaLabel?: string | null = null;\n role?: 'dialog' | 'alertdialog' = 'dialog';\n closeOnNavigation?: boolean = true;\n}\n\nexport const DIALOG_DATA = new InjectionToken<any>('DialogData');\nexport const DIALOG_DEFAULT_OPTIONS = new InjectionToken<DialogConfig>('DialogConfig');\n","import { Subject, Observable, filter, take } from 'rxjs';\nimport { DialogContainer } from './dialog-container/dialog-container';\n\nexport class DialogRef<T, R = any> {\n private readonly _afterClosed = new Subject<R | undefined>();\n private readonly _afterOpened = new Subject<void>();\n private readonly _backdropClick = new Subject<MouseEvent>();\n private readonly _keydownEvents = new Subject<KeyboardEvent>();\n\n componentInstance: T | null = null;\n disableClose: boolean | undefined;\n\n /** @internal */\n _cdkRef: any;\n\n /** @internal */\n _container: DialogContainer | undefined;\n\n private _isClosing = false;\n\n close(dialogResult?: R): void {\n if (this._isClosing) {\n return;\n }\n\n this._isClosing = true;\n\n if (this._container && this._cdkRef) {\n\n // Start exit animation for the container\n this._container._startExitAnimation();\n\n // Start exit animation for the backdrop\n const overlayRef = this._cdkRef.overlayRef;\n const backdropElement = overlayRef.backdropElement;\n if (backdropElement) {\n // Remove both classes that could be forcing opacity: 1\n backdropElement.classList.remove('ngs-dialog-backdrop-showing');\n backdropElement.classList.remove('cdk-overlay-backdrop-showing');\n }\n\n // Wait for the container animation to finish before destroying the overlay\n this._container._animationStateChanged\n .pipe(\n filter((event: any) => event.phaseName === 'done' && event.toState === 'exit'),\n take(1)\n )\n .subscribe(() => {\n this._finishClose(dialogResult);\n });\n\n // Fallback in case transitionend never fires (e.g. if opacity was already 0 or style didn't apply)\n setTimeout(() => {\n if (this._isClosing && this._cdkRef) {\n this._finishClose(dialogResult);\n }\n }, 250);\n\n return;\n }\n this._finishClose(dialogResult);\n }\n\n private _finishClose(dialogResult?: R): void {\n if (this._cdkRef) {\n const cdkRef = this._cdkRef;\n this._cdkRef = null;\n cdkRef.close(dialogResult);\n }\n this._afterClosed.next(dialogResult);\n this._afterClosed.complete();\n this._afterOpened.complete();\n this._backdropClick.complete();\n this._keydownEvents.complete();\n }\n\n afterClosed(): Observable<R | undefined> {\n return this._afterClosed.asObservable();\n }\n\n afterOpened(): Observable<void> {\n return this._afterOpened.asObservable();\n }\n\n backdropClick(): Observable<MouseEvent> {\n return this._backdropClick.asObservable();\n }\n\n keydownEvents(): Observable<KeyboardEvent> {\n return this._keydownEvents.asObservable();\n }\n\n __fireAfterOpened(): void {\n this._afterOpened.next();\n }\n\n __fireBackdropClick(event: MouseEvent): void {\n this._backdropClick.next(event);\n }\n\n __fireKeydownEvent(event: KeyboardEvent): void {\n this._keydownEvents.next(event);\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, inject, viewChild, ElementRef, OnInit } from '@angular/core';\nimport { CdkDialogContainer, DialogModule } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\n\n@Component({\n selector: 'ngs-dialog-container',\n imports: [DialogModule],\n templateUrl: './dialog-container.html',\n styleUrls: ['./dialog-container.scss'],\n host: {\n 'class': 'ngs-dialog-container',\n '[class.ngs-dialog-container-enter]': '_animationState === \"enter\"',\n '[class.ngs-dialog-container-exit]': '_animationState === \"exit\"',\n '(transitionend)': '_onTransitionEnd($event)',\n },\n})\nexport class DialogContainer extends CdkDialogContainer implements OnInit {\n private readonly _cdr = inject(ChangeDetectorRef);\n\n override readonly _portalOutlet = viewChild(CdkPortalOutlet) as any;\n\n /** State of the dialog animation. */\n _animationState: 'void' | 'enter' | 'exit' = 'void';\n\n /** Emits when an animation state changes. */\n _animationStateChanged = new EventEmitter<any>();\n\n ngOnInit() {\n const config = this._config;\n if (config) {\n const element = (this as any)._elementRef.nativeElement;\n\n if (config.maxWidth) {\n element.style.setProperty('--ngs-dialog-container-max-width', this._formatValue(config.maxWidth));\n }\n\n if (config.minWidth) {\n element.style.setProperty('--ngs-dialog-container-min-width', this._formatValue(config.minWidth));\n }\n\n if (config.width) {\n element.style.setProperty('--ngs-dialog-container-max-width', 'none');\n }\n }\n }\n\n private _formatValue(value: string | number): string {\n return typeof value === 'number' ? `${value}px` : value;\n }\n\n _onTransitionEnd(event: TransitionEvent) {\n if (event.propertyName === 'opacity' && event.target === event.currentTarget) {\n this._animationStateChanged.emit({\n fromState: this._animationState === 'enter' ? 'void' : 'enter',\n toState: this._animationState,\n totalTime: 150,\n phaseName: 'done',\n } as any);\n }\n }\n\n /** Starts the dialog enter animation. */\n _startEnterAnimation(): void {\n this._animationState = 'enter';\n this._cdr.markForCheck();\n }\n\n /** Starts the dialog exit animation. */\n _startExitAnimation(): void {\n this._animationState = 'exit';\n this._cdr.markForCheck();\n }\n}\n","<ng-template cdkPortalOutlet />\n","import { Injectable, Injector, Type, TemplateRef, inject, StaticProvider } from '@angular/core';\nimport { Dialog as CdkDialog, DialogConfig as CdkDialogConfig, DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\nimport { filter, take } from 'rxjs/operators';\nimport { DialogConfig, DIALOG_DATA, DIALOG_DEFAULT_OPTIONS } from './dialog-config';\nimport { DialogRef } from './dialog-ref';\nimport { DialogContainer } from './dialog-container/dialog-container';\nimport { ComponentType } from '@angular/cdk/portal';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Dialog {\n private readonly _cdkDialog = inject(CdkDialog);\n private readonly _injector = inject(Injector);\n private readonly _defaultOptions = inject(DIALOG_DEFAULT_OPTIONS, { optional: true });\n\n open<T, D = any, R = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: DialogConfig<D>\n ): DialogRef<T, R> {\n const dialogRef = new DialogRef<T, R>();\n const mergedConfig = { ...new DialogConfig(), ...this._defaultOptions, ...config };\n\n // Set default maxWidth if not specified and no width is set\n if (!mergedConfig.maxWidth && !mergedConfig.width) {\n mergedConfig.maxWidth = 560;\n }\n\n // Set default minWidth if not specified\n if (!mergedConfig.minWidth) {\n mergedConfig.minWidth = 280;\n }\n\n let container: DialogContainer | undefined;\n const cdkConfig: CdkDialogConfig<D, any, DialogContainer> = {\n ...mergedConfig,\n container: DialogContainer,\n panelClass: this._buildPanelClass(mergedConfig?.panelClass),\n backdropClass: this._buildBackdropClass(mergedConfig?.backdropClass),\n providers: (ref: any, config: any, _container: DialogContainer) => {\n container = _container;\n dialogRef._container = _container;\n return [\n { provide: DialogRef, useValue: dialogRef },\n { provide: DIALOG_DATA, useValue: config?.data }\n ];\n }\n };\n\n const cdkRef = this._cdkDialog.open(componentOrTemplateRef, cdkConfig as any);\n\n dialogRef.disableClose = mergedConfig?.disableClose;\n dialogRef._cdkRef = cdkRef;\n\n if (container) {\n container._animationStateChanged\n .pipe(\n filter((event: any) => event.phaseName === 'done' && event.toState === 'enter'),\n take(1)\n )\n .subscribe(() => {\n dialogRef.__fireAfterOpened();\n });\n\n // Use double rAF to ensure the browser has rendered the initial state (opacity: 0)\n // before we trigger the transition to opacity: 1.\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (container) {\n container._startEnterAnimation();\n }\n\n const overlayRef = cdkRef.overlayRef;\n if (overlayRef.backdropElement) {\n overlayRef.backdropElement.classList.add('ngs-dialog-backdrop-showing');\n }\n });\n });\n }\n\n cdkRef.closed.subscribe(result => {\n if (dialogRef._cdkRef) {\n dialogRef._cdkRef = null;\n dialogRef.close(result as R);\n }\n });\n\n cdkRef.backdropClick.subscribe(event => {\n dialogRef.__fireBackdropClick(event);\n if (!dialogRef.disableClose) {\n dialogRef.close();\n }\n });\n\n cdkRef.keydownEvents.subscribe(event => {\n dialogRef.__fireKeydownEvent(event);\n if (event.key === 'Escape' && !dialogRef.disableClose) {\n dialogRef.close();\n }\n });\n\n return dialogRef;\n }\n\n close<T, R>(dialogRef: DialogRef<T, R>, result?: R): void {\n dialogRef.close(result);\n }\n\n closeAll(): void {\n this._cdkDialog.closeAll();\n }\n\n private _buildPanelClass(panelClass: string | string[] | undefined): string[] {\n const classes = ['ngs-dialog-panel', 'overflow-hidden', 'flex', 'flex-col'];\n\n if (Array.isArray(panelClass)) {\n classes.push(...panelClass);\n } else if (panelClass) {\n classes.push(panelClass);\n }\n\n return classes;\n }\n\n private _buildBackdropClass(backdropClass: string | string[] | undefined): string[] {\n const classes: string[] = ['ngs-dialog-backdrop'];\n\n if (Array.isArray(backdropClass)) {\n classes.push(...backdropClass);\n } else if (backdropClass) {\n classes.push(backdropClass);\n }\n\n return classes;\n }\n}\n","import { Component, input, OnInit, inject } from '@angular/core';\nimport { DialogRef } from '../dialog-ref';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'ngs-dialog-title, [ngs-dialog-title], [ngsDialogTitle]',\n exportAs: 'ngsDialogTitle',\n template: '<ng-content/>',\n styleUrl: './dialog-title.scss',\n host: {\n 'class': 'ngs-dialog-title',\n '[id]': 'id()',\n },\n})\nexport class DialogTitle implements OnInit {\n private _dialogRef = inject(DialogRef, { optional: true });\n\n id = input<string>(`ngs-dialog-title-${nextUniqueId++}`);\n\n ngOnInit() {\n if (this._dialogRef && !this._dialogRef.disableClose) {\n // Logic for ARIA if needed\n }\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-dialog-content,[ngs-dialog-content],[ngsDialogContent]',\n styleUrl: './dialog-content.scss',\n template: '<ng-content/>',\n host: {\n 'class': 'ngs-dialog-content'\n }\n})\nexport class DialogContent {}\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ngs-dialog-actions, [ngs-dialog-actions], [ngsDialogActions]',\n styleUrl: './dialog-actions.scss',\n template: '<ng-content />',\n host: {\n 'class': 'ngs-dialog-actions',\n '[class.ngs-dialog-actions-align-center]': 'align() === \"center\"',\n '[class.ngs-dialog-actions-align-end]': 'align() === \"end\"',\n }\n})\nexport class DialogActions {\n align = input<'start' | 'center' | 'end'>('end');\n}\n","import { Directive, input, inject } from '@angular/core';\nimport { DialogRef } from './dialog-ref';\nimport { Dialog } from './dialog.service';\n\n@Directive({\n selector: '[ngs-dialog-close], [ngsDialogClose]',\n exportAs: 'ngsDialogClose',\n standalone: true,\n host: {\n '[attr.aria-label]': 'ariaLabel() || null',\n '[attr.type]': 'type()',\n '(click)': '_onClick()',\n }\n})\nexport class DialogClose {\n dialogResult = input<any>(undefined, {\n alias: 'ngs-dialog-close'\n });\n _dialogResult = input<any>(undefined, {\n alias: 'ngsDialogClose'\n });\n ariaLabel = input<string | null>(null);\n type = input<'submit' | 'button' | 'reset'>('button');\n\n private _dialogRef = inject(DialogRef, { optional: true });\n private _dialog = inject(Dialog);\n\n protected _onClick() {\n if (this._dialogRef) {\n this._dialog.close(this._dialogRef, this.dialogResult() || this._dialogResult());\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["CdkDialog","filter","take"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-dialog.mjs","sources":["../../../projects/components/dialog/src/dialog-config.ts","../../../projects/components/dialog/src/dialog-ref.ts","../../../projects/components/dialog/src/dialog-container/dialog-container.ts","../../../projects/components/dialog/src/dialog-container/dialog-container.html","../../../projects/components/dialog/src/dialog.service.ts","../../../projects/components/dialog/src/dialog-title/dialog-title.ts","../../../projects/components/dialog/src/dialog-content/dialog-content.ts","../../../projects/components/dialog/src/dialog-actions/dialog-actions.ts","../../../projects/components/dialog/src/dialog-close.ts","../../../projects/components/dialog/ngstarter-ui-components-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport class DialogConfig<D = any> {\n data?: D | null = null;\n width?: string = '';\n height?: string = '';\n minWidth?: string | number;\n minHeight?: string | number;\n maxWidth?: string | number;\n maxHeight?: string | number;\n hasBackdrop?: boolean = true;\n backdropClass?: string | string[] = 'ngs-dialog-backdrop';\n panelClass?: string | string[] = '';\n disableClose?: boolean = false;\n autoFocus?: boolean | string = 'first-tabbable';\n restoreFocus?: boolean = true;\n ariaDescribedBy?: string | null = null;\n ariaLabelledBy?: string | null = null;\n ariaLabel?: string | null = null;\n role?: 'dialog' | 'alertdialog' = 'dialog';\n closeOnNavigation?: boolean = true;\n}\n\nexport const DIALOG_DATA = new InjectionToken<any>('DialogData');\nexport const DIALOG_DEFAULT_OPTIONS = new InjectionToken<DialogConfig>('DialogConfig');\n","import { Subject, Observable, filter, take } from 'rxjs';\nimport { DialogContainer } from './dialog-container/dialog-container';\n\nexport class DialogRef<T, R = any> {\n private readonly _afterClosed = new Subject<R | undefined>();\n private readonly _afterOpened = new Subject<void>();\n private readonly _backdropClick = new Subject<MouseEvent>();\n private readonly _keydownEvents = new Subject<KeyboardEvent>();\n\n componentInstance: T | null = null;\n disableClose: boolean | undefined;\n\n /** @internal */\n _cdkRef: any;\n\n /** @internal */\n _container: DialogContainer | undefined;\n\n private _isClosing = false;\n\n close(dialogResult?: R): void {\n if (this._isClosing) {\n return;\n }\n\n this._isClosing = true;\n\n if (this._container && this._cdkRef) {\n\n // Start exit animation for the container\n this._container._startExitAnimation();\n\n // Start exit animation for the backdrop\n const overlayRef = this._cdkRef.overlayRef;\n const backdropElement = overlayRef.backdropElement;\n if (backdropElement) {\n // Remove both classes that could be forcing opacity: 1\n backdropElement.classList.remove('ngs-dialog-backdrop-showing');\n backdropElement.classList.remove('cdk-overlay-backdrop-showing');\n }\n\n // Wait for the container animation to finish before destroying the overlay\n this._container._animationStateChanged\n .pipe(\n filter((event: any) => event.phaseName === 'done' && event.toState === 'exit'),\n take(1)\n )\n .subscribe(() => {\n this._finishClose(dialogResult);\n });\n\n // Fallback in case transitionend never fires (e.g. if opacity was already 0 or style didn't apply)\n setTimeout(() => {\n if (this._isClosing && this._cdkRef) {\n this._finishClose(dialogResult);\n }\n }, 250);\n\n return;\n }\n this._finishClose(dialogResult);\n }\n\n private _finishClose(dialogResult?: R): void {\n if (this._cdkRef) {\n const cdkRef = this._cdkRef;\n this._cdkRef = null;\n cdkRef.close(dialogResult);\n }\n this._afterClosed.next(dialogResult);\n this._afterClosed.complete();\n this._afterOpened.complete();\n this._backdropClick.complete();\n this._keydownEvents.complete();\n }\n\n afterClosed(): Observable<R | undefined> {\n return this._afterClosed.asObservable();\n }\n\n afterOpened(): Observable<void> {\n return this._afterOpened.asObservable();\n }\n\n backdropClick(): Observable<MouseEvent> {\n return this._backdropClick.asObservable();\n }\n\n keydownEvents(): Observable<KeyboardEvent> {\n return this._keydownEvents.asObservable();\n }\n\n __fireAfterOpened(): void {\n this._afterOpened.next();\n }\n\n __fireBackdropClick(event: MouseEvent): void {\n this._backdropClick.next(event);\n }\n\n __fireKeydownEvent(event: KeyboardEvent): void {\n this._keydownEvents.next(event);\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, inject, viewChild, ElementRef, OnInit } from '@angular/core';\nimport { CdkDialogContainer, DialogModule } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\n\n@Component({\n selector: 'ngs-dialog-container',\n imports: [DialogModule],\n templateUrl: './dialog-container.html',\n styleUrls: ['./dialog-container.scss'],\n host: {\n 'class': 'ngs-dialog-container',\n '[class.ngs-dialog-container-enter]': '_animationState === \"enter\"',\n '[class.ngs-dialog-container-exit]': '_animationState === \"exit\"',\n '(transitionend)': '_onTransitionEnd($event)',\n },\n})\nexport class DialogContainer extends CdkDialogContainer implements OnInit {\n private readonly _cdr = inject(ChangeDetectorRef);\n\n override readonly _portalOutlet = viewChild(CdkPortalOutlet) as any;\n\n /** State of the dialog animation. */\n _animationState: 'void' | 'enter' | 'exit' = 'void';\n\n /** Emits when an animation state changes. */\n _animationStateChanged = new EventEmitter<any>();\n\n ngOnInit() {\n const config = this._config;\n if (config) {\n const element = (this as any)._elementRef.nativeElement;\n\n if (config.maxWidth) {\n element.style.setProperty('--ngs-dialog-container-max-width', this._formatValue(config.maxWidth));\n }\n\n if (config.minWidth) {\n element.style.setProperty('--ngs-dialog-container-min-width', this._formatValue(config.minWidth));\n }\n\n if (config.width) {\n element.style.setProperty('--ngs-dialog-container-max-width', 'none');\n }\n }\n }\n\n private _formatValue(value: string | number): string {\n return typeof value === 'number' ? `${value}px` : value;\n }\n\n _onTransitionEnd(event: TransitionEvent) {\n if (event.propertyName === 'opacity' && event.target === event.currentTarget) {\n this._animationStateChanged.emit({\n fromState: this._animationState === 'enter' ? 'void' : 'enter',\n toState: this._animationState,\n totalTime: 150,\n phaseName: 'done',\n } as any);\n }\n }\n\n /** Starts the dialog enter animation. */\n _startEnterAnimation(): void {\n this._animationState = 'enter';\n this._cdr.markForCheck();\n }\n\n /** Starts the dialog exit animation. */\n _startExitAnimation(): void {\n this._animationState = 'exit';\n this._cdr.markForCheck();\n }\n}\n","<ng-template cdkPortalOutlet />\n","import { Injectable, Injector, Type, TemplateRef, inject, StaticProvider } from '@angular/core';\nimport { Dialog as CdkDialog, DialogConfig as CdkDialogConfig, DialogRef as CdkDialogRef } from '@angular/cdk/dialog';\nimport { filter, take } from 'rxjs/operators';\nimport { DialogConfig, DIALOG_DATA, DIALOG_DEFAULT_OPTIONS } from './dialog-config';\nimport { DialogRef } from './dialog-ref';\nimport { DialogContainer } from './dialog-container/dialog-container';\nimport { ComponentType } from '@angular/cdk/portal';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Dialog {\n private readonly _cdkDialog = inject(CdkDialog);\n private readonly _injector = inject(Injector);\n private readonly _defaultOptions = inject(DIALOG_DEFAULT_OPTIONS, { optional: true });\n\n open<T, D = any, R = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: DialogConfig<D>\n ): DialogRef<T, R> {\n const dialogRef = new DialogRef<T, R>();\n const mergedConfig = { ...new DialogConfig(), ...this._defaultOptions, ...config };\n\n // Set default maxWidth if not specified and no width is set\n if (!mergedConfig.maxWidth && !mergedConfig.width) {\n mergedConfig.maxWidth = 560;\n }\n\n // Set default minWidth if not specified\n if (!mergedConfig.minWidth) {\n mergedConfig.minWidth = 280;\n }\n\n let container: DialogContainer | undefined;\n const cdkConfig: CdkDialogConfig<D, any, DialogContainer> = {\n ...mergedConfig,\n container: DialogContainer,\n panelClass: this._buildPanelClass(mergedConfig?.panelClass),\n backdropClass: this._buildBackdropClass(mergedConfig?.backdropClass),\n providers: (ref: any, config: any, _container: DialogContainer) => {\n container = _container;\n dialogRef._container = _container;\n return [\n { provide: DialogRef, useValue: dialogRef },\n { provide: DIALOG_DATA, useValue: config?.data }\n ];\n }\n };\n\n const cdkRef = this._cdkDialog.open(componentOrTemplateRef, cdkConfig as any);\n\n dialogRef.disableClose = mergedConfig?.disableClose;\n dialogRef._cdkRef = cdkRef;\n\n if (container) {\n container._animationStateChanged\n .pipe(\n filter((event: any) => event.phaseName === 'done' && event.toState === 'enter'),\n take(1)\n )\n .subscribe(() => {\n dialogRef.__fireAfterOpened();\n });\n\n // Use double rAF to ensure the browser has rendered the initial state (opacity: 0)\n // before we trigger the transition to opacity: 1.\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (container) {\n container._startEnterAnimation();\n }\n\n const overlayRef = cdkRef.overlayRef;\n if (overlayRef.backdropElement) {\n overlayRef.backdropElement.classList.add('ngs-dialog-backdrop-showing');\n }\n });\n });\n }\n\n cdkRef.closed.subscribe(result => {\n if (dialogRef._cdkRef) {\n dialogRef._cdkRef = null;\n dialogRef.close(result as R);\n }\n });\n\n cdkRef.backdropClick.subscribe(event => {\n dialogRef.__fireBackdropClick(event);\n if (!dialogRef.disableClose) {\n dialogRef.close();\n }\n });\n\n cdkRef.keydownEvents.subscribe(event => {\n dialogRef.__fireKeydownEvent(event);\n if (event.key === 'Escape' && !dialogRef.disableClose) {\n dialogRef.close();\n }\n });\n\n return dialogRef;\n }\n\n close<T, R>(dialogRef: DialogRef<T, R>, result?: R): void {\n dialogRef.close(result);\n }\n\n closeAll(): void {\n this._cdkDialog.closeAll();\n }\n\n private _buildPanelClass(panelClass: string | string[] | undefined): string[] {\n const classes = ['ngs-dialog-panel', 'overflow-hidden', 'flex', 'flex-col'];\n\n if (Array.isArray(panelClass)) {\n classes.push(...panelClass);\n } else if (panelClass) {\n classes.push(panelClass);\n }\n\n return classes;\n }\n\n private _buildBackdropClass(backdropClass: string | string[] | undefined): string[] {\n const classes: string[] = ['ngs-dialog-backdrop'];\n\n if (Array.isArray(backdropClass)) {\n classes.push(...backdropClass);\n } else if (backdropClass) {\n classes.push(backdropClass);\n }\n\n return classes;\n }\n}\n","import { Component, input, OnInit, inject } from '@angular/core';\nimport { DialogRef } from '../dialog-ref';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'ngs-dialog-title, [ngs-dialog-title], [ngsDialogTitle]',\n exportAs: 'ngsDialogTitle',\n template: '<ng-content/>',\n styleUrl: './dialog-title.scss',\n host: {\n 'class': 'ngs-dialog-title',\n '[id]': 'id()',\n },\n})\nexport class DialogTitle implements OnInit {\n private _dialogRef = inject(DialogRef, { optional: true });\n\n id = input<string>(`ngs-dialog-title-${nextUniqueId++}`);\n\n ngOnInit() {\n if (this._dialogRef && !this._dialogRef.disableClose) {\n // Logic for ARIA if needed\n }\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-dialog-content,[ngs-dialog-content],[ngsDialogContent]',\n styleUrl: './dialog-content.scss',\n template: '<ng-content/>',\n host: {\n 'class': 'ngs-dialog-content'\n }\n})\nexport class DialogContent {}\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ngs-dialog-actions, [ngs-dialog-actions], [ngsDialogActions]',\n styleUrl: './dialog-actions.scss',\n template: '<ng-content />',\n host: {\n 'class': 'ngs-dialog-actions',\n '[class.ngs-dialog-actions-align-center]': 'align() === \"center\"',\n '[class.ngs-dialog-actions-align-end]': 'align() === \"end\"',\n }\n})\nexport class DialogActions {\n align = input<'start' | 'center' | 'end'>('end');\n}\n","import { Directive, input, inject } from '@angular/core';\nimport { DialogRef } from './dialog-ref';\nimport { Dialog } from './dialog.service';\n\n@Directive({\n selector: '[ngs-dialog-close], [ngsDialogClose]',\n exportAs: 'ngsDialogClose',\n standalone: true,\n host: {\n '[attr.aria-label]': 'ariaLabel() || null',\n '[attr.type]': 'type()',\n '(click)': '_onClick()',\n }\n})\nexport class DialogClose {\n dialogResult = input<any>(undefined, {\n alias: 'ngs-dialog-close'\n });\n _dialogResult = input<any>(undefined, {\n alias: 'ngsDialogClose'\n });\n ariaLabel = input<string | null>(null);\n type = input<'submit' | 'button' | 'reset'>('button');\n\n private _dialogRef = inject(DialogRef, { optional: true });\n private _dialog = inject(Dialog);\n\n protected _onClick() {\n if (this._dialogRef) {\n this._dialog.close(this._dialogRef, this.dialogResult() || this._dialogResult());\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["CdkDialog","filter","take"],"mappings":"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"}
|
|
@@ -3,13 +3,13 @@ import { Component, input, booleanAttribute } from '@angular/core';
|
|
|
3
3
|
|
|
4
4
|
class TextDivider {
|
|
5
5
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: TextDivider, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: TextDivider, isStandalone: true, selector: "ngs-text-divider", host: { classAttribute: "ngs-text-divider" }, exportAs: ["ngsTextDivider"], ngImport: i0, template: "<div class=\"line-start\"></div>\n<div class=\"text\">\n <ng-content/>\n</div>\n<div class=\"line-end\"></div>\n", styles: [":host{display:flex;width:100%;align-items:center;gap:calc(var(--spacing, .25rem) * 4);flex-wrap:nowrap}:host .text{white-space:nowrap}:host .line-start{position:relative;flex-grow:1}:host .line-start:before{content:\"\";position:absolute;height:1px;background:var(--color-border);top:50%;width:100%}:host .line-end{position:relative;flex-grow:1}:host .line-end:before{content:\"\";position:absolute;height:1px;background:var(--color-border);top:50%;width:100%}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
6
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: TextDivider, isStandalone: true, selector: "ngs-text-divider", host: { classAttribute: "ngs-text-divider" }, exportAs: ["ngsTextDivider"], ngImport: i0, template: "<div class=\"line-start\"></div>\n<div class=\"text\">\n <ng-content/>\n</div>\n<div class=\"line-end\"></div>\n", styles: [":host{display:flex;width:100%;align-items:center;gap:calc(var(--spacing, .25rem) * 4);flex-wrap:nowrap}:host .text{white-space:nowrap}:host .line-start{position:relative;flex-grow:1}:host .line-start:before{content:\"\";position:absolute;height:1px;background:var(--ngs-color-border);top:50%;width:100%}:host .line-end{position:relative;flex-grow:1}:host .line-end:before{content:\"\";position:absolute;height:1px;background:var(--ngs-color-border);top:50%;width:100%}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
7
7
|
}
|
|
8
8
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: TextDivider, decorators: [{
|
|
9
9
|
type: Component,
|
|
10
10
|
args: [{ selector: 'ngs-text-divider', exportAs: 'ngsTextDivider', host: {
|
|
11
11
|
'class': 'ngs-text-divider',
|
|
12
|
-
}, template: "<div class=\"line-start\"></div>\n<div class=\"text\">\n <ng-content/>\n</div>\n<div class=\"line-end\"></div>\n", styles: [":host{display:flex;width:100%;align-items:center;gap:calc(var(--spacing, .25rem) * 4);flex-wrap:nowrap}:host .text{white-space:nowrap}:host .line-start{position:relative;flex-grow:1}:host .line-start:before{content:\"\";position:absolute;height:1px;background:var(--color-border);top:50%;width:100%}:host .line-end{position:relative;flex-grow:1}:host .line-end:before{content:\"\";position:absolute;height:1px;background:var(--color-border);top:50%;width:100%}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
12
|
+
}, template: "<div class=\"line-start\"></div>\n<div class=\"text\">\n <ng-content/>\n</div>\n<div class=\"line-end\"></div>\n", styles: [":host{display:flex;width:100%;align-items:center;gap:calc(var(--spacing, .25rem) * 4);flex-wrap:nowrap}:host .text{white-space:nowrap}:host .line-start{position:relative;flex-grow:1}:host .line-start:before{content:\"\";position:absolute;height:1px;background:var(--ngs-color-border);top:50%;width:100%}:host .line-end{position:relative;flex-grow:1}:host .line-end:before{content:\"\";position:absolute;height:1px;background:var(--ngs-color-border);top:50%;width:100%}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
13
13
|
}] });
|
|
14
14
|
|
|
15
15
|
class Divider {
|
|
@@ -19,7 +19,7 @@ class Divider {
|
|
|
19
19
|
inset = input(false, { ...(ngDevMode ? { debugName: "inset" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
20
20
|
fixedHeight = input(false, { ...(ngDevMode ? { debugName: "fixedHeight" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
21
21
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Divider, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: Divider, isStandalone: true, selector: "ngs-divider", inputs: { vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, fixedHeight: { classPropertyName: "fixedHeight", publicName: "fixedHeight", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "vertical() ? \"vertical\" : \"horizontal\"", "class.ngs-divider-vertical": "vertical()", "class.ngs-divider-horizontal": "!vertical()", "class.ngs-divider-inset": "inset()", "class.is-fixed-height": "fixedHeight()" }, classAttribute: "ngs-divider" }, exportAs: ["ngsDivider"], ngImport: i0, template: '', isInline: true, styles: [":host{--ngs-divider-vertical-fixed-height: calc(var(--spacing, .25rem) * 5);display:block;border-top-style:solid;border-top-color:var(--color-border);flex:none}:host.ngs-divider-horizontal{border-top-width:1px}:host.ngs-divider-horizontal.ngs-divider-inset{margin-left:80px}[dir=rtl] :host.ngs-divider-horizontal.ngs-divider-inset{margin-left:0;margin-right:80px}:host.ngs-divider-vertical{display:inline-block;border-top-width:0;border-right-style:solid;border-right-color:var(--color-border);border-right-width:1px;vertical-align:middle;height:100%}:host.ngs-divider-vertical.ngs-divider-inset{margin-top:8px;margin-bottom:8px}:host.ngs-divider-vertical.is-fixed-height:not([class*=h-]){height:var(--ngs-divider-vertical-fixed-height)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
22
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: Divider, isStandalone: true, selector: "ngs-divider", inputs: { vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, inset: { classPropertyName: "inset", publicName: "inset", isSignal: true, isRequired: false, transformFunction: null }, fixedHeight: { classPropertyName: "fixedHeight", publicName: "fixedHeight", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "vertical() ? \"vertical\" : \"horizontal\"", "class.ngs-divider-vertical": "vertical()", "class.ngs-divider-horizontal": "!vertical()", "class.ngs-divider-inset": "inset()", "class.is-fixed-height": "fixedHeight()" }, classAttribute: "ngs-divider" }, exportAs: ["ngsDivider"], ngImport: i0, template: '', isInline: true, styles: [":host{--ngs-divider-vertical-fixed-height: calc(var(--spacing, .25rem) * 5);display:block;border-top-style:solid;border-top-color:var(--ngs-color-border);flex:none}:host.ngs-divider-horizontal{border-top-width:1px}:host.ngs-divider-horizontal.ngs-divider-inset{margin-left:80px}[dir=rtl] :host.ngs-divider-horizontal.ngs-divider-inset{margin-left:0;margin-right:80px}:host.ngs-divider-vertical{display:inline-block;border-top-width:0;border-right-style:solid;border-right-color:var(--ngs-color-border);border-right-width:1px;vertical-align:middle;height:100%}:host.ngs-divider-vertical.ngs-divider-inset{margin-top:8px;margin-bottom:8px}:host.ngs-divider-vertical.is-fixed-height:not([class*=h-]){height:var(--ngs-divider-vertical-fixed-height)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
23
23
|
}
|
|
24
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Divider, decorators: [{
|
|
25
25
|
type: Component,
|
|
@@ -31,7 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
31
31
|
'[class.ngs-divider-horizontal]': '!vertical()',
|
|
32
32
|
'[class.ngs-divider-inset]': 'inset()',
|
|
33
33
|
'[class.is-fixed-height]': 'fixedHeight()',
|
|
34
|
-
}, styles: [":host{--ngs-divider-vertical-fixed-height: calc(var(--spacing, .25rem) * 5);display:block;border-top-style:solid;border-top-color:var(--color-border);flex:none}:host.ngs-divider-horizontal{border-top-width:1px}:host.ngs-divider-horizontal.ngs-divider-inset{margin-left:80px}[dir=rtl] :host.ngs-divider-horizontal.ngs-divider-inset{margin-left:0;margin-right:80px}:host.ngs-divider-vertical{display:inline-block;border-top-width:0;border-right-style:solid;border-right-color:var(--color-border);border-right-width:1px;vertical-align:middle;height:100%}:host.ngs-divider-vertical.ngs-divider-inset{margin-top:8px;margin-bottom:8px}:host.ngs-divider-vertical.is-fixed-height:not([class*=h-]){height:var(--ngs-divider-vertical-fixed-height)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
34
|
+
}, styles: [":host{--ngs-divider-vertical-fixed-height: calc(var(--spacing, .25rem) * 5);display:block;border-top-style:solid;border-top-color:var(--ngs-color-border);flex:none}:host.ngs-divider-horizontal{border-top-width:1px}:host.ngs-divider-horizontal.ngs-divider-inset{margin-left:80px}[dir=rtl] :host.ngs-divider-horizontal.ngs-divider-inset{margin-left:0;margin-right:80px}:host.ngs-divider-vertical{display:inline-block;border-top-width:0;border-right-style:solid;border-right-color:var(--ngs-color-border);border-right-width:1px;vertical-align:middle;height:100%}:host.ngs-divider-vertical.ngs-divider-inset{margin-top:8px;margin-bottom:8px}:host.ngs-divider-vertical.is-fixed-height:not([class*=h-]){height:var(--ngs-divider-vertical-fixed-height)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
35
35
|
}], propDecorators: { vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], inset: [{ type: i0.Input, args: [{ isSignal: true, alias: "inset", required: false }] }], fixedHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fixedHeight", required: false }] }] } });
|
|
36
36
|
|
|
37
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-divider.mjs","sources":["../../../projects/components/divider/src/text-divider/text-divider.ts","../../../projects/components/divider/src/text-divider/text-divider.html","../../../projects/components/divider/src/divider/divider.ts","../../../projects/components/divider/ngstarter-ui-components-divider.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-text-divider',\n exportAs: 'ngsTextDivider',\n templateUrl: './text-divider.html',\n styleUrl: './text-divider.scss',\n host: {\n 'class': 'ngs-text-divider',\n }\n})\nexport class TextDivider {\n\n}\n","<div class=\"line-start\"></div>\n<div class=\"text\">\n <ng-content/>\n</div>\n<div class=\"line-end\"></div>\n","import { booleanAttribute, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ngs-divider',\n exportAs: 'ngsDivider',\n template: '',\n styleUrl: './divider.scss',\n host: {\n 'role': 'separator',\n 'class': 'ngs-divider',\n '[attr.aria-orientation]': 'vertical() ? \"vertical\" : \"horizontal\"',\n '[class.ngs-divider-vertical]': 'vertical()',\n '[class.ngs-divider-horizontal]': '!vertical()',\n '[class.ngs-divider-inset]': 'inset()',\n '[class.is-fixed-height]': 'fixedHeight()',\n },\n})\nexport class Divider {\n /** Whether the divider is vertically aligned. */\n vertical = input(false, { transform: booleanAttribute });\n\n /** Whether the divider is an inset divider. */\n inset = input(false, { transform: booleanAttribute });\n\n fixedHeight = input(false, { transform: booleanAttribute });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAWa,WAAW,CAAA;uGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,wJCXxB,mHAKA,EAAA,MAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-divider.mjs","sources":["../../../projects/components/divider/src/text-divider/text-divider.ts","../../../projects/components/divider/src/text-divider/text-divider.html","../../../projects/components/divider/src/divider/divider.ts","../../../projects/components/divider/ngstarter-ui-components-divider.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngs-text-divider',\n exportAs: 'ngsTextDivider',\n templateUrl: './text-divider.html',\n styleUrl: './text-divider.scss',\n host: {\n 'class': 'ngs-text-divider',\n }\n})\nexport class TextDivider {\n\n}\n","<div class=\"line-start\"></div>\n<div class=\"text\">\n <ng-content/>\n</div>\n<div class=\"line-end\"></div>\n","import { booleanAttribute, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ngs-divider',\n exportAs: 'ngsDivider',\n template: '',\n styleUrl: './divider.scss',\n host: {\n 'role': 'separator',\n 'class': 'ngs-divider',\n '[attr.aria-orientation]': 'vertical() ? \"vertical\" : \"horizontal\"',\n '[class.ngs-divider-vertical]': 'vertical()',\n '[class.ngs-divider-horizontal]': '!vertical()',\n '[class.ngs-divider-inset]': 'inset()',\n '[class.is-fixed-height]': 'fixedHeight()',\n },\n})\nexport class Divider {\n /** Whether the divider is vertically aligned. */\n vertical = input(false, { transform: booleanAttribute });\n\n /** Whether the divider is an inset divider. */\n inset = input(false, { transform: booleanAttribute });\n\n fixedHeight = input(false, { transform: booleanAttribute });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAWa,WAAW,CAAA;uGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,wJCXxB,mHAKA,EAAA,MAAA,EAAA,CAAA,2hBAAA,CAAA,EAAA,CAAA;;2FDMa,WAAW,EAAA,UAAA,EAAA,CAAA;kBATvB,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAClB,gBAAgB,EAAA,IAAA,EAGpB;AACJ,wBAAA,OAAO,EAAE,kBAAkB;AAC5B,qBAAA,EAAA,QAAA,EAAA,mHAAA,EAAA,MAAA,EAAA,CAAA,2hBAAA,CAAA,EAAA;;;MEQU,OAAO,CAAA;;IAElB,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAGxD,KAAK,GAAG,KAAK,CAAC,KAAK,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAErD,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;uGAPhD,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,g0BAZR,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gzBAAA,CAAA,EAAA,CAAA;;2FAYD,OAAO,EAAA,UAAA,EAAA,CAAA;kBAfnB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,QAAA,EACb,YAAY,EAAA,QAAA,EACZ,EAAE,EAAA,IAAA,EAEN;AACJ,wBAAA,MAAM,EAAE,WAAW;AACnB,wBAAA,OAAO,EAAE,aAAa;AACtB,wBAAA,yBAAyB,EAAE,wCAAwC;AACnE,wBAAA,8BAA8B,EAAE,YAAY;AAC5C,wBAAA,gCAAgC,EAAE,aAAa;AAC/C,wBAAA,2BAA2B,EAAE,SAAS;AACtC,wBAAA,yBAAyB,EAAE,eAAe;AAC3C,qBAAA,EAAA,MAAA,EAAA,CAAA,gzBAAA,CAAA,EAAA;;;ACfH;;AAEG;;;;"}
|
|
@@ -98,7 +98,7 @@ class Drawer {
|
|
|
98
98
|
provide: DRAWER,
|
|
99
99
|
useExisting: forwardRef(() => Drawer),
|
|
100
100
|
}
|
|
101
|
-
], viewQueries: [{ propertyName: "portal", first: true, predicate: ["portal"], descendants: true, isSignal: true }], exportAs: ["ngsDrawer"], ngImport: i0, template: "<ng-template #portal>\n <div\n class=\"ngs-drawer-container\"\n [class.open]=\"_isOpen()\">\n <div class=\"ngs-drawer-content\">\n <ng-content/>\n </div>\n </div>\n</ng-template>\n", styles: [".ngs-drawer-container{--ngs-drawer-transition-duration: .15s;--ngs-drawer-transition: cubic-bezier(.4,0,.2,1);position:fixed;z-index:1040;top:0;right:0;max-width:90vw;bottom:0;transform:translate(100%);visibility:hidden;display:flex;flex-direction:column;pointer-events:auto}.ngs-drawer-container.open{transform:translate(0);visibility:visible;transition:transform .3s var(--ngs-drawer-transition),visibility 0s linear 0s}.ngs-drawer-container:not(.open){transition:transform .2s var(--ngs-drawer-transition),visibility 0s linear .2s}.ngs-drawer-content{background:var(--color-surface-container-lowest);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;outline:var(--dropdown-border);margin:1.75rem;flex-grow:1;overflow:hidden;border-radius:1rem;border:1px solid transparent}.drawer-backdrop{background:var(--overlay-backdrop-bg);opacity:0;transition:opacity .15s cubic-bezier(.4,0,.2,1)}.drawer-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-overlay-pane.pointer-events-none{pointer-events:none!important}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
101
|
+
], viewQueries: [{ propertyName: "portal", first: true, predicate: ["portal"], descendants: true, isSignal: true }], exportAs: ["ngsDrawer"], ngImport: i0, template: "<ng-template #portal>\n <div\n class=\"ngs-drawer-container\"\n [class.open]=\"_isOpen()\">\n <div class=\"ngs-drawer-content\">\n <ng-content/>\n </div>\n </div>\n</ng-template>\n", styles: [".ngs-drawer-container{--ngs-drawer-transition-duration: .15s;--ngs-drawer-transition: cubic-bezier(.4,0,.2,1);position:fixed;z-index:1040;top:0;right:0;max-width:90vw;bottom:0;transform:translate(100%);visibility:hidden;display:flex;flex-direction:column;pointer-events:auto}.ngs-drawer-container.open{transform:translate(0);visibility:visible;transition:transform .3s var(--ngs-drawer-transition),visibility 0s linear 0s}.ngs-drawer-container:not(.open){transition:transform .2s var(--ngs-drawer-transition),visibility 0s linear .2s}.ngs-drawer-content{background:var(--ngs-color-surface-container-lowest);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;outline:var(--ngs-dropdown-border);margin:1.75rem;flex-grow:1;overflow:hidden;border-radius:1rem;border:1px solid transparent}.drawer-backdrop{background:var(--ngs-overlay-backdrop-bg);opacity:0;transition:opacity .15s cubic-bezier(.4,0,.2,1)}.drawer-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-overlay-pane.pointer-events-none{pointer-events:none!important}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
102
102
|
}
|
|
103
103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Drawer, decorators: [{
|
|
104
104
|
type: Component,
|
|
@@ -107,7 +107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
107
107
|
provide: DRAWER,
|
|
108
108
|
useExisting: forwardRef(() => Drawer),
|
|
109
109
|
}
|
|
110
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #portal>\n <div\n class=\"ngs-drawer-container\"\n [class.open]=\"_isOpen()\">\n <div class=\"ngs-drawer-content\">\n <ng-content/>\n </div>\n </div>\n</ng-template>\n", styles: [".ngs-drawer-container{--ngs-drawer-transition-duration: .15s;--ngs-drawer-transition: cubic-bezier(.4,0,.2,1);position:fixed;z-index:1040;top:0;right:0;max-width:90vw;bottom:0;transform:translate(100%);visibility:hidden;display:flex;flex-direction:column;pointer-events:auto}.ngs-drawer-container.open{transform:translate(0);visibility:visible;transition:transform .3s var(--ngs-drawer-transition),visibility 0s linear 0s}.ngs-drawer-container:not(.open){transition:transform .2s var(--ngs-drawer-transition),visibility 0s linear .2s}.ngs-drawer-content{background:var(--color-surface-container-lowest);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;outline:var(--dropdown-border);margin:1.75rem;flex-grow:1;overflow:hidden;border-radius:1rem;border:1px solid transparent}.drawer-backdrop{background:var(--overlay-backdrop-bg);opacity:0;transition:opacity .15s cubic-bezier(.4,0,.2,1)}.drawer-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-overlay-pane.pointer-events-none{pointer-events:none!important}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
110
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #portal>\n <div\n class=\"ngs-drawer-container\"\n [class.open]=\"_isOpen()\">\n <div class=\"ngs-drawer-content\">\n <ng-content/>\n </div>\n </div>\n</ng-template>\n", styles: [".ngs-drawer-container{--ngs-drawer-transition-duration: .15s;--ngs-drawer-transition: cubic-bezier(.4,0,.2,1);position:fixed;z-index:1040;top:0;right:0;max-width:90vw;bottom:0;transform:translate(100%);visibility:hidden;display:flex;flex-direction:column;pointer-events:auto}.ngs-drawer-container.open{transform:translate(0);visibility:visible;transition:transform .3s var(--ngs-drawer-transition),visibility 0s linear 0s}.ngs-drawer-container:not(.open){transition:transform .2s var(--ngs-drawer-transition),visibility 0s linear .2s}.ngs-drawer-content{background:var(--ngs-color-surface-container-lowest);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;outline:var(--ngs-dropdown-border);margin:1.75rem;flex-grow:1;overflow:hidden;border-radius:1rem;border:1px solid transparent}.drawer-backdrop{background:var(--ngs-overlay-backdrop-bg);opacity:0;transition:opacity .15s cubic-bezier(.4,0,.2,1)}.drawer-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-overlay-pane.pointer-events-none{pointer-events:none!important}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
111
111
|
}], ctorParameters: () => [], propDecorators: { initialIsOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], showBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBackdrop", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], opened: [{ type: i0.Output, args: ["opened"] }], portal: [{ type: i0.ViewChild, args: ['portal', { isSignal: true }] }] } });
|
|
112
112
|
|
|
113
113
|
class DrawerIgnoreOutsideClickDirective {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-drawer.mjs","sources":["../../../projects/components/drawer/src/types.ts","../../../projects/components/drawer/src/drawer/drawer.ts","../../../projects/components/drawer/src/drawer/drawer.html","../../../projects/components/drawer/src/drawer-ignore-outside-click.directive.ts","../../../projects/components/drawer/ngstarter-ui-components-drawer.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const DRAWER = new InjectionToken('DRAWER');\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n forwardRef,\n inject,\n input,\n OnDestroy,\n output,\n signal,\n Signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DRAWER } from '../types';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { timer } from 'rxjs';\n\n@Component({\n selector: 'ngs-drawer',\n exportAs: 'ngsDrawer',\n templateUrl: './drawer.html',\n styleUrl: './drawer.scss',\n standalone: true,\n providers: [\n {\n provide: DRAWER,\n useExisting: forwardRef(() => Drawer),\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Drawer implements OnDestroy {\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private destroyRef = inject(DestroyRef);\n\n readonly initialIsOpen = input<boolean | undefined>(undefined, { alias: 'isOpen' });\n readonly showBackdrop = input(true);\n\n readonly closed = output<void>();\n readonly opened = output<void>();\n\n private internalIsOpen: WritableSignal<boolean> = signal(false);\n private overlayRef: OverlayRef | null = null;\n protected portal = viewChild.required<TemplateRef<any>>('portal');\n\n protected _isOpen: Signal<boolean> = computed(() => this.internalIsOpen());\n\n constructor() {\n effect(() => {\n const externalIsOpen = this.initialIsOpen();\n if (externalIsOpen !== undefined) {\n if (externalIsOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.close();\n }\n\n open(): void {\n if (this.internalIsOpen()) {\n return;\n }\n\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n hasBackdrop: this.showBackdrop(),\n backdropClass: 'drawer-backdrop',\n positionStrategy: this.overlay.position().global().right('0').top('0').bottom('0'),\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n\n this.overlayRef.backdropClick().subscribe(() => {\n this.close();\n });\n\n this.overlayRef.outsidePointerEvents().subscribe((event: MouseEvent) => {\n const target = event.target as HTMLElement;\n\n if (target.closest('.ngs-drawer-ignore-outside-click')) {\n return;\n }\n\n this.close();\n });\n\n this.overlayRef.keydownEvents().subscribe(event => {\n if (event.key === 'Escape') {\n this.close();\n }\n });\n }\n\n const portal = new TemplatePortal(this.portal(), this.viewContainerRef);\n this.overlayRef.attach(portal);\n\n if (!this.showBackdrop()) {\n this.overlayRef.hostElement.classList.add('pointer-events-none');\n }\n\n // Delay setting internalIsOpen to true to ensure the entry animation triggers\n setTimeout(() => {\n this.internalIsOpen.set(true);\n });\n\n this.opened.emit();\n }\n\n close(): void {\n if (!this.internalIsOpen()) {\n return;\n }\n\n this.internalIsOpen.set(false);\n\n timer(150)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n this.closed.emit();\n });\n }\n\n get isOpened(): boolean {\n return this._isOpen();\n }\n}\n","<ng-template #portal>\n <div\n class=\"ngs-drawer-container\"\n [class.open]=\"_isOpen()\">\n <div class=\"ngs-drawer-content\">\n <ng-content/>\n </div>\n </div>\n</ng-template>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsDrawerIgnoreOutsideClick]',\n host: {\n 'class': 'ngs-drawer-ignore-outside-click'\n }\n})\nexport class DrawerIgnoreOutsideClickDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-drawer.mjs","sources":["../../../projects/components/drawer/src/types.ts","../../../projects/components/drawer/src/drawer/drawer.ts","../../../projects/components/drawer/src/drawer/drawer.html","../../../projects/components/drawer/src/drawer-ignore-outside-click.directive.ts","../../../projects/components/drawer/ngstarter-ui-components-drawer.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const DRAWER = new InjectionToken('DRAWER');\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n forwardRef,\n inject,\n input,\n OnDestroy,\n output,\n signal,\n Signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DRAWER } from '../types';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { timer } from 'rxjs';\n\n@Component({\n selector: 'ngs-drawer',\n exportAs: 'ngsDrawer',\n templateUrl: './drawer.html',\n styleUrl: './drawer.scss',\n standalone: true,\n providers: [\n {\n provide: DRAWER,\n useExisting: forwardRef(() => Drawer),\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Drawer implements OnDestroy {\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private destroyRef = inject(DestroyRef);\n\n readonly initialIsOpen = input<boolean | undefined>(undefined, { alias: 'isOpen' });\n readonly showBackdrop = input(true);\n\n readonly closed = output<void>();\n readonly opened = output<void>();\n\n private internalIsOpen: WritableSignal<boolean> = signal(false);\n private overlayRef: OverlayRef | null = null;\n protected portal = viewChild.required<TemplateRef<any>>('portal');\n\n protected _isOpen: Signal<boolean> = computed(() => this.internalIsOpen());\n\n constructor() {\n effect(() => {\n const externalIsOpen = this.initialIsOpen();\n if (externalIsOpen !== undefined) {\n if (externalIsOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.close();\n }\n\n open(): void {\n if (this.internalIsOpen()) {\n return;\n }\n\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n hasBackdrop: this.showBackdrop(),\n backdropClass: 'drawer-backdrop',\n positionStrategy: this.overlay.position().global().right('0').top('0').bottom('0'),\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n\n this.overlayRef.backdropClick().subscribe(() => {\n this.close();\n });\n\n this.overlayRef.outsidePointerEvents().subscribe((event: MouseEvent) => {\n const target = event.target as HTMLElement;\n\n if (target.closest('.ngs-drawer-ignore-outside-click')) {\n return;\n }\n\n this.close();\n });\n\n this.overlayRef.keydownEvents().subscribe(event => {\n if (event.key === 'Escape') {\n this.close();\n }\n });\n }\n\n const portal = new TemplatePortal(this.portal(), this.viewContainerRef);\n this.overlayRef.attach(portal);\n\n if (!this.showBackdrop()) {\n this.overlayRef.hostElement.classList.add('pointer-events-none');\n }\n\n // Delay setting internalIsOpen to true to ensure the entry animation triggers\n setTimeout(() => {\n this.internalIsOpen.set(true);\n });\n\n this.opened.emit();\n }\n\n close(): void {\n if (!this.internalIsOpen()) {\n return;\n }\n\n this.internalIsOpen.set(false);\n\n timer(150)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n this.closed.emit();\n });\n }\n\n get isOpened(): boolean {\n return this._isOpen();\n }\n}\n","<ng-template #portal>\n <div\n class=\"ngs-drawer-container\"\n [class.open]=\"_isOpen()\">\n <div class=\"ngs-drawer-content\">\n <ng-content/>\n </div>\n </div>\n</ng-template>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsDrawerIgnoreOutsideClick]',\n host: {\n 'class': 'ngs-drawer-ignore-outside-click'\n }\n})\nexport class DrawerIgnoreOutsideClickDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -139,7 +139,7 @@ class EmojiPicker {
|
|
|
139
139
|
this._hoveredEmoji.set(null);
|
|
140
140
|
}
|
|
141
141
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: EmojiPicker, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: EmojiPicker, isStandalone: true, selector: "ngs-emoji-picker", inputs: { language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, selectEmojiLabel: { classPropertyName: "selectEmojiLabel", publicName: "selectEmojiLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { emojiSelected: "emojiSelected" }, host: { classAttribute: "ngs-emoji-picker" }, exportAs: ["ngsEmojiPicker"], ngImport: i0, template: "@if (loaded()) {\n <dl class=\"list\" (mouseleave)=\"onMouseLeave()\">\n @for (group of groups(); track group) {\n <dt class=\"px-2\">{{ group.name }}</dt>\n <dd>\n <div class=\"emoji-container\">\n @for (emoji of group.emoji; track emoji) {\n <button class=\"button\"\n (click)=\"select(emoji)\"\n (mouseover)=\"hoverEmoji(emoji)\">\n {{ emoji.emoji }}\n </button>\n }\n </div>\n </dd>\n }\n </dl>\n <div class=\"hovered-emoji\">\n @if (_hoveredEmoji()) {\n <span class=\"emoji-preview\">{{ _hoveredEmoji().emoji }}</span>\n <span class=\"emoji-label\">{{ _hoveredEmoji().label }}</span>\n } @else {\n <span class=\"select-message\">{{ selectEmojiLabel() }}</span>\n }\n </div>\n} @else {\n <div class=\"list\">\n <ngs-skeleton class=\"h-3 skeleton-heading my-2\"/>\n <div class=\"skeleton-list\">\n @for (block of _skeletonEmoji(); track block) {\n <ngs-skeleton class=\"size-8 rounded-sm\"/>\n }\n </div>\n </div>\n <div class=\"hovered-emoji\">\n <ngs-skeleton class=\"h-4 w-full\"/>\n </div>\n}\n", styles: [":host{--ngs-emoji-picker-border: none;--ngs-emoji-picker-shadow: var(--dropdown-shadow);--ngs-emoji-picker-border-radius: var(--dropdown-radius);--ngs-emoji-picker-bg: var(--dropdown-bg);--ngs-emoji-picker-margin: calc(var(--spacing, .25rem) * 2.5);--ngs-emoji-picker-list-width: 278px;--ngs-emoji-picker-list-height: 260px;display:block;width:var(--ngs-emoji-picker-list-width);background:var(--ngs-emoji-picker-bg);border-radius:var(--ngs-emoji-picker-border-radius);border:var(--ngs-emoji-picker-border);box-shadow:var(--ngs-emoji-picker-shadow);animation:.15s ngs-emoji-picker-animation;margin:var(--ngs-emoji-picker-margin) 0;outline:var(--ngs-menu-border, var(--dropdown-border))}:host ngs-skeleton{--ngs-skeleton-from-bg: var(--color-surface-container-high);--ngs-skeleton-to-bg: var(--color-surface-container-highest)}:host .list{padding:calc(var(--spacing, .25rem) * 0) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 2);height:var(--ngs-emoji-picker-list-height);overflow-x:hidden;overflow-y:auto}:host .hovered-emoji{height:calc(var(--spacing, .25rem) * 11);display:flex;padding:0 calc(var(--spacing, .25rem) * 4);align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-top:1px solid var(--color-subtle)}:host .emoji-preview{font-size:
|
|
142
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: EmojiPicker, isStandalone: true, selector: "ngs-emoji-picker", inputs: { language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, selectEmojiLabel: { classPropertyName: "selectEmojiLabel", publicName: "selectEmojiLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { emojiSelected: "emojiSelected" }, host: { classAttribute: "ngs-emoji-picker" }, exportAs: ["ngsEmojiPicker"], ngImport: i0, template: "@if (loaded()) {\n <dl class=\"list\" (mouseleave)=\"onMouseLeave()\">\n @for (group of groups(); track group) {\n <dt class=\"px-2\">{{ group.name }}</dt>\n <dd>\n <div class=\"emoji-container\">\n @for (emoji of group.emoji; track emoji) {\n <button class=\"button\"\n (click)=\"select(emoji)\"\n (mouseover)=\"hoverEmoji(emoji)\">\n {{ emoji.emoji }}\n </button>\n }\n </div>\n </dd>\n }\n </dl>\n <div class=\"hovered-emoji\">\n @if (_hoveredEmoji()) {\n <span class=\"emoji-preview\">{{ _hoveredEmoji().emoji }}</span>\n <span class=\"emoji-label\">{{ _hoveredEmoji().label }}</span>\n } @else {\n <span class=\"select-message\">{{ selectEmojiLabel() }}</span>\n }\n </div>\n} @else {\n <div class=\"list\">\n <ngs-skeleton class=\"h-3 skeleton-heading my-2\"/>\n <div class=\"skeleton-list\">\n @for (block of _skeletonEmoji(); track block) {\n <ngs-skeleton class=\"size-8 rounded-sm\"/>\n }\n </div>\n </div>\n <div class=\"hovered-emoji\">\n <ngs-skeleton class=\"h-4 w-full\"/>\n </div>\n}\n", styles: [":host{--ngs-emoji-picker-border: none;--ngs-emoji-picker-shadow: var(--ngs-dropdown-shadow);--ngs-emoji-picker-border-radius: var(--ngs-dropdown-radius);--ngs-emoji-picker-bg: var(--ngs-dropdown-bg);--ngs-emoji-picker-margin: calc(var(--spacing, .25rem) * 2.5);--ngs-emoji-picker-list-width: 278px;--ngs-emoji-picker-list-height: 260px;display:block;width:var(--ngs-emoji-picker-list-width);background:var(--ngs-emoji-picker-bg);border-radius:var(--ngs-emoji-picker-border-radius);border:var(--ngs-emoji-picker-border);box-shadow:var(--ngs-emoji-picker-shadow);animation:.15s ngs-emoji-picker-animation;margin:var(--ngs-emoji-picker-margin) 0;outline:var(--ngs-menu-border, var(--ngs-dropdown-border))}:host ngs-skeleton{--ngs-skeleton-from-bg: var(--ngs-color-surface-container-high);--ngs-skeleton-to-bg: var(--ngs-color-surface-container-highest)}:host .list{padding:calc(var(--spacing, .25rem) * 0) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 2);height:var(--ngs-emoji-picker-list-height);overflow-x:hidden;overflow-y:auto}:host .hovered-emoji{height:calc(var(--spacing, .25rem) * 11);display:flex;padding:0 calc(var(--spacing, .25rem) * 4);align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-top:1px solid var(--ngs-color-subtle)}:host .emoji-preview{font-size:var(--ngs-font-size-xl)}:host .emoji-label,:host .select-message{font-size:var(--ngs-font-size-xs)}:host .select-message{color:var(--ngs-color-neutral-500)}:host dt{position:sticky;top:0;left:0;right:0;height:calc(var(--spacing, .25rem) * 10);display:flex;align-items:center;font-weight:600;font-size:var(--ngs-font-size-sm);background:var(--ngs-emoji-picker-bg)}:host .skeleton-list,:host .emoji-container{display:flex;flex-wrap:wrap}:host .skeleton-list{align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 2)}:host .button{display:flex;width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);flex:none;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--radius-lg, .5rem);font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)))}:host .button:hover{background:var(--ngs-color-surface-container-highest)}:host .skeleton-button{flex:none}@keyframes ngs-emoji-picker-animation{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}:host-context(html.dark) ngs-skeleton{--ngs-skeleton-from-bg: var(--ngs-color-surface-container-low);--ngs-skeleton-to-bg: var(--ngs-color-surface-container-lowest)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: Skeleton, selector: "ngs-skeleton", inputs: ["roundedFull"], exportAs: ["ngsSkeleton"] }] });
|
|
143
143
|
}
|
|
144
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: EmojiPicker, decorators: [{
|
|
145
145
|
type: Component,
|
|
@@ -147,7 +147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
147
147
|
Skeleton
|
|
148
148
|
], host: {
|
|
149
149
|
'class': 'ngs-emoji-picker',
|
|
150
|
-
}, template: "@if (loaded()) {\n <dl class=\"list\" (mouseleave)=\"onMouseLeave()\">\n @for (group of groups(); track group) {\n <dt class=\"px-2\">{{ group.name }}</dt>\n <dd>\n <div class=\"emoji-container\">\n @for (emoji of group.emoji; track emoji) {\n <button class=\"button\"\n (click)=\"select(emoji)\"\n (mouseover)=\"hoverEmoji(emoji)\">\n {{ emoji.emoji }}\n </button>\n }\n </div>\n </dd>\n }\n </dl>\n <div class=\"hovered-emoji\">\n @if (_hoveredEmoji()) {\n <span class=\"emoji-preview\">{{ _hoveredEmoji().emoji }}</span>\n <span class=\"emoji-label\">{{ _hoveredEmoji().label }}</span>\n } @else {\n <span class=\"select-message\">{{ selectEmojiLabel() }}</span>\n }\n </div>\n} @else {\n <div class=\"list\">\n <ngs-skeleton class=\"h-3 skeleton-heading my-2\"/>\n <div class=\"skeleton-list\">\n @for (block of _skeletonEmoji(); track block) {\n <ngs-skeleton class=\"size-8 rounded-sm\"/>\n }\n </div>\n </div>\n <div class=\"hovered-emoji\">\n <ngs-skeleton class=\"h-4 w-full\"/>\n </div>\n}\n", styles: [":host{--ngs-emoji-picker-border: none;--ngs-emoji-picker-shadow: var(--dropdown-shadow);--ngs-emoji-picker-border-radius: var(--dropdown-radius);--ngs-emoji-picker-bg: var(--dropdown-bg);--ngs-emoji-picker-margin: calc(var(--spacing, .25rem) * 2.5);--ngs-emoji-picker-list-width: 278px;--ngs-emoji-picker-list-height: 260px;display:block;width:var(--ngs-emoji-picker-list-width);background:var(--ngs-emoji-picker-bg);border-radius:var(--ngs-emoji-picker-border-radius);border:var(--ngs-emoji-picker-border);box-shadow:var(--ngs-emoji-picker-shadow);animation:.15s ngs-emoji-picker-animation;margin:var(--ngs-emoji-picker-margin) 0;outline:var(--ngs-menu-border, var(--dropdown-border))}:host ngs-skeleton{--ngs-skeleton-from-bg: var(--color-surface-container-high);--ngs-skeleton-to-bg: var(--color-surface-container-highest)}:host .list{padding:calc(var(--spacing, .25rem) * 0) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 2);height:var(--ngs-emoji-picker-list-height);overflow-x:hidden;overflow-y:auto}:host .hovered-emoji{height:calc(var(--spacing, .25rem) * 11);display:flex;padding:0 calc(var(--spacing, .25rem) * 4);align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-top:1px solid var(--color-subtle)}:host .emoji-preview{font-size:
|
|
150
|
+
}, template: "@if (loaded()) {\n <dl class=\"list\" (mouseleave)=\"onMouseLeave()\">\n @for (group of groups(); track group) {\n <dt class=\"px-2\">{{ group.name }}</dt>\n <dd>\n <div class=\"emoji-container\">\n @for (emoji of group.emoji; track emoji) {\n <button class=\"button\"\n (click)=\"select(emoji)\"\n (mouseover)=\"hoverEmoji(emoji)\">\n {{ emoji.emoji }}\n </button>\n }\n </div>\n </dd>\n }\n </dl>\n <div class=\"hovered-emoji\">\n @if (_hoveredEmoji()) {\n <span class=\"emoji-preview\">{{ _hoveredEmoji().emoji }}</span>\n <span class=\"emoji-label\">{{ _hoveredEmoji().label }}</span>\n } @else {\n <span class=\"select-message\">{{ selectEmojiLabel() }}</span>\n }\n </div>\n} @else {\n <div class=\"list\">\n <ngs-skeleton class=\"h-3 skeleton-heading my-2\"/>\n <div class=\"skeleton-list\">\n @for (block of _skeletonEmoji(); track block) {\n <ngs-skeleton class=\"size-8 rounded-sm\"/>\n }\n </div>\n </div>\n <div class=\"hovered-emoji\">\n <ngs-skeleton class=\"h-4 w-full\"/>\n </div>\n}\n", styles: [":host{--ngs-emoji-picker-border: none;--ngs-emoji-picker-shadow: var(--ngs-dropdown-shadow);--ngs-emoji-picker-border-radius: var(--ngs-dropdown-radius);--ngs-emoji-picker-bg: var(--ngs-dropdown-bg);--ngs-emoji-picker-margin: calc(var(--spacing, .25rem) * 2.5);--ngs-emoji-picker-list-width: 278px;--ngs-emoji-picker-list-height: 260px;display:block;width:var(--ngs-emoji-picker-list-width);background:var(--ngs-emoji-picker-bg);border-radius:var(--ngs-emoji-picker-border-radius);border:var(--ngs-emoji-picker-border);box-shadow:var(--ngs-emoji-picker-shadow);animation:.15s ngs-emoji-picker-animation;margin:var(--ngs-emoji-picker-margin) 0;outline:var(--ngs-menu-border, var(--ngs-dropdown-border))}:host ngs-skeleton{--ngs-skeleton-from-bg: var(--ngs-color-surface-container-high);--ngs-skeleton-to-bg: var(--ngs-color-surface-container-highest)}:host .list{padding:calc(var(--spacing, .25rem) * 0) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 2) calc(var(--spacing, .25rem) * 2);height:var(--ngs-emoji-picker-list-height);overflow-x:hidden;overflow-y:auto}:host .hovered-emoji{height:calc(var(--spacing, .25rem) * 11);display:flex;padding:0 calc(var(--spacing, .25rem) * 4);align-items:center;gap:calc(var(--spacing, .25rem) * 3);border-top:1px solid var(--ngs-color-subtle)}:host .emoji-preview{font-size:var(--ngs-font-size-xl)}:host .emoji-label,:host .select-message{font-size:var(--ngs-font-size-xs)}:host .select-message{color:var(--ngs-color-neutral-500)}:host dt{position:sticky;top:0;left:0;right:0;height:calc(var(--spacing, .25rem) * 10);display:flex;align-items:center;font-weight:600;font-size:var(--ngs-font-size-sm);background:var(--ngs-emoji-picker-bg)}:host .skeleton-list,:host .emoji-container{display:flex;flex-wrap:wrap}:host .skeleton-list{align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 2)}:host .button{display:flex;width:calc(var(--spacing, .25rem) * 9);height:calc(var(--spacing, .25rem) * 9);flex:none;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--radius-lg, .5rem);font-size:var(--text-2xl, 1.5rem);line-height:var(--tw-leading, var(--text-2xl--line-height, calc(2 / 1.5)))}:host .button:hover{background:var(--ngs-color-surface-container-highest)}:host .skeleton-button{flex:none}@keyframes ngs-emoji-picker-animation{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}:host-context(html.dark) ngs-skeleton{--ngs-skeleton-from-bg: var(--ngs-color-surface-container-low);--ngs-skeleton-to-bg: var(--ngs-color-surface-container-lowest)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
151
151
|
}], propDecorators: { language: [{ type: i0.Input, args: [{ isSignal: true, alias: "language", required: false }] }], selectEmojiLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectEmojiLabel", required: false }] }], emojiSelected: [{ type: i0.Output, args: ["emojiSelected"] }] } });
|
|
152
152
|
|
|
153
153
|
class EmojiPickerTriggerForDirective {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-emoji-picker.mjs","sources":["../../../projects/components/emoji-picker/src/types.ts","../../../projects/components/emoji-picker/src/emoji-picker/emoji-picker.ts","../../../projects/components/emoji-picker/src/emoji-picker/emoji-picker.html","../../../projects/components/emoji-picker/src/emoji-picker-trigger-for.directive.ts","../../../projects/components/emoji-picker/ngstarter-ui-components-emoji-picker.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const EMOJI_PICKER_TRIGGER_FOR = new InjectionToken('EMOJI_PICKER_TRIGGER_FOR');\n","import { Component, inject, input, LOCALE_ID, OnInit, output, signal } from '@angular/core';\nimport { EMOJI_PICKER_TRIGGER_FOR } from '../types';\nimport { Skeleton } from '@ngstarter-ui/components/skeleton';\n\nconst loadedEmoji = new Map<string, { groups: any[] }>();\nconst loadGroups = (language: string) => {\n const imports: any = {\n en: import('emojibase-data/en/messages.json'),\n bn: import('emojibase-data/bn/messages.json'),\n da: import('emojibase-data/da/messages.json'),\n de: import('emojibase-data/de/messages.json'),\n es: import('emojibase-data/es/messages.json'),\n et: import('emojibase-data/et/messages.json'),\n fi: import('emojibase-data/fi/messages.json'),\n fr: import('emojibase-data/fr/messages.json'),\n hi: import('emojibase-data/hi/messages.json'),\n hu: import('emojibase-data/hu/messages.json'),\n it: import('emojibase-data/it/messages.json'),\n ja: import('emojibase-data/ja/messages.json'),\n ko: import('emojibase-data/ko/messages.json'),\n lt: import('emojibase-data/lt/messages.json'),\n ms: import('emojibase-data/ms/messages.json'),\n nb: import('emojibase-data/nb/messages.json'),\n nl: import('emojibase-data/nl/messages.json'),\n pl: import('emojibase-data/pl/messages.json'),\n pt: import('emojibase-data/pt/messages.json'),\n ru: import('emojibase-data/ru/messages.json'),\n sv: import('emojibase-data/sv/messages.json'),\n th: import('emojibase-data/th/messages.json'),\n uk: import('emojibase-data/uk/messages.json'),\n vi: import('emojibase-data/vi/messages.json'),\n zh: import('emojibase-data/zh/messages.json'),\n };\n\n if (imports[language]) {\n return imports[language];\n }\n\n return imports['en'];\n}\n\nconst loadData = (language: string) => {\n const imports: any = {\n en: import('emojibase-data/en/data.json').then(m => m.default),\n bn: import('emojibase-data/bn/data.json').then(m => m.default),\n da: import('emojibase-data/da/data.json').then(m => m.default),\n de: import('emojibase-data/de/data.json').then(m => m.default),\n es: import('emojibase-data/es/data.json').then(m => m.default),\n et: import('emojibase-data/et/data.json').then(m => m.default),\n fi: import('emojibase-data/fi/data.json').then(m => m.default),\n fr: import('emojibase-data/fr/data.json').then(m => m.default),\n hi: import('emojibase-data/hi/data.json').then(m => m.default),\n hu: import('emojibase-data/hu/data.json').then(m => m.default),\n it: import('emojibase-data/it/data.json').then(m => m.default),\n ja: import('emojibase-data/ja/data.json').then(m => m.default),\n ko: import('emojibase-data/ko/data.json').then(m => m.default),\n lt: import('emojibase-data/lt/data.json').then(m => m.default),\n ms: import('emojibase-data/ms/data.json').then(m => m.default),\n nb: import('emojibase-data/nb/data.json').then(m => m.default),\n nl: import('emojibase-data/nl/data.json').then(m => m.default),\n pl: import('emojibase-data/pl/data.json').then(m => m.default),\n pt: import('emojibase-data/pt/data.json').then(m => m.default),\n ru: import('emojibase-data/ru/data.json').then(m => m.default),\n sv: import('emojibase-data/sv/data.json').then(m => m.default),\n th: import('emojibase-data/th/data.json').then(m => m.default),\n uk: import('emojibase-data/uk/data.json').then(m => m.default),\n vi: import('emojibase-data/vi/data.json').then(m => m.default),\n zh: import('emojibase-data/zh/data.json').then(m => m.default),\n };\n\n if (imports[language]) {\n return imports[language];\n }\n\n return imports['en'];\n}\n\n@Component({\n selector: 'ngs-emoji-picker',\n exportAs: 'ngsEmojiPicker',\n templateUrl: './emoji-picker.html',\n styleUrl: './emoji-picker.scss',\n imports: [\n Skeleton\n ],\n host: {\n 'class': 'ngs-emoji-picker',\n }\n})\nexport class EmojiPicker implements OnInit {\n private _trigger = inject<any>(EMOJI_PICKER_TRIGGER_FOR, { optional: true });\n private _localeId = inject(LOCALE_ID);\n\n language = input('');\n selectEmojiLabel = input('Select an emoji...');\n\n readonly emojiSelected = output<string>();\n\n protected loaded = signal(false);\n protected groups = signal<any[]>([]);\n protected _hoveredEmoji = signal<any>(null);\n protected _skeletonEmoji = signal(Array(42).fill(1).map((x, y) => x + y));\n\n async ngOnInit() {\n let language: string = this.language();\n\n if (!language) {\n language = this._localeId.split('-')[0];\n }\n\n if (loadedEmoji.has(language)) {\n this.groups.set(loadedEmoji.get(language)?.groups as any);\n } else {\n const groupsSubgroups = await loadGroups(language);\n const data = await loadData(language);\n const groups: any[] = [];\n const groupKeyMap = new Map<string, number>();\n groupsSubgroups.groups.forEach((group: any, index: number ) => {\n if (group.key === 'component') {\n return;\n }\n\n groupKeyMap.set(group.key, index);\n });\n groupsSubgroups.groups.forEach((group: any) => {\n if (group.key === 'component') {\n return;\n }\n\n const emoji: any[] = data.filter((emoji: any) => {\n if (emoji.emoji === '') {\n return false;\n }\n\n return emoji.group === groupKeyMap.get(group.key);\n });\n groups.push({\n name: group.message,\n emoji\n });\n });\n this.groups.set(groups);\n loadedEmoji.set(this.language(), { groups });\n }\n\n this.loaded.set(true);\n }\n\n select(emoji: any) {\n this.emojiSelected.emit(emoji.emoji);\n\n if (this._trigger) {\n this._trigger.api.close();\n }\n }\n\n hoverEmoji(emoji: any) {\n this._hoveredEmoji.set(emoji);\n }\n\n onMouseLeave() {\n this._hoveredEmoji.set(null);\n }\n}\n","@if (loaded()) {\n <dl class=\"list\" (mouseleave)=\"onMouseLeave()\">\n @for (group of groups(); track group) {\n <dt class=\"px-2\">{{ group.name }}</dt>\n <dd>\n <div class=\"emoji-container\">\n @for (emoji of group.emoji; track emoji) {\n <button class=\"button\"\n (click)=\"select(emoji)\"\n (mouseover)=\"hoverEmoji(emoji)\">\n {{ emoji.emoji }}\n </button>\n }\n </div>\n </dd>\n }\n </dl>\n <div class=\"hovered-emoji\">\n @if (_hoveredEmoji()) {\n <span class=\"emoji-preview\">{{ _hoveredEmoji().emoji }}</span>\n <span class=\"emoji-label\">{{ _hoveredEmoji().label }}</span>\n } @else {\n <span class=\"select-message\">{{ selectEmojiLabel() }}</span>\n }\n </div>\n} @else {\n <div class=\"list\">\n <ngs-skeleton class=\"h-3 skeleton-heading my-2\"/>\n <div class=\"skeleton-list\">\n @for (block of _skeletonEmoji(); track block) {\n <ngs-skeleton class=\"size-8 rounded-sm\"/>\n }\n </div>\n </div>\n <div class=\"hovered-emoji\">\n <ngs-skeleton class=\"h-4 w-full\"/>\n </div>\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef, forwardRef,\n inject,\n Injector,\n input,\n output,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { PopoverPosition } from '@ngstarter-ui/components/popover';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { PositionManager } from '@ngstarter-ui/components/overlay';\nimport { EMOJI_PICKER_TRIGGER_FOR } from './types';\n\n@Directive({\n selector: '[ngsEmojiPickerTriggerFor]',\n exportAs: 'ngsEmojiPickerTriggerFor',\n host: {\n '(click)': '_onClick($event)'\n }\n})\nexport class EmojiPickerTriggerForDirective {\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 _overlayRef: OverlayRef | null = null;\n private _destroyRef = inject(DestroyRef);\n\n for = input.required<TemplateRef<any>>({\n alias: 'ngsEmojiPickerTriggerFor'\n });\n\n position = input<PopoverPosition>('below-start');\n\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n get api() {\n return {\n close: () => this._close()\n }\n }\n\n protected _onClick(event: Event) {\n event.stopPropagation();\n event.preventDefault();\n\n this.opened.emit();\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n this._overlayRef.attach(this._getPopoverContentPortal());\n this._subscribeToOutsideClicks();\n }\n\n private _close() {\n this.closed.emit();\n this._overlayRef!?.detach();\n }\n\n private _subscribeToOutsideClicks() {\n if (this._overlayRef) {\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this._destroyRef))\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 const injector = Injector.create({\n providers: [\n {\n provide: EMOJI_PICKER_TRIGGER_FOR,\n useValue: this,\n }\n ],\n parent: this._injector\n });\n return new TemplatePortal(\n this.for(),\n this._viewContainerRef,\n null,\n injector\n );\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 });\n }\n\n private _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .setOrigin(this._elementRef)\n .withGrowAfterOpen()\n .withPositions(this._getOverlayPositions())\n ;\n }\n\n private _getOverlayPositions(): ConnectedPosition[] {\n return (new PositionManager()).build(this.position());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-emoji-picker.mjs","sources":["../../../projects/components/emoji-picker/src/types.ts","../../../projects/components/emoji-picker/src/emoji-picker/emoji-picker.ts","../../../projects/components/emoji-picker/src/emoji-picker/emoji-picker.html","../../../projects/components/emoji-picker/src/emoji-picker-trigger-for.directive.ts","../../../projects/components/emoji-picker/ngstarter-ui-components-emoji-picker.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const EMOJI_PICKER_TRIGGER_FOR = new InjectionToken('EMOJI_PICKER_TRIGGER_FOR');\n","import { Component, inject, input, LOCALE_ID, OnInit, output, signal } from '@angular/core';\nimport { EMOJI_PICKER_TRIGGER_FOR } from '../types';\nimport { Skeleton } from '@ngstarter-ui/components/skeleton';\n\nconst loadedEmoji = new Map<string, { groups: any[] }>();\nconst loadGroups = (language: string) => {\n const imports: any = {\n en: import('emojibase-data/en/messages.json'),\n bn: import('emojibase-data/bn/messages.json'),\n da: import('emojibase-data/da/messages.json'),\n de: import('emojibase-data/de/messages.json'),\n es: import('emojibase-data/es/messages.json'),\n et: import('emojibase-data/et/messages.json'),\n fi: import('emojibase-data/fi/messages.json'),\n fr: import('emojibase-data/fr/messages.json'),\n hi: import('emojibase-data/hi/messages.json'),\n hu: import('emojibase-data/hu/messages.json'),\n it: import('emojibase-data/it/messages.json'),\n ja: import('emojibase-data/ja/messages.json'),\n ko: import('emojibase-data/ko/messages.json'),\n lt: import('emojibase-data/lt/messages.json'),\n ms: import('emojibase-data/ms/messages.json'),\n nb: import('emojibase-data/nb/messages.json'),\n nl: import('emojibase-data/nl/messages.json'),\n pl: import('emojibase-data/pl/messages.json'),\n pt: import('emojibase-data/pt/messages.json'),\n ru: import('emojibase-data/ru/messages.json'),\n sv: import('emojibase-data/sv/messages.json'),\n th: import('emojibase-data/th/messages.json'),\n uk: import('emojibase-data/uk/messages.json'),\n vi: import('emojibase-data/vi/messages.json'),\n zh: import('emojibase-data/zh/messages.json'),\n };\n\n if (imports[language]) {\n return imports[language];\n }\n\n return imports['en'];\n}\n\nconst loadData = (language: string) => {\n const imports: any = {\n en: import('emojibase-data/en/data.json').then(m => m.default),\n bn: import('emojibase-data/bn/data.json').then(m => m.default),\n da: import('emojibase-data/da/data.json').then(m => m.default),\n de: import('emojibase-data/de/data.json').then(m => m.default),\n es: import('emojibase-data/es/data.json').then(m => m.default),\n et: import('emojibase-data/et/data.json').then(m => m.default),\n fi: import('emojibase-data/fi/data.json').then(m => m.default),\n fr: import('emojibase-data/fr/data.json').then(m => m.default),\n hi: import('emojibase-data/hi/data.json').then(m => m.default),\n hu: import('emojibase-data/hu/data.json').then(m => m.default),\n it: import('emojibase-data/it/data.json').then(m => m.default),\n ja: import('emojibase-data/ja/data.json').then(m => m.default),\n ko: import('emojibase-data/ko/data.json').then(m => m.default),\n lt: import('emojibase-data/lt/data.json').then(m => m.default),\n ms: import('emojibase-data/ms/data.json').then(m => m.default),\n nb: import('emojibase-data/nb/data.json').then(m => m.default),\n nl: import('emojibase-data/nl/data.json').then(m => m.default),\n pl: import('emojibase-data/pl/data.json').then(m => m.default),\n pt: import('emojibase-data/pt/data.json').then(m => m.default),\n ru: import('emojibase-data/ru/data.json').then(m => m.default),\n sv: import('emojibase-data/sv/data.json').then(m => m.default),\n th: import('emojibase-data/th/data.json').then(m => m.default),\n uk: import('emojibase-data/uk/data.json').then(m => m.default),\n vi: import('emojibase-data/vi/data.json').then(m => m.default),\n zh: import('emojibase-data/zh/data.json').then(m => m.default),\n };\n\n if (imports[language]) {\n return imports[language];\n }\n\n return imports['en'];\n}\n\n@Component({\n selector: 'ngs-emoji-picker',\n exportAs: 'ngsEmojiPicker',\n templateUrl: './emoji-picker.html',\n styleUrl: './emoji-picker.scss',\n imports: [\n Skeleton\n ],\n host: {\n 'class': 'ngs-emoji-picker',\n }\n})\nexport class EmojiPicker implements OnInit {\n private _trigger = inject<any>(EMOJI_PICKER_TRIGGER_FOR, { optional: true });\n private _localeId = inject(LOCALE_ID);\n\n language = input('');\n selectEmojiLabel = input('Select an emoji...');\n\n readonly emojiSelected = output<string>();\n\n protected loaded = signal(false);\n protected groups = signal<any[]>([]);\n protected _hoveredEmoji = signal<any>(null);\n protected _skeletonEmoji = signal(Array(42).fill(1).map((x, y) => x + y));\n\n async ngOnInit() {\n let language: string = this.language();\n\n if (!language) {\n language = this._localeId.split('-')[0];\n }\n\n if (loadedEmoji.has(language)) {\n this.groups.set(loadedEmoji.get(language)?.groups as any);\n } else {\n const groupsSubgroups = await loadGroups(language);\n const data = await loadData(language);\n const groups: any[] = [];\n const groupKeyMap = new Map<string, number>();\n groupsSubgroups.groups.forEach((group: any, index: number ) => {\n if (group.key === 'component') {\n return;\n }\n\n groupKeyMap.set(group.key, index);\n });\n groupsSubgroups.groups.forEach((group: any) => {\n if (group.key === 'component') {\n return;\n }\n\n const emoji: any[] = data.filter((emoji: any) => {\n if (emoji.emoji === '') {\n return false;\n }\n\n return emoji.group === groupKeyMap.get(group.key);\n });\n groups.push({\n name: group.message,\n emoji\n });\n });\n this.groups.set(groups);\n loadedEmoji.set(this.language(), { groups });\n }\n\n this.loaded.set(true);\n }\n\n select(emoji: any) {\n this.emojiSelected.emit(emoji.emoji);\n\n if (this._trigger) {\n this._trigger.api.close();\n }\n }\n\n hoverEmoji(emoji: any) {\n this._hoveredEmoji.set(emoji);\n }\n\n onMouseLeave() {\n this._hoveredEmoji.set(null);\n }\n}\n","@if (loaded()) {\n <dl class=\"list\" (mouseleave)=\"onMouseLeave()\">\n @for (group of groups(); track group) {\n <dt class=\"px-2\">{{ group.name }}</dt>\n <dd>\n <div class=\"emoji-container\">\n @for (emoji of group.emoji; track emoji) {\n <button class=\"button\"\n (click)=\"select(emoji)\"\n (mouseover)=\"hoverEmoji(emoji)\">\n {{ emoji.emoji }}\n </button>\n }\n </div>\n </dd>\n }\n </dl>\n <div class=\"hovered-emoji\">\n @if (_hoveredEmoji()) {\n <span class=\"emoji-preview\">{{ _hoveredEmoji().emoji }}</span>\n <span class=\"emoji-label\">{{ _hoveredEmoji().label }}</span>\n } @else {\n <span class=\"select-message\">{{ selectEmojiLabel() }}</span>\n }\n </div>\n} @else {\n <div class=\"list\">\n <ngs-skeleton class=\"h-3 skeleton-heading my-2\"/>\n <div class=\"skeleton-list\">\n @for (block of _skeletonEmoji(); track block) {\n <ngs-skeleton class=\"size-8 rounded-sm\"/>\n }\n </div>\n </div>\n <div class=\"hovered-emoji\">\n <ngs-skeleton class=\"h-4 w-full\"/>\n </div>\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef, forwardRef,\n inject,\n Injector,\n input,\n output,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { PopoverPosition } from '@ngstarter-ui/components/popover';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { PositionManager } from '@ngstarter-ui/components/overlay';\nimport { EMOJI_PICKER_TRIGGER_FOR } from './types';\n\n@Directive({\n selector: '[ngsEmojiPickerTriggerFor]',\n exportAs: 'ngsEmojiPickerTriggerFor',\n host: {\n '(click)': '_onClick($event)'\n }\n})\nexport class EmojiPickerTriggerForDirective {\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 _overlayRef: OverlayRef | null = null;\n private _destroyRef = inject(DestroyRef);\n\n for = input.required<TemplateRef<any>>({\n alias: 'ngsEmojiPickerTriggerFor'\n });\n\n position = input<PopoverPosition>('below-start');\n\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n get api() {\n return {\n close: () => this._close()\n }\n }\n\n protected _onClick(event: Event) {\n event.stopPropagation();\n event.preventDefault();\n\n this.opened.emit();\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n this._overlayRef.attach(this._getPopoverContentPortal());\n this._subscribeToOutsideClicks();\n }\n\n private _close() {\n this.closed.emit();\n this._overlayRef!?.detach();\n }\n\n private _subscribeToOutsideClicks() {\n if (this._overlayRef) {\n this._overlayRef\n .outsidePointerEvents()\n .pipe(takeUntilDestroyed(this._destroyRef))\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 const injector = Injector.create({\n providers: [\n {\n provide: EMOJI_PICKER_TRIGGER_FOR,\n useValue: this,\n }\n ],\n parent: this._injector\n });\n return new TemplatePortal(\n this.for(),\n this._viewContainerRef,\n null,\n injector\n );\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 });\n }\n\n private _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this._overlay\n .position()\n .flexibleConnectedTo(this._elementRef)\n .setOrigin(this._elementRef)\n .withGrowAfterOpen()\n .withPositions(this._getOverlayPositions())\n ;\n }\n\n private _getOverlayPositions(): ConnectedPosition[] {\n return (new PositionManager()).build(this.position());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|