@basis-ng/primitives 0.0.1-alpha.109 → 0.0.1-alpha.110

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.
@@ -13,7 +13,7 @@ import { CommonModule, NgTemplateOutlet, isPlatformBrowser } from '@angular/comm
13
13
  import * as i1$1 from '@angular/cdk/menu';
14
14
  import { CdkMenu, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuTrigger } from '@angular/cdk/menu';
15
15
  import * as i1$2 from '@angular/cdk/overlay';
16
- import { CdkConnectedOverlay, Overlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
16
+ import { CdkConnectedOverlay, Overlay as Overlay$1, ScrollStrategyOptions, CdkOverlayOrigin } from '@angular/cdk/overlay';
17
17
  import * as i1$3 from '@angular/cdk/drag-drop';
18
18
  import { CdkDrag, CdkDragHandle, CdkDropList, CdkDropListGroup } from '@angular/cdk/drag-drop';
19
19
  import { HttpClient } from '@angular/common/http';
@@ -2107,7 +2107,7 @@ class ConnectedOverlay {
2107
2107
  /**
2108
2108
  * Injected instance of `Overlay`.
2109
2109
  */
2110
- overlay = inject(Overlay);
2110
+ overlay = inject(Overlay$1);
2111
2111
  /**
2112
2112
  * Computed direction of the overlay based on the active position pair.
2113
2113
  */
@@ -2900,101 +2900,359 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
2900
2900
  }] });
2901
2901
 
2902
2902
  /**
2903
- * Tooltip content that is displayed within a connected overlay.
2903
+ * Directive that wires an Angular CDK connected overlay to a trigger and exposes
2904
+ * reactive signals for positions and scroll strategy.
2904
2905
  */
2905
- class TooltipContent {
2906
+ class Overlay {
2906
2907
  /**
2907
- * Reference to the connected overlay directive for positioning.
2908
+ * Reference to the CDK connected overlay instance.
2908
2909
  */
2909
- overlay = inject(ConnectedOverlay);
2910
+ cdkConnectedOverlay = inject(CdkConnectedOverlay);
2910
2911
  /**
2911
- * Computed overlay direction for animation classes.
2912
+ * Options for scroll handling provided by the CDK.
2912
2913
  */
2913
- direction = computed(() => this.overlay.direction(), ...(ngDevMode ? [{ debugName: "direction" }] : []));
2914
+ scrollStrategyOptions = inject(ScrollStrategyOptions);
2915
+ /**
2916
+ * The overlay trigger object (signal) that controls the overlay origin and active state.
2917
+ */
2918
+ trigger = input(...(ngDevMode ? [undefined, { debugName: "trigger" }] : []));
2919
+ /**
2920
+ * Whether the overlay is open.
2921
+ *
2922
+ * @defaultValue false
2923
+ */
2924
+ open = input(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
2925
+ /** Preferred overlay positions in priority order.
2926
+
2927
+ * @defaultValue ['bottom-center', 'top-center']
2928
+ */
2929
+ positions = input(['bottom-center', 'top-center'], ...(ngDevMode ? [{ debugName: "positions" }] : []));
2930
+ /** Whether clicking outside closes the overlay.
2931
+
2932
+ * @defaultValue true
2933
+ */
2934
+ closeOnClickOutside = model(true, ...(ngDevMode ? [{ debugName: "closeOnClickOutside" }] : []));
2935
+ /** Whether pressing Escape closes the overlay.
2936
+
2937
+ * @defaultValue true
2938
+ */
2939
+ closeOnTypeEscape = model(true, ...(ngDevMode ? [{ debugName: "closeOnTypeEscape" }] : []));
2940
+ /** Scroll handling mode applied to the overlay.
2941
+
2942
+ * @defaultValue 'reposition'
2943
+ */
2944
+ scroll = model('reposition', ...(ngDevMode ? [{ debugName: "scroll" }] : []));
2945
+ /**
2946
+ * Computed array of CDK ConnectedPosition values derived from `positions`.
2947
+ */
2948
+ connectedPositions = computed(() => this.positions().map((position) => positionsMap[position]), ...(ngDevMode ? [{ debugName: "connectedPositions" }] : []));
2949
+ /**
2950
+ * Linked signal that holds the currently active ConnectionPositionPair.
2951
+ */
2952
+ connectedPositionPair = linkedSignal(() => this.connectedPositions()[0], ...(ngDevMode ? [{ debugName: "connectedPositionPair" }] : []));
2953
+ /**
2954
+ * Computed overlay direction string derived from the active connection pair (e.g. 'top', 'bottom').
2955
+ */
2956
+ direction = computed(() => {
2957
+ const pair = this.connectedPositionPair();
2958
+ return Object.entries(positionsMap)
2959
+ .find(([, position]) => position.originX === pair.originX &&
2960
+ position.originY === pair.originY &&
2961
+ position.overlayX === pair.overlayX &&
2962
+ position.overlayY === pair.overlayY)?.[0]
2963
+ .split('-')[0];
2964
+ }, ...(ngDevMode ? [{ debugName: "direction" }] : []));
2965
+ constructor() {
2966
+ effect(() => {
2967
+ this.setScrollStrategy();
2968
+ this.setPositions();
2969
+ });
2970
+ }
2971
+ /**
2972
+ * Set the active connection pair when the CDK overlay reports a position change.
2973
+ *
2974
+ * @param event - The position change event containing the new connection pair.
2975
+ */
2976
+ setPositionPair(event) {
2977
+ this.connectedPositionPair.set(event.connectionPair);
2978
+ }
2979
+ /**
2980
+ * Deactivate the overlay trigger when the overlay detaches.
2981
+ */
2982
+ deactivateTrigger() {
2983
+ this.trigger()?.active?.set(false);
2984
+ }
2985
+ /**
2986
+ * Close the overlay if a click occurs outside and `closeOnClickOutside` is enabled.
2987
+ */
2988
+ closeIfClickedOutside() {
2989
+ if (this.closeOnClickOutside()) {
2990
+ this.trigger()?.active?.set(false);
2991
+ }
2992
+ }
2993
+ /**
2994
+ * Close the overlay when the Escape key is pressed and `closeOnTypeEscape` is enabled.
2995
+ *
2996
+ * @param event - The keyboard event emitted by the overlay.
2997
+ */
2998
+ closeOnEscape(event) {
2999
+ if (this.closeOnTypeEscape() && event.key === 'Escape') {
3000
+ this.trigger()?.active?.set(false);
3001
+ }
3002
+ }
3003
+ /**
3004
+ * Apply the selected scroll strategy to the CDK connected overlay.
3005
+ */
3006
+ setScrollStrategy() {
3007
+ switch (this.scroll()) {
3008
+ case 'close':
3009
+ this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.close();
3010
+ break;
3011
+ case 'reposition':
3012
+ this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.reposition();
3013
+ break;
3014
+ case 'block':
3015
+ this.cdkConnectedOverlay.scrollStrategy = this.scrollStrategyOptions.block();
3016
+ break;
3017
+ }
3018
+ }
3019
+ /**
3020
+ * Update the overlay's available positions from the computed `connectedPositions`.
3021
+ */
3022
+ setPositions() {
3023
+ this.cdkConnectedOverlay.positions = this.connectedPositions();
3024
+ }
3025
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Overlay, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3026
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.6", type: Overlay, isStandalone: true, selector: "[bOverlay]", inputs: { trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: false, transformFunction: null }, closeOnClickOutside: { classPropertyName: "closeOnClickOutside", publicName: "closeOnClickOutside", isSignal: true, isRequired: false, transformFunction: null }, closeOnTypeEscape: { classPropertyName: "closeOnTypeEscape", publicName: "closeOnTypeEscape", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeOnClickOutside: "closeOnClickOutsideChange", closeOnTypeEscape: "closeOnTypeEscapeChange", scroll: "scrollChange" }, host: { listeners: { "positionChange": "setPositionPair($event)", "detach": "deactivateTrigger()", "overlayOutsideClick": "closeIfClickedOutside()", "overlayKeydown": "closeOnEscape($event)" } }, hostDirectives: [{ directive: i1$2.CdkConnectedOverlay, inputs: ["cdkConnectedOverlayBackdropClass", "backdropClass", "cdkConnectedOverlayDisposeOnNavigation", "disposeOnNavigation", "cdkConnectedOverlayFlexibleDimensions", "flexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "growAfterOpen", "cdkConnectedOverlayHasBackdrop", "hasBackdrop", "cdkConnectedOverlayHeight", "height", "cdkConnectedOverlayLockPosition", "lockPosition", "cdkConnectedOverlayMinHeight", "minHeight", "cdkConnectedOverlayMinWidth", "minWidth", "cdkConnectedOverlayOffsetX", "offsetX", "cdkConnectedOverlayOffsetY", "offsetY", "cdkConnectedOverlayOpen", "open", "cdkConnectedOverlayOrigin", "trigger", "cdkConnectedOverlayPanelClass", "panelClass", "cdkConnectedOverlayPositionStrategy", "positionStrategy", "cdkConnectedOverlayPush", "push", "cdkConnectedOverlayTransformOriginOn", "transformOriginSelector", "cdkConnectedOverlayViewportMargin", "viewportMargin", "cdkConnectedOverlayWidth", "width"], outputs: ["attach", "attach", "detach", "detach", "overlayKeydown", "overlayKeydown", "overlayOutsideClick", "overlayOutsideClick", "positionChange", "positionChange"] }], ngImport: i0 });
3027
+ }
3028
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Overlay, decorators: [{
3029
+ type: Directive,
3030
+ args: [{
3031
+ selector: '[bOverlay]',
3032
+ hostDirectives: [
3033
+ {
3034
+ directive: CdkConnectedOverlay,
3035
+ inputs: [
3036
+ 'cdkConnectedOverlayBackdropClass: backdropClass',
3037
+ 'cdkConnectedOverlayDisposeOnNavigation: disposeOnNavigation',
3038
+ 'cdkConnectedOverlayFlexibleDimensions: flexibleDimensions',
3039
+ 'cdkConnectedOverlayGrowAfterOpen: growAfterOpen',
3040
+ 'cdkConnectedOverlayHasBackdrop: hasBackdrop',
3041
+ 'cdkConnectedOverlayHeight: height',
3042
+ 'cdkConnectedOverlayLockPosition: lockPosition',
3043
+ 'cdkConnectedOverlayMinHeight: minHeight',
3044
+ 'cdkConnectedOverlayMinWidth: minWidth',
3045
+ 'cdkConnectedOverlayOffsetX: offsetX',
3046
+ 'cdkConnectedOverlayOffsetY: offsetY',
3047
+ 'cdkConnectedOverlayOpen: open',
3048
+ 'cdkConnectedOverlayOrigin: trigger',
3049
+ 'cdkConnectedOverlayPanelClass: panelClass',
3050
+ 'cdkConnectedOverlayPositionStrategy: positionStrategy',
3051
+ 'cdkConnectedOverlayPush: push',
3052
+ 'cdkConnectedOverlayTransformOriginOn: transformOriginSelector',
3053
+ 'cdkConnectedOverlayViewportMargin: viewportMargin',
3054
+ 'cdkConnectedOverlayWidth: width',
3055
+ ],
3056
+ outputs: [
3057
+ 'attach: attach',
3058
+ 'detach: detach',
3059
+ 'overlayKeydown: overlayKeydown',
3060
+ 'overlayOutsideClick: overlayOutsideClick',
3061
+ 'positionChange: positionChange',
3062
+ ],
3063
+ },
3064
+ ],
3065
+ host: {
3066
+ '(positionChange)': 'setPositionPair($event)',
3067
+ '(detach)': 'deactivateTrigger()',
3068
+ '(overlayOutsideClick)': 'closeIfClickedOutside()',
3069
+ '(overlayKeydown)': 'closeOnEscape($event)',
3070
+ },
3071
+ }]
3072
+ }], ctorParameters: () => [], propDecorators: { trigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "trigger", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], positions: [{ type: i0.Input, args: [{ isSignal: true, alias: "positions", required: false }] }], closeOnClickOutside: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnClickOutside", required: false }] }, { type: i0.Output, args: ["closeOnClickOutsideChange"] }], closeOnTypeEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnTypeEscape", required: false }] }, { type: i0.Output, args: ["closeOnTypeEscapeChange"] }], scroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "scroll", required: false }] }, { type: i0.Output, args: ["scrollChange"] }] } });
3073
+ /** Map of semantic positions to CDK ConnectedPosition configuration objects. */
3074
+ const positionsMap = {
3075
+ 'top-left': {
3076
+ originX: 'start',
3077
+ originY: 'top',
3078
+ overlayX: 'start',
3079
+ overlayY: 'bottom',
3080
+ offsetX: 0,
3081
+ offsetY: -4,
3082
+ },
3083
+ 'top-center': {
3084
+ originX: 'center',
3085
+ originY: 'top',
3086
+ overlayX: 'center',
3087
+ overlayY: 'bottom',
3088
+ offsetX: 0,
3089
+ offsetY: -4,
3090
+ },
3091
+ 'top-right': {
3092
+ originX: 'end',
3093
+ originY: 'top',
3094
+ overlayX: 'end',
3095
+ overlayY: 'bottom',
3096
+ offsetX: 0,
3097
+ offsetY: -4,
3098
+ },
3099
+ 'bottom-left': {
3100
+ originX: 'start',
3101
+ originY: 'bottom',
3102
+ overlayX: 'start',
3103
+ overlayY: 'top',
3104
+ offsetX: 0,
3105
+ offsetY: 4,
3106
+ },
3107
+ 'bottom-center': {
3108
+ originX: 'center',
3109
+ originY: 'bottom',
3110
+ overlayX: 'center',
3111
+ overlayY: 'top',
3112
+ offsetX: 0,
3113
+ offsetY: 4,
3114
+ },
3115
+ 'bottom-right': {
3116
+ originX: 'end',
3117
+ originY: 'bottom',
3118
+ overlayX: 'end',
3119
+ overlayY: 'top',
3120
+ offsetX: 0,
3121
+ offsetY: 4,
3122
+ },
3123
+ 'left-top': {
3124
+ originX: 'start',
3125
+ originY: 'top',
3126
+ overlayX: 'end',
3127
+ overlayY: 'top',
3128
+ offsetX: -4,
3129
+ offsetY: 0,
3130
+ },
3131
+ 'left-center': {
3132
+ originX: 'start',
3133
+ originY: 'center',
3134
+ overlayX: 'end',
3135
+ overlayY: 'center',
3136
+ offsetX: -4,
3137
+ offsetY: 0,
3138
+ },
3139
+ 'left-bottom': {
3140
+ originX: 'start',
3141
+ originY: 'bottom',
3142
+ overlayX: 'end',
3143
+ overlayY: 'bottom',
3144
+ offsetX: -4,
3145
+ offsetY: 0,
3146
+ },
3147
+ 'right-top': {
3148
+ originX: 'end',
3149
+ originY: 'top',
3150
+ overlayX: 'start',
3151
+ overlayY: 'top',
3152
+ offsetX: 4,
3153
+ offsetY: 0,
3154
+ },
3155
+ 'right-center': {
3156
+ originX: 'end',
3157
+ originY: 'center',
3158
+ overlayX: 'start',
3159
+ overlayY: 'center',
3160
+ offsetX: 4,
3161
+ offsetY: 0,
3162
+ },
3163
+ 'right-bottom': {
3164
+ originX: 'end',
3165
+ originY: 'bottom',
3166
+ overlayX: 'start',
3167
+ overlayY: 'bottom',
3168
+ offsetX: 4,
3169
+ offsetY: 0,
3170
+ },
3171
+ };
3172
+
3173
+ /**
3174
+ * Tooltip directive that configures an overlay for displaying tooltip content.
3175
+ */
3176
+ class Tooltip extends Overlay {
3177
+ ngOnInit() {
3178
+ this.setCloseOnTypeEscapeToFalse();
3179
+ }
3180
+ /**
3181
+ * Sets the closeOnTypeEscape property to false for tooltips.
3182
+ */
3183
+ setCloseOnTypeEscapeToFalse() {
3184
+ this.closeOnTypeEscape.set(false);
3185
+ }
3186
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tooltip, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3187
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: Tooltip, isStandalone: true, selector: "[bTooltip]", usesInheritance: true, ngImport: i0 });
3188
+ }
3189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tooltip, decorators: [{
3190
+ type: Directive,
3191
+ args: [{
3192
+ selector: '[bTooltip]',
3193
+ }]
3194
+ }] });
3195
+
3196
+ /**
3197
+ * Tooltip content that is displayed within a connected overlay.
3198
+ */
3199
+ class TooltipContent {
2914
3200
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TooltipContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2915
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: TooltipContent, isStandalone: true, selector: "b-tooltip-content", host: { properties: { "animate.enter": "\"b-tooltip-content-entering-\" + this.direction()", "animate.leave": "\"b-tooltip-content-leaving-\" + this.direction()" } }, ngImport: i0, template: ` <ng-content /> `, isInline: true });
3201
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: TooltipContent, isStandalone: true, selector: "b-tooltip-content", ngImport: i0, template: ` <ng-content /> `, isInline: true });
2916
3202
  }
2917
3203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TooltipContent, decorators: [{
2918
3204
  type: Component,
2919
3205
  args: [{
2920
3206
  selector: 'b-tooltip-content',
2921
- imports: [],
2922
3207
  template: ` <ng-content /> `,
2923
- host: {
2924
- '[animate.enter]': '"b-tooltip-content-entering-" + this.direction()',
2925
- '[animate.leave]': '"b-tooltip-content-leaving-" + this.direction()',
2926
- },
2927
3208
  }]
2928
3209
  }] });
2929
3210
 
2930
3211
  /**
2931
- * Trigger directive that emits activation events for tooltips.
3212
+ * Directive that marks an element as an overlay trigger and toggles its active state on click.
2932
3213
  */
2933
- class TooltipTrigger {
3214
+ class OverlayTrigger extends CdkOverlayOrigin {
2934
3215
  /**
2935
- * Emitted when the trigger becomes active (hover/focus).
2936
- */
2937
- activeEmitter = output();
2938
- /**
2939
- * Emitted when the trigger becomes inactive (mouseout/blur).
3216
+ * Signal that holds whether the overlay trigger is active.
3217
+ *
3218
+ * @defaultValue false
2940
3219
  */
2941
- inactiveEmitter = output();
2942
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TooltipTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2943
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: TooltipTrigger, isStandalone: true, selector: "[bTooltipTrigger]", outputs: { activeEmitter: "activeEmitter", inactiveEmitter: "inactiveEmitter" }, host: { listeners: { "mouseover": "activeEmitter.emit()", "focus": "activeEmitter.emit()", "mouseout": "inactiveEmitter.emit()", "blur": "inactiveEmitter.emit()" } }, ngImport: i0 });
3220
+ active = signal(false, ...(ngDevMode ? [{ debugName: "active" }] : []));
3221
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OverlayTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3222
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: OverlayTrigger, isStandalone: true, selector: "[bOverlayTrigger]", exportAs: ["bOverlayTrigger"], usesInheritance: true, hostDirectives: [{ directive: i1$2.CdkOverlayOrigin }], ngImport: i0 });
2944
3223
  }
2945
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TooltipTrigger, decorators: [{
3224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: OverlayTrigger, decorators: [{
2946
3225
  type: Directive,
2947
3226
  args: [{
2948
- selector: '[bTooltipTrigger]',
2949
- host: {
2950
- '(mouseover)': 'activeEmitter.emit()',
2951
- '(focus)': 'activeEmitter.emit()',
2952
- '(mouseout)': 'inactiveEmitter.emit()',
2953
- '(blur)': 'inactiveEmitter.emit()',
2954
- },
3227
+ selector: '[bOverlayTrigger]',
3228
+ exportAs: 'bOverlayTrigger',
3229
+ hostDirectives: [CdkOverlayOrigin],
2955
3230
  }]
2956
- }], propDecorators: { activeEmitter: [{ type: i0.Output, args: ["activeEmitter"] }], inactiveEmitter: [{ type: i0.Output, args: ["inactiveEmitter"] }] } });
3231
+ }] });
2957
3232
 
2958
3233
  /**
2959
- * Lightweight tooltip that connects a trigger to overlay content.
3234
+ * Trigger directive that emits activation events for tooltips.
3235
+ *
3236
+ * This directive now extends `OverlayOrigin` so it exposes the same
3237
+ * `trigger` and `el` properties expected by `ConnectedOverlay`.
2960
3238
  */
2961
- class Tooltip {
2962
- /**
2963
- * Connected overlay instance used to open/close the tooltip.
2964
- */
2965
- overlay = contentChild(ConnectedOverlay, ...(ngDevMode ? [{ debugName: "overlay" }] : []));
2966
- /**
2967
- * ContentChild that emits activation events.
2968
- */
2969
- tooltipTrigger = contentChild(TooltipTrigger, ...(ngDevMode ? [{ debugName: "tooltipTrigger" }] : []));
2970
- /**
2971
- * Tooltip content element.
2972
- */
2973
- tooltipContent = contentChild(TooltipContent, ...(ngDevMode ? [{ debugName: "tooltipContent" }] : []));
2974
- ngAfterContentInit() {
2975
- this.handleTooltipEvents();
2976
- }
2977
- /**
2978
- * Handles tooltip activation events.
2979
- */
2980
- handleTooltipEvents() {
2981
- this.tooltipTrigger()?.activeEmitter.subscribe(() => {
2982
- this.overlay()?.openOverlay();
2983
- });
2984
- this.tooltipTrigger()?.inactiveEmitter.subscribe(() => {
2985
- this.overlay()?.closeOverlay();
2986
- });
2987
- }
2988
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tooltip, deps: [], target: i0.ɵɵFactoryTarget.Component });
2989
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.6", type: Tooltip, isStandalone: true, selector: "b-tooltip", queries: [{ propertyName: "overlay", first: true, predicate: ConnectedOverlay, descendants: true, isSignal: true }, { propertyName: "tooltipTrigger", first: true, predicate: TooltipTrigger, descendants: true, isSignal: true }, { propertyName: "tooltipContent", first: true, predicate: TooltipContent, descendants: true, isSignal: true }], ngImport: i0, template: ` <ng-content /> `, isInline: true });
3239
+ class TooltipTrigger extends OverlayTrigger {
3240
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TooltipTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3241
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: TooltipTrigger, isStandalone: true, selector: "[bTooltipTrigger]", host: { listeners: { "mouseover": "active.set(true)", "focus": "active.set(true)", "mouseout": "active.set(false)", "blur": "active.set(false)" } }, exportAs: ["bTooltipTrigger"], usesInheritance: true, ngImport: i0 });
2990
3242
  }
2991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tooltip, decorators: [{
2992
- type: Component,
3243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TooltipTrigger, decorators: [{
3244
+ type: Directive,
2993
3245
  args: [{
2994
- selector: 'b-tooltip',
2995
- template: ` <ng-content /> `,
3246
+ selector: '[bTooltipTrigger]',
3247
+ host: {
3248
+ '(mouseover)': 'active.set(true)',
3249
+ '(focus)': 'active.set(true)',
3250
+ '(mouseout)': 'active.set(false)',
3251
+ '(blur)': 'active.set(false)',
3252
+ },
3253
+ exportAs: 'bTooltipTrigger',
2996
3254
  }]
2997
- }], propDecorators: { overlay: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ConnectedOverlay), { isSignal: true }] }], tooltipTrigger: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TooltipTrigger), { isSignal: true }] }], tooltipContent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TooltipContent), { isSignal: true }] }] } });
3255
+ }] });
2998
3256
 
2999
3257
  /**
3000
3258
  * Individual node within a tree structure, supporting drag-and-drop and nested trees.
@@ -3635,5 +3893,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
3635
3893
  * Generated bundle index. Do not edit.
3636
3894
  */
3637
3895
 
3638
- export { Alert, Badge, Button, ButtonGroup, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CommandComponent, CommandOptionsComponent, ConnectedOverlay, Dialog, DialogContent, DialogManager, Drawer, Input, InputGroup, Menu, MenuGroup, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuLabel, MenuTriggerDirective, Option, Otp, OtpDigitDirective, OverlayOrigin, Popover, PopoverContent, PopoverTrigger, Range, ResponsiveManager, Select, SelectContent, SelectFilter, SelectTrigger, SelectValue, Sheet, Spinner, SwitchComponent, Tab, Tabs, Textarea, TextareaGroup, ThemeManager, Tooltip, TooltipContent, TooltipTrigger, TranslatePipe, TranslationManager, Tree, TreeNode, Utils };
3896
+ export { Alert, Badge, Button, ButtonGroup, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CommandComponent, CommandOptionsComponent, ConnectedOverlay, Dialog, DialogContent, DialogManager, Drawer, Input, InputGroup, Menu, MenuGroup, MenuItem, MenuItemCheckbox, MenuItemRadio, MenuLabel, MenuTriggerDirective, Option, Otp, OtpDigitDirective, Overlay, OverlayOrigin, OverlayTrigger, Popover, PopoverContent, PopoverTrigger, Range, ResponsiveManager, Select, SelectContent, SelectFilter, SelectTrigger, SelectValue, Sheet, Spinner, SwitchComponent, Tab, Tabs, Textarea, TextareaGroup, ThemeManager, Tooltip, TooltipContent, TooltipTrigger, TranslatePipe, TranslationManager, Tree, TreeNode, Utils };
3639
3897
  //# sourceMappingURL=basis-ng-primitives.mjs.map