@spartan-ng/brain 0.0.1-alpha.407 → 0.0.1-alpha.409

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, input, booleanAttribute, computed, Component, ChangeDetectionStrategy, ViewEncapsulation, inject, ElementRef, effect, Directive, NgModule } from '@angular/core';
2
+ import { signal, input, booleanAttribute, computed, Component, ChangeDetectionStrategy, ViewEncapsulation, inject, ElementRef, effect, untracked, Directive, NgModule } from '@angular/core';
3
3
 
4
4
  let collapsibleContentIdSequence = 0;
5
5
  class BrnCollapsibleComponent {
@@ -54,10 +54,11 @@ class BrnCollapsibleContentComponent {
54
54
  }
55
55
  effect(() => {
56
56
  const id = this.id();
57
- if (!id || !this._collapsible)
57
+ const collapsible = this._collapsible;
58
+ if (!id || !collapsible)
58
59
  return;
59
- this._collapsible.contentId.set(id);
60
- }, { allowSignalWrites: true });
60
+ untracked(() => collapsible.contentId.set(id));
61
+ });
61
62
  }
62
63
  ngAfterContentInit() {
63
64
  if (typeof this._elementRef.nativeElement.getBoundingClientRect !== 'function')
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-collapsible.mjs","sources":["../../../../libs/brain/collapsible/src/lib/brn-collapsible.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-content.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-trigger.directive.ts","../../../../libs/brain/collapsible/src/index.ts","../../../../libs/brain/collapsible/src/spartan-ng-brain-collapsible.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tViewEncapsulation,\n\tbooleanAttribute,\n\tcomputed,\n\tinput,\n\tsignal,\n} from '@angular/core';\n\nlet collapsibleContentIdSequence = 0;\nexport type BrnCollapsibleState = 'open' | 'closed';\n\n@Component({\n\tselector: 'brn-collapsible',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.disabled]': 'attrDisabled()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnCollapsibleComponent {\n\tpublic readonly state = signal<BrnCollapsibleState>('closed');\n\n\tpublic readonly contentId = signal(`brn-collapsible-content-${collapsibleContentIdSequence++}`);\n\n\tpublic readonly disabled = input(false, { transform: booleanAttribute });\n\n\tpublic readonly attrDisabled = computed(() => (this.disabled() ? true : undefined));\n\n\tpublic toggle() {\n\t\tthis.state.set(this.state() === 'closed' ? 'open' : 'closed');\n\t}\n}\n","import { type AfterContentInit, Component, ElementRef, computed, effect, inject, input, signal } from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Component({\n\tselector: 'brn-collapsible-content',\n\tstandalone: true,\n\thost: {\n\t\t'[hidden]': 'state() === \"closed\"',\n\t\t'[attr.data-state]': 'state()',\n\t\t'[style]': 'computedStyles()',\n\t\t'[id]': 'contentId()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n})\nexport class BrnCollapsibleContentComponent implements AfterContentInit {\n\tprivate readonly _collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\n\tprivate readonly _elementRef = inject(ElementRef);\n\n\tprivate readonly _height = signal(0);\n\n\tprivate readonly _width = signal(0);\n\n\tpublic readonly contentId = computed(() => this._collapsible?.contentId());\n\n\tpublic readonly state = computed(() => this._collapsible?.state?.() ?? 'closed');\n\n\tpublic readonly computedStyles = computed(() => {\n\t\tconst height = this._height();\n\t\tconst width = this._width();\n\t\treturn {\n\t\t\t'--radix-collapsible-content-height': height ? `${height}px` : undefined,\n\t\t\t'--radix-collapsible-content-width': width ? `${width}px` : undefined,\n\t\t};\n\t});\n\n\tpublic readonly id = input<string | null | undefined>();\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tconst id = this.id();\n\t\t\t\tif (!id || !this._collapsible) return;\n\t\t\t\tthis._collapsible.contentId.set(id);\n\t\t\t},\n\t\t\t{ allowSignalWrites: true },\n\t\t);\n\t}\n\n\tngAfterContentInit() {\n\t\tif (typeof this._elementRef.nativeElement.getBoundingClientRect !== 'function') return;\n\t\tconst rect = this._elementRef.nativeElement.getBoundingClientRect();\n\t\tif (!rect) return;\n\t\tthis._width.set(rect.width);\n\t\tthis._height.set(rect.height);\n\t}\n}\n","import { Directive, computed, inject } from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Directive({\n\tselector: 'button[brnCollapsibleTrigger]',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.disabled]': 'attrDisabled()',\n\t\t'[attr.aria-expanded]': 'state() === \"open\"',\n\t\t'[attr.aria-controls]': 'ariaControls()',\n\t\t'(click)': 'toggleCollapsible()',\n\t},\n})\nexport class BrnCollapsibleTriggerDirective {\n\tprivate readonly _collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\n\tpublic readonly state = computed(() => this._collapsible?.state());\n\n\tpublic readonly disabled = computed(() => this._collapsible?.disabled?.());\n\n\tpublic readonly attrDisabled = computed(() => this._collapsible?.attrDisabled?.());\n\n\tpublic readonly ariaControls = computed(() => this._collapsible?.contentId());\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\t}\n\n\ttoggleCollapsible() {\n\t\tthis._collapsible?.toggle();\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnCollapsibleContentComponent } from './lib/brn-collapsible-content.component';\nimport { BrnCollapsibleTriggerDirective } from './lib/brn-collapsible-trigger.directive';\nimport { BrnCollapsibleComponent } from './lib/brn-collapsible.component';\n\nexport * from './lib/brn-collapsible-content.component';\nexport * from './lib/brn-collapsible-trigger.directive';\nexport * from './lib/brn-collapsible.component';\n\nexport const BrnCollapsibleImports = [\n\tBrnCollapsibleComponent,\n\tBrnCollapsibleTriggerDirective,\n\tBrnCollapsibleContentComponent,\n] as const;\n\n@NgModule({\n\timports: [...BrnCollapsibleImports],\n\texports: [...BrnCollapsibleImports],\n})\nexport class BrnCollapsibleModule {}\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-collapsible.mjs","sources":["../../../../libs/brain/collapsible/src/lib/brn-collapsible.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-content.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-trigger.directive.ts","../../../../libs/brain/collapsible/src/index.ts","../../../../libs/brain/collapsible/src/spartan-ng-brain-collapsible.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tViewEncapsulation,\n\tbooleanAttribute,\n\tcomputed,\n\tinput,\n\tsignal,\n} from '@angular/core';\n\nlet collapsibleContentIdSequence = 0;\nexport type BrnCollapsibleState = 'open' | 'closed';\n\n@Component({\n\tselector: 'brn-collapsible',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.disabled]': 'attrDisabled()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnCollapsibleComponent {\n\tpublic readonly state = signal<BrnCollapsibleState>('closed');\n\n\tpublic readonly contentId = signal(`brn-collapsible-content-${collapsibleContentIdSequence++}`);\n\n\tpublic readonly disabled = input(false, { transform: booleanAttribute });\n\n\tpublic readonly attrDisabled = computed(() => (this.disabled() ? true : undefined));\n\n\tpublic toggle() {\n\t\tthis.state.set(this.state() === 'closed' ? 'open' : 'closed');\n\t}\n}\n","import {\n\ttype AfterContentInit,\n\tComponent,\n\tElementRef,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Component({\n\tselector: 'brn-collapsible-content',\n\tstandalone: true,\n\thost: {\n\t\t'[hidden]': 'state() === \"closed\"',\n\t\t'[attr.data-state]': 'state()',\n\t\t'[style]': 'computedStyles()',\n\t\t'[id]': 'contentId()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n})\nexport class BrnCollapsibleContentComponent implements AfterContentInit {\n\tprivate readonly _collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\n\tprivate readonly _elementRef = inject(ElementRef);\n\n\tprivate readonly _height = signal(0);\n\n\tprivate readonly _width = signal(0);\n\n\tpublic readonly contentId = computed(() => this._collapsible?.contentId());\n\n\tpublic readonly state = computed(() => this._collapsible?.state?.() ?? 'closed');\n\n\tpublic readonly computedStyles = computed(() => {\n\t\tconst height = this._height();\n\t\tconst width = this._width();\n\t\treturn {\n\t\t\t'--radix-collapsible-content-height': height ? `${height}px` : undefined,\n\t\t\t'--radix-collapsible-content-width': width ? `${width}px` : undefined,\n\t\t};\n\t});\n\n\tpublic readonly id = input<string | null | undefined>();\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\n\t\teffect(() => {\n\t\t\tconst id = this.id();\n\t\t\tconst collapsible = this._collapsible;\n\t\t\tif (!id || !collapsible) return;\n\t\t\tuntracked(() => collapsible.contentId.set(id));\n\t\t});\n\t}\n\n\tngAfterContentInit() {\n\t\tif (typeof this._elementRef.nativeElement.getBoundingClientRect !== 'function') return;\n\t\tconst rect = this._elementRef.nativeElement.getBoundingClientRect();\n\t\tif (!rect) return;\n\t\tthis._width.set(rect.width);\n\t\tthis._height.set(rect.height);\n\t}\n}\n","import { Directive, computed, inject } from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Directive({\n\tselector: 'button[brnCollapsibleTrigger]',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.disabled]': 'attrDisabled()',\n\t\t'[attr.aria-expanded]': 'state() === \"open\"',\n\t\t'[attr.aria-controls]': 'ariaControls()',\n\t\t'(click)': 'toggleCollapsible()',\n\t},\n})\nexport class BrnCollapsibleTriggerDirective {\n\tprivate readonly _collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\n\tpublic readonly state = computed(() => this._collapsible?.state());\n\n\tpublic readonly disabled = computed(() => this._collapsible?.disabled?.());\n\n\tpublic readonly attrDisabled = computed(() => this._collapsible?.attrDisabled?.());\n\n\tpublic readonly ariaControls = computed(() => this._collapsible?.contentId());\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\t}\n\n\ttoggleCollapsible() {\n\t\tthis._collapsible?.toggle();\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnCollapsibleContentComponent } from './lib/brn-collapsible-content.component';\nimport { BrnCollapsibleTriggerDirective } from './lib/brn-collapsible-trigger.directive';\nimport { BrnCollapsibleComponent } from './lib/brn-collapsible.component';\n\nexport * from './lib/brn-collapsible-content.component';\nexport * from './lib/brn-collapsible-trigger.directive';\nexport * from './lib/brn-collapsible.component';\n\nexport const BrnCollapsibleImports = [\n\tBrnCollapsibleComponent,\n\tBrnCollapsibleTriggerDirective,\n\tBrnCollapsibleContentComponent,\n] as const;\n\n@NgModule({\n\timports: [...BrnCollapsibleImports],\n\texports: [...BrnCollapsibleImports],\n})\nexport class BrnCollapsibleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, TemplateRef, Directive, NgZone, signal, Injectable, ViewContainerRef, ElementRef, input, computed, effect, contentChild, Component, NgModule } from '@angular/core';
2
+ import { inject, TemplateRef, Directive, NgZone, signal, Injectable, ViewContainerRef, ElementRef, input, computed, effect, untracked, contentChild, Component, NgModule } from '@angular/core';
3
3
  import { FocusMonitor } from '@angular/cdk/a11y';
4
4
  import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
5
5
  import { TemplatePortal } from '@angular/cdk/portal';
@@ -178,10 +178,12 @@ class BrnHoverCardTriggerDirective {
178
178
  constructor() {
179
179
  effect(() => {
180
180
  const value = this._brnHoverCardTriggerForState();
181
- if (value) {
182
- this._contentService.setContent(value, this._vcr);
183
- }
184
- }, { allowSignalWrites: true });
181
+ untracked(() => {
182
+ if (value) {
183
+ this._contentService.setContent(value, this._vcr);
184
+ }
185
+ });
186
+ });
185
187
  }
186
188
  ngOnInit() {
187
189
  this._contentService.setConfig({ attachTo: this._el, align: this.align(), sideOffset: this.sideOffset() });
@@ -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/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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"}
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\tuntracked,\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\tconst value = this._brnHoverCardTriggerForState();\n\t\t\tuntracked(() => {\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});\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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"}
@@ -1,6 +1,6 @@
1
1
  import { isPlatformBrowser } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, computed, signal, inject, PLATFORM_ID, ElementRef, Renderer2, effect, Directive, input, model, Injector, contentChild, forwardRef } from '@angular/core';
3
+ import { InjectionToken, computed, signal, inject, PLATFORM_ID, ElementRef, Renderer2, effect, untracked, Directive, input, model, Injector, contentChild, forwardRef } from '@angular/core';
4
4
  import { Directionality } from '@angular/cdk/bidi';
5
5
  import { SharedResizeObserver } from '@angular/cdk/observers/private';
6
6
  import { toObservable } from '@angular/core/rxjs-interop';
@@ -38,12 +38,18 @@ class BrnSliderInputDirective {
38
38
  constructor() {
39
39
  effect(() => {
40
40
  if (isPlatformBrowser(this._platformId)) {
41
- this._updateHostElementStep(this._slider.step());
42
- this._updateMinValue(this._slider.min());
43
- this._updateMaxValue(this._slider.max());
44
- this._updateDirection(this._slider.direction());
41
+ const step = this._slider.step();
42
+ const min = this._slider.min();
43
+ const max = this._slider.max();
44
+ const direction = this._slider.direction();
45
+ untracked(() => {
46
+ this._updateHostElementStep(step);
47
+ this._updateMinValue(min);
48
+ this._updateMaxValue(max);
49
+ this._updateDirection(direction);
50
+ });
45
51
  }
46
- }, { allowSignalWrites: true });
52
+ });
47
53
  }
48
54
  onFocus() {
49
55
  this.isFocused.set(true);
@@ -1 +1 @@
1
- {"version":3,"file":"spartan-ng-brain-slider.mjs","sources":["../../../../libs/brain/slider/src/lib/brn-slider-track.directive.ts","../../../../libs/brain/slider/src/lib/brn-slider-thumb.directive.ts","../../../../libs/brain/slider/src/lib/brn-slider-tick-mark.directive.ts","../../../../libs/brain/slider/src/lib/brn-slider-track-active-fill.directive.ts","../../../../libs/brain/slider/src/index.ts","../../../../libs/brain/slider/src/spartan-ng-brain-slider.ts"],"sourcesContent":["import type { Direction } from '@angular/cdk/bidi';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterViewInit,\n\tDirective,\n\tElementRef,\n\tInjectionToken,\n\tInjector,\n\ttype OnDestroy,\n\tPLATFORM_ID,\n\tRenderer2,\n\ttype Signal,\n\ttype WritableSignal,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tforwardRef,\n\tinject,\n\tinput,\n\tmodel,\n\tsignal,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport { Subject, merge } from 'rxjs';\nimport { debounceTime, takeUntil, tap } from 'rxjs/operators';\n\nexport const BRN_SLIDER_INPUT = new InjectionToken<BrnSliderInput>('BrnSliderInput');\n\nexport interface BrnSliderInput {\n\t/** The slider's native input element wrapper value. */\n\tvalue: Signal<number>;\n\n\t/** Flag indicating if native input element is currently focused. */\n\tisFocused: Signal<boolean>;\n}\n\nexport const BRN_SLIDER_TRACK = new InjectionToken<BrnSliderTrack>('BrnSliderTrack');\n\nexport const BRN_SLIDER = new InjectionToken<BrnSlider>('BrnSlider');\n\nexport interface BrnSlider {\n\t/** The minimun value of the slider. */\n\tmin: WritableSignal<number>;\n\n\t/** The maximun value of the slider. */\n\tmax: WritableSignal<number>;\n\n\t/** The amount that slider values can increment or decrement by. */\n\tstep: Signal<number>;\n\n\t/** Whether the slider is disabled. */\n\tdisabled: WritableSignal<boolean>;\n\n\t/** Whether the slider displays tick marks along the slider track. */\n\tshowTickMarks: Signal<boolean>;\n\n\t/** Whether the slider is ltr or rtl.\n\t * Any consumer of slider interested in getting the current\n\t * direction state, will consume this signal.\n\t */\n\tdirection: Signal<Direction>;\n\n\t/** The underlying slider's track element */\n\tbrnSliderTrack: Signal<BrnSliderTrack | undefined>;\n\n\t/** The aria-labelledby element */\n\tlabel: Signal<BrnLabelDirective | null>;\n\n\t/** The optional aria-label fallback value.\n\t * If no label is provided, this input must be provided by the user,\n\t * otherwise an error will be displayed prompting the user to either\n\t * provide a spartan-ui label or a fallback aria label text.\n\t */\n\tariaLabel: Signal<string | null>;\n}\n\n/**\n * Directive that adds slider-specific behaviors to an input element inside `<brn-slider>`.\n */\n@Directive({\n\tselector: 'input[brnSliderInput]',\n\thost: {\n\t\ttype: 'range',\n\t\trole: 'slider',\n\t\t'(change)': 'onChange()',\n\t\t'(input)': 'onInput()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(blur)': 'onBlur()',\n\t\t'[attr.disabled]': 'isDisabled()',\n\t\t'[attr.aria-valuenow]': 'valueNow()',\n\t\t'[attr.aria-valuemin]': 'valueMin()',\n\t\t'[attr.aria-valuemax]': 'valueMax()',\n\t\t'[attr.aria-labelledby]': 'ariaLabelledby()',\n\t\t'[attr.aria-label]': 'ariaLabel()',\n\t\t'aria-orientation': 'horizontal',\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: BrnSliderInputDirective,\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: BRN_SLIDER_INPUT,\n\t\t\tuseExisting: BrnSliderInputDirective,\n\t\t},\n\t],\n\tstandalone: true,\n})\nexport class BrnSliderInputDirective implements ControlValueAccessor, BrnSliderInput {\n\tprivate _onChangeFn: ((value: string | number) => void) | undefined;\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouchedFn: () => void = () => {};\n\tprotected isDisabled = computed(() => (this._slider.disabled() === true ? true : undefined));\n\tprotected valueNow = computed(() => this.value() ?? 0);\n\tprotected valueMin = computed(() => this._slider.min());\n\tprotected valueMax = computed(() => this._slider.max());\n\tprotected ariaLabelledby = computed(() => this._slider.label()?.id);\n\tprotected ariaLabel = computed(() => {\n\t\tif (!this._slider.ariaLabel() && !this.ariaLabelledby()) {\n\t\t\tthrow new Error(\n\t\t\t\t\"'ariaLabel' input must be provided as fallback accessibility aria label when no aria-labelledby element is provided.\",\n\t\t\t);\n\t\t}\n\t\treturn this._slider.ariaLabel();\n\t});\n\tpublic readonly value = signal(0);\n\tpublic readonly isFocused = signal(false);\n\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef<HTMLInputElement>);\n\tprivate readonly _slider = inject(BRN_SLIDER);\n\tprivate readonly _renderer2 = inject(Renderer2);\n\n\tconstructor() {\n\t\teffect(\n\t\t\t() => {\n\t\t\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\t\t\tthis._updateHostElementStep(this._slider.step());\n\t\t\t\t\tthis._updateMinValue(this._slider.min());\n\t\t\t\t\tthis._updateMaxValue(this._slider.max());\n\t\t\t\t\tthis._updateDirection(this._slider.direction());\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ allowSignalWrites: true },\n\t\t);\n\t}\n\n\tonFocus(): void {\n\t\tthis.isFocused.set(true);\n\t}\n\n\tonBlur(): void {\n\t\tthis.isFocused.set(false);\n\t\tthis._onTouchedFn();\n\t}\n\n\tonInput(): void {\n\t\tthis._updateValue();\n\t}\n\n\tonChange(): void {\n\t\tthis._updateValue();\n\t}\n\n\twriteValue(obj: number): void {\n\t\tthis.value.set(obj);\n\t\tthis._updateHostElementValue(obj);\n\t}\n\n\tregisterOnChange(fn: (value: string | number) => void): void {\n\t\tthis._onChangeFn = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis._onTouchedFn = fn;\n\t}\n\n\t/**\n\t * Sets the disabled state of the slider.\n\t * @param isDisabled The new disabled state\n\t */\n\tsetDisabledState(isDisabled: boolean): void {\n\t\t/** Disable slider only when slider component\n\t\t * is not disabled and isDisabled param is explicitly set to true\n\t\t */\n\t\tif (isDisabled && !this._slider.disabled()) {\n\t\t\tthis._slider.disabled.set(isDisabled);\n\t\t}\n\t}\n\n\tprivate _updateHostElementValue(value: number | null) {\n\t\tthis._elementRef.nativeElement.value = value?.toString() ?? '0';\n\t}\n\n\tprivate _updateValue() {\n\t\tthis.value.set(+this._elementRef.nativeElement.value);\n\t\tthis._onChangeFn?.(this.value());\n\t}\n\n\tprivate _updateHostElementStep(step: number) {\n\t\tthis._elementRef.nativeElement.step = step.toString();\n\t\tthis._updateValue();\n\t}\n\n\tprivate _updateMinValue(value: number) {\n\t\tthis._elementRef.nativeElement.min = value.toString();\n\t\tthis._updateValue();\n\t}\n\n\tprivate _updateMaxValue(value: number) {\n\t\tthis._elementRef.nativeElement.max = value.toString();\n\t\tthis._updateValue();\n\t}\n\n\tprivate _updateDirection(direction: Direction) {\n\t\tthis._renderer2.setStyle(this._elementRef.nativeElement, 'direction', direction);\n\t}\n}\n\n@Directive({\n\tselector: '[brnSlider]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BRN_SLIDER,\n\t\t\tuseExisting: BrnSliderDirective,\n\t\t},\n\t],\n\texportAs: 'brnSlider',\n})\nexport class BrnSliderDirective implements BrnSlider, AfterViewInit, OnDestroy {\n\tpublic readonly label = input<BrnLabelDirective | null>(null);\n\tpublic readonly ariaLabel = input<string | null>(null);\n\t/** Used only as an input. */\n\tpublic readonly dir = input<Direction>('ltr');\n\tpublic readonly disabled = model<boolean>(false, { alias: 'brnSliderDisabled' });\n\tpublic readonly min = model<number>(0);\n\tpublic readonly max = model<number>(100);\n\tpublic readonly step = input<number>(1);\n\tpublic readonly showTickMarks = input<boolean>(false);\n\n\tpublic readonly direction = signal<Direction>('ltr');\n\tprivate readonly _destroyed = new Subject<void>();\n\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _dir = inject(Directionality);\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\n\tpublic readonly brnSliderTrack = contentChild(BRN_SLIDER_TRACK);\n\n\tngAfterViewInit(): void {\n\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\tthis._updateDirectionality();\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroyed.next();\n\t\tthis._destroyed.complete();\n\t}\n\n\t/**\n\t * The method is responsible of setting the current direction state\n\t * based on the latest 'dir' input or bidi state change. The only\n\t * source of truth for slider direction state is the 'direction' signal\n\t * and all interested consumers of it, will consume this interface exposed signal.\n\t */\n\tprivate _updateDirectionality() {\n\t\tmerge(toObservable(this.dir, { injector: this._injector }), this._dir.change)\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this._destroyed),\n\t\t\t\ttap((dir) => this.direction.set(dir)),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n}\n\nexport interface BrnSliderTrack {\n\t/** The track's active portion. */\n\tactiveTrackPercentage: Signal<number>;\n\n\t/** The host element's bounding client rect width without padding left and right. */\n\thostElementWidth: Signal<number>;\n\n\t/** The available tick mark track width based on slider's step min and max values. */\n\ttickMarkTrackWidth: Signal<number>;\n\n\t/** The tick marks array indicating if a mark is currently active or inactive. */\n\ttickMarks: Signal<Array<boolean>>;\n\n\t/** The underlying slider's track input element */\n\tbrnSliderInput: Signal<BrnSliderInput | undefined>;\n}\n\n@Directive({\n\tselector: '[brnSliderTrack]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BRN_SLIDER_TRACK,\n\t\t\tuseExisting: BrnSliderTrackDirective,\n\t\t},\n\t],\n})\nexport class BrnSliderTrackDirective implements BrnSliderTrack, AfterViewInit, OnDestroy {\n\tpublic readonly hostElementWidth = signal<number>(0);\n\tprivate readonly _destroyed = new Subject<void>();\n\n\tprivate readonly _slider = inject(BRN_SLIDER);\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\tprivate readonly _sharedResizeObserver = inject(SharedResizeObserver);\n\n\tpublic readonly brnSliderInput = contentChild<BrnSliderInput>(forwardRef(() => BRN_SLIDER_INPUT));\n\n\tpublic activeTrackPercentage = computed(() => {\n\t\tconst inputValue = this.brnSliderInput()?.value();\n\n\t\tif (this._slider.min() >= this._slider.max() || !inputValue || inputValue < this._slider.min()) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (inputValue > this._slider.max()) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn (inputValue - this._slider.min()) / (this._slider.max() - this._slider.min());\n\t});\n\n\tpublic tickMarkTrackWidth = computed(() => {\n\t\tif (!this._slider.showTickMarks()) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst sliderStep = this._slider.step();\n\t\tconst sliderMax = this._slider.max();\n\t\tconst sliderMin = this._slider.min();\n\n\t\tconst step = sliderStep && sliderStep > 0 ? sliderStep : 1;\n\t\tconst maxValue = Math.floor((sliderMax - sliderMin) / step) * step + sliderMin;\n\t\tconst percentage = (maxValue - sliderMin) / (sliderMax - sliderMin);\n\n\t\treturn this.hostElementWidth() * percentage;\n\t});\n\n\tpublic tickMarks = computed(() => {\n\t\tconst inputValue = this.brnSliderInput()?.value();\n\n\t\tif (!this._slider.showTickMarks() || inputValue === null || inputValue === undefined) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet numActive = Math.max(Math.floor((inputValue - this._slider.min()) / this._slider.step()), 0);\n\t\tlet numInactive = Math.max(Math.floor((this._slider.max() - inputValue) / this._slider.step()), 0);\n\n\t\tthis._slider.direction() === 'rtl' ? numInactive++ : numActive++;\n\n\t\treturn Array(numActive).fill(true).concat(Array(numInactive).fill(false));\n\t});\n\n\tngAfterViewInit(): void {\n\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\tthis._storeDimensions();\n\t\t\tthis._onResize();\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroyed.next();\n\t\tthis._destroyed.complete();\n\t}\n\n\tprivate _onResize() {\n\t\tthis._sharedResizeObserver\n\t\t\t.observe(this._elementRef.nativeElement)\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(32),\n\t\t\t\ttakeUntil(this._destroyed),\n\t\t\t\ttap(() => this._storeDimensions()),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprivate _storeDimensions(): void {\n\t\tconst computedStyle = getComputedStyle(this._elementRef.nativeElement);\n\n\t\tthis.hostElementWidth.set(\n\t\t\tthis._elementRef.nativeElement.offsetWidth -\n\t\t\t\tNumber.parseFloat(computedStyle.paddingLeft) -\n\t\t\t\tNumber.parseFloat(computedStyle.paddingRight),\n\t\t);\n\t}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, type Signal, computed, effect, inject } from '@angular/core';\nimport { BRN_SLIDER } from './brn-slider-track.directive';\n\nexport interface BrnSliderThumb {\n\t/** The visual's thumb translateX portion. */\n\ttranslateX: Signal<number>;\n}\n\n@Directive({\n\tselector: '[brnSliderThumb]',\n\tstandalone: true,\n})\nexport class BrnSliderThumbDirective implements BrnSliderThumb {\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\tprivate readonly _slider = inject(BRN_SLIDER);\n\n\tpublic readonly translateX = computed(() => this._calcTranslateX());\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\t\tthis._updateTranslateX(this.translateX());\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _calcTranslateX() {\n\t\tconst activeTrackPercentage = this._slider.brnSliderTrack()?.activeTrackPercentage();\n\t\tconst trackHostElementWidth = this._slider.brnSliderTrack()?.hostElementWidth();\n\n\t\tif (!activeTrackPercentage || !trackHostElementWidth) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (this._slider.direction() === 'rtl') {\n\t\t\treturn -(activeTrackPercentage * trackHostElementWidth);\n\t\t}\n\n\t\treturn activeTrackPercentage * trackHostElementWidth;\n\t}\n\n\tprivate _updateTranslateX(value: number) {\n\t\tthis._elementRef.nativeElement.style.transform = `translate(${value}px, -50%)`;\n\t}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, effect, inject, input } from '@angular/core';\nimport { BRN_SLIDER, BRN_SLIDER_TRACK } from './brn-slider-track.directive';\n\n@Directive({\n\tselector: '[brnSliderTickMark]',\n\tstandalone: true,\n})\nexport class BrnSliderTickMarkDirective {\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tpublic readonly data = input<{ tickMarkIndex: number; totalTickMarks: number }>();\n\n\tprivate readonly _sliderTrack = inject(BRN_SLIDER_TRACK);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\tprivate readonly _slider = inject(BRN_SLIDER);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\t\tthis._updateTranslateX();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _updateTranslateX() {\n\t\tconst data = this.data();\n\n\t\tif (!data) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst translateX = data.tickMarkIndex * (this._sliderTrack.tickMarkTrackWidth() / (data.totalTickMarks - 1));\n\n\t\tthis._elementRef.nativeElement.style.transform =\n\t\t\tthis._slider.direction() === 'rtl' ? `translateX(${-translateX}px)` : `translateX(${translateX}px)`;\n\t}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, effect, inject } from '@angular/core';\nimport { BRN_SLIDER_TRACK } from './brn-slider-track.directive';\n\n@Directive({\n\tselector: '[brnSliderTrackActiveFill]',\n\tstandalone: true,\n})\nexport class BrnSliderTrackActiveFillDirective {\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\tprivate readonly _sliderTrack = inject(BRN_SLIDER_TRACK);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\t\tthis._updateActiveTrackPercentage(this._sliderTrack.activeTrackPercentage());\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _updateActiveTrackPercentage(percentage: number) {\n\t\tthis._elementRef.nativeElement.style.transform = `scaleX(${percentage})`;\n\t}\n}\n","import { BrnSliderThumbDirective } from './lib/brn-slider-thumb.directive';\nimport { BrnSliderDirective, BrnSliderInputDirective, BrnSliderTrackDirective } from './lib/brn-slider-track.directive';\n\nexport * from './lib/brn-slider-thumb.directive';\nexport * from './lib/brn-slider-tick-mark.directive';\nexport * from './lib/brn-slider-track-active-fill.directive';\nexport * from './lib/brn-slider-track.directive';\n\nexport const BrnSliderImports = [\n\tBrnSliderDirective,\n\tBrnSliderTrackDirective,\n\tBrnSliderInputDirective,\n\tBrnSliderThumbDirective,\n] as const;\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-slider.mjs","sources":["../../../../libs/brain/slider/src/lib/brn-slider-track.directive.ts","../../../../libs/brain/slider/src/lib/brn-slider-thumb.directive.ts","../../../../libs/brain/slider/src/lib/brn-slider-tick-mark.directive.ts","../../../../libs/brain/slider/src/lib/brn-slider-track-active-fill.directive.ts","../../../../libs/brain/slider/src/index.ts","../../../../libs/brain/slider/src/spartan-ng-brain-slider.ts"],"sourcesContent":["import type { Direction } from '@angular/cdk/bidi';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterViewInit,\n\tDirective,\n\tElementRef,\n\tInjectionToken,\n\tInjector,\n\ttype OnDestroy,\n\tPLATFORM_ID,\n\tRenderer2,\n\ttype Signal,\n\ttype WritableSignal,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tforwardRef,\n\tinject,\n\tinput,\n\tmodel,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { BrnLabelDirective } from '@spartan-ng/brain/label';\nimport { Subject, merge } from 'rxjs';\nimport { debounceTime, takeUntil, tap } from 'rxjs/operators';\n\nexport const BRN_SLIDER_INPUT = new InjectionToken<BrnSliderInput>('BrnSliderInput');\n\nexport interface BrnSliderInput {\n\t/** The slider's native input element wrapper value. */\n\tvalue: Signal<number>;\n\n\t/** Flag indicating if native input element is currently focused. */\n\tisFocused: Signal<boolean>;\n}\n\nexport const BRN_SLIDER_TRACK = new InjectionToken<BrnSliderTrack>('BrnSliderTrack');\n\nexport const BRN_SLIDER = new InjectionToken<BrnSlider>('BrnSlider');\n\nexport interface BrnSlider {\n\t/** The minimun value of the slider. */\n\tmin: WritableSignal<number>;\n\n\t/** The maximun value of the slider. */\n\tmax: WritableSignal<number>;\n\n\t/** The amount that slider values can increment or decrement by. */\n\tstep: Signal<number>;\n\n\t/** Whether the slider is disabled. */\n\tdisabled: WritableSignal<boolean>;\n\n\t/** Whether the slider displays tick marks along the slider track. */\n\tshowTickMarks: Signal<boolean>;\n\n\t/** Whether the slider is ltr or rtl.\n\t * Any consumer of slider interested in getting the current\n\t * direction state, will consume this signal.\n\t */\n\tdirection: Signal<Direction>;\n\n\t/** The underlying slider's track element */\n\tbrnSliderTrack: Signal<BrnSliderTrack | undefined>;\n\n\t/** The aria-labelledby element */\n\tlabel: Signal<BrnLabelDirective | null>;\n\n\t/** The optional aria-label fallback value.\n\t * If no label is provided, this input must be provided by the user,\n\t * otherwise an error will be displayed prompting the user to either\n\t * provide a spartan-ui label or a fallback aria label text.\n\t */\n\tariaLabel: Signal<string | null>;\n}\n\n/**\n * Directive that adds slider-specific behaviors to an input element inside `<brn-slider>`.\n */\n@Directive({\n\tselector: 'input[brnSliderInput]',\n\thost: {\n\t\ttype: 'range',\n\t\trole: 'slider',\n\t\t'(change)': 'onChange()',\n\t\t'(input)': 'onInput()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(blur)': 'onBlur()',\n\t\t'[attr.disabled]': 'isDisabled()',\n\t\t'[attr.aria-valuenow]': 'valueNow()',\n\t\t'[attr.aria-valuemin]': 'valueMin()',\n\t\t'[attr.aria-valuemax]': 'valueMax()',\n\t\t'[attr.aria-labelledby]': 'ariaLabelledby()',\n\t\t'[attr.aria-label]': 'ariaLabel()',\n\t\t'aria-orientation': 'horizontal',\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: BrnSliderInputDirective,\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: BRN_SLIDER_INPUT,\n\t\t\tuseExisting: BrnSliderInputDirective,\n\t\t},\n\t],\n\tstandalone: true,\n})\nexport class BrnSliderInputDirective implements ControlValueAccessor, BrnSliderInput {\n\tprivate _onChangeFn: ((value: string | number) => void) | undefined;\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouchedFn: () => void = () => {};\n\tprotected isDisabled = computed(() => (this._slider.disabled() === true ? true : undefined));\n\tprotected valueNow = computed(() => this.value() ?? 0);\n\tprotected valueMin = computed(() => this._slider.min());\n\tprotected valueMax = computed(() => this._slider.max());\n\tprotected ariaLabelledby = computed(() => this._slider.label()?.id);\n\tprotected ariaLabel = computed(() => {\n\t\tif (!this._slider.ariaLabel() && !this.ariaLabelledby()) {\n\t\t\tthrow new Error(\n\t\t\t\t\"'ariaLabel' input must be provided as fallback accessibility aria label when no aria-labelledby element is provided.\",\n\t\t\t);\n\t\t}\n\t\treturn this._slider.ariaLabel();\n\t});\n\tpublic readonly value = signal(0);\n\tpublic readonly isFocused = signal(false);\n\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef<HTMLInputElement>);\n\tprivate readonly _slider = inject(BRN_SLIDER);\n\tprivate readonly _renderer2 = inject(Renderer2);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\t\tconst step = this._slider.step();\n\t\t\t\tconst min = this._slider.min();\n\t\t\t\tconst max = this._slider.max();\n\t\t\t\tconst direction = this._slider.direction();\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tthis._updateHostElementStep(step);\n\t\t\t\t\tthis._updateMinValue(min);\n\t\t\t\t\tthis._updateMaxValue(max);\n\t\t\t\t\tthis._updateDirection(direction);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tonFocus(): void {\n\t\tthis.isFocused.set(true);\n\t}\n\n\tonBlur(): void {\n\t\tthis.isFocused.set(false);\n\t\tthis._onTouchedFn();\n\t}\n\n\tonInput(): void {\n\t\tthis._updateValue();\n\t}\n\n\tonChange(): void {\n\t\tthis._updateValue();\n\t}\n\n\twriteValue(obj: number): void {\n\t\tthis.value.set(obj);\n\t\tthis._updateHostElementValue(obj);\n\t}\n\n\tregisterOnChange(fn: (value: string | number) => void): void {\n\t\tthis._onChangeFn = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis._onTouchedFn = fn;\n\t}\n\n\t/**\n\t * Sets the disabled state of the slider.\n\t * @param isDisabled The new disabled state\n\t */\n\tsetDisabledState(isDisabled: boolean): void {\n\t\t/** Disable slider only when slider component\n\t\t * is not disabled and isDisabled param is explicitly set to true\n\t\t */\n\t\tif (isDisabled && !this._slider.disabled()) {\n\t\t\tthis._slider.disabled.set(isDisabled);\n\t\t}\n\t}\n\n\tprivate _updateHostElementValue(value: number | null) {\n\t\tthis._elementRef.nativeElement.value = value?.toString() ?? '0';\n\t}\n\n\tprivate _updateValue() {\n\t\tthis.value.set(+this._elementRef.nativeElement.value);\n\t\tthis._onChangeFn?.(this.value());\n\t}\n\n\tprivate _updateHostElementStep(step: number) {\n\t\tthis._elementRef.nativeElement.step = step.toString();\n\t\tthis._updateValue();\n\t}\n\n\tprivate _updateMinValue(value: number) {\n\t\tthis._elementRef.nativeElement.min = value.toString();\n\t\tthis._updateValue();\n\t}\n\n\tprivate _updateMaxValue(value: number) {\n\t\tthis._elementRef.nativeElement.max = value.toString();\n\t\tthis._updateValue();\n\t}\n\n\tprivate _updateDirection(direction: Direction) {\n\t\tthis._renderer2.setStyle(this._elementRef.nativeElement, 'direction', direction);\n\t}\n}\n\n@Directive({\n\tselector: '[brnSlider]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BRN_SLIDER,\n\t\t\tuseExisting: BrnSliderDirective,\n\t\t},\n\t],\n\texportAs: 'brnSlider',\n})\nexport class BrnSliderDirective implements BrnSlider, AfterViewInit, OnDestroy {\n\tpublic readonly label = input<BrnLabelDirective | null>(null);\n\tpublic readonly ariaLabel = input<string | null>(null);\n\t/** Used only as an input. */\n\tpublic readonly dir = input<Direction>('ltr');\n\tpublic readonly disabled = model<boolean>(false, { alias: 'brnSliderDisabled' });\n\tpublic readonly min = model<number>(0);\n\tpublic readonly max = model<number>(100);\n\tpublic readonly step = input<number>(1);\n\tpublic readonly showTickMarks = input<boolean>(false);\n\n\tpublic readonly direction = signal<Direction>('ltr');\n\tprivate readonly _destroyed = new Subject<void>();\n\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _dir = inject(Directionality);\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\n\tpublic readonly brnSliderTrack = contentChild(BRN_SLIDER_TRACK);\n\n\tngAfterViewInit(): void {\n\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\tthis._updateDirectionality();\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroyed.next();\n\t\tthis._destroyed.complete();\n\t}\n\n\t/**\n\t * The method is responsible of setting the current direction state\n\t * based on the latest 'dir' input or bidi state change. The only\n\t * source of truth for slider direction state is the 'direction' signal\n\t * and all interested consumers of it, will consume this interface exposed signal.\n\t */\n\tprivate _updateDirectionality() {\n\t\tmerge(toObservable(this.dir, { injector: this._injector }), this._dir.change)\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this._destroyed),\n\t\t\t\ttap((dir) => this.direction.set(dir)),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n}\n\nexport interface BrnSliderTrack {\n\t/** The track's active portion. */\n\tactiveTrackPercentage: Signal<number>;\n\n\t/** The host element's bounding client rect width without padding left and right. */\n\thostElementWidth: Signal<number>;\n\n\t/** The available tick mark track width based on slider's step min and max values. */\n\ttickMarkTrackWidth: Signal<number>;\n\n\t/** The tick marks array indicating if a mark is currently active or inactive. */\n\ttickMarks: Signal<Array<boolean>>;\n\n\t/** The underlying slider's track input element */\n\tbrnSliderInput: Signal<BrnSliderInput | undefined>;\n}\n\n@Directive({\n\tselector: '[brnSliderTrack]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: BRN_SLIDER_TRACK,\n\t\t\tuseExisting: BrnSliderTrackDirective,\n\t\t},\n\t],\n})\nexport class BrnSliderTrackDirective implements BrnSliderTrack, AfterViewInit, OnDestroy {\n\tpublic readonly hostElementWidth = signal<number>(0);\n\tprivate readonly _destroyed = new Subject<void>();\n\n\tprivate readonly _slider = inject(BRN_SLIDER);\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\tprivate readonly _sharedResizeObserver = inject(SharedResizeObserver);\n\n\tpublic readonly brnSliderInput = contentChild<BrnSliderInput>(forwardRef(() => BRN_SLIDER_INPUT));\n\n\tpublic activeTrackPercentage = computed(() => {\n\t\tconst inputValue = this.brnSliderInput()?.value();\n\n\t\tif (this._slider.min() >= this._slider.max() || !inputValue || inputValue < this._slider.min()) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (inputValue > this._slider.max()) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn (inputValue - this._slider.min()) / (this._slider.max() - this._slider.min());\n\t});\n\n\tpublic tickMarkTrackWidth = computed(() => {\n\t\tif (!this._slider.showTickMarks()) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst sliderStep = this._slider.step();\n\t\tconst sliderMax = this._slider.max();\n\t\tconst sliderMin = this._slider.min();\n\n\t\tconst step = sliderStep && sliderStep > 0 ? sliderStep : 1;\n\t\tconst maxValue = Math.floor((sliderMax - sliderMin) / step) * step + sliderMin;\n\t\tconst percentage = (maxValue - sliderMin) / (sliderMax - sliderMin);\n\n\t\treturn this.hostElementWidth() * percentage;\n\t});\n\n\tpublic tickMarks = computed(() => {\n\t\tconst inputValue = this.brnSliderInput()?.value();\n\n\t\tif (!this._slider.showTickMarks() || inputValue === null || inputValue === undefined) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet numActive = Math.max(Math.floor((inputValue - this._slider.min()) / this._slider.step()), 0);\n\t\tlet numInactive = Math.max(Math.floor((this._slider.max() - inputValue) / this._slider.step()), 0);\n\n\t\tthis._slider.direction() === 'rtl' ? numInactive++ : numActive++;\n\n\t\treturn Array(numActive).fill(true).concat(Array(numInactive).fill(false));\n\t});\n\n\tngAfterViewInit(): void {\n\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\tthis._storeDimensions();\n\t\t\tthis._onResize();\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroyed.next();\n\t\tthis._destroyed.complete();\n\t}\n\n\tprivate _onResize() {\n\t\tthis._sharedResizeObserver\n\t\t\t.observe(this._elementRef.nativeElement)\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(32),\n\t\t\t\ttakeUntil(this._destroyed),\n\t\t\t\ttap(() => this._storeDimensions()),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprivate _storeDimensions(): void {\n\t\tconst computedStyle = getComputedStyle(this._elementRef.nativeElement);\n\n\t\tthis.hostElementWidth.set(\n\t\t\tthis._elementRef.nativeElement.offsetWidth -\n\t\t\t\tNumber.parseFloat(computedStyle.paddingLeft) -\n\t\t\t\tNumber.parseFloat(computedStyle.paddingRight),\n\t\t);\n\t}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, type Signal, computed, effect, inject } from '@angular/core';\nimport { BRN_SLIDER } from './brn-slider-track.directive';\n\nexport interface BrnSliderThumb {\n\t/** The visual's thumb translateX portion. */\n\ttranslateX: Signal<number>;\n}\n\n@Directive({\n\tselector: '[brnSliderThumb]',\n\tstandalone: true,\n})\nexport class BrnSliderThumbDirective implements BrnSliderThumb {\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\tprivate readonly _slider = inject(BRN_SLIDER);\n\n\tpublic readonly translateX = computed(() => this._calcTranslateX());\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\t\tthis._updateTranslateX(this.translateX());\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _calcTranslateX() {\n\t\tconst activeTrackPercentage = this._slider.brnSliderTrack()?.activeTrackPercentage();\n\t\tconst trackHostElementWidth = this._slider.brnSliderTrack()?.hostElementWidth();\n\n\t\tif (!activeTrackPercentage || !trackHostElementWidth) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (this._slider.direction() === 'rtl') {\n\t\t\treturn -(activeTrackPercentage * trackHostElementWidth);\n\t\t}\n\n\t\treturn activeTrackPercentage * trackHostElementWidth;\n\t}\n\n\tprivate _updateTranslateX(value: number) {\n\t\tthis._elementRef.nativeElement.style.transform = `translate(${value}px, -50%)`;\n\t}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, effect, inject, input } from '@angular/core';\nimport { BRN_SLIDER, BRN_SLIDER_TRACK } from './brn-slider-track.directive';\n\n@Directive({\n\tselector: '[brnSliderTickMark]',\n\tstandalone: true,\n})\nexport class BrnSliderTickMarkDirective {\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tpublic readonly data = input<{ tickMarkIndex: number; totalTickMarks: number }>();\n\n\tprivate readonly _sliderTrack = inject(BRN_SLIDER_TRACK);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\tprivate readonly _slider = inject(BRN_SLIDER);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\t\tthis._updateTranslateX();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _updateTranslateX() {\n\t\tconst data = this.data();\n\n\t\tif (!data) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst translateX = data.tickMarkIndex * (this._sliderTrack.tickMarkTrackWidth() / (data.totalTickMarks - 1));\n\n\t\tthis._elementRef.nativeElement.style.transform =\n\t\t\tthis._slider.direction() === 'rtl' ? `translateX(${-translateX}px)` : `translateX(${translateX}px)`;\n\t}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, effect, inject } from '@angular/core';\nimport { BRN_SLIDER_TRACK } from './brn-slider-track.directive';\n\n@Directive({\n\tselector: '[brnSliderTrackActiveFill]',\n\tstandalone: true,\n})\nexport class BrnSliderTrackActiveFillDirective {\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\tprivate readonly _sliderTrack = inject(BRN_SLIDER_TRACK);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (isPlatformBrowser(this._platformId)) {\n\t\t\t\tthis._updateActiveTrackPercentage(this._sliderTrack.activeTrackPercentage());\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _updateActiveTrackPercentage(percentage: number) {\n\t\tthis._elementRef.nativeElement.style.transform = `scaleX(${percentage})`;\n\t}\n}\n","import { BrnSliderThumbDirective } from './lib/brn-slider-thumb.directive';\nimport { BrnSliderDirective, BrnSliderInputDirective, BrnSliderTrackDirective } from './lib/brn-slider-track.directive';\n\nexport * from './lib/brn-slider-thumb.directive';\nexport * from './lib/brn-slider-tick-mark.directive';\nexport * from './lib/brn-slider-track-active-fill.directive';\nexport * from './lib/brn-slider-track.directive';\n\nexport const BrnSliderImports = [\n\tBrnSliderDirective,\n\tBrnSliderTrackDirective,\n\tBrnSliderInputDirective,\n\tBrnSliderThumbDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, TemplateRef, Directive, input, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, ContentChild, ViewContainerRef, signal, computed, effect, numberAttribute, EventEmitter, booleanAttribute, Output, ContentChildren, NgModule } from '@angular/core';
2
+ import { inject, TemplateRef, Directive, input, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, ContentChild, ViewContainerRef, signal, computed, effect, untracked, numberAttribute, EventEmitter, booleanAttribute, Output, ContentChildren, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/cdk/table';
4
4
  import { CdkCellDef, CdkFooterCellDef, CdkHeaderCellDef, CdkColumnDef, CdkTableModule, CdkRowDef, CdkTable } from '@angular/cdk/table';
5
5
  import { provideTableClassesSettableExisting } from '@spartan-ng/brain/core';
@@ -165,12 +165,14 @@ class BrnPaginatorDirective {
165
165
  constructor() {
166
166
  effect(() => {
167
167
  const state = this._state();
168
- Promise.resolve().then(() => {
169
- if (this.onStateChange) {
170
- this.onStateChange(state);
171
- }
168
+ untracked(() => {
169
+ Promise.resolve().then(() => {
170
+ if (this.onStateChange) {
171
+ this.onStateChange(state);
172
+ }
173
+ });
172
174
  });
173
- }, { allowSignalWrites: true });
175
+ });
174
176
  }
175
177
  ngOnInit() {
176
178
  this._vcr.createEmbeddedView(this._template, {