@ngstarter-ui/components 21.0.21 → 21.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/component-registry.json +17 -7
- package/fesm2022/ngstarter-ui-components-chips.mjs +9 -9
- package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-datepicker.mjs +7 -2
- package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-sidenav.mjs +1 -4
- package/fesm2022/ngstarter-ui-components-sidenav.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-sort.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-sort.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-stepper.mjs +19 -10
- package/fesm2022/ngstarter-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-timepicker.mjs +43 -27
- package/fesm2022/ngstarter-ui-components-timepicker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tree.mjs +5 -3
- package/fesm2022/ngstarter-ui-components-tree.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngstarter-ui-components-sidenav.d.ts +0 -2
- package/types/ngstarter-ui-components-sort.d.ts +5 -5
- package/types/ngstarter-ui-components-stepper.d.ts +2 -2
- package/types/ngstarter-ui-components-timepicker.d.ts +8 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-sidenav.mjs","sources":["../../../projects/components/sidenav/src/types.ts","../../../projects/components/sidenav/src/sidenav/sidenav.ts","../../../projects/components/sidenav/src/sidenav/sidenav.html","../../../projects/components/sidenav/src/sidenav-container/sidenav-container.ts","../../../projects/components/sidenav/src/sidenav-container/sidenav-container.html","../../../projects/components/sidenav/src/sidenav-content/sidenav-content.ts","../../../projects/components/sidenav/src/sidenav-content/sidenav-content.html","../../../projects/components/sidenav/src/sidenav-collapsed.ts","../../../projects/components/sidenav/src/sidenav-expanded.ts","../../../projects/components/sidenav/ngstarter-ui-components-sidenav.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const SIDENAV = new InjectionToken('SIDENAV');\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n afterNextRender,\n signal,\n input,\n model,\n forwardRef,\n effect,\n DestroyRef,\n computed,\n NgZone,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { SIDENAV } from '../types';\nimport { combineLatest, switchMap, of, distinctUntilChanged } from 'rxjs';\n\nexport type SidenavMode = 'over' | 'push' | 'side';\nexport type SidenavPosition = 'start' | 'end';\n\n@Component({\n selector: 'ngs-sidenav',\n exportAs: 'ngsSidenav',\n standalone: true,\n imports: [],\n templateUrl: './sidenav.html',\n styleUrl: './sidenav.scss',\n providers: [\n {\n provide: SIDENAV,\n useExisting: forwardRef(() => Sidenav),\n }\n ],\n host: {\n 'class': 'ngs-sidenav',\n '[class.ngs-sidenav-closed]': '!opened()',\n '[class.ngs-sidenav-opened]': 'opened()',\n '[class.ngs-sidenav-push]': 'effectiveMode() === \"push\"',\n '[class.ngs-sidenav-side]': 'effectiveMode() === \"side\"',\n '[class.ngs-sidenav-over]': 'effectiveMode() === \"over\"',\n '[class.ngs-sidenav-end]': 'position() === \"end\"',\n '[class.is-settled]': '_isSettled()',\n '[class.is-collapsed]': 'collapsed()',\n '[attr.tabindex]': '-1',\n '(mouseenter)': 'isHovered.set(true)',\n '(mouseleave)': 'isHovered.set(false)',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Sidenav {\n private _breakpointObserver = inject(BreakpointObserver);\n private _destroyRef = inject(DestroyRef);\n private _ngZone = inject(NgZone);\n _elementRef = inject(ElementRef);\n\n readonly isHovered = signal(false);\n protected _isSettled = signal(false);\n private _isBreakpointMatched = signal(false);\n\n private _previousOpened: boolean | null = null;\n\n /** Indicates whether the sidenav is in mobile (adaptive) mode. */\n isMobile = computed(() => this.adaptive() && this._isBreakpointMatched());\n\n effectiveMode = computed<SidenavMode>(() => {\n if (this.isMobile()) {\n return 'over';\n }\n return this.mode();\n });\n\n constructor() {\n afterNextRender(() => {\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this._isSettled.set(true);\n }, 100);\n });\n });\n combineLatest([\n toObservable(this.adaptive),\n toObservable(this.adaptiveBreakpoint)\n ]).pipe(\n switchMap(([adaptive, breakpoint]) => {\n if (!adaptive) {\n return of(false);\n }\n return this._breakpointObserver.observe(breakpoint).pipe(\n switchMap(result => of(result.matches))\n );\n }),\n distinctUntilChanged(),\n takeUntilDestroyed(this._destroyRef)\n ).subscribe((matches) => {\n this._isBreakpointMatched.set(matches);\n if (matches) {\n this._previousOpened = this.opened();\n this.opened.set(false);\n } else {\n if (this._previousOpened !== null) {\n this.opened.set(this._previousOpened);\n this._previousOpened = null;\n }\n }\n });\n\n effect(() => {\n const isOpened = this.opened();\n const isMatched = this._isBreakpointMatched();\n if (!isMatched) {\n this._previousOpened = isOpened;\n }\n });\n }\n\n adaptive = input(true, {\n transform: booleanAttribute\n });\n adaptiveBreakpoint = input('(max-width: 991.98px)');\n opened = model(false);\n fixedWidth = input<number | string | null>(null);\n mode = input<SidenavMode>('over');\n position = input<SidenavPosition>('start');\n collapsed = input(false, {\n transform: booleanAttribute\n });\n disableClose = input(false, {\n transform: booleanAttribute\n });\n\n open(): Promise<void> {\n return this.toggle(true);\n }\n\n close(): Promise<void> {\n return this.toggle(false);\n }\n\n toggle(isOpen: boolean = !this.opened()): Promise<void> {\n this.opened.set(isOpen);\n return Promise.resolve();\n }\n}\n","<ng-content/>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n inject,\n input,\n NgZone,\n afterNextRender,\n signal,\n output,\n PLATFORM_ID,\n ViewEncapsulation\n} from '@angular/core';\nimport { Sidenav } from '../sidenav/sidenav';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\nexport type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';\n\n@Component({\n selector: 'ngs-sidenav-container',\n exportAs: 'ngsSidenavContainer',\n standalone: true,\n imports: [],\n templateUrl: './sidenav-container.html',\n styleUrl: './sidenav-container.scss',\n host: {\n 'class': 'ngs-sidenav-container',\n '[class.is-settled]': '_isSettled()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SidenavContainer {\n private _ngZone = inject(NgZone);\n private _document = inject(DOCUMENT);\n private _platformId = inject(PLATFORM_ID);\n protected _isSettled = signal(false);\n\n _sidenavs = contentChildren(Sidenav, {descendants: true});\n\n readonly backdropClick = output();\n\n hasBackdrop = input(true, {\n transform: booleanAttribute\n });\n\n autoFocus = input<AutoFocusTarget | string | boolean>(true);\n\n autosize = input(false, {\n transform: booleanAttribute\n });\n\n fixedWidth = input<number | string | null>(null);\n\n constructor() {\n afterNextRender(() => {\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this._isSettled.set(true);\n }, 100);\n });\n });\n effect(() => {\n const sidenavs = this._sidenavs();\n sidenavs.forEach(sidenav => {\n if (sidenav.opened()) {\n this._focusSidenav(sidenav);\n }\n });\n });\n }\n\n private _focusSidenav(sidenav: Sidenav): void {\n const autoFocus = this.autoFocus();\n\n if (autoFocus === false) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n const element = sidenav._elementRef.nativeElement;\n\n if (autoFocus === 'dialog' || autoFocus === true) {\n element.focus();\n } else if (autoFocus === 'first-tabbable') {\n const firstTabbable = element.querySelector(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n ) as HTMLElement;\n firstTabbable?.focus();\n } else if (typeof autoFocus === 'string' && autoFocus.length > 0) {\n const selectedElement = element.querySelector(autoFocus) as HTMLElement;\n selectedElement?.focus();\n }\n });\n });\n }\n\n _isShowingBackdrop(): boolean {\n const hasAdaptiveOver = this._sidenavs()?.some(sidenav =>\n sidenav.opened() &&\n (sidenav as any).adaptive() &&\n (sidenav as any)._isBreakpointMatched()\n );\n return (this.hasBackdrop() || hasAdaptiveOver) && this._sidenavs()?.some(sidenav => sidenav.opened() && (sidenav as any).effectiveMode() !== 'side');\n }\n\n _onBackdropClicked(): void {\n this.backdropClick.emit();\n this._sidenavs().forEach(sidenav => {\n if (sidenav.opened()) {\n if (!sidenav.disableClose()) {\n sidenav.close();\n }\n }\n });\n }\n\n _getContentMarginLeft(): string {\n if (!this.autosize()) {\n const startSidenav = this._sidenavs()?.find(\n s => s.position() === 'start' && s.opened()\n );\n\n if (startSidenav) {\n if (this.fixedWidth() !== null && this.fixedWidth() !== undefined) {\n return `${parseInt(this.fixedWidth() as string, 10)}px`;\n }\n\n if (startSidenav.collapsed()) {\n return 'var(--ngs-sidenav-collapsed-width)';\n }\n\n if (startSidenav.mode() === 'push' || (startSidenav as any).effectiveMode() === 'side') {\n return 'var(--ngs-sidenav-width)';\n }\n }\n\n return '0px';\n }\n // Logic for autosize would typically involve a MutationObserver or ResizeObserver\n // but the current implementation already uses functions in host bindings which are\n // re-evaluated on change detection.\n const startSidenav = this._sidenavs()?.find(\n s => s.position() === 'start' && s.opened()\n );\n\n if (startSidenav) {\n if (this.fixedWidth() !== null && this.fixedWidth() !== undefined) {\n return `${parseInt(this.fixedWidth() as string, 10)}px`;\n }\n\n if (startSidenav.collapsed()) {\n return 'var(--ngs-sidenav-collapsed-width)';\n }\n\n if (startSidenav.mode() === 'push' || (startSidenav as any).effectiveMode() === 'side') {\n return 'var(--ngs-sidenav-width)';\n }\n }\n\n return '0px';\n }\n\n _getContentMarginRight(): string {\n if (!this.autosize()) {\n const endSidenav = this._sidenavs()?.find(\n s => s.position() === 'end' && s.opened()\n );\n\n if (endSidenav) {\n if (this.fixedWidth() !== null && this.fixedWidth() !== undefined) {\n return `${parseInt(this.fixedWidth() as string, 10)}px`;\n }\n\n if (endSidenav.collapsed()) {\n return 'var(--ngs-sidenav-collapsed-width)';\n }\n\n if (endSidenav.mode() === 'push' || (endSidenav as any).effectiveMode() === 'side') {\n return 'var(--ngs-sidenav-width)';\n }\n }\n\n return '0px';\n }\n const endSidenav = this._sidenavs()?.find(\n s => s.position() === 'end' && s.opened()\n );\n\n if (endSidenav) {\n if (this.fixedWidth() !== null && this.fixedWidth() !== undefined) {\n return `${parseInt(this.fixedWidth() as string, 10)}px`;\n }\n\n if (endSidenav.collapsed()) {\n return 'var(--ngs-sidenav-collapsed-width)';\n }\n\n if (endSidenav.mode() === 'push' || (endSidenav as any).effectiveMode() === 'side') {\n return 'var(--ngs-sidenav-width)';\n }\n }\n\n return '0px';\n }\n}\n","<div class=\"ngs-sidenav-backdrop\"\n [class.ngs-sidenav-shown]=\"_isShowingBackdrop()\"\n (click)=\"_onBackdropClicked()\"></div>\n\n<ng-content select=\"ngs-sidenav\"/>\n<ng-content select=\"ngs-sidenav-content\"/>\n<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n afterNextRender,\n signal,\n NgZone,\n} from '@angular/core';\nimport { SidenavContainer } from '../sidenav-container/sidenav-container';\n\n@Component({\n selector: 'ngs-sidenav-content',\n exportAs: 'ngsSidenavContent',\n standalone: true,\n imports: [],\n templateUrl: './sidenav-content.html',\n styleUrl: './sidenav-content.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-sidenav-content',\n '[class.is-settled]': '_isSettled()',\n '[style.margin-left]': '_container._getContentMarginLeft()',\n '[style.margin-right]': '_container._getContentMarginRight()',\n },\n})\nexport class SidenavContent {\n private _ngZone = inject(NgZone);\n protected _container = inject(SidenavContainer);\n protected _isSettled = signal(false);\n\n constructor() {\n afterNextRender(() => {\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this._isSettled.set(true);\n }, 100);\n });\n });\n }\n}\n","<ng-content/>\n","import { Directive, effect, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { SIDENAV } from './types';\nimport { Sidenav } from './sidenav/sidenav';\n\n@Directive({\n selector: '[ngsSidenavCollapsed]',\n exportAs: 'ngsSidenavCollapsed',\n standalone: true\n})\nexport class SidenavCollapsed {\n private _templateRef = inject(TemplateRef);\n private _viewContainerRef = inject(ViewContainerRef);\n private _sidenav = inject<Sidenav>(SIDENAV);\n\n constructor() {\n effect(() => {\n const collapsed = this._sidenav.collapsed();\n const hovered = this._sidenav.isHovered();\n\n if (collapsed && !hovered) {\n if (this._viewContainerRef.length === 0) {\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n } else {\n this._viewContainerRef.clear();\n }\n });\n }\n}\n","import { Directive, effect, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { SIDENAV } from './types';\nimport { Sidenav } from './sidenav/sidenav';\n\n@Directive({\n selector: '[ngsSidenavExpanded]',\n exportAs: 'ngsSidenavExpanded',\n standalone: true\n})\nexport class SidenavExpanded {\n private _templateRef = inject(TemplateRef);\n private _viewContainerRef = inject(ViewContainerRef);\n private _sidenav = inject<Sidenav>(SIDENAV);\n\n constructor() {\n effect(() => {\n const collapsed = this._sidenav.collapsed();\n const hovered = this._sidenav.isHovered();\n\n if (!collapsed || (collapsed && hovered)) {\n if (this._viewContainerRef.length === 0) {\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n } else {\n this._viewContainerRef.clear();\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-sidenav.mjs","sources":["../../../projects/components/sidenav/src/types.ts","../../../projects/components/sidenav/src/sidenav/sidenav.ts","../../../projects/components/sidenav/src/sidenav/sidenav.html","../../../projects/components/sidenav/src/sidenav-container/sidenav-container.ts","../../../projects/components/sidenav/src/sidenav-container/sidenav-container.html","../../../projects/components/sidenav/src/sidenav-content/sidenav-content.ts","../../../projects/components/sidenav/src/sidenav-content/sidenav-content.html","../../../projects/components/sidenav/src/sidenav-collapsed.ts","../../../projects/components/sidenav/src/sidenav-expanded.ts","../../../projects/components/sidenav/ngstarter-ui-components-sidenav.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const SIDENAV = new InjectionToken('SIDENAV');\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n afterNextRender,\n signal,\n input,\n model,\n forwardRef,\n effect,\n DestroyRef,\n computed,\n NgZone,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { SIDENAV } from '../types';\nimport { combineLatest, switchMap, of, distinctUntilChanged } from 'rxjs';\n\nexport type SidenavMode = 'over' | 'push' | 'side';\nexport type SidenavPosition = 'start' | 'end';\n\n@Component({\n selector: 'ngs-sidenav',\n exportAs: 'ngsSidenav',\n standalone: true,\n imports: [],\n templateUrl: './sidenav.html',\n styleUrl: './sidenav.scss',\n providers: [\n {\n provide: SIDENAV,\n useExisting: forwardRef(() => Sidenav),\n }\n ],\n host: {\n 'class': 'ngs-sidenav',\n '[class.ngs-sidenav-closed]': '!opened()',\n '[class.ngs-sidenav-opened]': 'opened()',\n '[class.ngs-sidenav-push]': 'effectiveMode() === \"push\"',\n '[class.ngs-sidenav-side]': 'effectiveMode() === \"side\"',\n '[class.ngs-sidenav-over]': 'effectiveMode() === \"over\"',\n '[class.ngs-sidenav-end]': 'position() === \"end\"',\n '[class.is-settled]': '_isSettled()',\n '[class.is-collapsed]': 'collapsed()',\n '[attr.tabindex]': '-1',\n '(mouseenter)': 'isHovered.set(true)',\n '(mouseleave)': 'isHovered.set(false)',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Sidenav {\n private _breakpointObserver = inject(BreakpointObserver);\n private _destroyRef = inject(DestroyRef);\n private _ngZone = inject(NgZone);\n _elementRef = inject(ElementRef);\n\n readonly isHovered = signal(false);\n protected _isSettled = signal(false);\n private _isBreakpointMatched = signal(false);\n\n private _previousOpened: boolean | null = null;\n\n /** Indicates whether the sidenav is in mobile (adaptive) mode. */\n isMobile = computed(() => this.adaptive() && this._isBreakpointMatched());\n\n effectiveMode = computed<SidenavMode>(() => {\n if (this.isMobile()) {\n return 'over';\n }\n return this.mode();\n });\n\n constructor() {\n afterNextRender(() => {\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this._isSettled.set(true);\n }, 100);\n });\n });\n combineLatest([\n toObservable(this.adaptive),\n toObservable(this.adaptiveBreakpoint)\n ]).pipe(\n switchMap(([adaptive, breakpoint]) => {\n if (!adaptive) {\n return of(false);\n }\n return this._breakpointObserver.observe(breakpoint).pipe(\n switchMap(result => of(result.matches))\n );\n }),\n distinctUntilChanged(),\n takeUntilDestroyed(this._destroyRef)\n ).subscribe((matches) => {\n this._isBreakpointMatched.set(matches);\n if (matches) {\n this._previousOpened = this.opened();\n this.opened.set(false);\n } else {\n if (this._previousOpened !== null) {\n this.opened.set(this._previousOpened);\n this._previousOpened = null;\n }\n }\n });\n\n effect(() => {\n const isOpened = this.opened();\n const isMatched = this._isBreakpointMatched();\n if (!isMatched) {\n this._previousOpened = isOpened;\n }\n });\n }\n\n adaptive = input(true, {\n transform: booleanAttribute\n });\n adaptiveBreakpoint = input('(max-width: 991.98px)');\n opened = model(false);\n fixedWidth = input<number | string | null>(null);\n mode = input<SidenavMode>('over');\n position = input<SidenavPosition>('start');\n collapsed = input(false, {\n transform: booleanAttribute\n });\n disableClose = input(false, {\n transform: booleanAttribute\n });\n\n open(): Promise<void> {\n return this.toggle(true);\n }\n\n close(): Promise<void> {\n return this.toggle(false);\n }\n\n toggle(isOpen: boolean = !this.opened()): Promise<void> {\n this.opened.set(isOpen);\n return Promise.resolve();\n }\n}\n","<ng-content/>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n inject,\n input,\n NgZone,\n afterNextRender,\n signal,\n output,\n} from '@angular/core';\nimport { Sidenav } from '../sidenav/sidenav';\n\nexport type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';\n\n@Component({\n selector: 'ngs-sidenav-container',\n exportAs: 'ngsSidenavContainer',\n standalone: true,\n imports: [],\n templateUrl: './sidenav-container.html',\n styleUrl: './sidenav-container.scss',\n host: {\n 'class': 'ngs-sidenav-container',\n '[class.is-settled]': '_isSettled()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SidenavContainer {\n private _ngZone = inject(NgZone);\n protected _isSettled = signal(false);\n\n _sidenavs = contentChildren(Sidenav, {descendants: true});\n\n readonly backdropClick = output();\n\n hasBackdrop = input(true, {\n transform: booleanAttribute\n });\n\n autoFocus = input<AutoFocusTarget | string | boolean>(true);\n\n autosize = input(false, {\n transform: booleanAttribute\n });\n\n fixedWidth = input<number | string | null>(null);\n\n constructor() {\n afterNextRender(() => {\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this._isSettled.set(true);\n }, 100);\n });\n });\n effect(() => {\n const sidenavs = this._sidenavs();\n sidenavs.forEach(sidenav => {\n if (sidenav.opened()) {\n this._focusSidenav(sidenav);\n }\n });\n });\n }\n\n private _focusSidenav(sidenav: Sidenav): void {\n const autoFocus = this.autoFocus();\n\n if (autoFocus === false) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n const element = sidenav._elementRef.nativeElement;\n\n if (autoFocus === 'dialog' || autoFocus === true) {\n element.focus();\n } else if (autoFocus === 'first-tabbable') {\n const firstTabbable = element.querySelector(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n ) as HTMLElement;\n firstTabbable?.focus();\n } else if (typeof autoFocus === 'string' && autoFocus.length > 0) {\n const selectedElement = element.querySelector(autoFocus) as HTMLElement;\n selectedElement?.focus();\n }\n });\n });\n }\n\n _isShowingBackdrop(): boolean {\n const hasAdaptiveOver = this._sidenavs()?.some(sidenav =>\n sidenav.opened() &&\n (sidenav as any).adaptive() &&\n (sidenav as any)._isBreakpointMatched()\n );\n return (this.hasBackdrop() || hasAdaptiveOver) && this._sidenavs()?.some(sidenav => sidenav.opened() && (sidenav as any).effectiveMode() !== 'side');\n }\n\n _onBackdropClicked(): void {\n this.backdropClick.emit();\n this._sidenavs().forEach(sidenav => {\n if (sidenav.opened()) {\n if (!sidenav.disableClose()) {\n sidenav.close();\n }\n }\n });\n }\n\n _getContentMarginLeft(): string {\n if (!this.autosize()) {\n const startSidenav = this._sidenavs()?.find(\n s => s.position() === 'start' && s.opened()\n );\n\n if (startSidenav) {\n if (this.fixedWidth() !== null && this.fixedWidth() !== undefined) {\n return `${parseInt(this.fixedWidth() as string, 10)}px`;\n }\n\n if (startSidenav.collapsed()) {\n return 'var(--ngs-sidenav-collapsed-width)';\n }\n\n if (startSidenav.mode() === 'push' || (startSidenav as any).effectiveMode() === 'side') {\n return 'var(--ngs-sidenav-width)';\n }\n }\n\n return '0px';\n }\n // Logic for autosize would typically involve a MutationObserver or ResizeObserver\n // but the current implementation already uses functions in host bindings which are\n // re-evaluated on change detection.\n const startSidenav = this._sidenavs()?.find(\n s => s.position() === 'start' && s.opened()\n );\n\n if (startSidenav) {\n if (this.fixedWidth() !== null && this.fixedWidth() !== undefined) {\n return `${parseInt(this.fixedWidth() as string, 10)}px`;\n }\n\n if (startSidenav.collapsed()) {\n return 'var(--ngs-sidenav-collapsed-width)';\n }\n\n if (startSidenav.mode() === 'push' || (startSidenav as any).effectiveMode() === 'side') {\n return 'var(--ngs-sidenav-width)';\n }\n }\n\n return '0px';\n }\n\n _getContentMarginRight(): string {\n if (!this.autosize()) {\n const endSidenav = this._sidenavs()?.find(\n s => s.position() === 'end' && s.opened()\n );\n\n if (endSidenav) {\n if (this.fixedWidth() !== null && this.fixedWidth() !== undefined) {\n return `${parseInt(this.fixedWidth() as string, 10)}px`;\n }\n\n if (endSidenav.collapsed()) {\n return 'var(--ngs-sidenav-collapsed-width)';\n }\n\n if (endSidenav.mode() === 'push' || (endSidenav as any).effectiveMode() === 'side') {\n return 'var(--ngs-sidenav-width)';\n }\n }\n\n return '0px';\n }\n const endSidenav = this._sidenavs()?.find(\n s => s.position() === 'end' && s.opened()\n );\n\n if (endSidenav) {\n if (this.fixedWidth() !== null && this.fixedWidth() !== undefined) {\n return `${parseInt(this.fixedWidth() as string, 10)}px`;\n }\n\n if (endSidenav.collapsed()) {\n return 'var(--ngs-sidenav-collapsed-width)';\n }\n\n if (endSidenav.mode() === 'push' || (endSidenav as any).effectiveMode() === 'side') {\n return 'var(--ngs-sidenav-width)';\n }\n }\n\n return '0px';\n }\n}\n","<div class=\"ngs-sidenav-backdrop\"\n [class.ngs-sidenav-shown]=\"_isShowingBackdrop()\"\n (click)=\"_onBackdropClicked()\"></div>\n\n<ng-content select=\"ngs-sidenav\"/>\n<ng-content select=\"ngs-sidenav-content\"/>\n<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n afterNextRender,\n signal,\n NgZone,\n} from '@angular/core';\nimport { SidenavContainer } from '../sidenav-container/sidenav-container';\n\n@Component({\n selector: 'ngs-sidenav-content',\n exportAs: 'ngsSidenavContent',\n standalone: true,\n imports: [],\n templateUrl: './sidenav-content.html',\n styleUrl: './sidenav-content.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-sidenav-content',\n '[class.is-settled]': '_isSettled()',\n '[style.margin-left]': '_container._getContentMarginLeft()',\n '[style.margin-right]': '_container._getContentMarginRight()',\n },\n})\nexport class SidenavContent {\n private _ngZone = inject(NgZone);\n protected _container = inject(SidenavContainer);\n protected _isSettled = signal(false);\n\n constructor() {\n afterNextRender(() => {\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this._isSettled.set(true);\n }, 100);\n });\n });\n }\n}\n","<ng-content/>\n","import { Directive, effect, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { SIDENAV } from './types';\nimport { Sidenav } from './sidenav/sidenav';\n\n@Directive({\n selector: '[ngsSidenavCollapsed]',\n exportAs: 'ngsSidenavCollapsed',\n standalone: true\n})\nexport class SidenavCollapsed {\n private _templateRef = inject(TemplateRef);\n private _viewContainerRef = inject(ViewContainerRef);\n private _sidenav = inject<Sidenav>(SIDENAV);\n\n constructor() {\n effect(() => {\n const collapsed = this._sidenav.collapsed();\n const hovered = this._sidenav.isHovered();\n\n if (collapsed && !hovered) {\n if (this._viewContainerRef.length === 0) {\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n } else {\n this._viewContainerRef.clear();\n }\n });\n }\n}\n","import { Directive, effect, inject, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { SIDENAV } from './types';\nimport { Sidenav } from './sidenav/sidenav';\n\n@Directive({\n selector: '[ngsSidenavExpanded]',\n exportAs: 'ngsSidenavExpanded',\n standalone: true\n})\nexport class SidenavExpanded {\n private _templateRef = inject(TemplateRef);\n private _viewContainerRef = inject(ViewContainerRef);\n private _sidenav = inject<Sidenav>(SIDENAV);\n\n constructor() {\n effect(() => {\n const collapsed = this._sidenav.collapsed();\n const hovered = this._sidenav.isHovered();\n\n if (!collapsed || (collapsed && hovered)) {\n if (this._viewContainerRef.length === 0) {\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n } else {\n this._viewContainerRef.clear();\n }\n });\n }\n}\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 { InjectionToken, model, input, output, Directive, inject, ChangeDetectorRef, ChangeDetectionStrategy,
|
|
2
|
+
import { InjectionToken, model, input, output, Directive, inject, ChangeDetectorRef, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
|
|
5
5
|
const SORT = new InjectionToken('SORT');
|
|
@@ -109,14 +109,14 @@ class SortHeader {
|
|
|
109
109
|
return active === this.id() ? direction : 'void';
|
|
110
110
|
}
|
|
111
111
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SortHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: SortHeader, isStandalone: true, selector: "[ngs-sort-header]", inputs: { id: { classPropertyName: "id", publicName: "ngs-sort-header", isSignal: true, isRequired: false, transformFunction: null }, sortActionDescription: { classPropertyName: "sortActionDescription", publicName: "sortActionDescription", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ngs-sort-header-disabled": "_isDisabled()" }, classAttribute: "ngs-sort-header" }, exportAs: ["ngsSortHeader"], ngImport: i0, template: "<div class=\"ngs-sort-header-container\"\n [class.ngs-sort-header-sorted]=\"_isSorted()\">\n <div class=\"ngs-sort-header-button relative\"\n [attr.aria-label]=\"sortActionDescription()\"\n (click)=\"_handleClick()\">\n <ng-content />\n <div class=\"ngs-sort-header-arrow\"\n [class.ngs-sort-header-arrow-asc]=\"_getArrowState() === 'asc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'asc')\"\n [class.ngs-sort-header-arrow-desc]=\"_getArrowState() === 'desc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'desc')\"\n [class.ngs-sort-header-arrow-hint]=\"_getArrowState() === 'void' && !_isDisabled()\">\n <svg viewBox=\"0 0 24 24\" focusable=\"false\" class=\"ngs-sort-header-arrow-svg\">\n <path d=\"M7 10l5 5 5-5z\"/>\n </svg>\n </div>\n </div>\n</div>\n", styles: [".ngs-sort-header-container{display:flex;align-items:center;cursor:pointer;position:relative;justify-content:flex-start;-webkit-user-select:text;user-select:text}.ngs-sort-header-button{border:none;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;display:flex;align-items:center;width:100%;text-align:inherit;justify-content:inherit;-webkit-user-select:text;user-select:text}.ngs-sort-header-arrow{display:flex;align-items:center;justify-content:center;margin-left:calc(var(--spacing, .25rem) * .5);opacity:0;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1)}.ngs-sort-header-arrow.ngs-sort-header-arrow-asc{opacity:1;transform:translateY(0)}.ngs-sort-header-arrow.ngs-sort-header-arrow-desc{opacity:1;transform:translateY(0) rotate(180deg)}.ngs-sort-header-arrow.ngs-sort-header-arrow-hint{opacity:0}
|
|
112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: SortHeader, isStandalone: true, selector: "[ngs-sort-header]", inputs: { id: { classPropertyName: "id", publicName: "ngs-sort-header", isSignal: true, isRequired: false, transformFunction: null }, sortActionDescription: { classPropertyName: "sortActionDescription", publicName: "sortActionDescription", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ngs-sort-header-disabled": "_isDisabled()" }, classAttribute: "ngs-sort-header" }, exportAs: ["ngsSortHeader"], ngImport: i0, template: "<div class=\"ngs-sort-header-container\"\n [class.ngs-sort-header-sorted]=\"_isSorted()\">\n <div class=\"ngs-sort-header-button relative\"\n [attr.aria-label]=\"sortActionDescription()\"\n (click)=\"_handleClick()\">\n <ng-content />\n <div class=\"ngs-sort-header-arrow\"\n [class.ngs-sort-header-arrow-asc]=\"_getArrowState() === 'asc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'asc')\"\n [class.ngs-sort-header-arrow-desc]=\"_getArrowState() === 'desc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'desc')\"\n [class.ngs-sort-header-arrow-hint]=\"_getArrowState() === 'void' && !_isDisabled()\">\n <svg viewBox=\"0 0 24 24\" focusable=\"false\" class=\"ngs-sort-header-arrow-svg\">\n <path d=\"M7 10l5 5 5-5z\"/>\n </svg>\n </div>\n </div>\n</div>\n", styles: [":host .ngs-sort-header-container{display:flex;align-items:center;cursor:pointer;position:relative;justify-content:flex-start;-webkit-user-select:text;user-select:text}:host .ngs-sort-header-button{border:none;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;display:flex;align-items:center;width:100%;text-align:inherit;justify-content:inherit;-webkit-user-select:text;user-select:text}:host .ngs-sort-header-arrow{display:flex;align-items:center;justify-content:center;margin-left:calc(var(--spacing, .25rem) * .5);opacity:0;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1)}:host .ngs-sort-header-arrow.ngs-sort-header-arrow-asc{opacity:1;transform:translateY(0)}:host .ngs-sort-header-arrow.ngs-sort-header-arrow-desc{opacity:1;transform:translateY(0) rotate(180deg)}:host .ngs-sort-header-arrow.ngs-sort-header-arrow-hint{opacity:0}:host:hover:not(.ngs-sort-header-disabled) .ngs-sort-header-arrow.ngs-sort-header-arrow-hint{opacity:.54}:host .ngs-sort-header-arrow-svg{width:20px;height:20px;fill:currentColor}:host.ngs-sort-header-disabled{cursor:default}:host.ngs-sort-header-disabled .ngs-sort-header-button{cursor:default}:host.ngs-sort-header-disabled:hover .ngs-sort-header-arrow.ngs-sort-header-arrow-hint{opacity:0}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
113
|
}
|
|
114
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SortHeader, decorators: [{
|
|
115
115
|
type: Component,
|
|
116
|
-
args: [{ selector: '[ngs-sort-header]', exportAs: 'ngsSortHeader', host: {
|
|
116
|
+
args: [{ selector: '[ngs-sort-header]', exportAs: 'ngsSortHeader', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
117
117
|
'class': 'ngs-sort-header',
|
|
118
118
|
'[class.ngs-sort-header-disabled]': '_isDisabled()',
|
|
119
|
-
},
|
|
119
|
+
}, template: "<div class=\"ngs-sort-header-container\"\n [class.ngs-sort-header-sorted]=\"_isSorted()\">\n <div class=\"ngs-sort-header-button relative\"\n [attr.aria-label]=\"sortActionDescription()\"\n (click)=\"_handleClick()\">\n <ng-content />\n <div class=\"ngs-sort-header-arrow\"\n [class.ngs-sort-header-arrow-asc]=\"_getArrowState() === 'asc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'asc')\"\n [class.ngs-sort-header-arrow-desc]=\"_getArrowState() === 'desc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'desc')\"\n [class.ngs-sort-header-arrow-hint]=\"_getArrowState() === 'void' && !_isDisabled()\">\n <svg viewBox=\"0 0 24 24\" focusable=\"false\" class=\"ngs-sort-header-arrow-svg\">\n <path d=\"M7 10l5 5 5-5z\"/>\n </svg>\n </div>\n </div>\n</div>\n", styles: [":host .ngs-sort-header-container{display:flex;align-items:center;cursor:pointer;position:relative;justify-content:flex-start;-webkit-user-select:text;user-select:text}:host .ngs-sort-header-button{border:none;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;display:flex;align-items:center;width:100%;text-align:inherit;justify-content:inherit;-webkit-user-select:text;user-select:text}:host .ngs-sort-header-arrow{display:flex;align-items:center;justify-content:center;margin-left:calc(var(--spacing, .25rem) * .5);opacity:0;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1)}:host .ngs-sort-header-arrow.ngs-sort-header-arrow-asc{opacity:1;transform:translateY(0)}:host .ngs-sort-header-arrow.ngs-sort-header-arrow-desc{opacity:1;transform:translateY(0) rotate(180deg)}:host .ngs-sort-header-arrow.ngs-sort-header-arrow-hint{opacity:0}:host:hover:not(.ngs-sort-header-disabled) .ngs-sort-header-arrow.ngs-sort-header-arrow-hint{opacity:.54}:host .ngs-sort-header-arrow-svg{width:20px;height:20px;fill:currentColor}:host.ngs-sort-header-disabled{cursor:default}:host.ngs-sort-header-disabled .ngs-sort-header-button{cursor:default}:host.ngs-sort-header-disabled:hover .ngs-sort-header-arrow.ngs-sort-header-arrow-hint{opacity:0}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
120
120
|
}], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngs-sort-header", required: false }] }], sortActionDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortActionDescription", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
121
121
|
|
|
122
122
|
class SortModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-sort.mjs","sources":["../../../projects/components/sort/src/sort/sort-interface.ts","../../../projects/components/sort/src/sort/sort.ts","../../../projects/components/sort/src/sort/sort-header.ts","../../../projects/components/sort/src/sort/sort-header.html","../../../projects/components/sort/src/sort/sort-module.ts","../../../projects/components/sort/ngstarter-ui-components-sort.ts"],"sourcesContent":["import { InjectionToken, OutputEmitterRef } from '@angular/core';\nimport { SortDirection } from './sort-direction';\nimport { Observable } from 'rxjs';\n\nexport interface Sort {\n readonly active: string;\n readonly direction: SortDirection;\n}\n\nexport interface EmrSort {\n readonly active: string | (() => string);\n readonly direction: SortDirection | (() => SortDirection);\n readonly sortChange: Observable<Sort> | OutputEmitterRef<Sort>;\n readonly initialized?: Observable<void>;\n}\n\nexport const SORT = new InjectionToken<EmrSort>('SORT');\n","import {\n Directive,\n input,\n model,\n OnChanges,\n OnDestroy,\n OnInit,\n output\n} from '@angular/core';\nimport { SortDirection } from './sort-direction';\nimport { Sort, EmrSort, SORT } from './sort-interface';\nimport { Subject } from 'rxjs';\n\n@Directive({\n selector: '[ngsSort]',\n exportAs: 'ngsSort',\n providers: [{ provide: SORT, useExisting: SortDirective }],\n standalone: true,\n})\nexport class SortDirective implements OnInit, OnChanges, OnDestroy, EmrSort {\n active = model('', { alias: 'ngsSortActive' });\n\n start = input<SortDirection>('asc', { alias: 'ngsSortStart' });\n\n direction = model<SortDirection>('', { alias: 'ngsSortDirection' });\n\n disableClear = input(false, {\n alias: 'ngsSortDisableClear',\n transform: (value: boolean | string) => typeof value === 'string' ? value === '' || value === 'true' : value\n });\n\n disabled = input(false, {\n alias: 'ngsSortDisabled',\n transform: (value: boolean | string) => typeof value === 'string' ? value === '' || value === 'true' : value\n });\n\n readonly sortChange = output<Sort>({ alias: 'ngsSortChange' });\n\n readonly _stateChanges = new Subject<void>();\n\n private readonly _initialized = new Subject<void>();\n readonly initialized = this._initialized.asObservable();\n\n ngOnInit() {\n this._initialized.next();\n this._initialized.complete();\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n\n sort(id: string) {\n const direction = this.getNextSortDirection(id);\n this.active.set(id);\n this.direction.set(direction);\n this.sortChange.emit({ active: id, direction });\n this._stateChanges.next();\n }\n\n getNextSortDirection(id: string): SortDirection {\n if (this.active() !== id) {\n return this.start() || 'asc';\n }\n\n if (this.direction() === 'asc') {\n return 'desc';\n }\n\n if (this.direction() === 'desc' && !this.disableClear()) {\n return '';\n }\n\n return 'asc';\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SORT } from './sort-interface';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: '[ngs-sort-header]',\n exportAs: 'ngsSortHeader',\n templateUrl: './sort-header.html',\n styleUrls: ['./sort-header.scss'],\n host: {\n 'class': 'ngs-sort-header',\n '[class.ngs-sort-header-disabled]': '_isDisabled()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [],\n})\nexport class SortHeader implements OnInit, OnDestroy {\n private _rerenderSubscription: Subscription | undefined;\n private _cdr = inject(ChangeDetectorRef);\n\n id = input('', { alias: 'ngs-sort-header' });\n sortActionDescription = input<string>('');\n disabled = input(false, {\n transform: (value: boolean | string) => typeof value === 'string' ? value === '' || value === 'true' : value\n });\n\n _sort = inject(SORT, { optional: true });\n\n ngOnInit() {\n if (this._sort && (this._sort as any)._stateChanges) {\n this._rerenderSubscription = (this._sort as any)._stateChanges.subscribe(() => {\n this._cdr.markForCheck();\n });\n }\n }\n\n ngOnDestroy() {\n this._rerenderSubscription?.unsubscribe();\n }\n\n _handleClick() {\n if (!this._isDisabled() && this._sort) {\n (this._sort as any).sort(this.id());\n }\n }\n\n _getNextSortDirection(): string {\n if (!this._sort || this._isDisabled()) {\n return '';\n }\n return (this._sort as any).getNextSortDirection(this.id());\n }\n\n _isSorted(): boolean {\n if (!this._sort) {\n return false;\n }\n\n const active = typeof this._sort.active === 'function' ? this._sort.active() : this._sort.active;\n const direction = typeof this._sort.direction === 'function' ? this._sort.direction() : this._sort.direction;\n return !!(active === this.id() && direction);\n }\n\n _isDisabled(): boolean {\n return this.disabled() || this._isSortDisabled();\n }\n\n _isSortDisabled(): boolean {\n return typeof (this._sort as any)?.disabled === 'function' ? (this._sort as any).disabled() : (this._sort as any)?.disabled;\n }\n\n _getArrowState() {\n if (!this._sort) {\n return 'void';\n }\n\n const active = typeof this._sort.active === 'function' ? this._sort.active() : this._sort.active;\n const direction = typeof this._sort.direction === 'function' ? this._sort.direction() : this._sort.direction;\n return active === this.id() ? direction : 'void';\n }\n}\n","<div class=\"ngs-sort-header-container\"\n [class.ngs-sort-header-sorted]=\"_isSorted()\">\n <div class=\"ngs-sort-header-button relative\"\n [attr.aria-label]=\"sortActionDescription()\"\n (click)=\"_handleClick()\">\n <ng-content />\n <div class=\"ngs-sort-header-arrow\"\n [class.ngs-sort-header-arrow-asc]=\"_getArrowState() === 'asc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'asc')\"\n [class.ngs-sort-header-arrow-desc]=\"_getArrowState() === 'desc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'desc')\"\n [class.ngs-sort-header-arrow-hint]=\"_getArrowState() === 'void' && !_isDisabled()\">\n <svg viewBox=\"0 0 24 24\" focusable=\"false\" class=\"ngs-sort-header-arrow-svg\">\n <path d=\"M7 10l5 5 5-5z\"/>\n </svg>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { SortDirective } from './sort';\nimport { SortHeader } from './sort-header';\n\n@NgModule({\n imports: [SortDirective, SortHeader],\n exports: [SortDirective, SortHeader],\n})\nexport class SortModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-sort.mjs","sources":["../../../projects/components/sort/src/sort/sort-interface.ts","../../../projects/components/sort/src/sort/sort.ts","../../../projects/components/sort/src/sort/sort-header.ts","../../../projects/components/sort/src/sort/sort-header.html","../../../projects/components/sort/src/sort/sort-module.ts","../../../projects/components/sort/ngstarter-ui-components-sort.ts"],"sourcesContent":["import { InjectionToken, OutputEmitterRef } from '@angular/core';\nimport { SortDirection } from './sort-direction';\nimport { Observable } from 'rxjs';\n\nexport interface Sort {\n readonly active: string;\n readonly direction: SortDirection;\n}\n\nexport interface NgsSort {\n readonly active: string | (() => string);\n readonly direction: SortDirection | (() => SortDirection);\n readonly sortChange: Observable<Sort> | OutputEmitterRef<Sort>;\n readonly initialized?: Observable<void>;\n}\n\nexport const SORT = new InjectionToken<NgsSort>('SORT');\n","import {\n Directive,\n input,\n model,\n OnChanges,\n OnDestroy,\n OnInit,\n output\n} from '@angular/core';\nimport { SortDirection } from './sort-direction';\nimport { Sort, NgsSort, SORT } from './sort-interface';\nimport { Subject } from 'rxjs';\n\n@Directive({\n selector: '[ngsSort]',\n exportAs: 'ngsSort',\n providers: [{ provide: SORT, useExisting: SortDirective }],\n standalone: true,\n})\nexport class SortDirective implements OnInit, OnChanges, OnDestroy, NgsSort {\n active = model('', { alias: 'ngsSortActive' });\n\n start = input<SortDirection>('asc', { alias: 'ngsSortStart' });\n\n direction = model<SortDirection>('', { alias: 'ngsSortDirection' });\n\n disableClear = input(false, {\n alias: 'ngsSortDisableClear',\n transform: (value: boolean | string) => typeof value === 'string' ? value === '' || value === 'true' : value\n });\n\n disabled = input(false, {\n alias: 'ngsSortDisabled',\n transform: (value: boolean | string) => typeof value === 'string' ? value === '' || value === 'true' : value\n });\n\n readonly sortChange = output<Sort>({ alias: 'ngsSortChange' });\n\n readonly _stateChanges = new Subject<void>();\n\n private readonly _initialized = new Subject<void>();\n readonly initialized = this._initialized.asObservable();\n\n ngOnInit() {\n this._initialized.next();\n this._initialized.complete();\n }\n\n ngOnChanges() {\n this._stateChanges.next();\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n\n sort(id: string) {\n const direction = this.getNextSortDirection(id);\n this.active.set(id);\n this.direction.set(direction);\n this.sortChange.emit({ active: id, direction });\n this._stateChanges.next();\n }\n\n getNextSortDirection(id: string): SortDirection {\n if (this.active() !== id) {\n return this.start() || 'asc';\n }\n\n if (this.direction() === 'asc') {\n return 'desc';\n }\n\n if (this.direction() === 'desc' && !this.disableClear()) {\n return '';\n }\n\n return 'asc';\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { SORT } from './sort-interface';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: '[ngs-sort-header]',\n exportAs: 'ngsSortHeader',\n templateUrl: './sort-header.html',\n styleUrl: './sort-header.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-sort-header',\n '[class.ngs-sort-header-disabled]': '_isDisabled()',\n },\n})\nexport class SortHeader implements OnInit, OnDestroy {\n private _rerenderSubscription: Subscription | undefined;\n private _cdr = inject(ChangeDetectorRef);\n\n id = input('', { alias: 'ngs-sort-header' });\n sortActionDescription = input<string>('');\n disabled = input(false, {\n transform: (value: boolean | string) => typeof value === 'string' ? value === '' || value === 'true' : value\n });\n\n _sort = inject(SORT, { optional: true });\n\n ngOnInit() {\n if (this._sort && (this._sort as any)._stateChanges) {\n this._rerenderSubscription = (this._sort as any)._stateChanges.subscribe(() => {\n this._cdr.markForCheck();\n });\n }\n }\n\n ngOnDestroy() {\n this._rerenderSubscription?.unsubscribe();\n }\n\n _handleClick() {\n if (!this._isDisabled() && this._sort) {\n (this._sort as any).sort(this.id());\n }\n }\n\n _getNextSortDirection(): string {\n if (!this._sort || this._isDisabled()) {\n return '';\n }\n return (this._sort as any).getNextSortDirection(this.id());\n }\n\n _isSorted(): boolean {\n if (!this._sort) {\n return false;\n }\n\n const active = typeof this._sort.active === 'function' ? this._sort.active() : this._sort.active;\n const direction = typeof this._sort.direction === 'function' ? this._sort.direction() : this._sort.direction;\n return !!(active === this.id() && direction);\n }\n\n _isDisabled(): boolean {\n return this.disabled() || this._isSortDisabled();\n }\n\n _isSortDisabled(): boolean {\n return typeof (this._sort as any)?.disabled === 'function' ? (this._sort as any).disabled() : (this._sort as any)?.disabled;\n }\n\n _getArrowState() {\n if (!this._sort) {\n return 'void';\n }\n\n const active = typeof this._sort.active === 'function' ? this._sort.active() : this._sort.active;\n const direction = typeof this._sort.direction === 'function' ? this._sort.direction() : this._sort.direction;\n return active === this.id() ? direction : 'void';\n }\n}\n","<div class=\"ngs-sort-header-container\"\n [class.ngs-sort-header-sorted]=\"_isSorted()\">\n <div class=\"ngs-sort-header-button relative\"\n [attr.aria-label]=\"sortActionDescription()\"\n (click)=\"_handleClick()\">\n <ng-content />\n <div class=\"ngs-sort-header-arrow\"\n [class.ngs-sort-header-arrow-asc]=\"_getArrowState() === 'asc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'asc')\"\n [class.ngs-sort-header-arrow-desc]=\"_getArrowState() === 'desc' || (!_isDisabled() && _getArrowState() === 'void' && _getNextSortDirection() === 'desc')\"\n [class.ngs-sort-header-arrow-hint]=\"_getArrowState() === 'void' && !_isDisabled()\">\n <svg viewBox=\"0 0 24 24\" focusable=\"false\" class=\"ngs-sort-header-arrow-svg\">\n <path d=\"M7 10l5 5 5-5z\"/>\n </svg>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { SortDirective } from './sort';\nimport { SortHeader } from './sort-header';\n\n@NgModule({\n imports: [SortDirective, SortHeader],\n exports: [SortDirective, SortHeader],\n})\nexport class SortModule {}\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 { Directive,
|
|
2
|
+
import { Directive, contentChild, forwardRef, Inject, Component, input, contentChildren, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import { CdkStep, CdkStepper, CdkStepperNext, CdkStepperPrevious } from '@angular/cdk/stepper';
|
|
4
4
|
import * as i1 from '@angular/common';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
@@ -21,23 +21,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
21
21
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
22
22
|
|
|
23
23
|
class Step extends CdkStep {
|
|
24
|
-
|
|
24
|
+
ngsStepLabel = contentChild(StepLabel, ...(ngDevMode ? [{ debugName: "ngsStepLabel" }] : /* istanbul ignore next */ []));
|
|
25
25
|
constructor(stepper) {
|
|
26
26
|
super(stepper);
|
|
27
27
|
}
|
|
28
28
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Step, deps: [{ token: forwardRef(() => Stepper) }], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: Step, isStandalone: true, selector: "ngs-step", host: { classAttribute: "ngs-step" }, providers: [
|
|
30
|
+
{
|
|
31
|
+
provide: CdkStep,
|
|
32
|
+
useExisting: Step
|
|
33
|
+
}
|
|
34
|
+
], queries: [{ propertyName: "ngsStepLabel", first: true, predicate: StepLabel, descendants: true, isSignal: true }], exportAs: ["ngsStep"], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <ng-content />\n</ng-template>\n", styles: [":host{display:block}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
|
|
30
35
|
}
|
|
31
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Step, decorators: [{
|
|
32
37
|
type: Component,
|
|
33
|
-
args: [{ selector: 'ngs-step', exportAs: 'ngsStep',
|
|
38
|
+
args: [{ selector: 'ngs-step', exportAs: 'ngsStep', providers: [
|
|
39
|
+
{
|
|
40
|
+
provide: CdkStep,
|
|
41
|
+
useExisting: Step
|
|
42
|
+
}
|
|
43
|
+
], host: {
|
|
44
|
+
'class': 'ngs-step'
|
|
45
|
+
}, template: "<ng-template>\n <ng-content />\n</ng-template>\n", styles: [":host{display:block}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
34
46
|
}], ctorParameters: () => [{ type: Stepper, decorators: [{
|
|
35
47
|
type: Inject,
|
|
36
48
|
args: [forwardRef(() => Stepper)]
|
|
37
|
-
}] }], propDecorators: {
|
|
38
|
-
type: ContentChild,
|
|
39
|
-
args: [StepLabel]
|
|
40
|
-
}] } });
|
|
49
|
+
}] }], propDecorators: { ngsStepLabel: [{ type: i0.ContentChild, args: [i0.forwardRef(() => StepLabel), { isSignal: true }] }] } });
|
|
41
50
|
|
|
42
51
|
class Stepper extends CdkStepper {
|
|
43
52
|
headerPosition = input('top', ...(ngDevMode ? [{ debugName: "headerPosition" }] : /* istanbul ignore next */ []));
|
|
@@ -56,11 +65,11 @@ class Stepper extends CdkStepper {
|
|
|
56
65
|
super.ngAfterContentInit();
|
|
57
66
|
}
|
|
58
67
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Stepper, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: Stepper, isStandalone: true, selector: "ngs-stepper", inputs: { headerPosition: { classPropertyName: "headerPosition", publicName: "headerPosition", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: CdkStepper, useExisting: Stepper }], queries: [{ propertyName: "stepItems", predicate: Step, descendants: true, isSignal: true }, { propertyName: "_stepLabels", predicate: StepLabel, descendants: true, isSignal: true }], exportAs: ["ngsStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"
|
|
68
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: Stepper, isStandalone: true, selector: "ngs-stepper", inputs: { headerPosition: { classPropertyName: "headerPosition", publicName: "headerPosition", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: CdkStepper, useExisting: Stepper }], queries: [{ propertyName: "stepItems", predicate: Step, descendants: true, isSignal: true }, { propertyName: "_stepLabels", predicate: StepLabel, descendants: true, isSignal: true }], exportAs: ["ngsStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n", styles: [":root{--ngs-stepper-header-padding: 16px;--ngs-stepper-header-gap: 8px;--ngs-stepper-icon-size: 24px;--ngs-stepper-icon-bg: var(--ngs-color-surface-container-high);--ngs-stepper-icon-color: var(--ngs-color-on-surface);--ngs-stepper-icon-active-bg: var(--ngs-color-primary);--ngs-stepper-icon-active-color: var(--ngs-color-on-primary);--ngs-stepper-icon-completed-bg: var(--ngs-color-success);--ngs-stepper-icon-completed-color: var(--ngs-color-on-success);--ngs-stepper-label-color: var(--ngs-color-on-surface-variant);--ngs-stepper-label-active-color: var(--ngs-color-on-surface);--ngs-stepper-line-color: var(--ngs-color-outline-variant);--ngs-stepper-content-padding: 24px}.ngs-stepper{display:flex;flex-direction:column}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper{margin-left:calc(var(--ngs-stepper-icon-size) / 2 - .5px);padding-left:calc(var(--ngs-stepper-icon-size) / 2 + var(--ngs-stepper-header-gap) + .5px);position:relative}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-vertical-line{position:absolute;left:0;top:-16px;bottom:-16px;width:1px;background:var(--ngs-stepper-line-color)}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}.ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}.ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}.ngs-stepper-header-container{display:flex;align-items:center;padding:0 var(--ngs-stepper-header-padding);border-bottom:1px solid var(--ngs-stepper-line-color);overflow-x:hidden}.ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}.ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}.ngs-stepper-header{display:flex;align-items:center;gap:var(--ngs-stepper-header-gap);padding:16px 0;cursor:pointer;white-space:nowrap;outline:none;position:relative;min-width:0}.ngs-stepper-header:hover .ngs-stepper-icon:not(.ngs-stepper-header-active .ngs-stepper-icon){background:var(--ngs-color-surface-container-highest)}.ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}.ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}.ngs-stepper-header.ngs-stepper-label-bottom:before,.ngs-stepper-header.ngs-stepper-label-bottom:after{content:\"\";position:absolute;top:calc(var(--ngs-stepper-icon-size) / 2 + 16px);height:1px;background:var(--ngs-stepper-line-color);width:calc(50% - var(--ngs-stepper-icon-size) / 2 - 8px)}.ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}.ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}.ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,.ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}.ngs-stepper-icon{width:var(--ngs-stepper-icon-size);height:var(--ngs-stepper-icon-size);border-radius:50%;background:var(--ngs-stepper-icon-bg);color:var(--ngs-stepper-icon-color);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;transition:background-color .2s ease;z-index:1}.ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg);color:var(--ngs-stepper-icon-active-color)}.ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}.ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg);color:var(--ngs-stepper-icon-completed-color)}.ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}.ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}.ngs-stepper-content{outline:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
60
69
|
}
|
|
61
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Stepper, decorators: [{
|
|
62
71
|
type: Component,
|
|
63
|
-
args: [{ selector: 'ngs-stepper', exportAs: 'ngsStepper', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, providers: [{ provide: CdkStepper, useExisting: Stepper }], template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"
|
|
72
|
+
args: [{ selector: 'ngs-stepper', exportAs: 'ngsStepper', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, providers: [{ provide: CdkStepper, useExisting: Stepper }], template: "<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n", styles: [":root{--ngs-stepper-header-padding: 16px;--ngs-stepper-header-gap: 8px;--ngs-stepper-icon-size: 24px;--ngs-stepper-icon-bg: var(--ngs-color-surface-container-high);--ngs-stepper-icon-color: var(--ngs-color-on-surface);--ngs-stepper-icon-active-bg: var(--ngs-color-primary);--ngs-stepper-icon-active-color: var(--ngs-color-on-primary);--ngs-stepper-icon-completed-bg: var(--ngs-color-success);--ngs-stepper-icon-completed-color: var(--ngs-color-on-success);--ngs-stepper-label-color: var(--ngs-color-on-surface-variant);--ngs-stepper-label-active-color: var(--ngs-color-on-surface);--ngs-stepper-line-color: var(--ngs-color-outline-variant);--ngs-stepper-content-padding: 24px}.ngs-stepper{display:flex;flex-direction:column}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper{margin-left:calc(var(--ngs-stepper-icon-size) / 2 - .5px);padding-left:calc(var(--ngs-stepper-icon-size) / 2 + var(--ngs-stepper-header-gap) + .5px);position:relative}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-vertical-line{position:absolute;left:0;top:-16px;bottom:-16px;width:1px;background:var(--ngs-stepper-line-color)}.ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}.ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}.ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}.ngs-stepper-header-container{display:flex;align-items:center;padding:0 var(--ngs-stepper-header-padding);border-bottom:1px solid var(--ngs-stepper-line-color);overflow-x:hidden}.ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}.ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}.ngs-stepper-header{display:flex;align-items:center;gap:var(--ngs-stepper-header-gap);padding:16px 0;cursor:pointer;white-space:nowrap;outline:none;position:relative;min-width:0}.ngs-stepper-header:hover .ngs-stepper-icon:not(.ngs-stepper-header-active .ngs-stepper-icon){background:var(--ngs-color-surface-container-highest)}.ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}.ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}.ngs-stepper-header.ngs-stepper-label-bottom:before,.ngs-stepper-header.ngs-stepper-label-bottom:after{content:\"\";position:absolute;top:calc(var(--ngs-stepper-icon-size) / 2 + 16px);height:1px;background:var(--ngs-stepper-line-color);width:calc(50% - var(--ngs-stepper-icon-size) / 2 - 8px)}.ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}.ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}.ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,.ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}.ngs-stepper-icon{width:var(--ngs-stepper-icon-size);height:var(--ngs-stepper-icon-size);border-radius:50%;background:var(--ngs-stepper-icon-bg);color:var(--ngs-stepper-icon-color);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;transition:background-color .2s ease;z-index:1}.ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg);color:var(--ngs-stepper-icon-active-color)}.ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}.ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg);color:var(--ngs-stepper-icon-completed-color)}.ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}.ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}.ngs-stepper-content{outline:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
64
73
|
}], propDecorators: { headerPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerPosition", required: false }] }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }], stepItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => Step), { ...{ descendants: true }, isSignal: true }] }], _stepLabels: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => StepLabel), { ...{ descendants: true }, isSignal: true }] }] } });
|
|
65
74
|
|
|
66
75
|
class StepperNext extends CdkStepperNext {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-stepper.mjs","sources":["../../../projects/components/stepper/src/step-label.ts","../../../projects/components/stepper/src/step/step.ts","../../../projects/components/stepper/src/step/step.html","../../../projects/components/stepper/src/stepper/stepper.ts","../../../projects/components/stepper/src/stepper/stepper.html","../../../projects/components/stepper/src/stepper-next.ts","../../../projects/components/stepper/src/stepper-previous.ts","../../../projects/components/stepper/ngstarter-ui-components-stepper.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsStepLabel]',\n standalone: true\n})\nexport class StepLabel {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { Component, ContentChild, Input, ViewEncapsulation, forwardRef, Inject } from '@angular/core';\nimport { CdkStep, CdkStepper } from '@angular/cdk/stepper';\nimport { StepLabel } from '../step-label';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { Stepper } from '../stepper/stepper';\n\n@Component({\n selector: 'ngs-step',\n exportAs: 'ngsStep',\n standalone: true,\n imports: [],\n templateUrl: './step.html',\n styleUrl: './step.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: CdkStep, useExisting: Step }],\n})\nexport class Step extends CdkStep {\n @ContentChild(StepLabel) override stepLabel: StepLabel = undefined!;\n\n constructor(@Inject(forwardRef(() => Stepper)) stepper: Stepper) {\n super(stepper);\n }\n}\n","<ng-template>\n <ng-content />\n</ng-template>\n","import { Component, input, ViewEncapsulation, contentChildren } from '@angular/core';\nimport { CdkStepper, StepperOrientation } from '@angular/cdk/stepper';\nimport { Step } from '../step/step';\nimport { StepLabel } from '../step-label';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ngs-stepper',\n exportAs: 'ngsStepper',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './stepper.html',\n styleUrl: './stepper.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: CdkStepper, useExisting: Stepper }],\n})\nexport class Stepper extends CdkStepper {\n headerPosition = input<'top' | 'bottom'>('top');\n labelPosition = input<'top' | 'bottom'>('top');\n\n private _stepperOrientation: StepperOrientation = 'horizontal';\n\n override get orientation(): StepperOrientation {\n return this._stepperOrientation;\n }\n override set orientation(value: StepperOrientation) {\n this._stepperOrientation = value;\n }\n\n // Use a separate signal for template iteration to avoid overriding CdkStepper's QueryList `_steps`.\n readonly stepItems = contentChildren(Step, { descendants: true });\n readonly _stepLabels = contentChildren(StepLabel, { descendants: true });\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n}\n","<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.stepLabel) {\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperNext } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperNext]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperNext extends CdkStepperNext {\n override type: string = 'submit';\n}\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperPrevious } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperPrevious]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperPrevious extends CdkStepperPrevious {\n override type: string = 'button';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-stepper.mjs","sources":["../../../projects/components/stepper/src/step-label.ts","../../../projects/components/stepper/src/step/step.ts","../../../projects/components/stepper/src/step/step.html","../../../projects/components/stepper/src/stepper/stepper.ts","../../../projects/components/stepper/src/stepper/stepper.html","../../../projects/components/stepper/src/stepper-next.ts","../../../projects/components/stepper/src/stepper-previous.ts","../../../projects/components/stepper/ngstarter-ui-components-stepper.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ngsStepLabel]',\n standalone: true\n})\nexport class StepLabel {\n constructor(public template: TemplateRef<any>) { }\n}\n","import { Component, contentChild, forwardRef, Inject } from '@angular/core';\nimport { CdkStep } from '@angular/cdk/stepper';\nimport { StepLabel } from '../step-label';\nimport { Stepper } from '../stepper/stepper';\n\n@Component({\n selector: 'ngs-step',\n exportAs: 'ngsStep',\n templateUrl: './step.html',\n styleUrl: './step.scss',\n providers: [\n {\n provide: CdkStep,\n useExisting: Step\n }\n ],\n host: {\n 'class': 'ngs-step'\n }\n})\nexport class Step extends CdkStep {\n readonly ngsStepLabel = contentChild(StepLabel);\n\n constructor(@Inject(forwardRef(() => Stepper)) stepper: Stepper) {\n super(stepper);\n }\n}\n","<ng-template>\n <ng-content />\n</ng-template>\n","import { Component, input, ViewEncapsulation, contentChildren } from '@angular/core';\nimport { CdkStepper, StepperOrientation } from '@angular/cdk/stepper';\nimport { Step } from '../step/step';\nimport { StepLabel } from '../step-label';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ngs-stepper',\n exportAs: 'ngsStepper',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './stepper.html',\n styleUrl: './stepper.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: CdkStepper, useExisting: Stepper }],\n})\nexport class Stepper extends CdkStepper {\n headerPosition = input<'top' | 'bottom'>('top');\n labelPosition = input<'top' | 'bottom'>('top');\n\n private _stepperOrientation: StepperOrientation = 'horizontal';\n\n override get orientation(): StepperOrientation {\n return this._stepperOrientation;\n }\n override set orientation(value: StepperOrientation) {\n this._stepperOrientation = value;\n }\n\n // Use a separate signal for template iteration to avoid overriding CdkStepper's QueryList `_steps`.\n readonly stepItems = contentChildren(Step, { descendants: true });\n readonly _stepLabels = contentChildren(StepLabel, { descendants: true });\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n}\n","<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperNext } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperNext]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperNext extends CdkStepperNext {\n override type: string = 'submit';\n}\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperPrevious } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperPrevious]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperPrevious extends CdkStepperPrevious {\n override type: string = 'button';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|