@spartan-ng/brain 0.0.1-alpha.380 → 0.0.1-alpha.382

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.
Files changed (101) hide show
  1. package/accordion/lib/brn-accordion-content.component.d.ts +1 -1
  2. package/accordion/lib/brn-accordion.directive.d.ts +2 -2
  3. package/core/README.md +3 -0
  4. package/core/helpers/create-injection-token.d.ts +20 -0
  5. package/core/helpers/custom-element-class-settable.d.ts +12 -0
  6. package/core/helpers/dev-mode.d.ts +5 -0
  7. package/core/helpers/exposes-side.d.ts +13 -0
  8. package/core/helpers/exposes-state.d.ts +13 -0
  9. package/core/helpers/hlm.d.ts +2 -0
  10. package/core/helpers/table-classes-settable.d.ts +16 -0
  11. package/core/helpers/zone-free.d.ts +10 -0
  12. package/core/index.d.ts +7 -0
  13. package/esm2022/accordion/lib/brn-accordion-content.component.mjs +1 -1
  14. package/esm2022/accordion/lib/brn-accordion.directive.mjs +8 -3
  15. package/esm2022/alert-dialog/lib/brn-alert-dialog-content.directive.mjs +2 -2
  16. package/esm2022/alert-dialog/lib/brn-alert-dialog-overlay.component.mjs +2 -2
  17. package/esm2022/core/helpers/create-injection-token.mjs +15 -0
  18. package/esm2022/core/helpers/custom-element-class-settable.mjs +3 -0
  19. package/esm2022/core/helpers/dev-mode.mjs +6 -0
  20. package/esm2022/core/helpers/exposes-side.mjs +3 -0
  21. package/esm2022/core/helpers/exposes-state.mjs +3 -0
  22. package/esm2022/core/helpers/hlm.mjs +6 -0
  23. package/esm2022/core/helpers/table-classes-settable.mjs +3 -0
  24. package/esm2022/core/helpers/zone-free.mjs +15 -0
  25. package/esm2022/core/index.mjs +8 -0
  26. package/esm2022/core/spartan-ng-brain-core.mjs +5 -0
  27. package/esm2022/dialog/lib/brn-dialog-content.directive.mjs +2 -2
  28. package/esm2022/dialog/lib/brn-dialog-overlay.component.mjs +2 -2
  29. package/esm2022/dialog/lib/brn-dialog-ref.mjs +3 -2
  30. package/esm2022/dialog/lib/brn-dialog.component.mjs +2 -2
  31. package/esm2022/dialog/lib/brn-dialog.service.mjs +3 -2
  32. package/esm2022/hover-card/lib/brn-hover-card-content.service.mjs +26 -36
  33. package/esm2022/hover-card/lib/brn-hover-card.component.mjs +8 -14
  34. package/esm2022/hover-card/lib/createHoverObservable.mjs +4 -3
  35. package/esm2022/menu/lib/brn-menu-trigger.directive.mjs +9 -3
  36. package/esm2022/popover/lib/brn-popover-content.directive.mjs +2 -2
  37. package/esm2022/radio-group/index.mjs +5 -5
  38. package/esm2022/radio-group/lib/{brn-radio-group.component.mjs → brn-radio-group.directive.mjs} +12 -12
  39. package/esm2022/radio-group/lib/brn-radio-group.token.mjs +3 -3
  40. package/esm2022/select/lib/brn-select-content.component.mjs +3 -2
  41. package/esm2022/select/lib/brn-select.component.mjs +4 -3
  42. package/esm2022/select/lib/brn-select.service.mjs +3 -2
  43. package/esm2022/sheet/lib/brn-sheet-content.directive.mjs +2 -2
  44. package/esm2022/sheet/lib/brn-sheet-overlay.component.mjs +2 -2
  45. package/esm2022/slider/lib/brn-slider-track.directive.mjs +3 -2
  46. package/esm2022/table/lib/brn-table.component.mjs +2 -2
  47. package/esm2022/tabs/lib/brn-tabs-list.directive.mjs +3 -2
  48. package/esm2022/toggle/lib/brn-toggle.directive.mjs +3 -3
  49. package/esm2022/tooltip/index.mjs +2 -1
  50. package/esm2022/tooltip/lib/brn-tooltip-content.component.mjs +8 -15
  51. package/esm2022/tooltip/lib/brn-tooltip-trigger.directive.mjs +136 -200
  52. package/esm2022/tooltip/lib/brn-tooltip.token.mjs +18 -0
  53. package/esm2022/tooltip/lib/computed-previous.mjs +46 -0
  54. package/fesm2022/spartan-ng-brain-accordion.mjs +7 -2
  55. package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
  56. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +1 -1
  57. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
  58. package/fesm2022/spartan-ng-brain-core.mjs +57 -0
  59. package/fesm2022/spartan-ng-brain-core.mjs.map +1 -0
  60. package/fesm2022/spartan-ng-brain-dialog.mjs +3 -2
  61. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
  62. package/fesm2022/spartan-ng-brain-hover-card.mjs +31 -40
  63. package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -1
  64. package/fesm2022/spartan-ng-brain-menu.mjs +8 -2
  65. package/fesm2022/spartan-ng-brain-menu.mjs.map +1 -1
  66. package/fesm2022/spartan-ng-brain-popover.mjs +1 -1
  67. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
  68. package/fesm2022/spartan-ng-brain-radio-group.mjs +16 -16
  69. package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -1
  70. package/fesm2022/spartan-ng-brain-select.mjs +3 -2
  71. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
  72. package/fesm2022/spartan-ng-brain-sheet.mjs +1 -1
  73. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -1
  74. package/fesm2022/spartan-ng-brain-slider.mjs +2 -1
  75. package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -1
  76. package/fesm2022/spartan-ng-brain-table.mjs +1 -1
  77. package/fesm2022/spartan-ng-brain-table.mjs.map +1 -1
  78. package/fesm2022/spartan-ng-brain-tabs.mjs +2 -2
  79. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -1
  80. package/fesm2022/spartan-ng-brain-toggle.mjs +2 -2
  81. package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -1
  82. package/fesm2022/spartan-ng-brain-tooltip.mjs +200 -211
  83. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
  84. package/hlm-tailwind-preset.js +73 -0
  85. package/hover-card/lib/brn-hover-card-content.service.d.ts +18 -11
  86. package/hover-card/lib/brn-hover-card.component.d.ts +2 -2
  87. package/hover-card/lib/createHoverObservable.d.ts +1 -1
  88. package/menu/lib/brn-menu-trigger.directive.d.ts +1 -1
  89. package/package.json +57 -46
  90. package/radio-group/index.d.ts +5 -5
  91. package/radio-group/lib/{brn-radio-group.component.d.ts → brn-radio-group.directive.d.ts} +3 -3
  92. package/radio-group/lib/brn-radio-group.token.d.ts +3 -3
  93. package/radio-group/lib/brn-radio.component.d.ts +1 -1
  94. package/select/lib/brn-select.component.d.ts +1 -1
  95. package/sheet/lib/brn-sheet-content.directive.d.ts +1 -1
  96. package/table/lib/brn-table.component.d.ts +1 -1
  97. package/tooltip/index.d.ts +1 -0
  98. package/tooltip/lib/brn-tooltip-content.component.d.ts +2 -2
  99. package/tooltip/lib/brn-tooltip-trigger.directive.d.ts +24 -64
  100. package/tooltip/lib/brn-tooltip.token.d.ts +28 -0
  101. package/tooltip/lib/computed-previous.d.ts +36 -0
@@ -1,11 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, TemplateRef, Directive, NgZone, signal, Injectable, ViewContainerRef, ElementRef, Input, Component, ContentChild, NgModule } from '@angular/core';
2
+ import { inject, TemplateRef, Directive, NgZone, signal, Injectable, ViewContainerRef, ElementRef, input, computed, effect, contentChild, Component, NgModule } from '@angular/core';
3
+ import { FocusMonitor } from '@angular/cdk/a11y';
3
4
  import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
4
5
  import { TemplatePortal } from '@angular/cdk/portal';
5
6
  import { toSignal } from '@angular/core/rxjs-interop';
6
- import { brnZoneOptimized, provideExposedSideProviderExisting, provideExposesStateProviderExisting } from '@spartan-ng/ui-core';
7
- import { merge, fromEvent, map, filter, distinctUntilChanged, takeUntil, Subject, BehaviorSubject, switchMap, of, tap, delay, share } from 'rxjs';
8
- import { FocusMonitor } from '@angular/cdk/a11y';
7
+ import { brnZoneOptimized, provideExposedSideProviderExisting, provideExposesStateProviderExisting } from '@spartan-ng/brain/core';
8
+ import { merge, fromEvent, Subject, BehaviorSubject, of } from 'rxjs';
9
+ import { map, filter, distinctUntilChanged, takeUntil, switchMap, tap, delay, share } from 'rxjs/operators';
9
10
 
10
11
  function movedOut({ currentTarget, relatedTarget }) {
11
12
  return !isElement(relatedTarget) || !isElement(currentTarget) || !currentTarget.contains(relatedTarget);
@@ -156,7 +157,7 @@ class BrnHoverCardTriggerDirective {
156
157
  // we set the state to open here because we are about to open show the content
157
158
  tap((visible) => visible && this._contentService.setState('open')), switchMap((visible) => {
158
159
  // we are delaying based on the configure-able input
159
- return of(visible).pipe(delay(visible ? this.showDelay : this.hideDelay));
160
+ return of(visible).pipe(delay(visible ? this.showDelay() : this.hideDelay()));
160
161
  }), switchMap((visible) => {
161
162
  // don't do anything when we are in the process of showing the content
162
163
  if (visible)
@@ -164,18 +165,26 @@ class BrnHoverCardTriggerDirective {
164
165
  // we set the state to closed here to trigger any animations for the element leaving
165
166
  this._contentService.setState('closed');
166
167
  // then delay to wait for the leaving animation to finish
167
- return of(visible).pipe(delay(this.animationDelay));
168
+ return of(visible).pipe(delay(this.animationDelay()));
168
169
  }), distinctUntilChanged(), share(), takeUntil(this._destroy$));
169
- showDelay = 300;
170
- hideDelay = 500;
171
- animationDelay = 100;
172
- sideOffset = 5;
173
- align = 'bottom';
174
- set brnHoverCardTriggerFor(value) {
175
- this._contentService.setContent(value, this._vcr);
170
+ showDelay = input(300);
171
+ hideDelay = input(500);
172
+ animationDelay = input(100);
173
+ sideOffset = input(5);
174
+ align = input('bottom');
175
+ brnHoverCardTriggerFor = input(undefined);
176
+ mutableBrnHoverCardTriggerFor = computed(() => signal(this.brnHoverCardTriggerFor()));
177
+ _brnHoverCardTriggerForState = computed(() => this.mutableBrnHoverCardTriggerFor()());
178
+ constructor() {
179
+ effect(() => {
180
+ const value = this._brnHoverCardTriggerForState();
181
+ if (value) {
182
+ this._contentService.setContent(value, this._vcr);
183
+ }
184
+ }, { allowSignalWrites: true });
176
185
  }
177
186
  ngOnInit() {
178
- this._contentService.setConfig({ attachTo: this._el, align: this.align, sideOffset: this.sideOffset });
187
+ this._contentService.setConfig({ attachTo: this._el, align: this.align(), sideOffset: this.sideOffset() });
179
188
  this.showing$.subscribe((isHovered) => {
180
189
  if (isHovered) {
181
190
  this._contentService.show();
@@ -190,7 +199,7 @@ class BrnHoverCardTriggerDirective {
190
199
  this._destroy$.complete();
191
200
  }
192
201
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnHoverCardTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
193
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnHoverCardTriggerDirective, isStandalone: true, selector: "[brnHoverCardTrigger]:not(ng-container),[brnHoverCardTriggerFor]:not(ng-container)", inputs: { showDelay: "showDelay", hideDelay: "hideDelay", animationDelay: "animationDelay", sideOffset: "sideOffset", align: "align", brnHoverCardTriggerFor: "brnHoverCardTriggerFor" }, exportAs: ["brnHoverCardTrigger"], ngImport: i0 });
202
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnHoverCardTriggerDirective, isStandalone: true, selector: "[brnHoverCardTrigger]:not(ng-container),[brnHoverCardTriggerFor]:not(ng-container)", inputs: { showDelay: { classPropertyName: "showDelay", publicName: "showDelay", isSignal: true, isRequired: false, transformFunction: null }, hideDelay: { classPropertyName: "hideDelay", publicName: "hideDelay", isSignal: true, isRequired: false, transformFunction: null }, animationDelay: { classPropertyName: "animationDelay", publicName: "animationDelay", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, brnHoverCardTriggerFor: { classPropertyName: "brnHoverCardTriggerFor", publicName: "brnHoverCardTriggerFor", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["brnHoverCardTrigger"], ngImport: i0 });
194
203
  }
195
204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnHoverCardTriggerDirective, decorators: [{
196
205
  type: Directive,
@@ -199,30 +208,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
199
208
  standalone: true,
200
209
  exportAs: 'brnHoverCardTrigger',
201
210
  }]
202
- }], propDecorators: { showDelay: [{
203
- type: Input
204
- }], hideDelay: [{
205
- type: Input
206
- }], animationDelay: [{
207
- type: Input
208
- }], sideOffset: [{
209
- type: Input
210
- }], align: [{
211
- type: Input
212
- }], brnHoverCardTriggerFor: [{
213
- type: Input
214
- }] } });
211
+ }], ctorParameters: () => [] });
215
212
 
216
213
  class BrnHoverCardComponent {
217
- _trigger;
218
- _content;
214
+ _trigger = contentChild(BrnHoverCardTriggerDirective);
215
+ _content = contentChild(BrnHoverCardContentDirective);
219
216
  ngAfterContentInit() {
220
- if (!this._trigger || !this._content)
217
+ if (!this._trigger() || !this._content())
221
218
  return;
222
- this._trigger.brnHoverCardTriggerFor = this._content;
219
+ this._trigger()?.mutableBrnHoverCardTriggerFor().set(this._content());
223
220
  }
224
221
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnHoverCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
225
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: BrnHoverCardComponent, isStandalone: true, selector: "brn-hover-card", providers: [BrnHoverCardContentService], queries: [{ propertyName: "_trigger", first: true, predicate: BrnHoverCardTriggerDirective, descendants: true, static: true }, { propertyName: "_content", first: true, predicate: BrnHoverCardContentDirective, descendants: true, static: true }], ngImport: i0, template: `
222
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: BrnHoverCardComponent, isStandalone: true, selector: "brn-hover-card", providers: [BrnHoverCardContentService], queries: [{ propertyName: "_trigger", first: true, predicate: BrnHoverCardTriggerDirective, descendants: true, isSignal: true }, { propertyName: "_content", first: true, predicate: BrnHoverCardContentDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
226
223
  <ng-content />
227
224
  `, isInline: true });
228
225
  }
@@ -236,13 +233,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
236
233
  <ng-content />
237
234
  `,
238
235
  }]
239
- }], propDecorators: { _trigger: [{
240
- type: ContentChild,
241
- args: [BrnHoverCardTriggerDirective, { static: true }]
242
- }], _content: [{
243
- type: ContentChild,
244
- args: [BrnHoverCardContentDirective, { static: true }]
245
- }] } });
236
+ }] });
246
237
 
247
238
  const BrnHoverCardImports = [
248
239
  BrnHoverCardComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-hover-card.mjs","sources":["../../../../libs/brain/hover-card/src/lib/createHoverObservable.ts","../../../../libs/brain/hover-card/src/lib/brn-hover-card-content.service.ts","../../../../libs/brain/hover-card/src/lib/brn-hover-card.component.ts","../../../../libs/brain/hover-card/src/index.ts","../../../../libs/brain/hover-card/src/spartan-ng-brain-hover-card.ts"],"sourcesContent":["import type { NgZone } from '@angular/core';\nimport { brnZoneOptimized } from '@spartan-ng/ui-core';\nimport { type Observable, type Subject, distinctUntilChanged, filter, fromEvent, map, merge, takeUntil } from 'rxjs';\n\nfunction movedOut({ currentTarget, relatedTarget }: MouseEvent): boolean {\n\treturn !isElement(relatedTarget) || !isElement(currentTarget) || !currentTarget.contains(relatedTarget);\n}\n\nexport function isElement(node?: Element | EventTarget | Node | null): node is Element {\n\treturn !!node && 'nodeType' in node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport const createHoverObservable = (\n\tnativeElement: HTMLElement,\n\tzone: NgZone,\n\tdestroyed$: Subject<void>,\n): Observable<boolean> => {\n\treturn merge(\n\t\tfromEvent(nativeElement, 'mouseenter').pipe(map(() => true)),\n\t\tfromEvent(nativeElement, 'mouseleave').pipe(map(() => false)),\n\t\t// Hello, Safari\n\t\tfromEvent<MouseEvent>(nativeElement, 'mouseout').pipe(\n\t\t\tfilter(movedOut),\n\t\t\tmap(() => false),\n\t\t),\n\t\t/**\n\t\t * NOTE: onmouseout events don't trigger when objects move under mouse in Safari\n\t\t * https://bugs.webkit.org/show_bug.cgi?id=4117\n\t\t */\n\t\tfromEvent(nativeElement, 'transitionend').pipe(map(() => nativeElement.matches(':hover'))),\n\t).pipe(distinctUntilChanged(), brnZoneOptimized(zone), takeUntil(destroyed$));\n};\n","import {\n\ttype ConnectedOverlayPositionChange,\n\ttype ConnectedPosition,\n\ttype FlexibleConnectedPositionStrategy,\n\tOverlay,\n\ttype OverlayConfig,\n\tOverlayPositionBuilder,\n\ttype OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n\tElementRef,\n\tInjectable,\n\tNgZone,\n\ttype Signal,\n\tTemplateRef,\n\tViewContainerRef,\n\tinject,\n\tsignal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n\ttype ExposesSide,\n\ttype ExposesState,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/ui-core';\nimport { BehaviorSubject, type Observable, Subject, filter, map, of, switchMap } from 'rxjs';\nimport { createHoverObservable } from './createHoverObservable';\n\n@Directive({\n\tselector: '[brnHoverCardContent]',\n\tstandalone: true,\n\texportAs: 'brnHoverCardContent',\n\tproviders: [\n\t\tprovideExposedSideProviderExisting(() => BrnHoverCardContentDirective),\n\t\tprovideExposesStateProviderExisting(() => BrnHoverCardContentDirective),\n\t],\n})\nexport class BrnHoverCardContentDirective implements ExposesState, ExposesSide {\n\tprivate readonly _contentService = inject(BrnHoverCardContentService);\n\tpublic readonly state = this._contentService.state;\n\tpublic readonly side = this._contentService.side;\n\tpublic readonly template = inject(TemplateRef);\n}\n\n/**\n * We are building on shoulders of giants here and use the implementation provided by the incredible TaigaUI\n * team: https://github.com/taiga-family/taiga-ui/blob/main/projects/core/directives/dropdown/dropdown-hover.directive.ts\n * Check them out! Give them a try! Leave a star! Their work is incredible!\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Directive, Input, type OnDestroy, type OnInit } from '@angular/core';\nimport { delay, distinctUntilChanged, fromEvent, merge, share, takeUntil, tap } from 'rxjs';\n\nexport type BrnHoverCardOptions = Partial<\n\t{\n\t\tattachTo: ElementRef;\n\t\tattachPositions: ConnectedPosition[];\n\t\talign: 'top' | 'bottom';\n\t\tsideOffset: number;\n\t} & OverlayConfig\n>;\n\nconst topFirstPositions: ConnectedPosition[] = [\n\t{\n\t\toriginX: 'center',\n\t\toriginY: 'top',\n\t\toverlayX: 'center',\n\t\toverlayY: 'bottom',\n\t},\n\t{\n\t\toriginX: 'center',\n\t\toriginY: 'bottom',\n\t\toverlayX: 'center',\n\t\toverlayY: 'top',\n\t},\n];\nconst bottomFirstPositions: ConnectedPosition[] = [\n\t{\n\t\toriginX: 'center',\n\t\toriginY: 'bottom',\n\t\toverlayX: 'center',\n\t\toverlayY: 'top',\n\t},\n\t{\n\t\toriginX: 'center',\n\t\toriginY: 'top',\n\t\toverlayX: 'center',\n\t\toverlayY: 'bottom',\n\t},\n];\n\n@Injectable()\nexport class BrnHoverCardContentService {\n\tprivate readonly _overlay = inject(Overlay);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _psBuilder = inject(OverlayPositionBuilder);\n\n\tprivate readonly _content = signal<TemplatePortal<unknown> | null>(null);\n\tprivate readonly _state = signal<'open' | 'closed'>('closed');\n\n\tprivate _config: BrnHoverCardOptions = {};\n\tprivate _overlayRef?: OverlayRef;\n\tprivate _positionStrategy?: FlexibleConnectedPositionStrategy;\n\tprivate _destroyed$ = new Subject<void>();\n\n\tprivate readonly _positionChangesObservables$ = new BehaviorSubject<\n\t\tObservable<ConnectedOverlayPositionChange> | undefined\n\t>(undefined);\n\tprivate readonly _overlayHoveredObservables$ = new BehaviorSubject<Observable<boolean> | undefined>(undefined);\n\n\tpublic readonly positionChanges$: Observable<ConnectedOverlayPositionChange> = this._positionChangesObservables$.pipe(\n\t\tswitchMap((positionChangeObservable) => (positionChangeObservable ? positionChangeObservable : of(undefined))),\n\t\tfilter((change): change is NonNullable<ConnectedOverlayPositionChange> => change !== undefined && change !== null),\n\t);\n\tpublic readonly hovered$: Observable<boolean> = this._overlayHoveredObservables$.pipe(\n\t\tswitchMap((overlayHoveredObservable) => (overlayHoveredObservable ? overlayHoveredObservable : of(false))),\n\t);\n\n\tpublic readonly state = this._state.asReadonly();\n\tpublic readonly side: Signal<'top' | 'bottom' | 'left' | 'right'> = toSignal(\n\t\tthis.positionChanges$.pipe(\n\t\t\tmap<ConnectedOverlayPositionChange, 'top' | 'bottom' | 'left' | 'right'>((change) =>\n\t\t\t\t// todo: better translation or adjusting hlm to take that into account\n\t\t\t\tchange.connectionPair.originY === 'center'\n\t\t\t\t\t? change.connectionPair.originX === 'start'\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: 'right'\n\t\t\t\t\t: change.connectionPair.originY,\n\t\t\t),\n\t\t),\n\t\t{ initialValue: 'bottom' },\n\t);\n\n\tpublic setConfig(config: BrnHoverCardOptions) {\n\t\tthis._config = config;\n\t\tif (config.attachTo) {\n\t\t\tthis._positionStrategy = this._psBuilder\n\t\t\t\t.flexibleConnectedTo(config.attachTo)\n\t\t\t\t.withPositions((config.attachPositions ?? config.align === 'top') ? topFirstPositions : bottomFirstPositions)\n\t\t\t\t.withDefaultOffsetY(config.sideOffset ?? 0);\n\t\t\tthis._config = {\n\t\t\t\t...this._config,\n\t\t\t\tpositionStrategy: this._positionStrategy,\n\t\t\t\tscrollStrategy: this._overlay.scrollStrategies.reposition(),\n\t\t\t};\n\t\t\tthis._positionChangesObservables$.next(this._positionStrategy.positionChanges);\n\t\t}\n\t\tthis._overlayRef = this._overlay.create(this._config);\n\t}\n\n\tpublic setContent(value: TemplateRef<unknown> | BrnHoverCardContentDirective, vcr: ViewContainerRef) {\n\t\tthis._content.set(new TemplatePortal<unknown>(value instanceof TemplateRef ? value : value.template, vcr));\n\n\t\tif (!this._overlayRef) {\n\t\t\tthis._overlayRef = this._overlay.create(this._config);\n\t\t}\n\t}\n\n\tpublic setState(newState: 'open' | 'closed') {\n\t\tthis._state.set(newState);\n\t}\n\n\tpublic show() {\n\t\tconst content = this._content();\n\t\tif (!content || !this._overlayRef) return;\n\n\t\tthis._overlayRef?.detach();\n\t\tthis._overlayRef?.attach(content);\n\n\t\tthis._destroyed$ = new Subject<void>();\n\n\t\tthis._overlayHoveredObservables$.next(\n\t\t\tcreateHoverObservable(this._overlayRef.hostElement, this._zone, this._destroyed$),\n\t\t);\n\t}\n\n\tpublic hide() {\n\t\tthis._overlayRef?.detach();\n\t\tthis._destroyed$.next();\n\t\tthis._destroyed$.complete();\n\t\tthis._destroyed$ = new Subject<void>();\n\t}\n}\n\n@Directive({\n\tselector: '[brnHoverCardTrigger]:not(ng-container),[brnHoverCardTriggerFor]:not(ng-container)',\n\tstandalone: true,\n\texportAs: 'brnHoverCardTrigger',\n})\nexport class BrnHoverCardTriggerDirective implements OnInit, OnDestroy {\n\tprivate readonly _destroy$ = new Subject<void>();\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _contentService = inject(BrnHoverCardContentService);\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\n\tpublic readonly focused$: Observable<boolean> = this._focusMonitor.monitor(this._el).pipe(map((e) => e !== null));\n\n\tpublic readonly hovered$: Observable<boolean> = merge(\n\t\tfromEvent(this._el.nativeElement, 'click').pipe(map(() => false)),\n\t\tcreateHoverObservable(this._el.nativeElement, this._zone, this._destroy$),\n\t\tthis._contentService.hovered$,\n\t\tthis.focused$,\n\t).pipe(distinctUntilChanged());\n\tpublic readonly showing$: Observable<boolean> = this.hovered$.pipe(\n\t\t// we set the state to open here because we are about to open show the content\n\t\ttap((visible) => visible && this._contentService.setState('open')),\n\t\tswitchMap((visible) => {\n\t\t\t// we are delaying based on the configure-able input\n\t\t\treturn of(visible).pipe(delay(visible ? this.showDelay : this.hideDelay));\n\t\t}),\n\t\tswitchMap((visible) => {\n\t\t\t// don't do anything when we are in the process of showing the content\n\t\t\tif (visible) return of(visible);\n\t\t\t// we set the state to closed here to trigger any animations for the element leaving\n\t\t\tthis._contentService.setState('closed');\n\t\t\t// then delay to wait for the leaving animation to finish\n\t\t\treturn of(visible).pipe(delay(this.animationDelay));\n\t\t}),\n\t\tdistinctUntilChanged(),\n\t\tshare(),\n\t\ttakeUntil(this._destroy$),\n\t);\n\n\t@Input()\n\tpublic showDelay = 300;\n\t@Input()\n\tpublic hideDelay = 500;\n\t@Input()\n\tpublic animationDelay = 100;\n\t@Input()\n\tpublic sideOffset = 5;\n\n\t@Input()\n\tpublic align: 'top' | 'bottom' = 'bottom';\n\n\t@Input()\n\tpublic set brnHoverCardTriggerFor(value: TemplateRef<unknown> | BrnHoverCardContentDirective) {\n\t\tthis._contentService.setContent(value, this._vcr);\n\t}\n\n\tpublic ngOnInit() {\n\t\tthis._contentService.setConfig({ attachTo: this._el, align: this.align, sideOffset: this.sideOffset });\n\t\tthis.showing$.subscribe((isHovered) => {\n\t\t\tif (isHovered) {\n\t\t\t\tthis._contentService.show();\n\t\t\t} else {\n\t\t\t\tthis._contentService.hide();\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic ngOnDestroy() {\n\t\tthis._destroy$.next();\n\t\tthis._destroy$.complete();\n\t}\n}\n","import { type AfterContentInit, Component, ContentChild } from '@angular/core';\nimport {\n\tBrnHoverCardContentDirective,\n\tBrnHoverCardContentService,\n\tBrnHoverCardTriggerDirective,\n} from './brn-hover-card-content.service';\n\n@Component({\n\tselector: 'brn-hover-card',\n\tstandalone: true,\n\tproviders: [BrnHoverCardContentService],\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n})\nexport class BrnHoverCardComponent implements AfterContentInit {\n\t@ContentChild(BrnHoverCardTriggerDirective, { static: true })\n\tprivate readonly _trigger?: BrnHoverCardTriggerDirective;\n\t@ContentChild(BrnHoverCardContentDirective, { static: true })\n\tprivate readonly _content?: BrnHoverCardContentDirective;\n\n\tpublic ngAfterContentInit() {\n\t\tif (!this._trigger || !this._content) return;\n\t\tthis._trigger.brnHoverCardTriggerFor = this._content;\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { BrnHoverCardContentDirective, BrnHoverCardTriggerDirective } from './lib/brn-hover-card-content.service';\nimport { BrnHoverCardComponent } from './lib/brn-hover-card.component';\n\nexport * from './lib/brn-hover-card-content.service';\nexport * from './lib/brn-hover-card.component';\nexport * from './lib/createHoverObservable';\n\nexport const BrnHoverCardImports = [\n\tBrnHoverCardComponent,\n\tBrnHoverCardContentDirective,\n\tBrnHoverCardTriggerDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnHoverCardImports],\n\texports: [...BrnHoverCardImports],\n})\nexport class BrnHoverCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-hover-card.mjs","sources":["../../../../libs/brain/hover-card/src/lib/createHoverObservable.ts","../../../../libs/brain/hover-card/src/lib/brn-hover-card-content.service.ts","../../../../libs/brain/hover-card/src/lib/brn-hover-card.component.ts","../../../../libs/brain/hover-card/src/index.ts","../../../../libs/brain/hover-card/src/spartan-ng-brain-hover-card.ts"],"sourcesContent":["import type { NgZone } from '@angular/core';\nimport { brnZoneOptimized } from '@spartan-ng/brain/core';\nimport { Observable, Subject, fromEvent, merge } from 'rxjs';\nimport { distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\n\nfunction movedOut({ currentTarget, relatedTarget }: MouseEvent): boolean {\n\treturn !isElement(relatedTarget) || !isElement(currentTarget) || !currentTarget.contains(relatedTarget);\n}\n\nexport function isElement(node?: Element | EventTarget | Node | null): node is Element {\n\treturn !!node && 'nodeType' in node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport const createHoverObservable = (\n\tnativeElement: HTMLElement,\n\tzone: NgZone,\n\tdestroyed$: Subject<void>,\n): Observable<boolean> => {\n\treturn merge(\n\t\tfromEvent(nativeElement, 'mouseenter').pipe(map(() => true)),\n\t\tfromEvent(nativeElement, 'mouseleave').pipe(map(() => false)),\n\t\t// Hello, Safari\n\t\tfromEvent<MouseEvent>(nativeElement, 'mouseout').pipe(\n\t\t\tfilter(movedOut),\n\t\t\tmap(() => false),\n\t\t),\n\t\t/**\n\t\t * NOTE: onmouseout events don't trigger when objects move under mouse in Safari\n\t\t * https://bugs.webkit.org/show_bug.cgi?id=4117\n\t\t */\n\t\tfromEvent(nativeElement, 'transitionend').pipe(map(() => nativeElement.matches(':hover'))),\n\t).pipe(distinctUntilChanged(), brnZoneOptimized(zone), takeUntil(destroyed$));\n};\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n\ttype ConnectedOverlayPositionChange,\n\ttype ConnectedPosition,\n\ttype FlexibleConnectedPositionStrategy,\n\tOverlay,\n\ttype OverlayConfig,\n\tOverlayPositionBuilder,\n\ttype OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n\tcomputed,\n\tDirective,\n\teffect,\n\tElementRef,\n\tinject,\n\tInjectable,\n\tinput,\n\tNgZone,\n\ttype OnDestroy,\n\ttype OnInit,\n\ttype Signal,\n\tsignal,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n\ttype ExposesSide,\n\ttype ExposesState,\n\tprovideExposedSideProviderExisting,\n\tprovideExposesStateProviderExisting,\n} from '@spartan-ng/brain/core';\nimport { BehaviorSubject, fromEvent, merge, Observable, of, Subject } from 'rxjs';\nimport { delay, distinctUntilChanged, filter, map, share, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { createHoverObservable } from './createHoverObservable';\n\n@Directive({\n\tselector: '[brnHoverCardContent]',\n\tstandalone: true,\n\texportAs: 'brnHoverCardContent',\n\tproviders: [\n\t\tprovideExposedSideProviderExisting(() => BrnHoverCardContentDirective),\n\t\tprovideExposesStateProviderExisting(() => BrnHoverCardContentDirective),\n\t],\n})\nexport class BrnHoverCardContentDirective implements ExposesState, ExposesSide {\n\tprivate readonly _contentService = inject(BrnHoverCardContentService);\n\tpublic readonly state = this._contentService.state;\n\tpublic readonly side = this._contentService.side;\n\tpublic readonly template = inject(TemplateRef);\n}\n\n/**\n * We are building on shoulders of giants here and use the implementation provided by the incredible TaigaUI\n * team: https://github.com/taiga-family/taiga-ui/blob/main/projects/core/directives/dropdown/dropdown-hover.directive.ts\n * Check them out! Give them a try! Leave a star! Their work is incredible!\n */\n\nexport type BrnHoverCardOptions = Partial<\n\t{\n\t\tattachTo: ElementRef;\n\t\tattachPositions: ConnectedPosition[];\n\t\talign: 'top' | 'bottom';\n\t\tsideOffset: number;\n\t} & OverlayConfig\n>;\n\nconst topFirstPositions: ConnectedPosition[] = [\n\t{\n\t\toriginX: 'center',\n\t\toriginY: 'top',\n\t\toverlayX: 'center',\n\t\toverlayY: 'bottom',\n\t},\n\t{\n\t\toriginX: 'center',\n\t\toriginY: 'bottom',\n\t\toverlayX: 'center',\n\t\toverlayY: 'top',\n\t},\n];\nconst bottomFirstPositions: ConnectedPosition[] = [\n\t{\n\t\toriginX: 'center',\n\t\toriginY: 'bottom',\n\t\toverlayX: 'center',\n\t\toverlayY: 'top',\n\t},\n\t{\n\t\toriginX: 'center',\n\t\toriginY: 'top',\n\t\toverlayX: 'center',\n\t\toverlayY: 'bottom',\n\t},\n];\n\n@Injectable()\nexport class BrnHoverCardContentService {\n\tprivate readonly _overlay = inject(Overlay);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _psBuilder = inject(OverlayPositionBuilder);\n\n\tprivate readonly _content = signal<TemplatePortal<unknown> | null>(null);\n\tprivate readonly _state = signal<'open' | 'closed'>('closed');\n\n\tprivate _config: BrnHoverCardOptions = {};\n\tprivate _overlayRef?: OverlayRef;\n\tprivate _positionStrategy?: FlexibleConnectedPositionStrategy;\n\tprivate _destroyed$ = new Subject<void>();\n\n\tprivate readonly _positionChangesObservables$ = new BehaviorSubject<\n\t\tObservable<ConnectedOverlayPositionChange> | undefined\n\t>(undefined);\n\tprivate readonly _overlayHoveredObservables$ = new BehaviorSubject<Observable<boolean> | undefined>(undefined);\n\n\tpublic readonly positionChanges$: Observable<ConnectedOverlayPositionChange> = this._positionChangesObservables$.pipe(\n\t\tswitchMap((positionChangeObservable) => (positionChangeObservable ? positionChangeObservable : of(undefined))),\n\t\tfilter((change): change is NonNullable<ConnectedOverlayPositionChange> => change !== undefined && change !== null),\n\t);\n\tpublic readonly hovered$: Observable<boolean> = this._overlayHoveredObservables$.pipe(\n\t\tswitchMap((overlayHoveredObservable) => (overlayHoveredObservable ? overlayHoveredObservable : of(false))),\n\t);\n\n\tpublic readonly state = this._state.asReadonly();\n\tpublic readonly side: Signal<'top' | 'bottom' | 'left' | 'right'> = toSignal(\n\t\tthis.positionChanges$.pipe(\n\t\t\tmap<ConnectedOverlayPositionChange, 'top' | 'bottom' | 'left' | 'right'>((change) =>\n\t\t\t\t// todo: better translation or adjusting hlm to take that into account\n\t\t\t\tchange.connectionPair.originY === 'center'\n\t\t\t\t\t? change.connectionPair.originX === 'start'\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: 'right'\n\t\t\t\t\t: change.connectionPair.originY,\n\t\t\t),\n\t\t),\n\t\t{ initialValue: 'bottom' },\n\t);\n\n\tpublic setConfig(config: BrnHoverCardOptions) {\n\t\tthis._config = config;\n\t\tif (config.attachTo) {\n\t\t\tthis._positionStrategy = this._psBuilder\n\t\t\t\t.flexibleConnectedTo(config.attachTo)\n\t\t\t\t.withPositions((config.attachPositions ?? config.align === 'top') ? topFirstPositions : bottomFirstPositions)\n\t\t\t\t.withDefaultOffsetY(config.sideOffset ?? 0);\n\t\t\tthis._config = {\n\t\t\t\t...this._config,\n\t\t\t\tpositionStrategy: this._positionStrategy,\n\t\t\t\tscrollStrategy: this._overlay.scrollStrategies.reposition(),\n\t\t\t};\n\t\t\tthis._positionChangesObservables$.next(this._positionStrategy.positionChanges);\n\t\t}\n\t\tthis._overlayRef = this._overlay.create(this._config);\n\t}\n\n\tpublic setContent(value: TemplateRef<unknown> | BrnHoverCardContentDirective, vcr: ViewContainerRef) {\n\t\tthis._content.set(new TemplatePortal<unknown>(value instanceof TemplateRef ? value : value.template, vcr));\n\n\t\tif (!this._overlayRef) {\n\t\t\tthis._overlayRef = this._overlay.create(this._config);\n\t\t}\n\t}\n\n\tpublic setState(newState: 'open' | 'closed') {\n\t\tthis._state.set(newState);\n\t}\n\n\tpublic show() {\n\t\tconst content = this._content();\n\t\tif (!content || !this._overlayRef) return;\n\n\t\tthis._overlayRef?.detach();\n\t\tthis._overlayRef?.attach(content);\n\n\t\tthis._destroyed$ = new Subject<void>();\n\n\t\tthis._overlayHoveredObservables$.next(\n\t\t\tcreateHoverObservable(this._overlayRef.hostElement, this._zone, this._destroyed$),\n\t\t);\n\t}\n\n\tpublic hide() {\n\t\tthis._overlayRef?.detach();\n\t\tthis._destroyed$.next();\n\t\tthis._destroyed$.complete();\n\t\tthis._destroyed$ = new Subject<void>();\n\t}\n}\n\n@Directive({\n\tselector: '[brnHoverCardTrigger]:not(ng-container),[brnHoverCardTriggerFor]:not(ng-container)',\n\tstandalone: true,\n\texportAs: 'brnHoverCardTrigger',\n})\nexport class BrnHoverCardTriggerDirective implements OnInit, OnDestroy {\n\tprivate readonly _destroy$ = new Subject<void>();\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprivate readonly _zone = inject(NgZone);\n\tprivate readonly _el = inject(ElementRef);\n\tprivate readonly _contentService = inject(BrnHoverCardContentService);\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\n\tpublic readonly focused$: Observable<boolean> = this._focusMonitor.monitor(this._el).pipe(map((e) => e !== null));\n\n\tpublic readonly hovered$: Observable<boolean> = merge(\n\t\tfromEvent(this._el.nativeElement, 'click').pipe(map(() => false)),\n\t\tcreateHoverObservable(this._el.nativeElement, this._zone, this._destroy$),\n\t\tthis._contentService.hovered$,\n\t\tthis.focused$,\n\t).pipe(distinctUntilChanged());\n\tpublic readonly showing$: Observable<boolean> = this.hovered$.pipe(\n\t\t// we set the state to open here because we are about to open show the content\n\t\ttap((visible) => visible && this._contentService.setState('open')),\n\t\tswitchMap((visible) => {\n\t\t\t// we are delaying based on the configure-able input\n\t\t\treturn of(visible).pipe(delay(visible ? this.showDelay() : this.hideDelay()));\n\t\t}),\n\t\tswitchMap((visible) => {\n\t\t\t// don't do anything when we are in the process of showing the content\n\t\t\tif (visible) return of(visible);\n\t\t\t// we set the state to closed here to trigger any animations for the element leaving\n\t\t\tthis._contentService.setState('closed');\n\t\t\t// then delay to wait for the leaving animation to finish\n\t\t\treturn of(visible).pipe(delay(this.animationDelay()));\n\t\t}),\n\t\tdistinctUntilChanged(),\n\t\tshare(),\n\t\ttakeUntil(this._destroy$),\n\t);\n\n\tpublic showDelay = input(300);\n\tpublic hideDelay = input(500);\n\tpublic animationDelay = input(100);\n\tpublic sideOffset = input(5);\n\tpublic align = input<'top' | 'bottom'>('bottom');\n\n\tpublic readonly brnHoverCardTriggerFor = input<TemplateRef<unknown> | BrnHoverCardContentDirective | undefined>(\n\t\tundefined,\n\t);\n\tpublic readonly mutableBrnHoverCardTriggerFor = computed(() => signal(this.brnHoverCardTriggerFor()));\n\tprivate readonly _brnHoverCardTriggerForState = computed(() => this.mutableBrnHoverCardTriggerFor()());\n\n\tconstructor() {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst value = this._brnHoverCardTriggerForState();\n\t\t\t\tif (value) {\n\t\t\t\t\tthis._contentService.setContent(value, this._vcr);\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ allowSignalWrites: true },\n\t\t);\n\t}\n\n\tpublic ngOnInit() {\n\t\tthis._contentService.setConfig({ attachTo: this._el, align: this.align(), sideOffset: this.sideOffset() });\n\t\tthis.showing$.subscribe((isHovered) => {\n\t\t\tif (isHovered) {\n\t\t\t\tthis._contentService.show();\n\t\t\t} else {\n\t\t\t\tthis._contentService.hide();\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic ngOnDestroy() {\n\t\tthis._destroy$.next();\n\t\tthis._destroy$.complete();\n\t}\n}\n","import { type AfterContentInit, Component, contentChild } from '@angular/core';\nimport {\n\tBrnHoverCardContentDirective,\n\tBrnHoverCardContentService,\n\tBrnHoverCardTriggerDirective,\n} from './brn-hover-card-content.service';\n\n@Component({\n\tselector: 'brn-hover-card',\n\tstandalone: true,\n\tproviders: [BrnHoverCardContentService],\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n})\nexport class BrnHoverCardComponent implements AfterContentInit {\n\tprivate readonly _trigger = contentChild(BrnHoverCardTriggerDirective);\n\tprivate readonly _content = contentChild(BrnHoverCardContentDirective);\n\n\tpublic ngAfterContentInit() {\n\t\tif (!this._trigger() || !this._content()) return;\n\t\tthis._trigger()?.mutableBrnHoverCardTriggerFor().set(this._content());\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { BrnHoverCardContentDirective, BrnHoverCardTriggerDirective } from './lib/brn-hover-card-content.service';\nimport { BrnHoverCardComponent } from './lib/brn-hover-card.component';\n\nexport * from './lib/brn-hover-card-content.service';\nexport * from './lib/brn-hover-card.component';\nexport * from './lib/createHoverObservable';\n\nexport const BrnHoverCardImports = [\n\tBrnHoverCardComponent,\n\tBrnHoverCardContentDirective,\n\tBrnHoverCardTriggerDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnHoverCardImports],\n\texports: [...BrnHoverCardImports],\n})\nexport class BrnHoverCardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -170,14 +170,20 @@ class BrnMenuTriggerDirective {
170
170
  });
171
171
  }
172
172
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
173
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnMenuTriggerDirective, isStandalone: true, selector: "[brnMenuTriggerFor]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "brnMenuTriggerFor"] }], ngImport: i0 });
173
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnMenuTriggerDirective, isStandalone: true, selector: "[brnMenuTriggerFor]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "brnMenuTriggerFor"], outputs: ["cdkMenuOpened", "brnMenuOpened", "cdkMenuClosed", "brnMenuClosed"] }], ngImport: i0 });
174
174
  }
175
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnMenuTriggerDirective, decorators: [{
176
176
  type: Directive,
177
177
  args: [{
178
178
  selector: '[brnMenuTriggerFor]',
179
179
  standalone: true,
180
- hostDirectives: [{ directive: CdkMenuTrigger, inputs: ['cdkMenuTriggerFor: brnMenuTriggerFor'] }],
180
+ hostDirectives: [
181
+ {
182
+ directive: CdkMenuTrigger,
183
+ inputs: ['cdkMenuTriggerFor: brnMenuTriggerFor'],
184
+ outputs: ['cdkMenuOpened: brnMenuOpened', 'cdkMenuClosed: brnMenuClosed'],
185
+ },
186
+ ],
181
187
  }]
182
188
  }], ctorParameters: () => [] });
183
189
 
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-menu.mjs","sources":["../../../../libs/brain/menu/src/lib/brn-menu-align.ts","../../../../libs/brain/menu/src/lib/brn-context-menu-trigger.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-bar.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-group.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-item-checkbox.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-item-radio.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-item.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-trigger.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu.directive.ts","../../../../libs/brain/menu/src/index.ts","../../../../libs/brain/menu/src/spartan-ng-brain-menu.ts"],"sourcesContent":["import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport type BrnMenuAlign = 'start' | 'center' | 'end' | undefined;\nexport const getBrnMenuAlign = (align: Exclude<BrnMenuAlign, undefined>): ConnectedPosition[] => [\n\t{\n\t\toriginX: align,\n\t\toriginY: 'bottom',\n\t\toverlayX: align,\n\t\toverlayY: 'top',\n\t},\n\t{\n\t\toriginX: align,\n\t\toriginY: 'top',\n\t\toverlayX: align,\n\t\toverlayY: 'bottom',\n\t},\n];\n","import { CdkContextMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, effect, inject, input, type TemplateRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnMenuAlign, getBrnMenuAlign } from './brn-menu-align';\n\n@Directive({\n\tselector: '[brnCtxMenuTriggerFor]',\n\tstandalone: true,\n\thostDirectives: [CdkContextMenuTrigger],\n})\nexport class BrnContextMenuTriggerDirective {\n\tprivate readonly _cdkTrigger = inject(CdkContextMenuTrigger, { host: true });\n\tpublic brnCtxMenuTriggerFor = input<TemplateRef<unknown> | null>(null);\n\tpublic brnCtxMenuTriggerData = input<unknown>(undefined);\n\tpublic readonly align = input<BrnMenuAlign>(undefined);\n\n\tconstructor() {\n\t\t// once the trigger opens we wait until the next tick and then grab the last position\n\t\t// used to position the menu. we store this in our trigger which the brnMenu directive has\n\t\t// access to through DI\n\t\tthis._cdkTrigger.opened.pipe(takeUntilDestroyed()).subscribe(() =>\n\t\t\tsetTimeout(\n\t\t\t\t() =>\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t((this._cdkTrigger as any)._spartanLastPosition = // eslint-disable-next-line\n\t\t\t\t\t\t(this._cdkTrigger as any).overlayRef._positionStrategy._lastPosition),\n\t\t\t),\n\t\t);\n\n\t\teffect(() => (this._cdkTrigger.menuTemplateRef = this.brnCtxMenuTriggerFor()));\n\t\teffect(() => (this._cdkTrigger.menuData = this.brnCtxMenuTriggerData()));\n\t\teffect(() => {\n\t\t\tconst align = this.align();\n\t\t\tif (!align) return;\n\t\t\tthis._cdkTrigger.menuPosition = getBrnMenuAlign(align);\n\t\t});\n\t}\n}\n","import { CdkMenuBar } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n\tselector: '[brnMenuBar]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuBar],\n})\nexport class BrnMenuBarDirective {}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n\tselector: '[brnMenuGroup]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuGroup],\n})\nexport class BrnMenuGroupDirective {}\n","import { CdkMenuItemCheckbox } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, effect, inject, input } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n\tselector: '[brnMenuItemCheckbox]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuItemCheckbox],\n\thost: {\n\t\t'[class.checked]': 'checked()',\n\t\t'[disabled]': 'disabled()',\n\t},\n})\nexport class BrnMenuItemCheckboxDirective {\n\tprivate readonly _cdkMenuItem = inject(CdkMenuItemCheckbox);\n\tpublic readonly checked = input(this._cdkMenuItem.checked, { transform: booleanAttribute });\n\tpublic readonly disabled = input(this._cdkMenuItem.disabled, { transform: booleanAttribute });\n\tpublic readonly triggered = outputFromObservable(this._cdkMenuItem.triggered);\n\n\tconstructor() {\n\t\teffect(() => (this._cdkMenuItem.disabled = this.disabled()));\n\t\teffect(() => (this._cdkMenuItem.checked = this.checked()));\n\t}\n}\n","import { CdkMenuItemRadio } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, effect, inject, input } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n\tselector: '[brnMenuItemRadio]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuItemRadio],\n\thost: {\n\t\t'[class.checked]': 'checked()',\n\t\t'[disabled]': 'disabled()',\n\t},\n})\nexport class BrnMenuItemRadioDirective {\n\tprivate readonly _cdkMenuItem = inject(CdkMenuItemRadio);\n\tpublic readonly checked = input(this._cdkMenuItem.checked, { transform: booleanAttribute });\n\tpublic readonly disabled = input(this._cdkMenuItem.disabled, { transform: booleanAttribute });\n\tpublic readonly triggered = outputFromObservable(this._cdkMenuItem.triggered);\n\n\tconstructor() {\n\t\teffect(() => (this._cdkMenuItem.disabled = this.disabled()));\n\t\teffect(() => (this._cdkMenuItem.checked = this.checked()));\n\t}\n}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, effect, inject, input } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n\tselector: '[brnMenuItem]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuItem],\n\thost: {\n\t\t'[disabled]': 'disabled()',\n\t},\n})\nexport class BrnMenuItemDirective {\n\tprivate readonly _cdkMenuItem = inject(CdkMenuItem);\n\tpublic readonly disabled = input(this._cdkMenuItem.disabled, { transform: booleanAttribute });\n\tpublic readonly triggered = outputFromObservable(this._cdkMenuItem.triggered);\n\n\tconstructor() {\n\t\teffect(() => (this._cdkMenuItem.disabled = this.disabled()));\n\t}\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, effect, inject, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnMenuAlign, getBrnMenuAlign } from './brn-menu-align';\n\n@Directive({\n\tselector: '[brnMenuTriggerFor]',\n\tstandalone: true,\n\thostDirectives: [{ directive: CdkMenuTrigger, inputs: ['cdkMenuTriggerFor: brnMenuTriggerFor'] }],\n})\nexport class BrnMenuTriggerDirective {\n\tprivate readonly _cdkTrigger = inject(CdkMenuTrigger, { host: true });\n\tpublic readonly align = input<BrnMenuAlign>(undefined);\n\n\tconstructor() {\n\t\t// once the trigger opens we wait until the next tick and then grab the last position\n\t\t// used to position the menu. we store this in our trigger which the brnMenu directive has\n\t\t// access to through DI\n\t\tthis._cdkTrigger.opened.pipe(takeUntilDestroyed()).subscribe(() =>\n\t\t\tsetTimeout(\n\t\t\t\t() =>\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t((this._cdkTrigger as any)._spartanLastPosition = // eslint-disable-next-line\n\t\t\t\t\t\t(this._cdkTrigger as any).overlayRef._positionStrategy._lastPosition),\n\t\t\t),\n\t\t);\n\n\t\teffect(() => {\n\t\t\tconst align = this.align();\n\t\t\tif (!align) return;\n\t\t\tthis._cdkTrigger.menuPosition = getBrnMenuAlign(align);\n\t\t});\n\t}\n}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n\tselector: '[brnMenu],[brnSubMenu]',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.data-side]': '_side()',\n\t},\n\thostDirectives: [CdkMenu],\n})\nexport class BrnMenuDirective {\n\tprivate readonly _host = inject(CdkMenu);\n\n\tprotected readonly _state = signal('open');\n\tprotected readonly _side = signal('top');\n\n\tconstructor() {\n\t\tthis.setSideWithDarkMagic();\n\t\t// this is a best effort, but does not seem to work currently\n\t\t// TODO: figure out a way for us to know the host is about to be closed. might not be possible with CDK\n\t\tthis._host.closed.pipe(takeUntilDestroyed()).subscribe(() => this._state.set('closed'));\n\t}\n\n\tprivate setSideWithDarkMagic() {\n\t\t/**\n\t\t * This is an ugly workaround to at least figure out the correct side of where a submenu\n\t\t * will appear and set the attribute to the host accordingly\n\t\t *\n\t\t * First of all we take advantage of the menu stack not being aware of the root\n\t\t * object immediately after it is added. This code executes before the root element is added,\n\t\t * which means the stack is still empty and the peek method returns undefined.\n\t\t */\n\t\tconst isRoot = this._host.menuStack.peek() === undefined;\n\t\tsetTimeout(() => {\n\t\t\t// our menu trigger directive leaves the last position used for use immediately after opening\n\t\t\t// we can access it here and determine the correct side.\n\t\t\t// eslint-disable-next-line\n\t\t\tconst ps = (this._host as any)._parentTrigger._spartanLastPosition;\n\t\t\tconst side = isRoot ? ps.originY : ps.originX === 'end' ? 'right' : 'left';\n\t\t\tthis._side.set(side);\n\t\t});\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnContextMenuTriggerDirective } from './lib/brn-context-menu-trigger.directive';\nimport { BrnMenuBarDirective } from './lib/brn-menu-bar.directive';\nimport { BrnMenuGroupDirective } from './lib/brn-menu-group.directive';\nimport { BrnMenuItemCheckboxDirective } from './lib/brn-menu-item-checkbox.directive';\nimport { BrnMenuItemRadioDirective } from './lib/brn-menu-item-radio.directive';\nimport { BrnMenuItemDirective } from './lib/brn-menu-item.directive';\nimport { BrnMenuTriggerDirective } from './lib/brn-menu-trigger.directive';\nimport { BrnMenuDirective } from './lib/brn-menu.directive';\n\nexport * from './lib/brn-context-menu-trigger.directive';\nexport * from './lib/brn-menu-bar.directive';\nexport * from './lib/brn-menu-group.directive';\nexport * from './lib/brn-menu-item-checkbox.directive';\nexport * from './lib/brn-menu-item-radio.directive';\nexport * from './lib/brn-menu-item.directive';\nexport * from './lib/brn-menu-trigger.directive';\nexport * from './lib/brn-menu.directive';\n\nexport const BrnMenuItemImports = [\n\tBrnMenuGroupDirective,\n\tBrnMenuItemDirective,\n\tBrnMenuItemRadioDirective,\n\tBrnMenuItemCheckboxDirective,\n] as const;\nexport const BrnMenuImports = [BrnMenuTriggerDirective, BrnMenuDirective, ...BrnMenuItemImports] as const;\nexport const BrnMenuBarImports = [...BrnMenuImports, BrnMenuBarDirective] as const;\nexport const BrnContextMenuImports = [...BrnMenuImports, BrnContextMenuTriggerDirective] as const;\n\n@NgModule({\n\timports: [...BrnMenuItemImports],\n\texports: [...BrnMenuItemImports],\n})\nexport class BrnMenuItemModule {}\n\n@NgModule({\n\timports: [...BrnMenuImports],\n\texports: [...BrnMenuImports],\n})\nexport class BrnMenuModule {}\n\n@NgModule({\n\timports: [...BrnMenuBarImports],\n\texports: [...BrnMenuBarImports],\n})\nexport class BrnMenuBarModule {}\n\n@NgModule({\n\timports: [...BrnContextMenuImports],\n\texports: [...BrnContextMenuImports],\n})\nexport class BrnContextMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-menu.mjs","sources":["../../../../libs/brain/menu/src/lib/brn-menu-align.ts","../../../../libs/brain/menu/src/lib/brn-context-menu-trigger.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-bar.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-group.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-item-checkbox.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-item-radio.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-item.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu-trigger.directive.ts","../../../../libs/brain/menu/src/lib/brn-menu.directive.ts","../../../../libs/brain/menu/src/index.ts","../../../../libs/brain/menu/src/spartan-ng-brain-menu.ts"],"sourcesContent":["import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport type BrnMenuAlign = 'start' | 'center' | 'end' | undefined;\nexport const getBrnMenuAlign = (align: Exclude<BrnMenuAlign, undefined>): ConnectedPosition[] => [\n\t{\n\t\toriginX: align,\n\t\toriginY: 'bottom',\n\t\toverlayX: align,\n\t\toverlayY: 'top',\n\t},\n\t{\n\t\toriginX: align,\n\t\toriginY: 'top',\n\t\toverlayX: align,\n\t\toverlayY: 'bottom',\n\t},\n];\n","import { CdkContextMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, effect, inject, input, type TemplateRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnMenuAlign, getBrnMenuAlign } from './brn-menu-align';\n\n@Directive({\n\tselector: '[brnCtxMenuTriggerFor]',\n\tstandalone: true,\n\thostDirectives: [CdkContextMenuTrigger],\n})\nexport class BrnContextMenuTriggerDirective {\n\tprivate readonly _cdkTrigger = inject(CdkContextMenuTrigger, { host: true });\n\tpublic brnCtxMenuTriggerFor = input<TemplateRef<unknown> | null>(null);\n\tpublic brnCtxMenuTriggerData = input<unknown>(undefined);\n\tpublic readonly align = input<BrnMenuAlign>(undefined);\n\n\tconstructor() {\n\t\t// once the trigger opens we wait until the next tick and then grab the last position\n\t\t// used to position the menu. we store this in our trigger which the brnMenu directive has\n\t\t// access to through DI\n\t\tthis._cdkTrigger.opened.pipe(takeUntilDestroyed()).subscribe(() =>\n\t\t\tsetTimeout(\n\t\t\t\t() =>\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t((this._cdkTrigger as any)._spartanLastPosition = // eslint-disable-next-line\n\t\t\t\t\t\t(this._cdkTrigger as any).overlayRef._positionStrategy._lastPosition),\n\t\t\t),\n\t\t);\n\n\t\teffect(() => (this._cdkTrigger.menuTemplateRef = this.brnCtxMenuTriggerFor()));\n\t\teffect(() => (this._cdkTrigger.menuData = this.brnCtxMenuTriggerData()));\n\t\teffect(() => {\n\t\t\tconst align = this.align();\n\t\t\tif (!align) return;\n\t\t\tthis._cdkTrigger.menuPosition = getBrnMenuAlign(align);\n\t\t});\n\t}\n}\n","import { CdkMenuBar } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n\tselector: '[brnMenuBar]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuBar],\n})\nexport class BrnMenuBarDirective {}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n\tselector: '[brnMenuGroup]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuGroup],\n})\nexport class BrnMenuGroupDirective {}\n","import { CdkMenuItemCheckbox } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, effect, inject, input } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n\tselector: '[brnMenuItemCheckbox]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuItemCheckbox],\n\thost: {\n\t\t'[class.checked]': 'checked()',\n\t\t'[disabled]': 'disabled()',\n\t},\n})\nexport class BrnMenuItemCheckboxDirective {\n\tprivate readonly _cdkMenuItem = inject(CdkMenuItemCheckbox);\n\tpublic readonly checked = input(this._cdkMenuItem.checked, { transform: booleanAttribute });\n\tpublic readonly disabled = input(this._cdkMenuItem.disabled, { transform: booleanAttribute });\n\tpublic readonly triggered = outputFromObservable(this._cdkMenuItem.triggered);\n\n\tconstructor() {\n\t\teffect(() => (this._cdkMenuItem.disabled = this.disabled()));\n\t\teffect(() => (this._cdkMenuItem.checked = this.checked()));\n\t}\n}\n","import { CdkMenuItemRadio } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, effect, inject, input } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n\tselector: '[brnMenuItemRadio]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuItemRadio],\n\thost: {\n\t\t'[class.checked]': 'checked()',\n\t\t'[disabled]': 'disabled()',\n\t},\n})\nexport class BrnMenuItemRadioDirective {\n\tprivate readonly _cdkMenuItem = inject(CdkMenuItemRadio);\n\tpublic readonly checked = input(this._cdkMenuItem.checked, { transform: booleanAttribute });\n\tpublic readonly disabled = input(this._cdkMenuItem.disabled, { transform: booleanAttribute });\n\tpublic readonly triggered = outputFromObservable(this._cdkMenuItem.triggered);\n\n\tconstructor() {\n\t\teffect(() => (this._cdkMenuItem.disabled = this.disabled()));\n\t\teffect(() => (this._cdkMenuItem.checked = this.checked()));\n\t}\n}\n","import { CdkMenuItem } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, effect, inject, input } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n\tselector: '[brnMenuItem]',\n\tstandalone: true,\n\thostDirectives: [CdkMenuItem],\n\thost: {\n\t\t'[disabled]': 'disabled()',\n\t},\n})\nexport class BrnMenuItemDirective {\n\tprivate readonly _cdkMenuItem = inject(CdkMenuItem);\n\tpublic readonly disabled = input(this._cdkMenuItem.disabled, { transform: booleanAttribute });\n\tpublic readonly triggered = outputFromObservable(this._cdkMenuItem.triggered);\n\n\tconstructor() {\n\t\teffect(() => (this._cdkMenuItem.disabled = this.disabled()));\n\t}\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, effect, inject, input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BrnMenuAlign, getBrnMenuAlign } from './brn-menu-align';\n\n@Directive({\n\tselector: '[brnMenuTriggerFor]',\n\tstandalone: true,\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuTrigger,\n\t\t\tinputs: ['cdkMenuTriggerFor: brnMenuTriggerFor'],\n\t\t\toutputs: ['cdkMenuOpened: brnMenuOpened', 'cdkMenuClosed: brnMenuClosed'],\n\t\t},\n\t],\n})\nexport class BrnMenuTriggerDirective {\n\tprivate readonly _cdkTrigger = inject(CdkMenuTrigger, { host: true });\n\tpublic readonly align = input<BrnMenuAlign>(undefined);\n\n\tconstructor() {\n\t\t// once the trigger opens we wait until the next tick and then grab the last position\n\t\t// used to position the menu. we store this in our trigger which the brnMenu directive has\n\t\t// access to through DI\n\t\tthis._cdkTrigger.opened.pipe(takeUntilDestroyed()).subscribe(() =>\n\t\t\tsetTimeout(\n\t\t\t\t() =>\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t((this._cdkTrigger as any)._spartanLastPosition = // eslint-disable-next-line\n\t\t\t\t\t\t(this._cdkTrigger as any).overlayRef._positionStrategy._lastPosition),\n\t\t\t),\n\t\t);\n\n\t\teffect(() => {\n\t\t\tconst align = this.align();\n\t\t\tif (!align) return;\n\t\t\tthis._cdkTrigger.menuPosition = getBrnMenuAlign(align);\n\t\t});\n\t}\n}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n\tselector: '[brnMenu],[brnSubMenu]',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.data-side]': '_side()',\n\t},\n\thostDirectives: [CdkMenu],\n})\nexport class BrnMenuDirective {\n\tprivate readonly _host = inject(CdkMenu);\n\n\tprotected readonly _state = signal('open');\n\tprotected readonly _side = signal('top');\n\n\tconstructor() {\n\t\tthis.setSideWithDarkMagic();\n\t\t// this is a best effort, but does not seem to work currently\n\t\t// TODO: figure out a way for us to know the host is about to be closed. might not be possible with CDK\n\t\tthis._host.closed.pipe(takeUntilDestroyed()).subscribe(() => this._state.set('closed'));\n\t}\n\n\tprivate setSideWithDarkMagic() {\n\t\t/**\n\t\t * This is an ugly workaround to at least figure out the correct side of where a submenu\n\t\t * will appear and set the attribute to the host accordingly\n\t\t *\n\t\t * First of all we take advantage of the menu stack not being aware of the root\n\t\t * object immediately after it is added. This code executes before the root element is added,\n\t\t * which means the stack is still empty and the peek method returns undefined.\n\t\t */\n\t\tconst isRoot = this._host.menuStack.peek() === undefined;\n\t\tsetTimeout(() => {\n\t\t\t// our menu trigger directive leaves the last position used for use immediately after opening\n\t\t\t// we can access it here and determine the correct side.\n\t\t\t// eslint-disable-next-line\n\t\t\tconst ps = (this._host as any)._parentTrigger._spartanLastPosition;\n\t\t\tconst side = isRoot ? ps.originY : ps.originX === 'end' ? 'right' : 'left';\n\t\t\tthis._side.set(side);\n\t\t});\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnContextMenuTriggerDirective } from './lib/brn-context-menu-trigger.directive';\nimport { BrnMenuBarDirective } from './lib/brn-menu-bar.directive';\nimport { BrnMenuGroupDirective } from './lib/brn-menu-group.directive';\nimport { BrnMenuItemCheckboxDirective } from './lib/brn-menu-item-checkbox.directive';\nimport { BrnMenuItemRadioDirective } from './lib/brn-menu-item-radio.directive';\nimport { BrnMenuItemDirective } from './lib/brn-menu-item.directive';\nimport { BrnMenuTriggerDirective } from './lib/brn-menu-trigger.directive';\nimport { BrnMenuDirective } from './lib/brn-menu.directive';\n\nexport * from './lib/brn-context-menu-trigger.directive';\nexport * from './lib/brn-menu-bar.directive';\nexport * from './lib/brn-menu-group.directive';\nexport * from './lib/brn-menu-item-checkbox.directive';\nexport * from './lib/brn-menu-item-radio.directive';\nexport * from './lib/brn-menu-item.directive';\nexport * from './lib/brn-menu-trigger.directive';\nexport * from './lib/brn-menu.directive';\n\nexport const BrnMenuItemImports = [\n\tBrnMenuGroupDirective,\n\tBrnMenuItemDirective,\n\tBrnMenuItemRadioDirective,\n\tBrnMenuItemCheckboxDirective,\n] as const;\nexport const BrnMenuImports = [BrnMenuTriggerDirective, BrnMenuDirective, ...BrnMenuItemImports] as const;\nexport const BrnMenuBarImports = [...BrnMenuImports, BrnMenuBarDirective] as const;\nexport const BrnContextMenuImports = [...BrnMenuImports, BrnContextMenuTriggerDirective] as const;\n\n@NgModule({\n\timports: [...BrnMenuItemImports],\n\texports: [...BrnMenuItemImports],\n})\nexport class BrnMenuItemModule {}\n\n@NgModule({\n\timports: [...BrnMenuImports],\n\texports: [...BrnMenuImports],\n})\nexport class BrnMenuModule {}\n\n@NgModule({\n\timports: [...BrnMenuBarImports],\n\texports: [...BrnMenuBarImports],\n})\nexport class BrnMenuBarModule {}\n\n@NgModule({\n\timports: [...BrnContextMenuImports],\n\texports: [...BrnContextMenuImports],\n})\nexport class BrnContextMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive, inject, ElementRef, Input, signal, effect, untracked, numberAttribute, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
3
3
  import { BrnDialogCloseDirective, BrnDialogContentDirective, BrnDialogTriggerDirective, BrnDialogComponent } from '@spartan-ng/brain/dialog';
4
- import { provideExposesStateProviderExisting } from '@spartan-ng/ui-core';
4
+ import { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';
5
5
 
6
6
  class BrnPopoverCloseDirective extends BrnDialogCloseDirective {
7
7
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnPopoverCloseDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-popover.mjs","sources":["../../../../libs/brain/popover/src/lib/brn-popover-close.directive.ts","../../../../libs/brain/popover/src/lib/brn-popover-content.directive.ts","../../../../libs/brain/popover/src/lib/brn-popover-trigger.directive.ts","../../../../libs/brain/popover/src/lib/brn-popover.component.ts","../../../../libs/brain/popover/src/index.ts","../../../../libs/brain/popover/src/spartan-ng-brain-popover.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { BrnDialogCloseDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[brnPopoverClose]',\n\tstandalone: true,\n})\nexport class BrnPopoverCloseDirective extends BrnDialogCloseDirective {}\n","import { Directive } from '@angular/core';\nimport { BrnDialogContentDirective } from '@spartan-ng/brain/dialog';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/ui-core';\n\n@Directive({\n\tselector: '[brnPopoverContent]',\n\tstandalone: true,\n\tproviders: [provideExposesStateProviderExisting(() => BrnPopoverContentDirective)],\n})\nexport class BrnPopoverContentDirective<T> extends BrnDialogContentDirective<T> {}\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { BrnDialogTriggerDirective } from '@spartan-ng/brain/dialog';\nimport type { BrnPopoverComponent } from './brn-popover.component';\n\n@Directive({\n\tselector: 'button[brnPopoverTrigger],button[brnPopoverTriggerFor]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true': 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId',\n\t},\n})\nexport class BrnPopoverTriggerDirective extends BrnDialogTriggerDirective {\n\tprivate readonly _host = inject(ElementRef, { host: true });\n\n\tconstructor() {\n\t\tsuper();\n\t\tif (!this._brnDialog) return;\n\t\tthis._brnDialog.attachTo = this._host.nativeElement;\n\t\tthis._brnDialog.closeOnOutsidePointerEvents = true;\n\t}\n\n\t@Input()\n\tpublic set brnPopoverTriggerFor(brnDialog: BrnPopoverComponent) {\n\t\tbrnDialog.attachTo = this._host.nativeElement;\n\t\tbrnDialog.closeOnOutsidePointerEvents = true;\n\t\tsuper.brnDialogTriggerFor = brnDialog;\n\t}\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tInput,\n\tViewEncapsulation,\n\teffect,\n\tforwardRef,\n\tnumberAttribute,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { BrnDialogComponent } from '@spartan-ng/brain/dialog';\n\nexport type BrnPopoverAlign = 'start' | 'center' | 'end';\n@Component({\n\tselector: 'brn-popover',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialogComponent,\n\t\t\tuseExisting: forwardRef(() => BrnPopoverComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\texportAs: 'brnPopover',\n})\nexport class BrnPopoverComponent extends BrnDialogComponent {\n\tprivate readonly _sideOffset = signal(0);\n\t@Input({ transform: numberAttribute })\n\tpublic set sideOffset(value: number) {\n\t\tthis._sideOffset.set(value);\n\t}\n\n\tprivate readonly _align = signal<BrnPopoverAlign>('center');\n\t@Input()\n\tpublic set align(value: BrnPopoverAlign) {\n\t\tthis._align.set(value);\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.hasBackdrop = false;\n\t\tthis.ariaDescribedBy = '';\n\t\tthis.ariaLabelledBy = '';\n\t\tthis.scrollStrategy = this.ssos.reposition();\n\n\t\teffect(() => {\n\t\t\tconst align = this._align();\n\t\t\tthis.attachPositions = [\n\t\t\t\t{\n\t\t\t\t\toriginX: align,\n\t\t\t\t\toriginY: 'bottom',\n\t\t\t\t\toverlayX: align,\n\t\t\t\t\toverlayY: 'top',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: align,\n\t\t\t\t\toriginY: 'top',\n\t\t\t\t\toverlayX: align,\n\t\t\t\t\toverlayY: 'bottom',\n\t\t\t\t},\n\t\t\t];\n\t\t\tthis.applySideOffset(untracked(this._sideOffset));\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.applySideOffset(this._sideOffset());\n\t\t});\n\t}\n\n\tprivate applySideOffset(sideOffset: number) {\n\t\tthis.attachPositions = (this._options.attachPositions ?? []).map((position) => ({\n\t\t\t...position,\n\t\t\toffsetY: position.originY === 'top' ? -sideOffset : sideOffset,\n\t\t}));\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnPopoverCloseDirective } from './lib/brn-popover-close.directive';\nimport { BrnPopoverContentDirective } from './lib/brn-popover-content.directive';\nimport { BrnPopoverTriggerDirective } from './lib/brn-popover-trigger.directive';\nimport { BrnPopoverComponent } from './lib/brn-popover.component';\n\nexport * from './lib/brn-popover-close.directive';\nexport * from './lib/brn-popover-content.directive';\nexport * from './lib/brn-popover-trigger.directive';\nexport * from './lib/brn-popover.component';\n\nexport const BrnPopoverImports = [\n\tBrnPopoverComponent,\n\tBrnPopoverTriggerDirective,\n\tBrnPopoverCloseDirective,\n\tBrnPopoverContentDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnPopoverImports],\n\texports: [...BrnPopoverImports],\n})\nexport class BrnPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spartan-ng-brain-popover.mjs","sources":["../../../../libs/brain/popover/src/lib/brn-popover-close.directive.ts","../../../../libs/brain/popover/src/lib/brn-popover-content.directive.ts","../../../../libs/brain/popover/src/lib/brn-popover-trigger.directive.ts","../../../../libs/brain/popover/src/lib/brn-popover.component.ts","../../../../libs/brain/popover/src/index.ts","../../../../libs/brain/popover/src/spartan-ng-brain-popover.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { BrnDialogCloseDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: 'button[brnPopoverClose]',\n\tstandalone: true,\n})\nexport class BrnPopoverCloseDirective extends BrnDialogCloseDirective {}\n","import { Directive } from '@angular/core';\nimport { provideExposesStateProviderExisting } from '@spartan-ng/brain/core';\nimport { BrnDialogContentDirective } from '@spartan-ng/brain/dialog';\n\n@Directive({\n\tselector: '[brnPopoverContent]',\n\tstandalone: true,\n\tproviders: [provideExposesStateProviderExisting(() => BrnPopoverContentDirective)],\n})\nexport class BrnPopoverContentDirective<T> extends BrnDialogContentDirective<T> {}\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { BrnDialogTriggerDirective } from '@spartan-ng/brain/dialog';\nimport type { BrnPopoverComponent } from './brn-popover.component';\n\n@Directive({\n\tselector: 'button[brnPopoverTrigger],button[brnPopoverTriggerFor]',\n\tstandalone: true,\n\thost: {\n\t\t'[id]': 'id()',\n\t\t'aria-haspopup': 'dialog',\n\t\t'[attr.aria-expanded]': \"state() === 'open' ? 'true': 'false'\",\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.aria-controls]': 'dialogId',\n\t},\n})\nexport class BrnPopoverTriggerDirective extends BrnDialogTriggerDirective {\n\tprivate readonly _host = inject(ElementRef, { host: true });\n\n\tconstructor() {\n\t\tsuper();\n\t\tif (!this._brnDialog) return;\n\t\tthis._brnDialog.attachTo = this._host.nativeElement;\n\t\tthis._brnDialog.closeOnOutsidePointerEvents = true;\n\t}\n\n\t@Input()\n\tpublic set brnPopoverTriggerFor(brnDialog: BrnPopoverComponent) {\n\t\tbrnDialog.attachTo = this._host.nativeElement;\n\t\tbrnDialog.closeOnOutsidePointerEvents = true;\n\t\tsuper.brnDialogTriggerFor = brnDialog;\n\t}\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tInput,\n\tViewEncapsulation,\n\teffect,\n\tforwardRef,\n\tnumberAttribute,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { BrnDialogComponent } from '@spartan-ng/brain/dialog';\n\nexport type BrnPopoverAlign = 'start' | 'center' | 'end';\n@Component({\n\tselector: 'brn-popover',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BrnDialogComponent,\n\t\t\tuseExisting: forwardRef(() => BrnPopoverComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\texportAs: 'brnPopover',\n})\nexport class BrnPopoverComponent extends BrnDialogComponent {\n\tprivate readonly _sideOffset = signal(0);\n\t@Input({ transform: numberAttribute })\n\tpublic set sideOffset(value: number) {\n\t\tthis._sideOffset.set(value);\n\t}\n\n\tprivate readonly _align = signal<BrnPopoverAlign>('center');\n\t@Input()\n\tpublic set align(value: BrnPopoverAlign) {\n\t\tthis._align.set(value);\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.hasBackdrop = false;\n\t\tthis.ariaDescribedBy = '';\n\t\tthis.ariaLabelledBy = '';\n\t\tthis.scrollStrategy = this.ssos.reposition();\n\n\t\teffect(() => {\n\t\t\tconst align = this._align();\n\t\t\tthis.attachPositions = [\n\t\t\t\t{\n\t\t\t\t\toriginX: align,\n\t\t\t\t\toriginY: 'bottom',\n\t\t\t\t\toverlayX: align,\n\t\t\t\t\toverlayY: 'top',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: align,\n\t\t\t\t\toriginY: 'top',\n\t\t\t\t\toverlayX: align,\n\t\t\t\t\toverlayY: 'bottom',\n\t\t\t\t},\n\t\t\t];\n\t\t\tthis.applySideOffset(untracked(this._sideOffset));\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.applySideOffset(this._sideOffset());\n\t\t});\n\t}\n\n\tprivate applySideOffset(sideOffset: number) {\n\t\tthis.attachPositions = (this._options.attachPositions ?? []).map((position) => ({\n\t\t\t...position,\n\t\t\toffsetY: position.originY === 'top' ? -sideOffset : sideOffset,\n\t\t}));\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnPopoverCloseDirective } from './lib/brn-popover-close.directive';\nimport { BrnPopoverContentDirective } from './lib/brn-popover-content.directive';\nimport { BrnPopoverTriggerDirective } from './lib/brn-popover-trigger.directive';\nimport { BrnPopoverComponent } from './lib/brn-popover.component';\n\nexport * from './lib/brn-popover-close.directive';\nexport * from './lib/brn-popover-content.directive';\nexport * from './lib/brn-popover-trigger.directive';\nexport * from './lib/brn-popover.component';\n\nexport const BrnPopoverImports = [\n\tBrnPopoverComponent,\n\tBrnPopoverTriggerDirective,\n\tBrnPopoverCloseDirective,\n\tBrnPopoverContentDirective,\n] as const;\n\n@NgModule({\n\timports: [...BrnPopoverImports],\n\texports: [...BrnPopoverImports],\n})\nexport class BrnPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ElementRef, input, booleanAttribute, computed, output, viewChild, Component, ViewEncapsulation, ChangeDetectionStrategy, forwardRef, model, signal, contentChildren, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, input, booleanAttribute, computed, output, viewChild, Component, ViewEncapsulation, ChangeDetectionStrategy, forwardRef, model, signal, contentChildren, Directive, NgModule } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { FocusMonitor } from '@angular/cdk/a11y';
5
5
 
6
6
  const BrnRadioGroupToken = new InjectionToken('BrnRadioGroupToken');
7
- function provideBrnRadioGroupToken(component) {
8
- return { provide: BrnRadioGroupToken, useExisting: component };
7
+ function provideBrnRadioGroupToken(directive) {
8
+ return { provide: BrnRadioGroupToken, useExisting: directive };
9
9
  }
10
10
  function injectBrnRadioGroup() {
11
11
  return inject(BrnRadioGroupToken);
@@ -194,14 +194,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
194
194
 
195
195
  const BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR = {
196
196
  provide: NG_VALUE_ACCESSOR,
197
- useExisting: forwardRef(() => BrnRadioGroupComponent),
197
+ useExisting: forwardRef(() => BrnRadioGroupDirective),
198
198
  multi: true,
199
199
  };
200
- class BrnRadioGroupComponent {
200
+ class BrnRadioGroupDirective {
201
201
  static _nextUniqueId = 0;
202
202
  onChange = () => { };
203
203
  onTouched = () => { };
204
- name = input(`brn-radio-group-${BrnRadioGroupComponent._nextUniqueId++}`);
204
+ name = input(`brn-radio-group-${BrnRadioGroupDirective._nextUniqueId++}`);
205
205
  /**
206
206
  * The value of the selected radio button.
207
207
  */
@@ -260,27 +260,27 @@ class BrnRadioGroupComponent {
260
260
  this.onChange(value);
261
261
  this.change.emit(new BrnRadioChange(radioButton, value));
262
262
  }
263
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
264
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.5", type: BrnRadioGroupComponent, isStandalone: true, selector: "brn-radio-group", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", change: "change" }, host: { attributes: { "role": "radiogroup" }, listeners: { "focusout": "onTouched()" } }, providers: [BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, provideBrnRadioGroupToken(BrnRadioGroupComponent)], queries: [{ propertyName: "radioButtons", predicate: BrnRadioComponent, descendants: true, isSignal: true }], ngImport: i0, template: '<ng-content />', isInline: true });
263
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
264
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.5", type: BrnRadioGroupDirective, isStandalone: true, selector: "[brnRadioGroup]", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", change: "change" }, host: { attributes: { "role": "radiogroup" }, listeners: { "focusout": "onTouched()" }, properties: { "dir": "direction()" } }, providers: [BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, provideBrnRadioGroupToken(BrnRadioGroupDirective)], queries: [{ propertyName: "radioButtons", predicate: BrnRadioComponent, descendants: true, isSignal: true }], ngImport: i0 });
265
265
  }
266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupComponent, decorators: [{
267
- type: Component,
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupDirective, decorators: [{
267
+ type: Directive,
268
268
  args: [{
269
- selector: 'brn-radio-group',
269
+ selector: '[brnRadioGroup]',
270
270
  standalone: true,
271
- providers: [BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, provideBrnRadioGroupToken(BrnRadioGroupComponent)],
271
+ providers: [BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, provideBrnRadioGroupToken(BrnRadioGroupDirective)],
272
272
  host: {
273
273
  role: 'radiogroup',
274
+ '[dir]': 'direction()',
274
275
  '(focusout)': 'onTouched()',
275
276
  },
276
- template: '<ng-content />',
277
277
  }]
278
278
  }] });
279
279
 
280
- const BrnRadioGroupImports = [BrnRadioGroupComponent, BrnRadioComponent];
280
+ const BrnRadioGroupImports = [BrnRadioGroupDirective, BrnRadioComponent];
281
281
  class BrnRadioGroupModule {
282
282
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
283
- /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupModule, imports: [BrnRadioGroupComponent, BrnRadioComponent], exports: [BrnRadioGroupComponent, BrnRadioComponent] });
283
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupModule, imports: [BrnRadioGroupDirective, BrnRadioComponent], exports: [BrnRadioGroupDirective, BrnRadioComponent] });
284
284
  /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupModule });
285
285
  }
286
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnRadioGroupModule, decorators: [{
@@ -295,5 +295,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
295
295
  * Generated bundle index. Do not edit.
296
296
  */
297
297
 
298
- export { BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, BrnRadioChange, BrnRadioComponent, BrnRadioGroupComponent, BrnRadioGroupImports, BrnRadioGroupModule };
298
+ export { BRN_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, BrnRadioChange, BrnRadioComponent, BrnRadioGroupDirective, BrnRadioGroupImports, BrnRadioGroupModule };
299
299
  //# sourceMappingURL=spartan-ng-brain-radio-group.mjs.map